diff --git a/.github/workflows/pa11y-ci.yaml b/.github/workflows/pa11y-ci.yaml index 946e4b8b4..89d0bc928 100644 --- a/.github/workflows/pa11y-ci.yaml +++ b/.github/workflows/pa11y-ci.yaml @@ -8,7 +8,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v3 with: diff --git a/package-lock.json b/package-lock.json index cfd1823d8..76dad3c00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "Apache-2.0", "dependencies": { - "@apollo/client": "^3.7.14", + "@apollo/client": "^3.8.3", "@emotion/styled": "^11.10.5", "@fellesdatakatalog/alert": "^0.3.6", "@fellesdatakatalog/button": "^0.2.10", @@ -35,7 +35,7 @@ "core-js-pure": "^3.27.1", "deserialize-json-api": "^1.4.0", "eslint-import-resolver-typescript": "^3.5.3", - "graphql": "^16.6.0", + "graphql": "^16.8.1", "highlight.js": "^11.7.0", "html-react-parser": "^3.0.9", "immutable": "^4.2.4", @@ -65,7 +65,7 @@ "react-router-breadcrumbs-hoc": "^4.1.0", "react-router-dom": "^5.3.4", "react-scroll": "^1.8.9", - "react-select": "^5.7.0", + "react-select": "^5.7.4", "reactstrap": "^9.1.5", "redux": "^4.2.1", "redux-api-middleware": "^3.2.1", @@ -90,10 +90,10 @@ "@babel/preset-react": "^7.18.6", "@commitlint/cli": "^17.4.0", "@commitlint/config-conventional": "^17.4.0", - "@graphql-codegen/cli": "^2.16.2", - "@graphql-codegen/fragment-matcher": "^3.3.3", - "@graphql-codegen/typescript": "^4.0.0", - "@graphql-codegen/typescript-operations": "^2.5.11", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/fragment-matcher": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-codegen/typescript-react-apollo": "^3.3.7", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@svgr/webpack": "^6.5.1", @@ -115,7 +115,7 @@ "@types/sanitize-html": "^2.8.0", "@types/styled-components": "^5.1.24", "@types/turndown": "^5.0.1", - "@types/webpack": "^5.28.0", + "@types/webpack": "^5.28.1", "@typescript-eslint/eslint-plugin": "^5.48.0", "@typescript-eslint/parser": "^5.59.7", "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", @@ -161,10 +161,10 @@ "ts-node": "^10.9.1", "typescript": "^4.9.4", "url-loader": "^4.1.1", - "webpack": "^5.75.0", + "webpack": "^5.87.0", "webpack-bundle-analyzer": "^4.8.0", "webpack-cli": "^5.0.1", - "webpack-dev-server": "^4.11.1", + "webpack-dev-server": "^4.15.1", "webpack-merge": "^5.8.0" }, "engines": { @@ -181,29 +181,30 @@ "dev": true }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@apollo/client": { - "version": "3.7.14", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.14.tgz", - "integrity": "sha512-BRvdkwq5PAXBkjXjboO12uksDm3nrZEqDi4xF97Fk3Mnaa0zDOEfJa7hoKTY9b9KA1EkeWv9BL3i7hSd4SfGBg==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.8.3.tgz", + "integrity": "sha512-mK86JM6hCpMEBGDgdO9U8ZYS8r9lPjXE1tVGpJMdSFUsIcXpmEfHUAbbFpPtYmxn8Qa7XsYy0dwDaDhpf4UUPw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.7.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", + "@wry/context": "^0.7.3", + "@wry/equality": "^0.5.6", + "@wry/trie": "^0.4.3", "graphql-tag": "^2.12.6", "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.2", + "optimism": "^0.17.5", "prop-types": "^15.7.2", "response-iterator": "^0.2.6", "symbol-observable": "^4.0.0", @@ -416,9 +417,9 @@ } }, "node_modules/@ardatan/sync-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dev": true, "dependencies": { "whatwg-url": "^5.0.0" @@ -436,46 +437,47 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.20.tgz", + "integrity": "sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.7.tgz", - "integrity": "sha512-t1ZjCluspe5DW24bn2Rr1CDb2v9rn/hROtg9a2tmd0+QYf4bsloYfLQzjG4qHPNMhWtKdGC33R5AxGR2Af2cBw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.7", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.20.tgz", + "integrity": "sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.22.20", + "@babel/helpers": "^7.22.15", + "@babel/parser": "^7.22.16", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.20", + "@babel/types": "^7.22.19", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -486,12 +488,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.22.15.tgz", + "integrity": "sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==", "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.22.15", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -523,22 +526,19 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -611,9 +611,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } @@ -631,23 +631,23 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz", + "integrity": "sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.5", + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -666,33 +666,33 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.20.tgz", + "integrity": "sha512-dLT7JVWIUUxKOs1UnJUBR3S70YK+pKX6AbJgB2vMIvEkZkrfJDbYDJesnPshtKV4LhDOR3Oc5YULeDizRek+5A==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { @@ -751,12 +751,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -775,36 +775,36 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -826,26 +826,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", - "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.15.tgz", + "integrity": "sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==", "dev": true, "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -853,9 +853,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", - "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", + "version": "7.22.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.16.tgz", + "integrity": "sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==", "bin": { "parser": "bin/babel-parser.js" }, @@ -2188,31 +2188,31 @@ } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.10.tgz", - "integrity": "sha512-oSf1juCgymrSez8NI4A2sr4+uB/mFd9MXplYGPEBnfAuWmmyeVcHa6xLPiaRBcXkcb/28bgxmQLTVwFKE1yfsg==", - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.22.20.tgz", + "integrity": "sha512-eU260mPZbU7mZ0N+X10pxXhQFMGTeLb9eFS0mxehS8HZp9o1uSnFeWQuG1UPrlxgA7QoUzFhOnilHDp0AXCyHw==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.22.5", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.22.16", + "@babel/types": "^7.22.19", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2221,12 +2221,12 @@ } }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.22.19", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.22.19.tgz", + "integrity": "sha512-P7LAw/LbojPzkgp5oznjE6tQEIWbp4PkkfrZDINTro9zgBRtI324/EYsiSI7lhPbpIQ+DCeR2NNmMWANGGfZsg==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.19", "to-fast-properties": "^2.0.0" }, "engines": { @@ -3479,44 +3479,44 @@ } }, "node_modules/@graphql-codegen/cli": { - "version": "2.16.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-2.16.2.tgz", - "integrity": "sha512-3xe4MESGn5cNDyOLSBAibrQx9Zkbu7mMVHUnC/V0hpC8334guAgOF645EohtDOvevc0hWgCec0m7sQDT/JB59g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-5.0.0.tgz", + "integrity": "sha512-A7J7+be/a6e+/ul2KI5sfJlpoqeqwX8EzktaKCeduyVKgOLA6W5t+NUGf6QumBDXU8PEOqXk3o3F+RAwCWOiqA==", "dev": true, "dependencies": { "@babel/generator": "^7.18.13", "@babel/template": "^7.18.10", "@babel/types": "^7.18.13", - "@graphql-codegen/core": "2.6.8", - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/apollo-engine-loader": "^7.3.6", - "@graphql-tools/code-file-loader": "^7.3.13", - "@graphql-tools/git-loader": "^7.2.13", - "@graphql-tools/github-loader": "^7.3.20", - "@graphql-tools/graphql-file-loader": "^7.5.0", - "@graphql-tools/json-file-loader": "^7.4.1", - "@graphql-tools/load": "7.8.0", - "@graphql-tools/prisma-loader": "^7.2.49", - "@graphql-tools/url-loader": "^7.13.2", - "@graphql-tools/utils": "^9.0.0", - "@whatwg-node/fetch": "^0.5.0", + "@graphql-codegen/core": "^4.0.0", + "@graphql-codegen/plugin-helpers": "^5.0.1", + "@graphql-tools/apollo-engine-loader": "^8.0.0", + "@graphql-tools/code-file-loader": "^8.0.0", + "@graphql-tools/git-loader": "^8.0.0", + "@graphql-tools/github-loader": "^8.0.0", + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/json-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.0.0", + "@graphql-tools/prisma-loader": "^8.0.0", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.8.0", "chalk": "^4.1.0", - "chokidar": "^3.5.2", - "cosmiconfig": "^7.0.0", - "cosmiconfig-typescript-loader": "4.3.0", + "cosmiconfig": "^8.1.3", "debounce": "^1.2.0", "detect-indent": "^6.0.0", - "graphql-config": "4.3.6", + "graphql-config": "^5.0.2", "inquirer": "^8.0.0", "is-glob": "^4.0.1", + "jiti": "^1.17.1", "json-to-pretty-yaml": "^1.2.2", "listr2": "^4.0.5", "log-symbols": "^4.0.0", + "micromatch": "^4.0.5", "shell-quote": "^1.7.3", "string-env-interpolation": "^1.0.1", "ts-log": "^2.2.3", "tslib": "^2.4.0", - "yaml": "^1.10.0", + "yaml": "^2.3.1", "yargs": "^17.0.0" }, "bin": { @@ -3526,21 +3526,38 @@ "graphql-codegen-esm": "esm/bin.js" }, "peerDependencies": { + "@parcel/watcher": "^2.1.0", "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + } } }, "node_modules/@graphql-codegen/cli/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-codegen/cli/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/@graphql-codegen/cli/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3602,6 +3619,32 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/@graphql-codegen/cli/node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@graphql-codegen/cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3611,75 +3654,124 @@ "node": ">=8" } }, + "node_modules/@graphql-codegen/cli/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/yaml": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", + "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, "node_modules/@graphql-codegen/core": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-2.6.8.tgz", - "integrity": "sha512-JKllNIipPrheRgl+/Hm/xuWMw9++xNQ12XJR/OHHgFopOg4zmN3TdlRSyYcv/K90hCFkkIwhlHFUQTfKrm8rxQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-4.0.0.tgz", + "integrity": "sha512-JAGRn49lEtSsZVxeIlFVIRxts2lWObR+OQo7V2LHDJ7ohYYw3ilv7nJ8pf8P4GTg/w6ptcYdSdVVdkI8kUHB/Q==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.1", - "@graphql-tools/schema": "^9.0.0", - "@graphql-tools/utils": "^9.1.1", - "tslib": "~2.4.0" + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.5.0" }, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-codegen/core/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, "node_modules/@graphql-codegen/fragment-matcher": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@graphql-codegen/fragment-matcher/-/fragment-matcher-3.3.3.tgz", - "integrity": "sha512-lZjarTYQ+w0/TYyoKNFHgIUBI6//rxjo4CwNmOmqGQA0LL+p2nh+/ICJKMFuejPFdK9LI84Y+EEovEFTcDPC+Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/fragment-matcher/-/fragment-matcher-5.0.0.tgz", + "integrity": "sha512-mbash9E8eY6RSMSNrrO+C9JJEn8rdr8ORaxMpgdWL2qe2q/TlLUCE3ZvQvHkSc7GjBnMEk36LncA8ApwHR2BHg==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.1", - "tslib": "~2.4.0" + "@graphql-codegen/plugin-helpers": "^5.0.0", + "tslib": "~2.5.0" }, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, + "node_modules/@graphql-codegen/fragment-matcher/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, "node_modules/@graphql-codegen/plugin-helpers": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", - "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.1.tgz", + "integrity": "sha512-6L5sb9D8wptZhnhLLBcheSPU7Tg//DGWgc5tQBWX46KYTOTQHGqDpv50FxAJJOyFVJrveN9otWk9UT9/yfY4ww==", "dev": true, "dependencies": { - "@graphql-tools/utils": "^9.0.0", + "@graphql-tools/utils": "^10.0.0", "change-case-all": "1.0.15", "common-tags": "1.8.2", "import-from": "4.0.0", "lodash": "~4.17.0", - "tslib": "~2.4.0" + "tslib": "~2.5.0" }, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, "node_modules/@graphql-codegen/plugin-helpers/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true + }, "node_modules/@graphql-codegen/schema-ast": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-4.0.0.tgz", @@ -3694,23 +3786,6 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-codegen/plugin-helpers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.0.tgz", - "integrity": "sha512-suL2ZMkBAU2a4YbBHaZvUPsV1z0q3cW6S96Z/eYYfkRIsJoe2vN+wNZ9Xdzmqx0JLmeeFCBSoBGC0imFyXlkDQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.5.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, "node_modules/@graphql-codegen/schema-ast/node_modules/@graphql-tools/utils": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.1.tgz", @@ -3734,14 +3809,14 @@ "dev": true }, "node_modules/@graphql-codegen/typescript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.0.tgz", - "integrity": "sha512-9Wv050+a4O/c3RRDbXKVnm0e45mhmb8XuW3ICsmmwPUVJ5oX8NOLYIMU8ie1/gNTTCfJNwOtZr5EwX2yhXYUfQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.1.tgz", + "integrity": "sha512-3YziQ21dCVdnHb+Us1uDb3pA6eG5Chjv0uTK+bt9dXeMlwYBU8MbtzvQTo4qvzWVC1AxSOKj0rgfNu1xCXqJyA==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.0", "@graphql-codegen/schema-ast": "^4.0.0", - "@graphql-codegen/visitor-plugin-common": "4.0.0", + "@graphql-codegen/visitor-plugin-common": "4.0.1", "auto-bind": "~4.0.0", "tslib": "~2.5.0" }, @@ -3750,84 +3825,26 @@ } }, "node_modules/@graphql-codegen/typescript-operations": { - "version": "2.5.11", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-2.5.11.tgz", - "integrity": "sha512-gY8A8QKAjsN8kDD8K/1B6CCfGrQSZF3MITPYr4rzZhqWk1xWXr03ku41hbWGlEBPQcgvHiz7SQrhvA697e5dPg==", - "dev": true, - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-codegen/typescript": "^2.8.6", - "@graphql-codegen/visitor-plugin-common": "2.13.6", - "auto-bind": "~4.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/schema-ast": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/@graphql-codegen/schema-ast/-/schema-ast-2.6.1.tgz", - "integrity": "sha512-5TNW3b1IHJjCh07D2yQNGDQzUpUl2AD+GVe1Dzjqyx/d2Fn0TPMxLsHsKPS4Plg4saO8FK/QO70wLsP7fdbQ1w==", - "dev": true, - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/utils": "^9.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/typescript": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-2.8.8.tgz", - "integrity": "sha512-A0oUi3Oy6+DormOlrTC4orxT9OBZkIglhbJBcDmk34jAKKUgesukXRd4yOhmTrnbchpXz2T8IAOFB3FWIaK4Rw==", - "dev": true, - "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-codegen/schema-ast": "^2.6.1", - "@graphql-codegen/visitor-plugin-common": "2.13.8", - "auto-bind": "~4.0.0", - "tslib": "~2.4.0" - }, - "peerDependencies": { - "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "2.13.8", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", - "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.0.1.tgz", + "integrity": "sha512-GpUWWdBVUec/Zqo23aFLBMrXYxN2irypHqDcKjN78JclDPdreasAEPcIpMfqf4MClvpmvDLy4ql+djVAwmkjbw==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/optimize": "^1.3.0", - "@graphql-tools/relay-operation-optimizer": "^6.5.0", - "@graphql-tools/utils": "^9.0.0", + "@graphql-codegen/plugin-helpers": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/visitor-plugin-common": "4.0.1", "auto-bind": "~4.0.0", - "change-case-all": "1.0.15", - "dependency-graph": "^0.11.0", - "graphql-tag": "^2.11.0", - "parse-filepath": "^1.0.2", - "tslib": "~2.4.0" + "tslib": "~2.5.0" }, "peerDependencies": { "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@graphql-codegen/typescript-operations/node_modules/@graphql-tools/utils": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.2.1.tgz", - "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", - "dev": true, - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } + "node_modules/@graphql-codegen/typescript-operations/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true }, "node_modules/@graphql-codegen/typescript-react-apollo": { "version": "3.3.7", @@ -3902,27 +3919,16 @@ "upper-case-first": "^2.0.2" } }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/plugin-helpers": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.0.0.tgz", - "integrity": "sha512-suL2ZMkBAU2a4YbBHaZvUPsV1z0q3cW6S96Z/eYYfkRIsJoe2vN+wNZ9Xdzmqx0JLmeeFCBSoBGC0imFyXlkDQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "change-case-all": "1.0.15", - "common-tags": "1.8.2", - "import-from": "4.0.0", - "lodash": "~4.17.0", - "tslib": "~2.5.0" - }, - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } + "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", + "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", + "dev": true }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.0.tgz", - "integrity": "sha512-OFWr5tkrG4nCcE7AI9BSAwuA0VLP16uNCLssbmXpBa1rKR6b4mX+rJTQCoz47TFV5hii8yp8xaWfXVUcsNY39w==", + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.0.1.tgz", + "integrity": "sha512-Bi/1z0nHg4QMsAqAJhds+ForyLtk7A3HQOlkrZNm3xEkY7lcBzPtiOTLBtvziwopBsXUxqeSwVjOOFPLS5Yw1Q==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.0", @@ -3940,7 +3946,7 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" } }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/optimize": { + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/optimize": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-2.0.0.tgz", "integrity": "sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==", @@ -3955,7 +3961,7 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/relay-operation-optimizer": { + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/relay-operation-optimizer": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.0.tgz", "integrity": "sha512-UNlJi5y3JylhVWU4MBpL0Hun4Q7IoJwv9xYtmAz+CgRa066szzY7dcuPfxrA7cIGgG/Q6TVsKsYaiF4OHPs1Fw==", @@ -3972,13 +3978,14 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-codegen/typescript/node_modules/@graphql-tools/utils": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.1.tgz", - "integrity": "sha512-i1FozbDGHgdsFA47V/JvQZ0FE8NAy0Eiz7HGCJO2MkNdZAKNnwei66gOq0JWYVFztwpwbVQ09GkKhq7Kjcq5Cw==", + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, "engines": { @@ -3988,492 +3995,689 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-codegen/typescript/node_modules/tslib": { + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { "version": "2.5.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.3.tgz", "integrity": "sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==", "dev": true }, - "node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "2.13.6", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.6.tgz", - "integrity": "sha512-jDxbS8CZIu3KPqku1NzkVkCvPy4UUxhmtRz+yyG3W6go/3hq/VG/yx3ljhI7jYT08W9yaFCUzczimS9fM+Qanw==", + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.0.tgz", + "integrity": "sha512-axQTbN5+Yxs1rJ6cWQBOfw3AEeC+fvIuZSfJLPLLvFJLj4pUm9fhxey/g6oQZAAQJqKPfw+tLDUQvnfvRK8Kmg==", "dev": true, "dependencies": { - "@graphql-codegen/plugin-helpers": "^3.1.2", - "@graphql-tools/optimize": "^1.3.0", - "@graphql-tools/relay-operation-optimizer": "^6.5.0", - "@graphql-tools/utils": "^9.0.0", - "auto-bind": "~4.0.0", - "change-case-all": "1.0.15", - "dependency-graph": "^0.11.0", - "graphql-tag": "^2.11.0", - "parse-filepath": "^1.0.2", - "tslib": "~2.4.0" + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/apollo-engine-loader": { - "version": "7.3.21", - "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-7.3.21.tgz", - "integrity": "sha512-mCf5CRZ64Cj4pmXpcgSJDkHj93owntvAmyHpY651yAmQKYJ5Kltrw6rreo2VJr1Eu4BWdHqcMS++NLq5GPGewg==", + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.13.tgz", + "integrity": "sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==", "dev": true, "dependencies": { - "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/utils": "9.1.3", - "@whatwg-node/fetch": "^0.5.0", - "tslib": "^2.4.0" + "@whatwg-node/node-fetch": "^0.4.17", + "urlpattern-polyfill": "^9.0.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz", + "integrity": "sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==", "dev": true, "dependencies": { - "tslib": "^2.4.0" + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "engines": { + "node": ">=16.0.0" } }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "node_modules/@graphql-tools/batch-execute": { - "version": "8.5.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.5.14.tgz", - "integrity": "sha512-m6yXqqmFAH2V5JuSIC/geiGLBQA1Y6RddOJfUtkc9Z7ttkULRCd1W39TpYS6IlrCwYyTj+klO1/kdWiny38f5g==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz", + "integrity": "sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", - "dataloader": "2.1.0", + "@graphql-tools/utils": "^10.0.5", + "dataloader": "^2.2.2", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/code-file-loader": { - "version": "7.3.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-7.3.15.tgz", - "integrity": "sha512-cF8VNc/NANTyVSIK8BkD/KSXRF64DvvomuJ0evia7tJu4uGTXgDjimTMWsTjKRGOOBSTEbL6TA8e4DdIYq6Udw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-8.0.2.tgz", + "integrity": "sha512-AKNpkElUL2cWocYpC4DzNEpo6qJw8Lp+L3bKQ/mIfmbsQxgLz5uve6zHBMhDaFPdlwfIox41N3iUSvi77t9e8A==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.4.2", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/graphql-tag-pluck": "8.0.2", + "@graphql-tools/utils": "^10.0.0", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/delegate": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-9.0.21.tgz", - "integrity": "sha512-SM8tFeq6ogFGhIxDE82WTS44/3IQ/wz9QksAKT7xWkcICQnyR9U6Qyt+W7VGnHiybqNsVK3kHNNS/i4KGSF85g==", + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz", + "integrity": "sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==", "dev": true, "dependencies": { - "@graphql-tools/batch-execute": "8.5.14", - "@graphql-tools/executor": "0.0.11", - "@graphql-tools/schema": "9.0.12", - "@graphql-tools/utils": "9.1.3", - "dataloader": "2.1.0", - "tslib": "~2.4.0", - "value-or-promise": "1.0.11" + "@graphql-tools/batch-execute": "^9.0.1", + "@graphql-tools/executor": "^1.0.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.5", + "dataloader": "^2.2.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/delegate/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/@graphql-tools/executor": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-0.0.11.tgz", - "integrity": "sha512-GjtXW0ZMGZGKad6A1HXFPArkfxE0AIpznusZuQdy4laQx+8Ut3Zx8SAFJNnDfZJ2V5kU29B5Xv3Fr0/DiMBHOQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz", + "integrity": "sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", - "@graphql-typed-document-node/core": "3.1.1", - "@repeaterjs/repeater": "3.0.4", + "@graphql-tools/utils": "^10.0.0", + "@graphql-typed-document-node/core": "3.2.0", + "@repeaterjs/repeater": "^3.0.4", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-graphql-ws": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-0.0.5.tgz", - "integrity": "sha512-1bJfZdSBPCJWz1pJ5g/YHMtGt6YkNRDdmqNQZ8v+VlQTNVfuBpY2vzj15uvf5uDrZLg2MSQThrKlL8av4yFpsA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.0.tgz", + "integrity": "sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", - "@repeaterjs/repeater": "3.0.4", + "@graphql-tools/utils": "^10.0.2", "@types/ws": "^8.0.0", - "graphql-ws": "5.11.2", - "isomorphic-ws": "5.0.0", + "graphql-ws": "^5.14.0", + "isomorphic-ws": "^5.0.0", "tslib": "^2.4.0", - "ws": "8.11.0" + "ws": "^8.13.0" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-http": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-0.0.8.tgz", - "integrity": "sha512-Y0WzbBW2dDm68EqjRO7eaCC38H6mNFUCcy8ivwnv0hon/N4GjQJhrR0cApJh/xqn/YqCY0Sn2ScmdGVuSdaCcA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.2.tgz", + "integrity": "sha512-JKTB4E3kdQM2/1NEcyrVPyQ8057ZVthCV5dFJiKktqY9IdmF00M8gupFcW3jlbM/Udn78ickeUBsUzA3EouqpA==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", - "@repeaterjs/repeater": "3.0.4", - "@whatwg-node/fetch": "0.5.4", - "dset": "3.1.2", + "@graphql-tools/utils": "^10.0.2", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/fetch": "^0.9.0", "extract-files": "^11.0.0", - "meros": "1.2.1", + "meros": "^1.2.1", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-http/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/fetch": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.13.tgz", + "integrity": "sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.4.17", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@whatwg-node/node-fetch": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz", + "integrity": "sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "node_modules/@graphql-tools/executor-legacy-ws": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-0.0.5.tgz", - "integrity": "sha512-j2ZQVTI4rKIT41STzLPK206naYDhHxmGHot0siJKBKX1vMqvxtWBqvL66v7xYEOaX79wJrFc8l6oeURQP2LE6g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.3.tgz", + "integrity": "sha512-rr3IDeO9Dh+8u8KIro++5kzJJYPHkcrIAWzqXtN663nhInC85iW7Ko91yOYwf7ovBci/7s+4Rqe4ZRyca1LGjQ==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "^10.0.0", "@types/ws": "^8.0.0", "isomorphic-ws": "5.0.0", "tslib": "^2.4.0", - "ws": "8.11.0" + "ws": "8.14.1" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor-legacy-ws/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/executor/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/git-loader": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-7.2.15.tgz", - "integrity": "sha512-1d5HmeuxhSNjQ2+k2rfKgcKcnZEC6H5FM2pY5lSXHMv8VdBELZd7pYDs5/JxoZarDVYfYOJ5xTeVzxf+Du3VNg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-8.0.2.tgz", + "integrity": "sha512-AuCB0nlPvsHh8u42zRZdlD/ZMaWP9A44yAkQUVCZir1E/LG63fsZ9svTWJ+CbusW3Hd0ZP9qpxEhlHxnd4Tlsg==", "dev": true, "dependencies": { - "@graphql-tools/graphql-tag-pluck": "7.4.2", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/graphql-tag-pluck": "8.0.2", + "@graphql-tools/utils": "^10.0.0", "is-glob": "4.0.3", "micromatch": "^4.0.4", "tslib": "^2.4.0", "unixify": "^1.0.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/git-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/github-loader": { - "version": "7.3.22", - "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-7.3.22.tgz", - "integrity": "sha512-JE5F/ObbwknO7+gDfeuKAZtLS831WV8/SsLzQLMGY0hdgTbsAg2/xziAGprNToK4GMSD7ygCer9ZryvxBKMwbQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-8.0.0.tgz", + "integrity": "sha512-VuroArWKcG4yaOWzV0r19ElVIV6iH6UKDQn1MXemND0xu5TzrFme0kf3U9o0YwNo0kUYEk9CyFM0BYg4he17FA==", "dev": true, "dependencies": { - "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/graphql-tag-pluck": "7.4.2", - "@graphql-tools/utils": "9.1.3", - "@whatwg-node/fetch": "^0.5.0", - "tslib": "^2.4.0" + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/executor-http": "^1.0.0", + "@graphql-tools/graphql-tag-pluck": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.9.0", + "tslib": "^2.4.0", + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/github-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.13.tgz", + "integrity": "sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.4.17", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz", + "integrity": "sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "node_modules/@graphql-tools/graphql-file-loader": { - "version": "7.5.13", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.5.13.tgz", - "integrity": "sha512-VWFVnw3aB6sykGfpb/Dn3sxQswqvp2FsVwDy8ubH1pgLuxlDuurhHjRHvMG2+p7IaHC7q8T3Vk/rLtZftrwOBQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.0.tgz", + "integrity": "sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==", "dev": true, "dependencies": { - "@graphql-tools/import": "6.7.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/import": "7.0.0", + "@graphql-tools/utils": "^10.0.0", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/graphql-file-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/graphql-tag-pluck": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-7.4.2.tgz", - "integrity": "sha512-SXM1wR5TExrxocQTxZK5r74jTbg8GxSYLY3mOPCREGz6Fu7PNxMxfguUzGUAB43Mf44Dn8oVztzd2eitv2Qgww==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.0.2.tgz", + "integrity": "sha512-U6fE4yEHxuk/nqmPixHpw1WhqdS6aYuaV60m1bEmUmGJNbpAhaMBy01JncpvpF15yZR5LZ0UjkHg+A3Lhoc8YQ==", "dev": true, "dependencies": { + "@babel/core": "^7.22.9", "@babel/parser": "^7.16.8", - "@babel/plugin-syntax-import-assertions": "7.20.0", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/traverse": "^7.16.8", "@babel/types": "^7.16.8", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "^10.0.0", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/import": { - "version": "6.7.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.14.tgz", - "integrity": "sha512-lRX/MHM0Km497kg4VXMvtV1DeG/AfPJFO2ovaL0kDujWEdyCsWxsB4whY7nPeiNaPA/nT3mQ8MU7yFzVjogF/Q==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.0.tgz", + "integrity": "sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "^10.0.0", "resolve-from": "5.0.0", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/import/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/json-file-loader": { - "version": "7.4.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.4.14.tgz", - "integrity": "sha512-AD9v3rN08wvVqgbrUSiHa8Ztrlk3EgwctcxuNE5qm47zPNL4gLaJ7Tw/KlGOR7Cm+pjlQylJHMUKNfaRLPZ0og==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.0.tgz", + "integrity": "sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "^10.0.0", "globby": "^11.0.3", "tslib": "^2.4.0", "unixify": "^1.0.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/json-file-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/load": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.8.0.tgz", - "integrity": "sha512-l4FGgqMW0VOqo+NMYizwV8Zh+KtvVqOf93uaLo9wJ3sS3y/egPCgxPMDJJ/ufQZG3oZ/0oWeKt68qop3jY0yZg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.0.tgz", + "integrity": "sha512-Cy874bQJH0FP2Az7ELPM49iDzOljQmK1PPH6IuxsWzLSTxwTqd8dXA09dcVZrI7/LsN26heTY2R8q2aiiv0GxQ==", "dev": true, "dependencies": { - "@graphql-tools/schema": "9.0.4", - "@graphql-tools/utils": "8.12.0", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", "p-limit": "3.1.0", "tslib": "^2.4.0" }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/load/node_modules/@graphql-tools/merge": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.6.tgz", - "integrity": "sha512-uUBokxXi89bj08P+iCvQk3Vew4vcfL5ZM6NTylWi8PIpoq4r5nJ625bRuN8h2uubEdRiH8ntN9M4xkd/j7AybQ==", - "dev": true, - "dependencies": { - "@graphql-tools/utils": "8.12.0", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@graphql-tools/load/node_modules/@graphql-tools/schema": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.4.tgz", - "integrity": "sha512-B/b8ukjs18fq+/s7p97P8L1VMrwapYc3N2KvdG/uNThSazRRn8GsBK0Nr+FH+mVKiUfb4Dno79e3SumZVoHuOQ==", - "dev": true, - "dependencies": { - "@graphql-tools/merge": "8.3.6", - "@graphql-tools/utils": "8.12.0", - "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/load/node_modules/@graphql-tools/utils": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz", - "integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -4494,26 +4698,34 @@ } }, "node_modules/@graphql-tools/merge": { - "version": "8.3.14", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.3.14.tgz", - "integrity": "sha512-zV0MU1DnxJLIB0wpL4N3u21agEiYFsjm6DI130jqHpwF0pR9HkF+Ni65BNfts4zQelP0GjkHltG+opaozAJ1NA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.0.tgz", + "integrity": "sha512-J7/xqjkGTTwOJmaJQJ2C+VDBDOWJL3lKrHJN4yMaRLAJH3PosB7GiPRaSDZdErs0+F77sH2MKs2haMMkywzx7Q==", "dev": true, "dependencies": { - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/utils": "^10.0.0", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } @@ -4531,47 +4743,104 @@ } }, "node_modules/@graphql-tools/prisma-loader": { - "version": "7.2.50", - "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-7.2.50.tgz", - "integrity": "sha512-tSZFtx5GP5LBHmChwVCkvFw9oCwc0QVP2xR/Pyp61c3Fb2gyqzFq/8lnbcmxR+Oi9/Cwt3JsSc4Jkg8jBi5HLw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-8.0.1.tgz", + "integrity": "sha512-bl6e5sAYe35Z6fEbgKXNrqRhXlCJYeWKBkarohgYA338/SD9eEhXtg3Cedj7fut3WyRLoQFpHzfiwxKs7XrgXg==", "dev": true, "dependencies": { - "@graphql-tools/url-loader": "7.16.29", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", "@types/js-yaml": "^4.0.0", "@types/json-stable-stringify": "^1.0.32", - "@types/jsonwebtoken": "^8.5.0", + "@whatwg-node/fetch": "^0.9.0", "chalk": "^4.1.0", "debug": "^4.3.1", "dotenv": "^16.0.0", - "graphql-request": "^5.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "isomorphic-fetch": "^3.0.0", + "graphql-request": "^6.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "jose": "^4.11.4", "js-yaml": "^4.0.0", "json-stable-stringify": "^1.0.1", - "jsonwebtoken": "^9.0.0", "lodash": "^4.17.20", "scuid": "^1.1.0", "tslib": "^2.4.0", "yaml-ast-parser": "^0.0.43" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/prisma-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.13.tgz", + "integrity": "sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.4.17", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz", + "integrity": "sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/agent-base": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", + "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@graphql-tools/prisma-loader/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -4636,6 +4905,32 @@ "node": ">=8" } }, + "node_modules/@graphql-tools/prisma-loader/node_modules/http-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", + "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "dev": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/https-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", + "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "dev": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/@graphql-tools/prisma-loader/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4660,6 +4955,12 @@ "node": ">=8" } }, + "node_modules/@graphql-tools/prisma-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "node_modules/@graphql-tools/relay-operation-optimizer": { "version": "6.5.14", "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.14.tgz", @@ -4687,68 +4988,128 @@ } }, "node_modules/@graphql-tools/schema": { - "version": "9.0.12", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-9.0.12.tgz", - "integrity": "sha512-DmezcEltQai0V1y96nwm0Kg11FDS/INEFekD4nnVgzBqawvznWqK6D6bujn+cw6kivoIr3Uq//QmU/hBlBzUlQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.0.tgz", + "integrity": "sha512-kf3qOXMFcMs2f/S8Y3A8fm/2w+GaHAkfr3Gnhh2LOug/JgpY/ywgFVxO3jOeSpSEdoYcDKLcXVjMigNbY4AdQg==", "dev": true, "dependencies": { - "@graphql-tools/merge": "8.3.14", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/merge": "^9.0.0", + "@graphql-tools/utils": "^10.0.0", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/url-loader": { - "version": "7.16.29", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.16.29.tgz", - "integrity": "sha512-e7c0rLH4BIaYxOgglHhWbupTn3JZFXYIHXpY+T1CcTF3nQQCaKy8o59+R2AjtEgx3Az1WNahGn4xgkKUxUwCBw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.0.tgz", + "integrity": "sha512-rPc9oDzMnycvz+X+wrN3PLrhMBQkG4+sd8EzaFN6dypcssiefgWKToXtRKI8HHK68n2xEq1PyrOpkjHFJB+GwA==", "dev": true, "dependencies": { - "@ardatan/sync-fetch": "0.0.1", - "@graphql-tools/delegate": "9.0.21", - "@graphql-tools/executor-graphql-ws": "0.0.5", - "@graphql-tools/executor-http": "0.0.8", - "@graphql-tools/executor-legacy-ws": "0.0.5", - "@graphql-tools/utils": "9.1.3", - "@graphql-tools/wrap": "9.2.23", + "@ardatan/sync-fetch": "^0.0.1", + "@graphql-tools/delegate": "^10.0.0", + "@graphql-tools/executor-graphql-ws": "^1.0.0", + "@graphql-tools/executor-http": "^1.0.0", + "@graphql-tools/executor-legacy-ws": "^1.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-tools/wrap": "^10.0.0", "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.5.0", - "isomorphic-ws": "5.0.0", + "@whatwg-node/fetch": "^0.9.0", + "isomorphic-ws": "^5.0.0", "tslib": "^2.4.0", "value-or-promise": "^1.0.11", - "ws": "8.11.0" + "ws": "^8.12.0" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/url-loader/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/events": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", + "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/fetch": { + "version": "0.9.13", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.13.tgz", + "integrity": "sha512-PPtMwhjtS96XROnSpowCQM85gCUG2m7AXZFw0PZlGbhzx2GK7f2iOXilfgIJ0uSlCuuGbOIzfouISkA7C4FJOw==", + "dev": true, + "dependencies": { + "@whatwg-node/node-fetch": "^0.4.17", + "urlpattern-polyfill": "^9.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/@whatwg-node/node-fetch": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.4.19.tgz", + "integrity": "sha512-AW7/m2AuweAoSXmESrYQr/KBafueScNbn2iNO0u6xFr2JZdPmYsSm5yvAXYk6yDLv+eDmSSKrf7JnFZ0CsJIdA==", + "dev": true, + "dependencies": { + "@whatwg-node/events": "^0.1.0", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/urlpattern-polyfill": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", + "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "dev": true + }, "node_modules/@graphql-tools/utils": { "version": "8.13.1", "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.13.1.tgz", @@ -4762,39 +5123,47 @@ } }, "node_modules/@graphql-tools/wrap": { - "version": "9.2.23", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-9.2.23.tgz", - "integrity": "sha512-R+ar8lHdSnRQtfvkwQMOkBRlYLcBPdmFzZPiAj+tL9Nii4VNr4Oub37jcHiPBvRZSdKa9FHcKq5kKSQcbg1xuQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz", + "integrity": "sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==", "dev": true, "dependencies": { - "@graphql-tools/delegate": "9.0.21", - "@graphql-tools/schema": "9.0.12", - "@graphql-tools/utils": "9.1.3", + "@graphql-tools/delegate": "^10.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", "tslib": "^2.4.0", - "value-or-promise": "1.0.11" + "value-or-promise": "^1.0.12" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-9.1.3.tgz", - "integrity": "sha512-bbJyKhs6awp1/OmP+WKA1GOyu9UbgZGkhIj5srmiMGLHohEOKMjW784Sk0BZil1w2x95UPu0WHw6/d/HVCACCg==", + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", "dev": true, "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", "tslib": "^2.4.0" }, + "engines": { + "node": ">=16.0.0" + }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, "node_modules/@humanwhocodes/config-array": { @@ -4830,12 +5199,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true - }, "node_modules/@inovua/reactdatagrid-community": { "version": "5.9.4", "resolved": "https://registry.npmjs.org/@inovua/reactdatagrid-community/-/reactdatagrid-community-5.9.4.tgz", @@ -5611,9 +5974,9 @@ } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.3.tgz", + "integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==", "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", @@ -5909,9 +6272,9 @@ } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", - "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.6.tgz", + "integrity": "sha512-izNRxPoaeJeg/AyH8hER6s+H7p4itk+03QCa4sbxI3lNdseQYCuxzgsuNK8bTXChtLTjpJz6NmXKA73qLa3rCA==", "dev": true, "dependencies": { "asn1js": "^3.0.5", @@ -5932,21 +6295,27 @@ } }, "node_modules/@peculiar/webcrypto": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", - "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.3.tgz", + "integrity": "sha512-VtaY4spKTdN5LjJ04im/d/joXuvLbQdgy5Z4DXF4MFZhQ+MTrejbNMkfZBp1Bs3O5+bFqnJgyGdPuZQflvIa5A==", "dev": true, "dependencies": { - "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", "pvtsutils": "^1.3.2", - "tslib": "^2.4.1", - "webcrypto-core": "^1.7.4" + "tslib": "^2.5.0", + "webcrypto-core": "^1.7.7" }, "engines": { "node": ">=10.12.0" } }, + "node_modules/@peculiar/webcrypto/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/@pkgr/utils": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.3.1.tgz", @@ -6949,9 +7318,9 @@ } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, "node_modules/@types/express": { @@ -7059,9 +7428,9 @@ } }, "node_modules/@types/js-yaml": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.5.tgz", - "integrity": "sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.6.tgz", + "integrity": "sha512-ACTuifTSIIbyksx2HTon3aFtCKWcID7/h3XEmRpDYdMCXxPbl+m9GteOJeaAkiAta/NJaSFuA7ahZ0NkwajDSw==", "dev": true }, "node_modules/@types/jsdom": { @@ -7093,15 +7462,6 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.9", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", - "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/lodash": { "version": "4.14.191", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", @@ -7428,9 +7788,9 @@ "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" }, "node_modules/@types/webpack": { - "version": "5.28.0", - "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.0.tgz", - "integrity": "sha512-8cP0CzcxUiFuA9xGJkfeVpqmWTk9nx6CWwamRGCj95ph1SmlRRk9KlCZ6avhCbZd4L68LvYT6l1kpdEnQXrF8w==", + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-5.28.1.tgz", + "integrity": "sha512-qw1MqGZclCoBrpiSe/hokSgQM/su8Ocpl3L/YHE0L6moyaypg4+5F7Uzq7NgaPKPxUxUbQ4fLPLpDWdR27bCZw==", "dev": true, "dependencies": { "@types/node": "*", @@ -7439,9 +7799,9 @@ } }, "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.5", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.5.tgz", + "integrity": "sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==", "dev": true, "dependencies": { "@types/node": "*" @@ -7794,148 +8154,148 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", "dev": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", "dev": true, "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.11.6", "@xtuc/long": "4.2.2" } }, @@ -7983,40 +8343,36 @@ } } }, + "node_modules/@whatwg-node/events": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.0.3.tgz", + "integrity": "sha512-IqnKIDWfXBJkvy/k6tzskWTc2NK3LcqHlb+KHGCrjOCH4jfQckRX0NAiIcC/vIqQkzLYw2r2CTSwAxcrtcD6lA==", + "dev": true + }, "node_modules/@whatwg-node/fetch": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.5.4.tgz", - "integrity": "sha512-dR5PCzvOeS7OaW6dpIlPt+Ou3pak7IEG+ZVAV26ltcaiDB3+IpuvjqRdhsY6FKHcqBo1qD+S99WXY9Z6+9Rwnw==", + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.8.8.tgz", + "integrity": "sha512-CdcjGC2vdKhc13KKxgsc6/616BQ7ooDIgPeTuAiE8qfCnS0mGzcfCOoZXypQSz73nxI+GWc7ZReIAVhxoE1KCg==", "dev": true, "dependencies": { "@peculiar/webcrypto": "^1.4.0", - "abort-controller": "^3.0.0", + "@whatwg-node/node-fetch": "^0.3.6", "busboy": "^1.6.0", - "form-data-encoder": "^1.7.1", - "formdata-node": "^4.3.1", - "node-fetch": "^2.6.7", - "undici": "^5.12.0", - "web-streams-polyfill": "^3.2.0" + "urlpattern-polyfill": "^8.0.0", + "web-streams-polyfill": "^3.2.1" } }, - "node_modules/@whatwg-node/fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "node_modules/@whatwg-node/node-fetch": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.3.6.tgz", + "integrity": "sha512-w9wKgDO4C95qnXZRwZTfCmLWqyRnooGjcIwG0wADWjw9/HN0p7dtvtgSvItZtUyNteEvgTrd8QojNEqV6DAGTA==", "dev": true, "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "@whatwg-node/events": "^0.0.3", + "busboy": "^1.6.0", + "fast-querystring": "^1.1.1", + "fast-url-parser": "^1.1.3", + "tslib": "^2.3.1" } }, "node_modules/@wojtekmaj/enzyme-adapter-react-17": { @@ -8092,9 +8448,9 @@ } }, "node_modules/@wry/equality": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.2.tgz", - "integrity": "sha512-oVMxbUXL48EV/C0/M7gLVsoK6qRHPS85x8zECofEZOVvxGmIPLA9o5Z27cc2PoAyZz1S2VoM2A7FLAnpfGlneA==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.6.tgz", + "integrity": "sha512-D46sfMTngaYlrH+OspKf8mIJETntFnf6Hsjb0V41jAXJ7Bx2kB8Rv8RCUujuVWYttFtHkUNp7g+FwxNQAr6mXA==", "dependencies": { "tslib": "^2.3.0" }, @@ -8103,9 +8459,9 @@ } }, "node_modules/@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.4.3.tgz", + "integrity": "sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==", "dependencies": { "tslib": "^2.3.0" }, @@ -8191,9 +8547,9 @@ } }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz", + "integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -8234,9 +8590,9 @@ } }, "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true, "peerDependencies": { "acorn": "^8" @@ -9283,9 +9639,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.21.10", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.10.tgz", + "integrity": "sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==", "dev": true, "funding": [ { @@ -9295,13 +9651,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001517", + "electron-to-chromium": "^1.4.477", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.11" }, "bin": { "browserslist": "cli.js" @@ -9363,12 +9723,6 @@ "node": "*" } }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true - }, "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -9458,9 +9812,9 @@ "integrity": "sha1-FkpUg+Yw+kMh5a8HAg5TGDGyYJs=" }, "node_modules/caniuse-lite": { - "version": "1.0.30001489", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001489.tgz", - "integrity": "sha512-x1mgZEXK8jHIfAxm+xgdpHpk50IN3z3q3zP261/WS+uvePxW8izXuCu6AHz0lkuYTlATDehiZ/tNyYBdSQsOUQ==", + "version": "1.0.30001534", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz", + "integrity": "sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==", "funding": [ { "type": "opencollective", @@ -10300,15 +10654,6 @@ "node": ">=10" } }, - "node_modules/cosmiconfig-toml-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz", - "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==", - "dev": true, - "dependencies": { - "@iarna/toml": "^2.2.5" - } - }, "node_modules/cosmiconfig-typescript-loader": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.3.0.tgz", @@ -10648,9 +10993,9 @@ } }, "node_modules/dataloader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.1.0.tgz", - "integrity": "sha512-qTcEYLen3r7ojZNgVUaRggOI+KM7jrKxXeSHhogh/TWxYMeONEMqY+hmkobiYQozsGIyg9OYVzO4ZIfoB4I0pQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", + "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", "dev": true }, "node_modules/debounce": { @@ -11168,12 +11513,15 @@ } }, "node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "version": "16.3.1", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", + "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", "dev": true, "engines": { "node": ">=12" + }, + "funding": { + "url": "https://github.com/motdotla/dotenv?sponsor=1" } }, "node_modules/dset": { @@ -11197,15 +11545,6 @@ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -11213,9 +11552,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.523", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.523.tgz", + "integrity": "sha512-9AreocSUWnzNtvLcbpng6N+GkXnCcBR80IQkxRC9Dfdyg4gaWNUPBujAHUpKkiUkoSoR9UlhA4zD/IgBklmhzg==", "dev": true }, "node_modules/emittery": { @@ -11263,9 +11602,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -11440,9 +11779,9 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, "node_modules/es-shim-unscopables": { @@ -12734,6 +13073,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", + "dev": true + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -12782,6 +13127,30 @@ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dev": true, + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dev": true, + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fast-url-parser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -13182,48 +13551,6 @@ "node": ">=8" } }, - "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==", - "dev": true - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", - "dev": true, - "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" - } - }, - "node_modules/formdata-node/node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -13532,60 +13859,109 @@ "dev": true }, "node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-config": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-4.3.6.tgz", - "integrity": "sha512-i7mAPwc0LAZPnYu2bI8B6yXU5820Wy/ArvmOseDLZIu0OU1UTULEuexHo6ZcHXeT9NvGGaUPQZm8NV3z79YydA==", - "dev": true, - "dependencies": { - "@graphql-tools/graphql-file-loader": "^7.3.7", - "@graphql-tools/json-file-loader": "^7.3.7", - "@graphql-tools/load": "^7.5.5", - "@graphql-tools/merge": "^8.2.6", - "@graphql-tools/url-loader": "^7.9.7", - "@graphql-tools/utils": "^8.6.5", - "cosmiconfig": "7.0.1", - "cosmiconfig-toml-loader": "1.0.0", - "cosmiconfig-typescript-loader": "^4.0.0", - "minimatch": "4.2.1", - "string-env-interpolation": "1.0.1", - "ts-node": "^10.8.1", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-5.0.2.tgz", + "integrity": "sha512-7TPxOrlbiG0JplSZYCyxn2XQtqVhXomEjXUmWJVSS5ET1nPhOJSsIb/WTwqWhcYX6G0RlHXSj9PLtGTKmxLNGg==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/json-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.0.0", + "@graphql-tools/merge": "^9.0.0", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "cosmiconfig": "^8.1.0", + "jiti": "^1.18.2", + "minimatch": "^4.2.3", + "string-env-interpolation": "^1.0.1", "tslib": "^2.4.0" }, "engines": { - "node": ">= 10.0.0" + "node": ">= 16.0.0" }, "peerDependencies": { + "cosmiconfig-toml-loader": "^1.0.0", "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "cosmiconfig-toml-loader": { + "optional": true + } + } + }, + "node_modules/graphql-config/node_modules/@graphql-tools/utils": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.6.tgz", + "integrity": "sha512-hZMjl/BbX10iagovakgf3IiqArx8TPsotq5pwBld37uIX1JiZoSbgbCIFol7u55bh32o6cfDEiiJgfAD5fbeyQ==", + "dev": true, + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "dset": "^3.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/graphql-config/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, "node_modules/graphql-config/node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/graphql-config/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, "node_modules/graphql-config/node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", + "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -13595,32 +13971,18 @@ } }, "node_modules/graphql-request": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-5.1.0.tgz", - "integrity": "sha512-0OeRVYigVwIiXhNmqnPDt+JhMzsjinxHE7TVy3Lm6jUzav0guVcL0lfSbi6jVTRAxcbwgyr6yrZioSHxf9gHzw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", "dev": true, "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "cross-fetch": "^3.1.5", - "extract-files": "^9.0.0", - "form-data": "^3.0.0" + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" }, "peerDependencies": { "graphql": "14 - 16" } }, - "node_modules/graphql-request/node_modules/extract-files": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", - "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", - "dev": true, - "engines": { - "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" - } - }, "node_modules/graphql-tag": { "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", @@ -13636,9 +13998,9 @@ } }, "node_modules/graphql-ws": { - "version": "5.11.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.11.2.tgz", - "integrity": "sha512-4EiZ3/UXYcjm+xFGP544/yW1+DVI8ZpKASFbzrV5EDTFWJp0ZvLl4Dy2fSZAzz9imKp5pZMIcjB0x/H69Pv/6w==", + "version": "5.14.0", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.0.tgz", + "integrity": "sha512-itrUTQZP/TgswR4GSSYuwWUzrE/w5GhbwM2GX3ic2U7aw33jgEsayfIlvaj7/GcIvZgNMzsPTrE5hqPuFUiE5g==", "dev": true, "engines": { "node": ">=10" @@ -15153,36 +15515,6 @@ "node": ">=0.10.0" } }, - "node_modules/isomorphic-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", - "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", - "dev": true, - "dependencies": { - "node-fetch": "^2.6.1", - "whatwg-fetch": "^3.4.1" - } - }, - "node_modules/isomorphic-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, "node_modules/isomorphic-ws": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", @@ -17330,6 +17662,24 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jiti": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.20.0.tgz", + "integrity": "sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jose": { + "version": "4.14.6", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.14.6.tgz", + "integrity": "sha512-EqJPEUlZD0/CSUMubKtMaYUOtWe91tZXTWMJZoKSbLk+KtdhNdcvppH8lA9XwVu2V4Ailvsj0GBZJ2ZwDjfesQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-sdsl": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", @@ -17588,37 +17938,6 @@ "node": "*" } }, - "node_modules/jsonwebtoken": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz", - "integrity": "sha512-tuGfYXxkQGDPnLJ7SibiQgVgeDgfbPq2k2ICcbgqW8WxWLBAxKQM/ZCu/IT8SOSwmaYl4dpTFCW5xZv7YbbWUw==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash": "^4.17.21", - "ms": "^2.1.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -17632,27 +17951,6 @@ "node": ">=4.0" } }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, "node_modules/jwt-decode": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", @@ -17735,6 +18033,16 @@ "language-subtag-registry": "~0.3.2" } }, + "node_modules/launch-editor": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.0.tgz", + "integrity": "sha512-JpDCcQnyAAzZZaZ7vEiSqL690w7dAEyLao+KC96zBplnYbJS7TYNjvM3M7y3dGz+v7aIsJk3hllWuc0kWAjyRQ==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -19063,9 +19371,9 @@ } }, "node_modules/meros": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.1.tgz", - "integrity": "sha512-R2f/jxYqCAGI19KhAvaxSOxALBMkaXWH2a7rOyqQw+ZmizX5bKkEYWLzdhC+U82ZVVPVp6MCXe3EkVligh+12g==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz", + "integrity": "sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w==", "dev": true, "engines": { "node": ">=13" @@ -19940,25 +20248,6 @@ "integrity": "sha512-/ujIVxthRs+7q6hsdjHMaj8hRG9NuWmwrz+JdRwZ14jdFoKSkm+vDsCbF9PLpnSqjaWQJuTmVtcWHNLr+vrOFw==", "dev": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, "node_modules/node-fetch": { "version": "3.0.0-beta.9", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.0.0-beta.9.tgz", @@ -19991,9 +20280,9 @@ "dev": true }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==", + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", "dev": true }, "node_modules/node.extend": { @@ -20450,12 +20739,13 @@ } }, "node_modules/optimism": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "version": "0.17.5", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.17.5.tgz", + "integrity": "sha512-TEcp8ZwK1RczmvMnvktxHSF2tKgMWjJ71xEFGX5ApLh67VsMSTy1ZUlipJw8W+KaqgOmQ+4pqwkeivY89j+4Vw==", "dependencies": { "@wry/context": "^0.7.0", - "@wry/trie": "^0.3.0" + "@wry/trie": "^0.4.3", + "tslib": "^2.3.0" } }, "node_modules/optionator": { @@ -21484,14 +21774,20 @@ } }, "node_modules/pvtsutils": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", - "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", "dev": true, "dependencies": { - "tslib": "^2.4.0" + "tslib": "^2.6.1" } }, + "node_modules/pvtsutils/node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, "node_modules/pvutils": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", @@ -22036,9 +22332,9 @@ } }, "node_modules/react-select": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.0.tgz", - "integrity": "sha512-lJGiMxCa3cqnUr2Jjtg9YHsaytiZqeNOKeibv6WF5zbK/fPegZ1hg3y/9P1RZVLhqBTs0PfqQLKuAACednYGhQ==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.4.tgz", + "integrity": "sha512-NhuE56X+p9QDFh4BgeygHFIvJJszO1i1KSkg/JPcIJrbovyRtI+GuOEa4XzFCEpZRAEoEI8u/cAHK+jG/PgUzQ==", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -22954,9 +23250,9 @@ } }, "node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, "dependencies": { "@types/json-schema": "^7.0.8", @@ -23061,9 +23357,9 @@ } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", "dev": true, "dependencies": { "randombytes": "^2.1.0" @@ -24160,13 +24456,13 @@ } }, "node_modules/terser": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", - "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.18.0.tgz", + "integrity": "sha512-pdL757Ig5a0I+owA42l6tIuEycRuM7FPY4n62h44mRLRfnOxJkkOHd6i89dOpwZlpF6JXBwaAHF6yWzFrt+QyA==", "dev": true, "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -24178,16 +24474,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.17", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" }, "engines": { "node": ">= 10.13.0" @@ -24868,18 +25164,6 @@ "node": ">=0.10.0" } }, - "node_modules/undici": { - "version": "5.21.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz", - "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==", - "dev": true, - "dependencies": { - "busboy": "^1.6.0" - }, - "engines": { - "node": ">=12.18" - } - }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -25082,9 +25366,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", + "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", "dev": true, "funding": [ { @@ -25094,6 +25378,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -25101,7 +25389,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -25185,6 +25473,12 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==" }, + "node_modules/urlpattern-polyfill": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz", + "integrity": "sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==", + "dev": true + }, "node_modules/use-isomorphic-layout-effect": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", @@ -25296,9 +25590,9 @@ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" }, "node_modules/value-or-promise": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.11.tgz", - "integrity": "sha512-41BrgH+dIbCFXClcSapVs5M6GkENd3gQOJpEfPDNa71LsUGMXDL0jMWpI/Rh7WhX+Aalfz2TTS3Zt5pUsbnhLg==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", + "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", "dev": true, "engines": { "node": ">=12" @@ -25491,12 +25785,12 @@ } }, "node_modules/webcrypto-core": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", - "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.7.tgz", + "integrity": "sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==", "dev": true, "dependencies": { - "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/asn1-schema": "^2.3.6", "@peculiar/json-schema": "^1.1.12", "asn1js": "^3.0.1", "pvtsutils": "^1.3.2", @@ -25509,22 +25803,22 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.76.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.76.1.tgz", - "integrity": "sha512-4+YIK4Abzv8172/SGqObnUjaIHjLEuUasz9EwQj/9xmPPkYJy2Mh03Q/lJfSD3YLzbxy5FeTq5Uw0323Oh6SJQ==", + "version": "5.87.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.87.0.tgz", + "integrity": "sha512-GOu1tNbQ7p1bDEoFRs2YPcfyGs8xq52yyPBZ3m2VGnXGtV9MxjrkABHm4V9Ia280OefsSLzvbVoXcfLxjKY/Iw==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", + "acorn-import-assertions": "^1.9.0", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -25533,9 +25827,9 @@ "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", + "terser-webpack-plugin": "^5.3.7", "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, @@ -25843,9 +26137,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -25854,7 +26148,7 @@ "@types/serve-index": "^1.9.1", "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", + "@types/ws": "^8.5.5", "ansi-html-community": "^0.0.8", "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", @@ -25867,6 +26161,7 @@ "html-entities": "^2.3.2", "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", "open": "^8.0.9", "p-retry": "^4.5.0", "rimraf": "^3.0.2", @@ -25876,7 +26171,7 @@ "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" + "ws": "^8.13.0" }, "bin": { "webpack-dev-server": "bin/webpack-dev-server.js" @@ -25892,6 +26187,9 @@ "webpack": "^4.37.0 || ^5.0.0" }, "peerDependenciesMeta": { + "webpack": { + "optional": true + }, "webpack-cli": { "optional": true } @@ -25950,6 +26248,27 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -26019,12 +26338,6 @@ "node": ">=0.10.0" } }, - "node_modules/whatwg-fetch": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", - "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", - "dev": true - }, "node_modules/whatwg-mimetype": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", @@ -26203,16 +26516,16 @@ } }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.1.tgz", + "integrity": "sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { diff --git a/package.json b/package.json index ab6616480..7e2b2e8d6 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "json5": "2.2.2" }, "dependencies": { - "@apollo/client": "^3.7.14", + "@apollo/client": "^3.8.3", "@emotion/styled": "^11.10.5", "@fellesdatakatalog/alert": "^0.3.6", "@fellesdatakatalog/button": "^0.2.10", @@ -76,7 +76,7 @@ "core-js-pure": "^3.27.1", "deserialize-json-api": "^1.4.0", "eslint-import-resolver-typescript": "^3.5.3", - "graphql": "^16.6.0", + "graphql": "^16.8.1", "highlight.js": "^11.7.0", "html-react-parser": "^3.0.9", "immutable": "^4.2.4", @@ -106,7 +106,7 @@ "react-router-breadcrumbs-hoc": "^4.1.0", "react-router-dom": "^5.3.4", "react-scroll": "^1.8.9", - "react-select": "^5.7.0", + "react-select": "^5.7.4", "reactstrap": "^9.1.5", "redux": "^4.2.1", "redux-api-middleware": "^3.2.1", @@ -131,10 +131,10 @@ "@babel/preset-react": "^7.18.6", "@commitlint/cli": "^17.4.0", "@commitlint/config-conventional": "^17.4.0", - "@graphql-codegen/cli": "^2.16.2", - "@graphql-codegen/fragment-matcher": "^3.3.3", - "@graphql-codegen/typescript": "^4.0.0", - "@graphql-codegen/typescript-operations": "^2.5.11", + "@graphql-codegen/cli": "^5.0.0", + "@graphql-codegen/fragment-matcher": "^5.0.0", + "@graphql-codegen/typescript": "^4.0.1", + "@graphql-codegen/typescript-operations": "^4.0.1", "@graphql-codegen/typescript-react-apollo": "^3.3.7", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.10", "@svgr/webpack": "^6.5.1", @@ -156,7 +156,7 @@ "@types/sanitize-html": "^2.8.0", "@types/styled-components": "^5.1.24", "@types/turndown": "^5.0.1", - "@types/webpack": "^5.28.0", + "@types/webpack": "^5.28.1", "@typescript-eslint/eslint-plugin": "^5.48.0", "@typescript-eslint/parser": "^5.59.7", "@wojtekmaj/enzyme-adapter-react-17": "^0.8.0", @@ -202,10 +202,10 @@ "ts-node": "^10.9.1", "typescript": "^4.9.4", "url-loader": "^4.1.1", - "webpack": "^5.75.0", + "webpack": "^5.87.0", "webpack-bundle-analyzer": "^4.8.0", "webpack-cli": "^5.0.1", - "webpack-dev-server": "^4.11.1", + "webpack-dev-server": "^4.15.1", "webpack-merge": "^5.8.0" }, "optionalDependencies": { diff --git a/src/api/generated/cms/graphql.ts b/src/api/generated/cms/graphql.ts index ccfecc354..fb72bd7da 100644 --- a/src/api/generated/cms/graphql.ts +++ b/src/api/generated/cms/graphql.ts @@ -5,49 +5,61 @@ export type InputMaybe = Maybe; export type Exact = { [K in keyof T]: T[K]; }; -export type MakeOptional = Omit & - { [SubKey in K]?: Maybe }; -export type MakeMaybe = Omit & - { [SubKey in K]: Maybe }; +export type MakeOptional = Omit & { + [SubKey in K]?: Maybe; +}; +export type MakeMaybe = Omit & { + [SubKey in K]: Maybe; +}; +export type MakeEmpty< + T extends { [key: string]: unknown }, + K extends keyof T +> = { [_ in K]?: never }; +export type Incremental = + | T + | { + [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never; + }; const defaultOptions = {} as const; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { - ID: string; - String: string; - Boolean: boolean; - Int: number; - Float: number; - DateTime: any; - FancyArticleContentDynamicZoneInput: any; - I18NLocaleCode: any; - JSON: any; - Upload: any; + ID: { input: string; output: string }; + String: { input: string; output: string }; + Boolean: { input: boolean; output: boolean }; + Int: { input: number; output: number }; + Float: { input: number; output: number }; + DateTime: { input: any; output: any }; + FancyArticleContentDynamicZoneInput: { input: any; output: any }; + I18NLocaleCode: { input: any; output: any }; + JSON: { input: any; output: any }; + TransportArticleContentDynamicZoneInput: { input: any; output: any }; + Upload: { input: any; output: any }; }; export type Article = { __typename?: 'Article'; - content: Scalars['String']; - createdAt?: Maybe; - excerpt: Scalars['String']; + content: Scalars['String']['output']; + createdAt?: Maybe; + excerpt: Scalars['String']['output']; featureImage?: Maybe; - locale?: Maybe; + locale?: Maybe; localizations?: Maybe; - publishedAt?: Maybe; - title: Scalars['String']; - updatedAt?: Maybe; + publishedAt?: Maybe; + title: Scalars['String']['output']; + updatedAt?: Maybe; }; export type ArticleLocalizationsArgs = { filters?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type ArticleEntity = { __typename?: 'ArticleEntity'; attributes?: Maybe
; - id?: Maybe; + id?: Maybe; }; export type ArticleEntityResponse = { @@ -77,11 +89,11 @@ export type ArticleFiltersInput = { }; export type ArticleInput = { - content?: InputMaybe; - excerpt?: InputMaybe; - featureImage?: InputMaybe; - publishedAt?: InputMaybe; - title?: InputMaybe; + content?: InputMaybe; + excerpt?: InputMaybe; + featureImage?: InputMaybe; + publishedAt?: InputMaybe; + title?: InputMaybe; }; export type ArticleRelationResponseCollection = { @@ -90,72 +102,80 @@ export type ArticleRelationResponseCollection = { }; export type BooleanFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export type ComponentBasicImage = { __typename?: 'ComponentBasicImage'; - alternativeText?: Maybe; - id: Scalars['ID']; + alternativeText?: Maybe; + id: Scalars['ID']['output']; media?: Maybe; style?: Maybe; }; export type ComponentBasicParagraph = { __typename?: 'ComponentBasicParagraph'; - Content?: Maybe; - id: Scalars['ID']; + Content?: Maybe; + id: Scalars['ID']['output']; }; export type ComponentBasicQuote = { __typename?: 'ComponentBasicQuote'; - author?: Maybe; - content?: Maybe; - id: Scalars['ID']; + author?: Maybe; + content?: Maybe; + id: Scalars['ID']['output']; +}; + +export type ComponentBasicYoutube = { + __typename?: 'ComponentBasicYoutube'; + id: Scalars['ID']['output']; + url?: Maybe; }; export type DateTimeFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export enum Enum_Componentbasicimage_Style { @@ -178,27 +198,27 @@ export enum Enum_Servicemessage_Message_Type { export type Error = { __typename?: 'Error'; - code: Scalars['String']; - message?: Maybe; + code: Scalars['String']['output']; + message?: Maybe; }; export type FancyArticle = { __typename?: 'FancyArticle'; Content?: Maybe>>; - createdAt?: Maybe; - locale?: Maybe; + createdAt?: Maybe; + locale?: Maybe; localizations?: Maybe; - publishedAt?: Maybe; - subtitle?: Maybe; - title?: Maybe; - updatedAt?: Maybe; + publishedAt?: Maybe; + subtitle?: Maybe; + title?: Maybe; + updatedAt?: Maybe; }; export type FancyArticleLocalizationsArgs = { filters?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type FancyArticleContentDynamicZone = @@ -210,7 +230,7 @@ export type FancyArticleContentDynamicZone = export type FancyArticleEntity = { __typename?: 'FancyArticleEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type FancyArticleEntityResponse = { @@ -239,10 +259,12 @@ export type FancyArticleFiltersInput = { }; export type FancyArticleInput = { - Content?: InputMaybe>; - publishedAt?: InputMaybe; - subtitle?: InputMaybe; - title?: InputMaybe; + Content?: InputMaybe< + Array + >; + publishedAt?: InputMaybe; + subtitle?: InputMaybe; + title?: InputMaybe; }; export type FancyArticleRelationResponseCollection = { @@ -251,33 +273,34 @@ export type FancyArticleRelationResponseCollection = { }; export type FileInfoInput = { - alternativeText?: InputMaybe; - caption?: InputMaybe; - name?: InputMaybe; + alternativeText?: InputMaybe; + caption?: InputMaybe; + name?: InputMaybe; }; export type FloatFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export type GenericMorph = @@ -285,9 +308,11 @@ export type GenericMorph = | ComponentBasicImage | ComponentBasicParagraph | ComponentBasicQuote + | ComponentBasicYoutube | FancyArticle | I18NLocale | ServiceMessage + | TransportArticle | UploadFile | UploadFolder | UsersPermissionsPermission @@ -296,16 +321,16 @@ export type GenericMorph = export type I18NLocale = { __typename?: 'I18NLocale'; - code?: Maybe; - createdAt?: Maybe; - name?: Maybe; - updatedAt?: Maybe; + code?: Maybe; + createdAt?: Maybe; + name?: Maybe; + updatedAt?: Maybe; }; export type I18NLocaleEntity = { __typename?: 'I18NLocaleEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type I18NLocaleEntityResponse = { @@ -331,75 +356,78 @@ export type I18NLocaleFiltersInput = { }; export type IdFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export type IntFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export type JsonFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; }; export type Mutation = { @@ -412,6 +440,8 @@ export type Mutation = { createFancyArticleLocalization?: Maybe; createServiceMessage?: Maybe; createServiceMessageLocalization?: Maybe; + createTransportArticle?: Maybe; + createTransportArticleLocalization?: Maybe; createUploadFile?: Maybe; createUploadFolder?: Maybe; /** Create a new role */ @@ -421,6 +451,7 @@ export type Mutation = { deleteArticle?: Maybe; deleteFancyArticle?: Maybe; deleteServiceMessage?: Maybe; + deleteTransportArticle?: Maybe; deleteUploadFile?: Maybe; deleteUploadFolder?: Maybe; /** Delete an existing role */ @@ -442,6 +473,7 @@ export type Mutation = { updateFancyArticle?: Maybe; updateFileInfo: UploadFileEntityResponse; updateServiceMessage?: Maybe; + updateTransportArticle?: Maybe; updateUploadFile?: Maybe; updateUploadFolder?: Maybe; /** Update an existing role */ @@ -452,42 +484,53 @@ export type Mutation = { }; export type MutationChangePasswordArgs = { - currentPassword: Scalars['String']; - password: Scalars['String']; - passwordConfirmation: Scalars['String']; + currentPassword: Scalars['String']['input']; + password: Scalars['String']['input']; + passwordConfirmation: Scalars['String']['input']; }; export type MutationCreateArticleArgs = { data: ArticleInput; - locale?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateArticleLocalizationArgs = { data?: InputMaybe; - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateFancyArticleArgs = { data: FancyArticleInput; - locale?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateFancyArticleLocalizationArgs = { data?: InputMaybe; - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateServiceMessageArgs = { data: ServiceMessageInput; - locale?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateServiceMessageLocalizationArgs = { data?: InputMaybe; - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; +}; + +export type MutationCreateTransportArticleArgs = { + data: TransportArticleInput; + locale?: InputMaybe; +}; + +export type MutationCreateTransportArticleLocalizationArgs = { + data?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type MutationCreateUploadFileArgs = { @@ -507,42 +550,47 @@ export type MutationCreateUsersPermissionsUserArgs = { }; export type MutationDeleteArticleArgs = { - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationDeleteFancyArticleArgs = { - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationDeleteServiceMessageArgs = { - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; +}; + +export type MutationDeleteTransportArticleArgs = { + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationDeleteUploadFileArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationDeleteUploadFolderArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationDeleteUsersPermissionsRoleArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationDeleteUsersPermissionsUserArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationEmailConfirmationArgs = { - confirmation: Scalars['String']; + confirmation: Scalars['String']['input']; }; export type MutationForgotPasswordArgs = { - email: Scalars['String']; + email: Scalars['String']['input']; }; export type MutationLoginArgs = { @@ -550,10 +598,10 @@ export type MutationLoginArgs = { }; export type MutationMultipleUploadArgs = { - field?: InputMaybe; - files: Array>; - ref?: InputMaybe; - refId?: InputMaybe; + field?: InputMaybe; + files: Array>; + ref?: InputMaybe; + refId?: InputMaybe; }; export type MutationRegisterArgs = { @@ -561,79 +609,85 @@ export type MutationRegisterArgs = { }; export type MutationRemoveFileArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationResetPasswordArgs = { - code: Scalars['String']; - password: Scalars['String']; - passwordConfirmation: Scalars['String']; + code: Scalars['String']['input']; + password: Scalars['String']['input']; + passwordConfirmation: Scalars['String']['input']; }; export type MutationUpdateArticleArgs = { data: ArticleInput; - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationUpdateFancyArticleArgs = { data: FancyArticleInput; - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationUpdateFileInfoArgs = { - id: Scalars['ID']; + id: Scalars['ID']['input']; info?: InputMaybe; }; export type MutationUpdateServiceMessageArgs = { data: ServiceMessageInput; - id: Scalars['ID']; - locale?: InputMaybe; + id: Scalars['ID']['input']; + locale?: InputMaybe; +}; + +export type MutationUpdateTransportArticleArgs = { + data: TransportArticleInput; + id: Scalars['ID']['input']; + locale?: InputMaybe; }; export type MutationUpdateUploadFileArgs = { data: UploadFileInput; - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationUpdateUploadFolderArgs = { data: UploadFolderInput; - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationUpdateUsersPermissionsRoleArgs = { data: UsersPermissionsRoleInput; - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationUpdateUsersPermissionsUserArgs = { data: UsersPermissionsUserInput; - id: Scalars['ID']; + id: Scalars['ID']['input']; }; export type MutationUploadArgs = { - field?: InputMaybe; - file: Scalars['Upload']; + field?: InputMaybe; + file: Scalars['Upload']['input']; info?: InputMaybe; - ref?: InputMaybe; - refId?: InputMaybe; + ref?: InputMaybe; + refId?: InputMaybe; }; export type Pagination = { __typename?: 'Pagination'; - page: Scalars['Int']; - pageCount: Scalars['Int']; - pageSize: Scalars['Int']; - total: Scalars['Int']; + page: Scalars['Int']['output']; + pageCount: Scalars['Int']['output']; + pageSize: Scalars['Int']['output']; + total: Scalars['Int']['output']; }; export type PaginationArg = { - limit?: InputMaybe; - page?: InputMaybe; - pageSize?: InputMaybe; - start?: InputMaybe; + limit?: InputMaybe; + page?: InputMaybe; + pageSize?: InputMaybe; + start?: InputMaybe; }; export enum PublicationState { @@ -652,6 +706,8 @@ export type Query = { me?: Maybe; serviceMessage?: Maybe; serviceMessages?: Maybe; + transportArticle?: Maybe; + transportArticles?: Maybe; uploadFile?: Maybe; uploadFiles?: Maybe; uploadFolder?: Maybe; @@ -663,92 +719,105 @@ export type Query = { }; export type QueryArticleArgs = { - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type QueryArticlesArgs = { filters?: InputMaybe; - locale?: InputMaybe; + locale?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryFancyArticleArgs = { - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type QueryFancyArticlesArgs = { filters?: InputMaybe; - locale?: InputMaybe; + locale?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryI18NLocaleArgs = { - id?: InputMaybe; + id?: InputMaybe; }; export type QueryI18NLocalesArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryServiceMessageArgs = { - id?: InputMaybe; - locale?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; }; export type QueryServiceMessagesArgs = { filters?: InputMaybe; - locale?: InputMaybe; + locale?: InputMaybe; + pagination?: InputMaybe; + publicationState?: InputMaybe; + sort?: InputMaybe>>; +}; + +export type QueryTransportArticleArgs = { + id?: InputMaybe; + locale?: InputMaybe; +}; + +export type QueryTransportArticlesArgs = { + filters?: InputMaybe; + locale?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryUploadFileArgs = { - id?: InputMaybe; + id?: InputMaybe; }; export type QueryUploadFilesArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryUploadFolderArgs = { - id?: InputMaybe; + id?: InputMaybe; }; export type QueryUploadFoldersArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryUsersPermissionsRoleArgs = { - id?: InputMaybe; + id?: InputMaybe; }; export type QueryUsersPermissionsRolesArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type QueryUsersPermissionsUserArgs = { - id?: InputMaybe; + id?: InputMaybe; }; export type QueryUsersPermissionsUsersArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type ResponseCollectionMeta = { @@ -758,34 +827,34 @@ export type ResponseCollectionMeta = { export type ServiceMessage = { __typename?: 'ServiceMessage'; - channel_adminportal?: Maybe; - channel_publiseringportal?: Maybe; - channel_registreringportal?: Maybe; - createdAt?: Maybe; - description?: Maybe; + channel_adminportal?: Maybe; + channel_publiseringportal?: Maybe; + channel_registreringportal?: Maybe; + createdAt?: Maybe; + description?: Maybe; environment: Enum_Servicemessage_Environment; - locale?: Maybe; + locale?: Maybe; localizations?: Maybe; message_type: Enum_Servicemessage_Message_Type; - publishedAt?: Maybe; - short_description: Scalars['String']; - title: Scalars['String']; - updatedAt?: Maybe; - valid_from: Scalars['DateTime']; - valid_to?: Maybe; + publishedAt?: Maybe; + short_description: Scalars['String']['output']; + title: Scalars['String']['output']; + updatedAt?: Maybe; + valid_from: Scalars['DateTime']['output']; + valid_to?: Maybe; }; export type ServiceMessageLocalizationsArgs = { filters?: InputMaybe; pagination?: InputMaybe; publicationState?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type ServiceMessageEntity = { __typename?: 'ServiceMessageEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type ServiceMessageEntityResponse = { @@ -822,17 +891,17 @@ export type ServiceMessageFiltersInput = { }; export type ServiceMessageInput = { - channel_adminportal?: InputMaybe; - channel_publiseringportal?: InputMaybe; - channel_registreringportal?: InputMaybe; - description?: InputMaybe; + channel_adminportal?: InputMaybe; + channel_publiseringportal?: InputMaybe; + channel_registreringportal?: InputMaybe; + description?: InputMaybe; environment?: InputMaybe; message_type?: InputMaybe; - publishedAt?: InputMaybe; - short_description?: InputMaybe; - title?: InputMaybe; - valid_from?: InputMaybe; - valid_to?: InputMaybe; + publishedAt?: InputMaybe; + short_description?: InputMaybe; + title?: InputMaybe; + valid_from?: InputMaybe; + valid_to?: InputMaybe; }; export type ServiceMessageRelationResponseCollection = { @@ -841,54 +910,126 @@ export type ServiceMessageRelationResponseCollection = { }; export type StringFilterInput = { - and?: InputMaybe>>; - between?: InputMaybe>>; - contains?: InputMaybe; - containsi?: InputMaybe; - endsWith?: InputMaybe; - eq?: InputMaybe; - eqi?: InputMaybe; - gt?: InputMaybe; - gte?: InputMaybe; - in?: InputMaybe>>; - lt?: InputMaybe; - lte?: InputMaybe; - ne?: InputMaybe; + and?: InputMaybe>>; + between?: InputMaybe>>; + contains?: InputMaybe; + containsi?: InputMaybe; + endsWith?: InputMaybe; + eq?: InputMaybe; + eqi?: InputMaybe; + gt?: InputMaybe; + gte?: InputMaybe; + in?: InputMaybe>>; + lt?: InputMaybe; + lte?: InputMaybe; + ne?: InputMaybe; + nei?: InputMaybe; not?: InputMaybe; - notContains?: InputMaybe; - notContainsi?: InputMaybe; - notIn?: InputMaybe>>; - notNull?: InputMaybe; - null?: InputMaybe; - or?: InputMaybe>>; - startsWith?: InputMaybe; + notContains?: InputMaybe; + notContainsi?: InputMaybe; + notIn?: InputMaybe>>; + notNull?: InputMaybe; + null?: InputMaybe; + or?: InputMaybe>>; + startsWith?: InputMaybe; +}; + +export type TransportArticle = { + __typename?: 'TransportArticle'; + Content?: Maybe>>; + createdAt?: Maybe; + locale?: Maybe; + localizations?: Maybe; + publishedAt?: Maybe; + subtitle?: Maybe; + title?: Maybe; + updatedAt?: Maybe; +}; + +export type TransportArticleLocalizationsArgs = { + filters?: InputMaybe; + pagination?: InputMaybe; + publicationState?: InputMaybe; + sort?: InputMaybe>>; +}; + +export type TransportArticleContentDynamicZone = + | ComponentBasicImage + | ComponentBasicParagraph + | ComponentBasicQuote + | ComponentBasicYoutube + | Error; + +export type TransportArticleEntity = { + __typename?: 'TransportArticleEntity'; + attributes?: Maybe; + id?: Maybe; +}; + +export type TransportArticleEntityResponse = { + __typename?: 'TransportArticleEntityResponse'; + data?: Maybe; +}; + +export type TransportArticleEntityResponseCollection = { + __typename?: 'TransportArticleEntityResponseCollection'; + data: Array; + meta: ResponseCollectionMeta; +}; + +export type TransportArticleFiltersInput = { + and?: InputMaybe>>; + createdAt?: InputMaybe; + id?: InputMaybe; + locale?: InputMaybe; + localizations?: InputMaybe; + not?: InputMaybe; + or?: InputMaybe>>; + publishedAt?: InputMaybe; + subtitle?: InputMaybe; + title?: InputMaybe; + updatedAt?: InputMaybe; +}; + +export type TransportArticleInput = { + Content?: InputMaybe< + Array + >; + publishedAt?: InputMaybe; + subtitle?: InputMaybe; + title?: InputMaybe; +}; + +export type TransportArticleRelationResponseCollection = { + __typename?: 'TransportArticleRelationResponseCollection'; + data: Array; }; export type UploadFile = { __typename?: 'UploadFile'; - alternativeText?: Maybe; - caption?: Maybe; - createdAt?: Maybe; - ext?: Maybe; - formats?: Maybe; - hash: Scalars['String']; - height?: Maybe; - mime: Scalars['String']; - name: Scalars['String']; - previewUrl?: Maybe; - provider: Scalars['String']; - provider_metadata?: Maybe; + alternativeText?: Maybe; + caption?: Maybe; + createdAt?: Maybe; + ext?: Maybe; + formats?: Maybe; + hash: Scalars['String']['output']; + height?: Maybe; + mime: Scalars['String']['output']; + name: Scalars['String']['output']; + previewUrl?: Maybe; + provider: Scalars['String']['output']; + provider_metadata?: Maybe; related?: Maybe>>; - size: Scalars['Float']; - updatedAt?: Maybe; - url: Scalars['String']; - width?: Maybe; + size: Scalars['Float']['output']; + updatedAt?: Maybe; + url: Scalars['String']['output']; + width?: Maybe; }; export type UploadFileEntity = { __typename?: 'UploadFileEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type UploadFileEntityResponse = { @@ -928,22 +1069,22 @@ export type UploadFileFiltersInput = { }; export type UploadFileInput = { - alternativeText?: InputMaybe; - caption?: InputMaybe; - ext?: InputMaybe; - folder?: InputMaybe; - folderPath?: InputMaybe; - formats?: InputMaybe; - hash?: InputMaybe; - height?: InputMaybe; - mime?: InputMaybe; - name?: InputMaybe; - previewUrl?: InputMaybe; - provider?: InputMaybe; - provider_metadata?: InputMaybe; - size?: InputMaybe; - url?: InputMaybe; - width?: InputMaybe; + alternativeText?: InputMaybe; + caption?: InputMaybe; + ext?: InputMaybe; + folder?: InputMaybe; + folderPath?: InputMaybe; + formats?: InputMaybe; + hash?: InputMaybe; + height?: InputMaybe; + mime?: InputMaybe; + name?: InputMaybe; + previewUrl?: InputMaybe; + provider?: InputMaybe; + provider_metadata?: InputMaybe; + size?: InputMaybe; + url?: InputMaybe; + width?: InputMaybe; }; export type UploadFileRelationResponseCollection = { @@ -954,31 +1095,31 @@ export type UploadFileRelationResponseCollection = { export type UploadFolder = { __typename?: 'UploadFolder'; children?: Maybe; - createdAt?: Maybe; + createdAt?: Maybe; files?: Maybe; - name: Scalars['String']; + name: Scalars['String']['output']; parent?: Maybe; - path: Scalars['String']; - pathId: Scalars['Int']; - updatedAt?: Maybe; + path: Scalars['String']['output']; + pathId: Scalars['Int']['output']; + updatedAt?: Maybe; }; export type UploadFolderChildrenArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type UploadFolderFilesArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type UploadFolderEntity = { __typename?: 'UploadFolderEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type UploadFolderEntityResponse = { @@ -1008,12 +1149,12 @@ export type UploadFolderFiltersInput = { }; export type UploadFolderInput = { - children?: InputMaybe>>; - files?: InputMaybe>>; - name?: InputMaybe; - parent?: InputMaybe; - path?: InputMaybe; - pathId?: InputMaybe; + children?: InputMaybe>>; + files?: InputMaybe>>; + name?: InputMaybe; + parent?: InputMaybe; + path?: InputMaybe; + pathId?: InputMaybe; }; export type UploadFolderRelationResponseCollection = { @@ -1023,61 +1164,61 @@ export type UploadFolderRelationResponseCollection = { export type UsersPermissionsCreateRolePayload = { __typename?: 'UsersPermissionsCreateRolePayload'; - ok: Scalars['Boolean']; + ok: Scalars['Boolean']['output']; }; export type UsersPermissionsDeleteRolePayload = { __typename?: 'UsersPermissionsDeleteRolePayload'; - ok: Scalars['Boolean']; + ok: Scalars['Boolean']['output']; }; export type UsersPermissionsLoginInput = { - identifier: Scalars['String']; - password: Scalars['String']; - provider?: Scalars['String']; + identifier: Scalars['String']['input']; + password: Scalars['String']['input']; + provider?: Scalars['String']['input']; }; export type UsersPermissionsLoginPayload = { __typename?: 'UsersPermissionsLoginPayload'; - jwt?: Maybe; + jwt?: Maybe; user: UsersPermissionsMe; }; export type UsersPermissionsMe = { __typename?: 'UsersPermissionsMe'; - blocked?: Maybe; - confirmed?: Maybe; - email?: Maybe; - id: Scalars['ID']; + blocked?: Maybe; + confirmed?: Maybe; + email?: Maybe; + id: Scalars['ID']['output']; role?: Maybe; - username: Scalars['String']; + username: Scalars['String']['output']; }; export type UsersPermissionsMeRole = { __typename?: 'UsersPermissionsMeRole'; - description?: Maybe; - id: Scalars['ID']; - name: Scalars['String']; - type?: Maybe; + description?: Maybe; + id: Scalars['ID']['output']; + name: Scalars['String']['output']; + type?: Maybe; }; export type UsersPermissionsPasswordPayload = { __typename?: 'UsersPermissionsPasswordPayload'; - ok: Scalars['Boolean']; + ok: Scalars['Boolean']['output']; }; export type UsersPermissionsPermission = { __typename?: 'UsersPermissionsPermission'; - action: Scalars['String']; - createdAt?: Maybe; + action: Scalars['String']['output']; + createdAt?: Maybe; role?: Maybe; - updatedAt?: Maybe; + updatedAt?: Maybe; }; export type UsersPermissionsPermissionEntity = { __typename?: 'UsersPermissionsPermissionEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type UsersPermissionsPermissionFiltersInput = { @@ -1097,38 +1238,38 @@ export type UsersPermissionsPermissionRelationResponseCollection = { }; export type UsersPermissionsRegisterInput = { - email: Scalars['String']; - password: Scalars['String']; - username: Scalars['String']; + email: Scalars['String']['input']; + password: Scalars['String']['input']; + username: Scalars['String']['input']; }; export type UsersPermissionsRole = { __typename?: 'UsersPermissionsRole'; - createdAt?: Maybe; - description?: Maybe; - name: Scalars['String']; + createdAt?: Maybe; + description?: Maybe; + name: Scalars['String']['output']; permissions?: Maybe; - type?: Maybe; - updatedAt?: Maybe; + type?: Maybe; + updatedAt?: Maybe; users?: Maybe; }; export type UsersPermissionsRolePermissionsArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type UsersPermissionsRoleUsersArgs = { filters?: InputMaybe; pagination?: InputMaybe; - sort?: InputMaybe>>; + sort?: InputMaybe>>; }; export type UsersPermissionsRoleEntity = { __typename?: 'UsersPermissionsRoleEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type UsersPermissionsRoleEntityResponse = { @@ -1157,34 +1298,34 @@ export type UsersPermissionsRoleFiltersInput = { }; export type UsersPermissionsRoleInput = { - description?: InputMaybe; - name?: InputMaybe; - permissions?: InputMaybe>>; - type?: InputMaybe; - users?: InputMaybe>>; + description?: InputMaybe; + name?: InputMaybe; + permissions?: InputMaybe>>; + type?: InputMaybe; + users?: InputMaybe>>; }; export type UsersPermissionsUpdateRolePayload = { __typename?: 'UsersPermissionsUpdateRolePayload'; - ok: Scalars['Boolean']; + ok: Scalars['Boolean']['output']; }; export type UsersPermissionsUser = { __typename?: 'UsersPermissionsUser'; - blocked?: Maybe; - confirmed?: Maybe; - createdAt?: Maybe; - email: Scalars['String']; - provider?: Maybe; + blocked?: Maybe; + confirmed?: Maybe; + createdAt?: Maybe; + email: Scalars['String']['output']; + provider?: Maybe; role?: Maybe; - updatedAt?: Maybe; - username: Scalars['String']; + updatedAt?: Maybe; + username: Scalars['String']['output']; }; export type UsersPermissionsUserEntity = { __typename?: 'UsersPermissionsUserEntity'; attributes?: Maybe; - id?: Maybe; + id?: Maybe; }; export type UsersPermissionsUserEntityResponse = { @@ -1217,15 +1358,15 @@ export type UsersPermissionsUserFiltersInput = { }; export type UsersPermissionsUserInput = { - blocked?: InputMaybe; - confirmationToken?: InputMaybe; - confirmed?: InputMaybe; - email?: InputMaybe; - password?: InputMaybe; - provider?: InputMaybe; - resetPasswordToken?: InputMaybe; - role?: InputMaybe; - username?: InputMaybe; + blocked?: InputMaybe; + confirmationToken?: InputMaybe; + confirmed?: InputMaybe; + email?: InputMaybe; + password?: InputMaybe; + provider?: InputMaybe; + resetPasswordToken?: InputMaybe; + role?: InputMaybe; + username?: InputMaybe; }; export type UsersPermissionsUserRelationResponseCollection = { @@ -1234,7 +1375,7 @@ export type UsersPermissionsUserRelationResponseCollection = { }; export type GetFancyArticleQueryVariables = Exact<{ - id: Scalars['ID']; + id: Scalars['ID']['input']; }>; export type GetFancyArticleQuery = { @@ -1312,7 +1453,7 @@ export type GetFancyArticleQuery = { }; export type GetFancyArticleTitleQueryVariables = Exact<{ - id: Scalars['ID']; + id: Scalars['ID']['input']; }>; export type GetFancyArticleTitleQuery = { @@ -1341,7 +1482,7 @@ export type GetFancyArticleTitleQuery = { }; export type GetArticleQueryVariables = Exact<{ - id: Scalars['ID']; + id: Scalars['ID']['input']; }>; export type GetArticleQuery = { @@ -1381,9 +1522,9 @@ export type GetArticleQuery = { }; export type GetServiceMessagesQueryVariables = Exact<{ - today?: InputMaybe; - channelPubliseringPortal?: InputMaybe; - env?: InputMaybe; + today?: InputMaybe; + channelPubliseringPortal?: InputMaybe; + env?: InputMaybe; }>; export type GetServiceMessagesQuery = { @@ -1422,7 +1563,7 @@ export type GetServiceMessagesQuery = { }; export type GetServiceMessageQueryVariables = Exact<{ - id: Scalars['ID']; + id: Scalars['ID']['input']; }>; export type GetServiceMessageQuery = { @@ -1458,6 +1599,115 @@ export type GetServiceMessageQuery = { } | null; }; +export type GetTransportArticleQueryVariables = Exact<{ + id: Scalars['ID']['input']; +}>; + +export type GetTransportArticleQuery = { + __typename?: 'Query'; + transportArticle?: { + __typename?: 'TransportArticleEntityResponse'; + data?: { + __typename?: 'TransportArticleEntity'; + attributes?: { + __typename?: 'TransportArticle'; + title?: string | null; + subtitle?: string | null; + locale?: string | null; + localizations?: { + __typename?: 'TransportArticleRelationResponseCollection'; + data: Array<{ + __typename?: 'TransportArticleEntity'; + attributes?: { + __typename?: 'TransportArticle'; + title?: string | null; + subtitle?: string | null; + Content?: Array< + | { + __typename: 'ComponentBasicImage'; + style?: Enum_Componentbasicimage_Style | null; + media?: { + __typename?: 'UploadFileEntityResponse'; + data?: { + __typename?: 'UploadFileEntity'; + attributes?: { + __typename?: 'UploadFile'; + alternativeText?: string | null; + url: string; + caption?: string | null; + } | null; + } | null; + } | null; + } + | { + __typename: 'ComponentBasicParagraph'; + Content?: string | null; + } + | { __typename?: 'ComponentBasicQuote' } + | { __typename: 'ComponentBasicYoutube'; url?: string | null } + | { __typename?: 'Error' } + | null + > | null; + } | null; + }>; + } | null; + Content?: Array< + | { + __typename: 'ComponentBasicImage'; + style?: Enum_Componentbasicimage_Style | null; + media?: { + __typename?: 'UploadFileEntityResponse'; + data?: { + __typename?: 'UploadFileEntity'; + attributes?: { + __typename?: 'UploadFile'; + alternativeText?: string | null; + url: string; + caption?: string | null; + } | null; + } | null; + } | null; + } + | { __typename: 'ComponentBasicParagraph'; Content?: string | null } + | { __typename?: 'ComponentBasicQuote' } + | { __typename: 'ComponentBasicYoutube'; url?: string | null } + | { __typename?: 'Error' } + | null + > | null; + } | null; + } | null; + } | null; +}; + +export type GetTransportArticleTitleQueryVariables = Exact<{ + id: Scalars['ID']['input']; +}>; + +export type GetTransportArticleTitleQuery = { + __typename?: 'Query'; + transportArticle?: { + __typename?: 'TransportArticleEntityResponse'; + data?: { + __typename?: 'TransportArticleEntity'; + attributes?: { + __typename?: 'TransportArticle'; + title?: string | null; + localizations?: { + __typename?: 'TransportArticleRelationResponseCollection'; + data: Array<{ + __typename?: 'TransportArticleEntity'; + id?: string | null; + attributes?: { + __typename?: 'TransportArticle'; + title?: string | null; + } | null; + }>; + } | null; + } | null; + } | null; + } | null; +}; + export const GetFancyArticleDocument = gql` query GetFancyArticle($id: ID!) { fancyArticle(id: $id) { @@ -1889,3 +2139,191 @@ export type GetServiceMessageQueryResult = Apollo.QueryResult< GetServiceMessageQuery, GetServiceMessageQueryVariables >; +export const GetTransportArticleDocument = gql` + query GetTransportArticle($id: ID!) { + transportArticle(id: $id) { + data { + attributes { + title + subtitle + locale + localizations { + data { + attributes { + title + subtitle + Content { + ... on ComponentBasicParagraph { + __typename + Content + } + ... on ComponentBasicImage { + __typename + media { + data { + attributes { + alternativeText + url + caption + } + } + } + style + } + ... on ComponentBasicYoutube { + __typename + url + } + } + } + } + } + Content { + ... on ComponentBasicParagraph { + __typename + Content + } + ... on ComponentBasicImage { + __typename + media { + data { + attributes { + alternativeText + url + caption + } + } + } + style + } + ... on ComponentBasicYoutube { + __typename + url + } + } + } + } + } + } +`; + +/** + * __useGetTransportArticleQuery__ + * + * To run a query within a React component, call `useGetTransportArticleQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTransportArticleQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTransportArticleQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetTransportArticleQuery( + baseOptions: Apollo.QueryHookOptions< + GetTransportArticleQuery, + GetTransportArticleQueryVariables + > +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery< + GetTransportArticleQuery, + GetTransportArticleQueryVariables + >(GetTransportArticleDocument, options); +} +export function useGetTransportArticleLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetTransportArticleQuery, + GetTransportArticleQueryVariables + > +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetTransportArticleQuery, + GetTransportArticleQueryVariables + >(GetTransportArticleDocument, options); +} +export type GetTransportArticleQueryHookResult = ReturnType< + typeof useGetTransportArticleQuery +>; +export type GetTransportArticleLazyQueryHookResult = ReturnType< + typeof useGetTransportArticleLazyQuery +>; +export type GetTransportArticleQueryResult = Apollo.QueryResult< + GetTransportArticleQuery, + GetTransportArticleQueryVariables +>; +export const GetTransportArticleTitleDocument = gql` + query GetTransportArticleTitle($id: ID!) { + transportArticle(id: $id) { + data { + attributes { + title + localizations { + data { + id + attributes { + title + } + } + } + } + } + } + } +`; + +/** + * __useGetTransportArticleTitleQuery__ + * + * To run a query within a React component, call `useGetTransportArticleTitleQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTransportArticleTitleQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTransportArticleTitleQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetTransportArticleTitleQuery( + baseOptions: Apollo.QueryHookOptions< + GetTransportArticleTitleQuery, + GetTransportArticleTitleQueryVariables + > +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useQuery< + GetTransportArticleTitleQuery, + GetTransportArticleTitleQueryVariables + >(GetTransportArticleTitleDocument, options); +} +export function useGetTransportArticleTitleLazyQuery( + baseOptions?: Apollo.LazyQueryHookOptions< + GetTransportArticleTitleQuery, + GetTransportArticleTitleQueryVariables + > +) { + const options = { ...defaultOptions, ...baseOptions }; + return Apollo.useLazyQuery< + GetTransportArticleTitleQuery, + GetTransportArticleTitleQueryVariables + >(GetTransportArticleTitleDocument, options); +} +export type GetTransportArticleTitleQueryHookResult = ReturnType< + typeof useGetTransportArticleTitleQuery +>; +export type GetTransportArticleTitleLazyQueryHookResult = ReturnType< + typeof useGetTransportArticleTitleLazyQuery +>; +export type GetTransportArticleTitleQueryResult = Apollo.QueryResult< + GetTransportArticleTitleQuery, + GetTransportArticleTitleQueryVariables +>; diff --git a/src/app/app.jsx b/src/app/app.jsx index 592b64293..d4028008f 100644 --- a/src/app/app.jsx +++ b/src/app/app.jsx @@ -6,16 +6,16 @@ import cx from 'classnames'; import localization from '../lib/localization'; import { MainPage } from '../pages/main-page/main-page'; import { SearchPage } from '../pages/search-page/search-page'; -import DatasetDetailsPage from '../components/dataset-details-page'; -import DataServiceDetailsPage from '../components/data-service-details-page'; -import ConceptDetailsPage from '../components/concept-details-page'; -import InformationModelDetailsPage from '../components/information-model-details-page'; -import PublicServiceDetailsPage from '../components/public-service-details-page'; -import EventDetailsPage from '../components/event-details-page'; +import DatasetDetailsPage from '../pages/dataset-details-page'; +import DataServiceDetailsPage from '../pages/data-service-details-page'; +import ConceptDetailsPage from '../pages/concept-details-page'; +import InformationModelDetailsPage from '../pages/information-model-details-page'; +import PublicServiceDetailsPage from '../pages/public-service-details-page'; +import EventDetailsPage from '../pages/event-details-page'; import { ConnectedConceptComparePage } from '../pages/concept-compare-page/connected-concept-compare-page'; import { ReportPage } from '../pages/report-page/report-page'; -import ErrorPage from '../components/error-page'; -import SparqlPage from '../components/sparql-page'; +import ErrorPage from '../pages/error-page'; +import SparqlPage from '../pages/sparql-page'; import Header from '../components/header'; import { Breadcrumbs } from './breadcrumbs/breadcrumbs.component'; import Footer from '../components/footer'; @@ -45,7 +45,8 @@ import { PATHNAME_ABOUT_DATA_SERVICES, PATHNAME_ABOUT_CONCEPTS, PATHNAME_ABOUT_INFORMATIONMODELS, - PATHNAME_AI + PATHNAME_AI, + PATHNAME_TRANSPORT } from '../constants/constants'; import ScrollToTop from '../components/scroll-to-top'; import { getConfig } from '../config'; @@ -56,6 +57,7 @@ import { NewsArticlePageV2 } from '../pages/news-article-page-v2/news-article-pa import { CmsArticlePage } from '../pages/cms-article-page/cms-article-page'; import OrganizationsRouter from '../pages/organizations'; import InformationPage from '../pages/cms-information-page'; +import TransportPage from '../pages/cms-transport-page'; import { AiProjectPage } from '../pages/ai-project-page'; import { parseSearchParams } from '../lib/location-history-helper'; import routes from '../routes'; @@ -110,7 +112,8 @@ export function App({ language, onChangeLanguage }) { [PATHNAME_ABOUT_DATA_SERVICES]: InformationPage, [PATHNAME_ABOUT_CONCEPTS]: InformationPage, [PATHNAME_ABOUT_INFORMATIONMODELS]: InformationPage, - [PATHNAME_AI]: AiProjectPage + [PATHNAME_AI]: AiProjectPage, + [PATHNAME_TRANSPORT]: TransportPage }; return ( diff --git a/src/app/connected-app.js b/src/app/connected-app.js index bb2f2b63a..0a9bf8acb 100644 --- a/src/app/connected-app.js +++ b/src/app/connected-app.js @@ -4,7 +4,7 @@ import { App } from './app'; import { setLanguageAction } from '../redux/modules/settings'; import withErrorBoundary from '../components/with-error-boundary'; -import ErrorPage from '../components/error-page'; +import ErrorPage from '../pages/error-page'; const mapStateToProps = state => ({ // react-localization module designed to be stateful, so we have to re-render the app when the selected language is changed diff --git a/src/components/concept-details-page/index.tsx b/src/components/concept-details-page/index.tsx deleted file mode 100755 index 3be430e67..000000000 --- a/src/components/concept-details-page/index.tsx +++ /dev/null @@ -1,756 +0,0 @@ -import type { FC } from 'react'; -import React, { memo, useState, useEffect } from 'react'; -import { compose } from 'redux'; -import type { RouteComponentProps } from 'react-router-dom'; -import { Link as RouteLink } from 'react-router-dom'; -import { ThemeProvider } from 'styled-components'; -import Link from '@fellesdatakatalog/link'; -import translations from '../../lib/localization'; -import { - dateStringToDate, - formatDate, - isDateBeforeToday, - isDateAfterToday -} from '../../lib/date-utils'; -import { getTranslateText as translate } from '../../lib/translateText'; -import { deepKeys } from '../../lib/deep-keys'; -import { languageSorter } from '../../lib/languageSorter'; -import { themeFDK } from '../../app/theme'; - -import { PATHNAME_CONCEPTS } from '../../constants/constants'; - -import type { Props as ConceptProps } from '../with-concept'; -import withConcept from '../with-concept'; -import type { Props as DatasetsProps } from '../with-datasets'; -import withDatasets from '../with-datasets'; -import type { Props as InformationModelsProps } from '../with-information-models'; -import withInformationModels from '../with-information-models'; -import type { Props as ConceptsProps } from '../with-concepts'; -import withConcepts from '../with-concepts'; -import type { Props as PublicServicesProps } from '../with-public-services'; -import withPublicServices from '../with-public-services'; -import withErrorBoundary from '../with-error-boundary'; - -import DetailsPage, { - ContentSection, - KeyValueList, - KeyValueListItem -} from '../details-page'; -import ErrorPage from '../error-page'; -import MultiLingualField from '../multilingual-field'; -import type { ItemWithRelationType } from '../relation-list'; -import RelationList from '../relation-list'; - -import SC from './styled'; - -import type { Theme, Language, TextLanguage } from '../../types'; -import { Entity } from '../../types/enums'; -import { formatISO } from '../../utils/date'; - -interface RouteParams { - conceptId: string; -} - -interface Props - extends ConceptProps, - DatasetsProps, - InformationModelsProps, - ConceptsProps, - PublicServicesProps, - RouteComponentProps {} - -const ConceptDetailsPage: FC = ({ - concept, - concepts: conceptReferences, - isLoadingConcept, - datasetsRelations, - publicServicesRelations, - conceptsRelations, - informationModelsRelations, - conceptActions: { getConceptRequested: getConcept }, - conceptsActions: { - getConceptsRequested: getConcepts, - getConceptsRelationsRequested: getConceptsRelations, - resetConcepts, - resetConceptsRelations - }, - datasetsActions: { - getDatasetsRelationsRequested: getDatasetsRelations, - resetDatasetsRelations - }, - informationModelsActions: { - getInformationModelsRelationsRequested: getInformationmodelsRelations, - resetInformationModelsRelations - }, - publicServicesActions: { - getPublicServicesRelationsRequested: getPublicServicesRelations, - resetPublicServicesRelations - }, - match: { - params: { conceptId } - } -}) => { - const [isMounted, setIsMounted] = useState(false); - - const [selectedLanguages, setSelectedLanguages] = useState([ - { code: 'nb' }, - { code: 'nn' }, - { code: 'en' } - ]); - - const renderPage = isLoadingConcept || !isMounted || concept !== null; - - const entity = Entity.CONCEPT; - const theme = { entityColours: themeFDK.extendedColors[entity] }; - - useEffect(() => { - if (concept?.id !== conceptId) { - getConcept(conceptId); - } - - setIsMounted(true); - - return function cleanup() { - setIsMounted(false); - setSelectedLanguages([{ code: 'nb' }, { code: 'nn' }, { code: 'en' }]); - resetConcepts(); - resetConceptsRelations(); - resetDatasetsRelations(); - resetInformationModelsRelations(); - resetPublicServicesRelations(); - }; - }, [conceptId]); - - const associativeRelations = concept?.associativeRelation ?? []; - const partitiveRelations = concept?.partitiveRelation ?? []; - const genericRelations = concept?.genericRelation ?? []; - - const associativeRelationsUris: string[] = associativeRelations?.map( - ({ related = '' }) => related - ); - - const partitiveRelationsUris: string[] = partitiveRelations?.map( - ({ isPartOf = '', hasPart = '' }) => isPartOf ?? hasPart - ); - - const genericRelationsUris: string[] = genericRelations?.map( - ({ generalizes = '', specializes = '' }) => generalizes ?? specializes - ); - - const isReplacedBy = concept?.isReplacedBy ?? []; - - useEffect(() => { - if (concept?.identifier) { - if ( - (Array.isArray(concept?.seeAlso) && concept?.seeAlso.length > 0) || - (Array.isArray(associativeRelationsUris) && - associativeRelationsUris.length > 0) || - (Array.isArray(partitiveRelationsUris) && - partitiveRelationsUris.length > 0) || - (Array.isArray(genericRelationsUris) && - genericRelationsUris.length > 0) || - (Array.isArray(isReplacedBy) && isReplacedBy.length > 0) - ) { - getConcepts({ - identifiers: [ - ...(concept?.seeAlso ?? []), - ...associativeRelationsUris, - ...partitiveRelationsUris, - ...genericRelationsUris, - ...isReplacedBy - ], - size: 1000 - }); - } - - getConceptsRelations({ seeAlso: concept.identifier }); - getDatasetsRelations({ subject: concept.identifier }); - getInformationmodelsRelations({ - conceptIdentifiers: [concept.identifier] - }); - getPublicServicesRelations({ isClassifiedBy: concept.identifier }); - } - }, [concept?.identifier]); - - const publicServicesRelationsWithRelationType: ItemWithRelationType[] = - publicServicesRelations.map(relation => ({ - relation, - relationType: translations.sampleData - })); - - const translatableFields = [ - 'prefLabel', - 'altLabel', - 'hiddenLabel', - 'definition', - 'example', - 'subject', - 'application' - ]; - - const getUsedLanguages = () => - concept - ? [ - ...new Set( - deepKeys( - Object.fromEntries( - Object.entries(concept).filter(([key]) => - translatableFields.includes(key) - ) - ), - (__: any, v: string) => !!v - ).filter(key => ['nb', 'nn', 'no', 'en'].includes(key)) - ) - ] - : []; - - const hasFieldSelectedLanguage = (field: Partial[]): boolean => - field?.length > 0 - ? Object.keys( - field.reduce((result, obj) => Object.assign(result, obj), {}) - ).some(label => - selectedLanguages - .filter(({ selected }) => selected) - .map(({ code }: Language) => code) - .includes(label) - ) - : false; - - useEffect(() => { - const usedLanguages: string[] = getUsedLanguages(); - if (usedLanguages.length > 0) { - const languages: Language[] = [...new Set(selectedLanguages)].map( - language => ({ - ...language, - selected: usedLanguages.includes(language.code), - disabled: !usedLanguages.includes(language.code) - }) - ); - setSelectedLanguages(languages); - } - }, [concept, translations.getLanguage()]); - - const conceptReferencesMap = conceptReferences?.reduce( - (previous, current) => ({ ...previous, [current.identifier]: current }), - {} as Record - ); - - const entityId = concept?.id; - const entityUri = concept?.uri; - const identifier = concept?.identifier; - const publisher = concept?.publisher; - const title = concept?.prefLabel ?? {}; - const description = concept?.definition?.text; - const sourceRelationship = concept?.definition?.sourceRelationship; - const sources = concept?.definition?.sources ?? []; - const remark = concept?.definition?.remark; - const altLabels = concept?.altLabel ?? []; - const hiddenLabels = concept?.hiddenLabel ?? []; - const example = concept?.example; - const subjectLabels = - concept?.subject - ?.map(s => s.label) - ?.filter((element): element is Partial => !!element) ?? []; - const applications = concept?.application ?? []; - const range = translate(concept?.definition?.range?.text); - const rangeUri = concept?.definition?.range?.uri; - const lastPublished = formatDate( - dateStringToDate(concept?.harvest?.firstHarvested) - ); - const validFromIncluding = formatDate( - dateStringToDate(concept?.validFromIncluding) - ); - const validToIncluding = formatDate( - dateStringToDate(concept?.validToIncluding) - ); - const contactPoint = concept?.contactPoint; - const seeAlso = concept?.seeAlso ?? []; - const themes: Theme[] = []; - const created = concept?.created ?? ''; - - const renderSources = () => { - if (sourceRelationship === 'egendefinert') { - return `${translations.compare.source}: ${translations.sourceRelationship[sourceRelationship]}`; - } - - return sources?.length ? ( - <> - - {`${translations.compare.source}: ${ - sourceRelationship - ? translations.sourceRelationship[sourceRelationship] - : '' - }`} - - {sources.map(({ text, uri }, index) => ( - - {index > 0 && ','} -   - {uri ? ( - - {translate(text) || uri} - - ) : ( - translate(text) - )} - - ))} - - ) : null; - }; - - return renderPage ? ( - - - {created && ( - - {created && ( - - - - )} - - )} - - {description && ( - - - {renderSources()} - - )} - {(validFromIncluding || validToIncluding) && ( - - - {(validFromIncluding || validToIncluding) && ( - - )} - - - )} - {remark && ( - - - - )} - {(hasFieldSelectedLanguage(altLabels) || - (hiddenLabels.length > 0 && - hasFieldSelectedLanguage(hiddenLabels))) && ( - - - {hasFieldSelectedLanguage(altLabels) && ( - ( - - ))} - /> - )} - {hasFieldSelectedLanguage(hiddenLabels) && ( - ( - - ) - )} - /> - )} - - - )} - {example && ( - - - - )} - {((subjectLabels.length > 0 && - hasFieldSelectedLanguage(subjectLabels)) || - hasFieldSelectedLanguage(applications)) && ( - - - {subjectLabels && hasFieldSelectedLanguage(subjectLabels) && ( - ( - - ) - )} - /> - )} - {applications.length > 0 && - hasFieldSelectedLanguage(applications) && ( - ( - - ) - )} - /> - )} - - - )} - {range && ( - - - {range} - - - )} - {identifier && ( - - {identifier} - - )} - {(associativeRelations.length > 0 || - partitiveRelations.length > 0 || - genericRelations.length > 0 || - seeAlso.length > 0) && ( - - - {associativeRelations.map( - ({ description: associativeDescription, related = '' }) => - conceptReferencesMap?.[related] && ( - - {translate(conceptReferencesMap[related].prefLabel)} - - } - value={ -
-
- - {translations.conceptReferences.associative} - .  - -
-
- {translate(associativeDescription)} -
-
- } - /> - ) - )} - {partitiveRelations.map( - ({ - description: partitiveDescription, - hasPart = '', - isPartOf = '' - }) => { - const conceptReferenceUri = hasPart ?? isPartOf; - return ( - conceptReferencesMap?.[conceptReferenceUri] && ( - - {translate( - conceptReferencesMap[conceptReferenceUri] - .prefLabel - )} - - } - value={ -
-
- - {translations.conceptReferences.partitive} - .  - {isPartOf - ? translations.conceptReferences.isPartOf - : translations.conceptReferences.hasPart} - -
-
- {translate(partitiveDescription)} -
-
- } - /> - ) - ); - } - )} - {genericRelations.map( - ({ divisioncriterion, generalizes = '', specializes = '' }) => { - const conceptReferenceUri = generalizes ?? specializes; - return ( - conceptReferencesMap?.[conceptReferenceUri] && ( - - {translate( - conceptReferencesMap[conceptReferenceUri] - .prefLabel - )} - - } - value={ -
-
- - {translations.conceptReferences.generic} - .  - {generalizes - ? translations.conceptReferences.generalizes - : translations.conceptReferences.specializes} - -
-
- {translate(divisioncriterion)} -
-
- } - /> - ) - ); - } - )} - {seeAlso.map(uri => { - const isExpired = isDateBeforeToday( - dateStringToDate(validToIncluding) - ); - const isWillBeValid = isDateAfterToday( - dateStringToDate(validFromIncluding) - ); - - return conceptReferencesMap?.[uri] ? ( - - {translate(conceptReferencesMap[uri].prefLabel)} - {isExpired && ( - <> ({translations.validity.expired}) - )} - {!isExpired && isWillBeValid && ( - <> ({translations.validity.willBeValid}) - )} - - } - value={translations.conceptReferences.seeAlso} - /> - ) : ( - - ); - })} - {isReplacedBy.map(uri => - conceptReferencesMap?.[uri] ? ( - - {translate(conceptReferencesMap[uri].prefLabel)} - - } - value={`${ - translations.conceptReferences.isReplacedBy - } ${translate(title)}`} - /> - ) : ( - - ) - )} -
-
- )} - {(conceptsRelations.length > 0 || - datasetsRelations.length > 0 || - publicServicesRelations.length > 0 || - informationModelsRelations.length > 0) && ( - - - - )} - {(contactPoint?.email || contactPoint?.telephone) && ( - - - {contactPoint.email && ( - - {contactPoint.email} - - } - /> - )} - {contactPoint.telephone && ( - - )} - - - )} -
-
- ) : ( - - ); -}; - -export default compose( - memo, - withConcept, - withDatasets, - withInformationModels, - withConcepts, - withPublicServices, - withErrorBoundary(ErrorPage) -)(ConceptDetailsPage); diff --git a/src/components/details-page/components/details-page/index.tsx b/src/components/details-page/components/details-page/index.tsx index 679a24b6d..6dde72fab 100755 --- a/src/components/details-page/components/details-page/index.tsx +++ b/src/components/details-page/components/details-page/index.tsx @@ -55,7 +55,7 @@ import { Entity } from '../../../../types/enums'; import { calculateRatingPercentage, determineRatingIcon -} from '../../../../pages/organizations/pages/datasets-page/index'; +} from '../../../../pages/organizations/pages/datasets-page'; import withCommunity, { Props as CommunityProps } from '../../../with-community'; @@ -212,9 +212,7 @@ const DetailsPage: FC> = ({ const renderContentSections = () => contentSections - .map(child => - isValidElement(child) && child.type === ContentSection ? child : null - ) + .map(child => (isValidElement(child) ? child : null)) ?.filter(Boolean); const renderAside = () => diff --git a/src/components/details-page/components/key-value-list/index.tsx b/src/components/details-page/components/key-value-list/index.tsx index 16cb98c3f..847e91d8d 100755 --- a/src/components/details-page/components/key-value-list/index.tsx +++ b/src/components/details-page/components/key-value-list/index.tsx @@ -6,14 +6,28 @@ import React, { isValidElement } from 'react'; -import KeyValueListItem from '../key-value-list-item'; - import SC from './styled'; +import { KeyValueListItem } from '../../index'; +import AssociativeRelations from '../../../../pages/concept-details-page/RelatedConcepts/AssociativeRelations'; +import GenericRelations from '../../../../pages/concept-details-page/RelatedConcepts/GenericRelations'; +import IsReplacedBy from '../../../../pages/concept-details-page/RelatedConcepts/IsReplacedBy'; +import MemberOf from '../../../../pages/concept-details-page/RelatedConcepts/MemberOf'; +import PartitiveRelations from '../../../../pages/concept-details-page/RelatedConcepts/PartitiveRelations'; +import SeeAlso from '../../../../pages/concept-details-page/RelatedConcepts/SeeAlso'; const KeyValueList: FC> = ({ children, ...props }) => ( {Children.map(children, child => - isValidElement(child) && child.type === KeyValueListItem ? child : null + isValidElement(child) && + (child.type === KeyValueListItem || + child.type === AssociativeRelations || + child.type === GenericRelations || + child.type === IsReplacedBy || + child.type === MemberOf || + child.type === PartitiveRelations || + child.type === SeeAlso) + ? child + : null )} ); diff --git a/src/components/search-entities/search-entities.component.tsx b/src/components/search-entities/search-entities.component.tsx index 8aa376821..e41839faf 100644 --- a/src/components/search-entities/search-entities.component.tsx +++ b/src/components/search-entities/search-entities.component.tsx @@ -12,7 +12,7 @@ import { InformationModelItem } from '../informationmodel-item/informationmodel- import { PublicServiceItem } from '../public-service-item/public-service-item'; import EventItem from '../event-item'; import withErrorBoundary from '../with-error-boundary'; -import ErrorPage from '../error-page'; +import ErrorPage from '../../pages/error-page'; import type { Entity as EntityType, Concept } from '../../types'; import { Entity } from '../../types/enums'; diff --git a/src/components/with-concepts/redux/saga.ts b/src/components/with-concepts/redux/saga.ts index bfa939a49..f09efef2f 100755 --- a/src/components/with-concepts/redux/saga.ts +++ b/src/components/with-concepts/redux/saga.ts @@ -24,7 +24,6 @@ function* getConceptsRequested({ searchConcepts, paramsToSearchBody({ identifiers, size, seeAlso }) ); - if (data) { yield put( actions.getConceptsSucceeded(extractConcepts(data) as Concept[]) diff --git a/src/components/youtube-embed/index.tsx b/src/components/youtube-embed/index.tsx new file mode 100644 index 000000000..f2a7d3fb7 --- /dev/null +++ b/src/components/youtube-embed/index.tsx @@ -0,0 +1,34 @@ +import React from 'react'; +import SC from './styled'; + +interface Props { + url: string | undefined | null; + width?: string; + height?: string; +} + +const YOUTUBE_PATTERN = + /(?:youtu\.be\/|youtube(?:-nocookie|education)?\.com\/(?:embed\/|v\/|watch\/|watch\?v=|watch\?.+&v=|shorts\/|live\/))((\w|-){11})|youtube\.com\/playlist\?list=|youtube\.com\/user\//; + +const YoutubeEmbed = ({ url, width = '853', height = '480' }: Props) => { + const embedId = url?.match(YOUTUBE_PATTERN)?.[1]; + + return ( + + {embedId ? ( + + ) : ( + 'No video found' + )} + + ); +}; + +export default YoutubeEmbed; diff --git a/src/components/youtube-embed/styled.ts b/src/components/youtube-embed/styled.ts new file mode 100644 index 000000000..6e79969ea --- /dev/null +++ b/src/components/youtube-embed/styled.ts @@ -0,0 +1,18 @@ +import styled from 'styled-components'; + +const YoutubeEmbed = styled.div` + overflow: hidden; + padding-bottom: 56.25%; + position: relative; + height: 0; +`; + +const Iframe = styled.iframe` + left: 0; + top: 0; + height: 100%; + width: 100%; + position: absolute; +`; + +export default { YoutubeEmbed, Iframe }; diff --git a/src/constants/constants.js b/src/constants/constants.js index c5fe6ac3a..59cde63b1 100644 --- a/src/constants/constants.js +++ b/src/constants/constants.js @@ -33,6 +33,7 @@ export const PATHNAME_COMMUNITY_COMMENTS = '/category/12/kommentartrÃ¥der'; export const PATHNAME_AI = '/kunstig-intelligens'; export const EXTERNAL_AI_PAGE = 'https://www.digdir.no/kunstig-intelligens/kunstig-intelligens-i-offentlig-sektor/4276'; +export const PATHNAME_TRANSPORT = '/transport'; export const PARAGRAPH__BODY = 'paragraph--body'; export const PARAGRAPH__IMAGE = 'paragraph--image'; diff --git a/src/l10n/en.json b/src/l10n/en.json index 99c3f9049..92d4f5dbc 100644 --- a/src/l10n/en.json +++ b/src/l10n/en.json @@ -96,6 +96,7 @@ "requiredBy": "Required by", "relatedBy": "Related by", "collaborationBetween": "A collaboration between:", + "dateCreated": "Date created", "head": { "title": "National Data Catalog", "description": "The National Data Catalog – data.norge.no is the public website providing an overview of descriptions of datasets, concepts, APIs and information models. The content is supplied by various establishments, both public and private. The Digitalization Agency is responsible for the operation and development of the website." @@ -111,7 +112,8 @@ "generalizes": "Subordinate", "specializes": "Overall", "isPartOf": "Part of", - "hasPart": "Includes" + "hasPart": "Includes", + "memberOf": "Member of" }, "validity": { "validFromIncluding": "Valid from and including", @@ -706,7 +708,8 @@ "datasetReferences": "References to datasets", "informationModelReferences": "References to information models", "conceptReferences": "Related concepts ({conceptCount})", - "contactInformation": "Contact information" + "contactInformation": "Contact information", + "conceptInfo": "Concept information" }, "informationModel": { "description": "Description", diff --git a/src/l10n/nb.json b/src/l10n/nb.json index c40cf9ec3..f3de55c94 100644 --- a/src/l10n/nb.json +++ b/src/l10n/nb.json @@ -112,7 +112,8 @@ "generalizes": "Underordnet", "specializes": "Overordnet", "isPartOf": "Er en del av", - "hasPart": "Omfatter" + "hasPart": "Omfatter", + "memberOf": "Medlem av" }, "validity": { "validFromIncluding": "Gyldig fra og med", diff --git a/src/l10n/nn.json b/src/l10n/nn.json index 4a992a2ac..b1f098930 100644 --- a/src/l10n/nn.json +++ b/src/l10n/nn.json @@ -96,6 +96,7 @@ "requiredBy": "PÃ¥krevd av", "relatedBy": "Relatert av", "collaborationBetween": "Eit samarbeid mellom:", + "dateCreated": "Dato oppretta", "head": { "title": "Felles datakatalog", "description": "Felles datakatalog – data.norge.no er den offentlege nettstaden som gir oversikt over beskrivingar av datasett, omgrep, API-ar og informasjonsmodellar. Innhaldet blir levert av ulike verksemder, offentlege og private. Det er Digitaliseringsdirektoratet som er ansvarleg for drift og utvikling av nettstaden." @@ -111,7 +112,8 @@ "generalizes": "Underordna", "specializes": "Overordna", "isPartOf": "Er ein del av", - "hasPart": "Omfattar" + "hasPart": "Omfattar", + "memberOf": "Medlem av" }, "validity": { "validFromIncluding": "Gyldig frÃ¥ og med", @@ -682,7 +684,8 @@ "keywords": "Emneord", "qualifiedAttributions": "Innhaldsleverandørar", "restrictions": "Avgrensningar", - "contactInformation": "Kontaktinformasjon" + "contactInformation": "Kontaktinformasjon", + "conceptInfo": "Concept information" }, "dataService": { "description": "Beskriving", @@ -706,7 +709,8 @@ "datasetReferences": "Brukt i datasett", "informationModelReferences": "Brukt i informasjonsmodell", "conceptReferences": "Relaterte omgrep ({conceptCount})", - "contactInformation": "Kontaktinformasjon" + "contactInformation": "Kontaktinformasjon", + "conceptInfo": "Begrepsinformasjon" }, "informationModel": { "description": "Beskriving", diff --git a/src/lib/strapi/index.ts b/src/lib/strapi/index.ts index 665b5bc9e..34d2de23d 100644 --- a/src/lib/strapi/index.ts +++ b/src/lib/strapi/index.ts @@ -1,6 +1,7 @@ import { ComponentBasicImage, - ComponentBasicParagraph + ComponentBasicParagraph, + ComponentBasicYoutube } from '../../api/generated/cms/graphql'; export function isBasicParagraph(obj?: any): obj is ComponentBasicParagraph { @@ -10,3 +11,7 @@ export function isBasicParagraph(obj?: any): obj is ComponentBasicParagraph { export function isBasicImage(obj?: any): obj is ComponentBasicImage { return obj && obj?.__typename === 'ComponentBasicImage'; } + +export function isBasicYoutube(obj?: any): obj is ComponentBasicYoutube { + return obj && obj?.__typename === 'ComponentBasicYoutube'; +} diff --git a/src/pages/ai-project-page/index.tsx b/src/pages/ai-project-page/index.tsx index 14be4d580..84a5a9c88 100644 --- a/src/pages/ai-project-page/index.tsx +++ b/src/pages/ai-project-page/index.tsx @@ -4,7 +4,7 @@ import SvgIcon from '@fellesdatakatalog/icons'; import Button, { Variant } from '@fellesdatakatalog/button'; import Link from '@fellesdatakatalog/link'; import Spinner from '../../components/spinner'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; import Project from './components/project'; import localization from '../../lib/localization'; diff --git a/src/pages/cms-article-page/cms-article-page.ts b/src/pages/cms-article-page/cms-article-page.ts index 034b7b6f1..7cfe27ac1 100644 --- a/src/pages/cms-article-page/cms-article-page.ts +++ b/src/pages/cms-article-page/cms-article-page.ts @@ -2,7 +2,7 @@ import { compose } from 'redux'; import CmsArticlePagePure from './cms-article-page-pure'; import { cmsArticlePageResolver } from './cms-article-page-resolver'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; const enhance = compose(cmsArticlePageResolver, withErrorBoundary(ErrorPage)); diff --git a/src/pages/cms-information-page/index.tsx b/src/pages/cms-information-page/index.tsx index 4bd3fbad6..717f473d1 100644 --- a/src/pages/cms-information-page/index.tsx +++ b/src/pages/cms-information-page/index.tsx @@ -16,7 +16,7 @@ import { PATHNAME_ABOUT_INFORMATIONMODELS } from '../../constants/constants'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import { isBasicImage, isBasicParagraph } from '../../lib/strapi'; import Markdown from '../../components/markdown'; @@ -87,7 +87,9 @@ const InformationPage: FC = () => { Object.entries(articleIds).map((id, i) => i !== 0 ? useGetFancyArticleQuery({ - variables: { id: articleIds[id[0]] } + variables: { + id: articleIds[id[0]] + } }) : '' ); diff --git a/src/pages/cms-transport-page/index.tsx b/src/pages/cms-transport-page/index.tsx new file mode 100644 index 000000000..d4895a87f --- /dev/null +++ b/src/pages/cms-transport-page/index.tsx @@ -0,0 +1,148 @@ +import React, { FC, memo, useEffect, useState } from 'react'; +import { compose } from 'redux'; +import { RouteComponentProps, withRouter } from 'react-router-dom'; +import { ThemeProvider } from 'styled-components'; + +import { CircularProgress } from '@mui/material'; +import env from '../../env'; +import localization from '../../lib/localization'; + +import { useGetTransportArticleQuery } from '../../api/generated/cms/graphql'; + +import { PATHNAME_TRANSPORT } from '../../constants/constants'; + +import ErrorPage from '../error-page'; + +import { + isBasicImage, + isBasicParagraph, + isBasicYoutube +} from '../../lib/strapi'; +import Markdown from '../../components/markdown'; +import { themeNAP } from '../../app/theme'; + +import SC from './styled'; +import YoutubeEmbed from '../../components/youtube-embed'; + +interface Props extends RouteComponentProps {} + +const { FDK_CMS_BASE_URI } = env; + +const articleIds: { [pathname: string]: string } = { + [PATHNAME_TRANSPORT]: '3' +}; + +const InformationPage: FC = () => { + const [navOpen, setNavOpen] = useState(false); + const [isSticky, setSticky] = useState(false); + + const handleScroll = () => { + const currentScrollPos = window.pageYOffset; + currentScrollPos > 300 ? setSticky(true) : setSticky(false); + }; + + function debounce(fn: any, delay: any) { + return function deb() { + clearTimeout(fn._tId); + fn._tId = setTimeout(() => { + fn(); + }, delay); + }; + } + + useEffect(() => { + window.addEventListener('scroll', debounce(handleScroll, 50)); + return () => { + window.removeEventListener('scroll', () => handleScroll); + }; + }, [debounce, handleScroll]); + + const { data, loading, error } = useGetTransportArticleQuery({ + variables: { + id: articleIds[location.pathname] + } + }); + + const page = () => { + if (loading) { + return ( + + + + ); + } + + if (error?.name !== undefined || !data || !data.transportArticle) { + return ; + } + + const { + transportArticle: { data: transportArticleEntity } + } = data; + + const transportArticle = transportArticleEntity?.attributes; + + return ( + transportArticle && ( + + {transportArticle.title} + {transportArticle.subtitle} + {transportArticle.Content?.map( + component => + (isBasicParagraph(component) && ( + + {component?.Content ?? ''} + + )) || + (isBasicImage(component) && ( + + + {component?.media?.data?.attributes?.caption && ( + + {localization.informationPage.imageText} + {component?.media?.data?.attributes?.caption} + + )} + + )) || + (isBasicYoutube(component) && ( + + )) + )} + + ) + ); + }; + + const menuItems = [ + { + id: PATHNAME_TRANSPORT, + title: 'Transport' + } + ]; + + return ( + + + + setNavOpen(!navOpen)}> + + { + localization.detailsPage.navMenuButton[ + navOpen ? 'open' : 'closed' + ] + } + + + {navOpen && } + + {page()} + + + ); +}; + +export default compose>(memo, withRouter)(InformationPage); diff --git a/src/pages/cms-transport-page/styled.ts b/src/pages/cms-transport-page/styled.ts new file mode 100644 index 000000000..7af7bf2b2 --- /dev/null +++ b/src/pages/cms-transport-page/styled.ts @@ -0,0 +1,171 @@ +import styled from 'styled-components'; + +import { Colour, theme, Unit } from '@fellesdatakatalog/theme'; +import { Backdrop as MuiBackdrop } from '@mui/material'; +import SideMenuBase from '../../components/side-menu'; + +import HamburgerIconBase from '../../images/hamburger-menu-stroke.svg'; + +const onMobileView = '@media (max-width: 900px)'; +const customBreakingPoint = '@media (max-width: 992px)'; + +const InformationPage = styled.article` + background-color: ${({ theme: t }) => t.lighter}; + display: flex; + gap: ${theme.spacing('S16', Unit.EM)}; + word-break: break-word; + + ${customBreakingPoint} { + && { + max-width: fit-content; + } + } + + ${onMobileView} { + flex-direction: column; + } +`; + +const Aside = styled.aside` + display: flex; + flex: 0 0 20%; + flex-direction: column; + + ${onMobileView} { + flex: 1; + } +`; + +const Article = styled.main` + display: flex; + flex-direction: column; + gap: ${theme.spacing('S10')}; + z-index: 5; +`; + +const Title = styled.h1` + font-size: ${theme.fontSize('FS48', Unit.REM)}; + font-weight: ${theme.fontWeight('FW700')}; + padding-left: 0; +`; + +const Description = styled.p` + font-size: ${theme.fontSize('FS20')}; +`; + +const Content = styled.p` + & > div { + & > h2 { + font-size: ${theme.fontSize('FS32', Unit.REM)}; + font-weight: ${theme.fontWeight('FW700')}; + padding: ${theme.spacing('S6')}; + padding-left: 0; + margin-bottom: ${theme.spacing('S10', Unit.EM)}; + margin-top: ${theme.spacing('S48')}; + } + } + + & a { + text-decoration: underline; + } +`; + +const ImageWrapper = styled.div` + margin-bottom: ${theme.spacing('S16')}; +`; + +const Image = styled.img` + max-width: 100%; +`; + +const ImageText = styled.span` + font-size: ${theme.fontSize('FS14', Unit.REM)}; +`; + +const SideMenu = styled(SideMenuBase)` + min-width: 180px; + ${onMobileView} { + display: none; + width: auto; + margin-right: 0; + } +`; + +const SideMenuSmall = styled(SideMenuBase)` + display: none; + ${onMobileView} { + display: flex; + flex: 1; + ul { + flex: 1; + li { + background-color: ${({ theme: t }) => t.extendedColors.neutralLighter}; + border-radius: 5px; + margin-top: 2px; + margin-bottom: 2px; + + a { + background-color: transparent !important; + color: ${({ theme: t }) => t.dark}; + margin-left: 20px; + &.active { + color: ${({ theme: t }) => t.dark} !important; + } + } + } + } + } +`; + +const MenuToggle = styled.button` + display: none; + color: ${({ theme: t }) => t.dark}; + + ${onMobileView} { + display: flex; + justify-content: center; + align-items: center; + padding: 13px; + border-radius: 5px; + font-size: ${theme.fontSize('FS16', Unit.REM)}; + border: none; + background-color: ${({ theme: t }) => t.light}; + } + + &:hover { + color: ${({ theme: t }) => t.darker}; + } + + &:active { + background: black; + color: ${({ theme: t }) => t.lighter}; + } +`; + +const Backdrop = styled(MuiBackdrop)` + color: ${theme.colour(Colour.NEUTRAL, 'N0')}; + z-index: ${theme.colour(Colour.NEUTRAL, 'N0')} + 1; +`; + +const HamburgerIcon = styled(HamburgerIconBase)` + width: 20px; + height: 20px; + margin-right: 0.5em; +`; + +export default { + InformationPage, + Aside, + Article, + Title, + Description, + Content, + ImageWrapper, + Image, + ImageText, + SideMenu, + SideMenuSmall, + MenuToggle, + Backdrop, + HamburgerIcon +}; diff --git a/src/pages/concept-compare-page/connected-concept-compare-page.jsx b/src/pages/concept-compare-page/connected-concept-compare-page.jsx index 216506072..36649a137 100644 --- a/src/pages/concept-compare-page/connected-concept-compare-page.jsx +++ b/src/pages/concept-compare-page/connected-concept-compare-page.jsx @@ -6,7 +6,7 @@ import { removeConceptAction } from '../../redux/modules/conceptsCompare'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; import { ConceptComparePage } from './concept-compare-page'; diff --git a/src/pages/concept-details-page/ContactPoint/index.tsx b/src/pages/concept-details-page/ContactPoint/index.tsx new file mode 100644 index 000000000..75d2f7abf --- /dev/null +++ b/src/pages/concept-details-page/ContactPoint/index.tsx @@ -0,0 +1,44 @@ +import React from 'react'; +import { + ContentSection, + KeyValueList, + KeyValueListItem +} from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import { ConceptContactPoint } from '../../../types'; + +interface Props { + contactPoint: Partial; +} + +const ContactPoint = ({ contactPoint }: Props) => ( + + + {contactPoint.email && ( + + {contactPoint.email} + + } + /> + )} + {contactPoint.telephone && ( + + )} + + +); + +export default ContactPoint; diff --git a/src/pages/concept-details-page/Created/index.tsx b/src/pages/concept-details-page/Created/index.tsx new file mode 100644 index 000000000..a01f9e267 --- /dev/null +++ b/src/pages/concept-details-page/Created/index.tsx @@ -0,0 +1,31 @@ +import React from 'react'; +import { + ContentSection, + KeyValueList, + KeyValueListItem +} from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import { formatISO } from '../../../utils/date'; + +interface Props { + created: string; +} + +const Created = ({ created }: Props) => ( + + {created && ( + + + + )} + +); + +export default Created; diff --git a/src/pages/concept-details-page/Description/index.tsx b/src/pages/concept-details-page/Description/index.tsx new file mode 100644 index 000000000..b3d347987 --- /dev/null +++ b/src/pages/concept-details-page/Description/index.tsx @@ -0,0 +1,70 @@ +import React from 'react'; +import Link from '@fellesdatakatalog/link'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import MultiLingualField from '../../../components/multilingual-field'; +import SC from './styled'; +import { getTranslateText as translate } from '../../../lib/translateText'; +import { Language } from '../../../types/domain'; + +interface Props { + description: Record; + selectedLanguages: Language[] | []; + sources: Array<{ text?: string; uri?: string }>; + sourceRelationship: string | undefined; +} + +const Description = ({ + description, + sources, + sourceRelationship, + selectedLanguages +}: Props) => { + const renderSources = () => { + if (sourceRelationship === 'egendefinert') { + return `${translations.compare.source}: ${translations.sourceRelationship[sourceRelationship]}`; + } + + return sources?.length ? ( + <> + + {`${translations.compare.source}: ${ + sourceRelationship + ? translations.sourceRelationship[sourceRelationship] + : '' + }`} + + {sources.map(({ text, uri }, index) => ( + + {index > 0 && ','} +   + {uri ? ( + + {translate(text) || uri} + + ) : ( + translate(text) + )} + + ))} + + ) : null; + }; + + return ( + + + {renderSources()} + + ); +}; + +export default Description; diff --git a/src/components/concept-details-page/styled.ts b/src/pages/concept-details-page/Description/styled.ts similarity index 100% rename from src/components/concept-details-page/styled.ts rename to src/pages/concept-details-page/Description/styled.ts diff --git a/src/pages/concept-details-page/Example/index.tsx b/src/pages/concept-details-page/Example/index.tsx new file mode 100644 index 000000000..47d0e72d8 --- /dev/null +++ b/src/pages/concept-details-page/Example/index.tsx @@ -0,0 +1,21 @@ +import React from 'react'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import MultiLingualField from '../../../components/multilingual-field'; +import { Language, TextLanguage } from '../../../types'; + +interface Props { + example: Partial; + selectedLanguages: Language[]; +} + +const Example = ({ example, selectedLanguages }: Props) => ( + + + +); + +export default Example; diff --git a/src/pages/concept-details-page/Identifier/index.tsx b/src/pages/concept-details-page/Identifier/index.tsx new file mode 100644 index 000000000..84b7dc631 --- /dev/null +++ b/src/pages/concept-details-page/Identifier/index.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; + +interface Props { + identifier: string; +} + +const Identifier = ({ identifier }: Props) => ( + + {identifier} + +); + +export default Identifier; diff --git a/src/pages/concept-details-page/Range/index.tsx b/src/pages/concept-details-page/Range/index.tsx new file mode 100644 index 000000000..dea4f3387 --- /dev/null +++ b/src/pages/concept-details-page/Range/index.tsx @@ -0,0 +1,22 @@ +import React from 'react'; +import Link from '@fellesdatakatalog/link'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; + +interface Props { + range: string; + rangeUri: string; +} + +const Range = ({ range, rangeUri }: Props) => ( + + + {range} + + +); + +export default Range; diff --git a/src/pages/concept-details-page/RelatedConcepts/AssociativeRelations/index.tsx b/src/pages/concept-details-page/RelatedConcepts/AssociativeRelations/index.tsx new file mode 100644 index 000000000..1b90b282d --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/AssociativeRelations/index.tsx @@ -0,0 +1,52 @@ +import Link from '@fellesdatakatalog/link'; +import { Link as RouteLink } from 'react-router-dom'; +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; +import { getTranslateText as translate } from '../../../../lib/translateText'; +import { PATHNAME_CONCEPTS } from '../../../../constants/constants'; +import { AssociativeRelation } from '../../../../types'; + +interface Props { + associativeRelations: Partial[]; + conceptReferencesMap: Record; +} + +const AssociativeRelations = ({ + associativeRelations, + conceptReferencesMap +}: Props) => ( + <> + {associativeRelations.map( + ({ description: associativeDescription, related = '' }) => + conceptReferencesMap?.[related] && ( + +
+ + {translations.conceptReferences.associative} + .  + +
+
+ {translate(associativeDescription)} +
+ + } + value={ + + {translate(conceptReferencesMap[related].prefLabel)} + + } + /> + ) + )} + +); + +export default AssociativeRelations; diff --git a/src/pages/concept-details-page/RelatedConcepts/GenericRelations/index.tsx b/src/pages/concept-details-page/RelatedConcepts/GenericRelations/index.tsx new file mode 100644 index 000000000..8b27c7de4 --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/GenericRelations/index.tsx @@ -0,0 +1,57 @@ +import Link from '@fellesdatakatalog/link'; +import { Link as RouteLink } from 'react-router-dom'; +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; +import { getTranslateText as translate } from '../../../../lib/translateText'; +import { PATHNAME_CONCEPTS } from '../../../../constants/constants'; +import { GenericRelation } from '../../../../types'; + +interface Props { + genericRelations: Partial[]; + conceptReferencesMap: Record; +} + +const GenericRelations = ({ + genericRelations, + conceptReferencesMap +}: Props) => ( + <> + {genericRelations.map(({ divisioncriterion, generalizes, specializes }) => { + const conceptReferenceUri = generalizes ?? specializes ?? ''; + return ( + conceptReferencesMap?.[conceptReferenceUri] && ( + +
+ + {translations.conceptReferences.generic} + .  + {generalizes + ? translations.conceptReferences.generalizes + : translations.conceptReferences.specializes} + +
+
+ {translate(divisioncriterion)} +
+ + } + value={ + + {translate(conceptReferencesMap[conceptReferenceUri].prefLabel)} + + } + /> + ) + ); + })} + +); + +export default GenericRelations; diff --git a/src/pages/concept-details-page/RelatedConcepts/IsReplacedBy/index.tsx b/src/pages/concept-details-page/RelatedConcepts/IsReplacedBy/index.tsx new file mode 100644 index 000000000..d35576141 --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/IsReplacedBy/index.tsx @@ -0,0 +1,45 @@ +import Link from '@fellesdatakatalog/link'; +import { Link as RouteLink } from 'react-router-dom'; +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; +import { getTranslateText as translate } from '../../../../lib/translateText'; +import { PATHNAME_CONCEPTS } from '../../../../constants/constants'; +import { TextLanguage } from '../../../../types'; + +interface Props { + title: Partial; + isReplacedBy: string[]; + conceptReferencesMap: Record; +} + +const IsReplacedBy = ({ title, isReplacedBy, conceptReferencesMap }: Props) => ( + <> + {isReplacedBy.map(uri => + conceptReferencesMap?.[uri] ? ( + + {translate(conceptReferencesMap[uri].prefLabel)} + + } + value={`${translations.conceptReferences.isReplacedBy} ${translate( + title + )}`} + /> + ) : ( + + ) + )} + +); + +export default IsReplacedBy; diff --git a/src/pages/concept-details-page/RelatedConcepts/MemberOf/index.tsx b/src/pages/concept-details-page/RelatedConcepts/MemberOf/index.tsx new file mode 100644 index 000000000..29dda71f8 --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/MemberOf/index.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; + +interface Props { + memberOf: string[]; +} + +const MemberOf = ({ memberOf }: Props) => ( + ( +

{uri}

+ ))} + /> +); + +export default MemberOf; diff --git a/src/pages/concept-details-page/RelatedConcepts/PartitiveRelations/index.tsx b/src/pages/concept-details-page/RelatedConcepts/PartitiveRelations/index.tsx new file mode 100644 index 000000000..95e948a7f --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/PartitiveRelations/index.tsx @@ -0,0 +1,61 @@ +import Link from '@fellesdatakatalog/link'; +import { Link as RouteLink } from 'react-router-dom'; +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; +import { getTranslateText as translate } from '../../../../lib/translateText'; +import { PATHNAME_CONCEPTS } from '../../../../constants/constants'; +import { PartitiveRelation } from '../../../../types'; + +interface Props { + partitiveRelations: Partial[]; + conceptReferencesMap: Record; +} + +const PartitiveRelations = ({ + partitiveRelations, + conceptReferencesMap +}: Props) => ( + <> + {partitiveRelations.map( + ({ description: partitiveDescription, hasPart, isPartOf }) => { + const conceptReferenceUri = hasPart ?? isPartOf ?? ''; + return ( + conceptReferencesMap?.[conceptReferenceUri] && ( + +
+ + {translations.conceptReferences.partitive} + .  + {isPartOf + ? translations.conceptReferences.isPartOf + : translations.conceptReferences.hasPart} + +
+
+ {translate(partitiveDescription)} +
+ + } + value={ + + {translate( + conceptReferencesMap[conceptReferenceUri].prefLabel + )} + + } + /> + ) + ); + } + )} + +); + +export default PartitiveRelations; diff --git a/src/pages/concept-details-page/RelatedConcepts/SeeAlso/index.tsx b/src/pages/concept-details-page/RelatedConcepts/SeeAlso/index.tsx new file mode 100644 index 000000000..cb825e0da --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/SeeAlso/index.tsx @@ -0,0 +1,65 @@ +import Link from '@fellesdatakatalog/link'; +import { Link as RouteLink } from 'react-router-dom'; +import React from 'react'; +import { KeyValueListItem } from '../../../../components/details-page'; +import translations from '../../../../lib/localization'; +import { getTranslateText as translate } from '../../../../lib/translateText'; +import { PATHNAME_CONCEPTS } from '../../../../constants/constants'; +import { + dateStringToDate, + formatDate, + isDateAfterToday, + isDateBeforeToday +} from '../../../../lib/date-utils'; + +interface Props { + seeAlso: string[]; + validToIncluding: string | undefined; + validFromIncluding: string | undefined; + conceptReferencesMap: Record; +} + +const SeeAlso = ({ + seeAlso, + conceptReferencesMap, + validFromIncluding, + validToIncluding +}: Props) => ( + <> + {seeAlso.map(uri => { + const hasExpired = isDateBeforeToday( + dateStringToDate(formatDate(dateStringToDate(validToIncluding))) + ); + const willBeValid = isDateAfterToday( + dateStringToDate(formatDate(dateStringToDate(validFromIncluding))) + ); + + return conceptReferencesMap?.[uri] ? ( + + {translate(conceptReferencesMap[uri].prefLabel)} + {hasExpired && <> ({translations.validity.expired})} + {!hasExpired && willBeValid && ( + <> ({translations.validity.willBeValid}) + )} + + } + /> + ) : ( + + ); + })} + +); + +export default SeeAlso; diff --git a/src/pages/concept-details-page/RelatedConcepts/index.tsx b/src/pages/concept-details-page/RelatedConcepts/index.tsx new file mode 100644 index 000000000..31b677d13 --- /dev/null +++ b/src/pages/concept-details-page/RelatedConcepts/index.tsx @@ -0,0 +1,152 @@ +import React, { useEffect } from 'react'; +import { ContentSection, KeyValueList } from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import { Entity } from '../../../types/enums'; +import { Concept } from '../../../types'; +import AssociativeRelations from './AssociativeRelations'; +import PartitiveRelations from './PartitiveRelations'; +import GenericRelations from './GenericRelations'; +import SeeAlso from './SeeAlso'; +import IsReplacedBy from './IsReplacedBy'; +import MemberOf from './MemberOf'; + +interface Props { + concept: Concept | null; + conceptReferences: Concept[]; + getConcepts: (params: any) => void; + getConceptsRelations: (params: any) => void; + getDatasetsRelations: (params: any) => void; + getInformationmodelsRelations: (params: any) => void; + getPublicServicesRelations: (params: any) => void; +} + +const RelatedConcepts = ({ + concept, + conceptReferences, + getConcepts, + getConceptsRelations, + getDatasetsRelations, + getPublicServicesRelations, + getInformationmodelsRelations +}: Props) => { + const title = concept?.prefLabel ?? {}; + const associativeRelations = concept?.associativeRelation ?? []; + const partitiveRelations = concept?.partitiveRelation ?? []; + const genericRelations = concept?.genericRelation ?? []; + const isReplacedBy = concept?.isReplacedBy ?? []; + const memberOf = concept?.memberOf ?? []; + const seeAlso = concept?.seeAlso ?? []; + + const conceptReferencesMap = conceptReferences?.reduce( + (previous, current) => ({ ...previous, [current.identifier]: current }), + {} as Record + ); + + const associativeRelationsUris: string[] = associativeRelations?.map( + ({ related }) => related ?? '' + ); + + const partitiveRelationsUris: string[] = partitiveRelations?.map( + ({ isPartOf, hasPart }) => isPartOf ?? hasPart ?? '' + ); + + const genericRelationsUris: string[] = genericRelations?.map( + ({ generalizes, specializes }) => generalizes ?? specializes ?? '' + ); + + useEffect(() => { + if (concept?.identifier) { + if ( + (Array.isArray(concept?.seeAlso) && concept?.seeAlso.length > 0) || + (Array.isArray(associativeRelationsUris) && + associativeRelationsUris.length > 0) || + (Array.isArray(partitiveRelationsUris) && + partitiveRelationsUris.length > 0) || + (Array.isArray(genericRelationsUris) && + genericRelationsUris.length > 0) || + (Array.isArray(isReplacedBy) && isReplacedBy.length > 0) || + (Array.isArray(concept?.memberOf) && concept?.memberOf.length > 0) + ) { + getConcepts({ + identifiers: [ + ...(concept?.seeAlso ?? []), + ...associativeRelationsUris, + ...partitiveRelationsUris, + ...genericRelationsUris, + ...isReplacedBy + ], + size: 1000 + }); + } + + getConceptsRelations({ seeAlso: concept.identifier }); + getDatasetsRelations({ subject: concept.identifier }); + getInformationmodelsRelations({ + conceptIdentifiers: [concept.identifier] + }); + getPublicServicesRelations({ isClassifiedBy: concept.identifier }); + } + }, [concept?.identifier]); + + return ( + + + {associativeRelations.length > 0 && ( + + )} + {partitiveRelations.length > 0 && ( + + )} + {genericRelations.length > 0 && ( + + )} + {seeAlso.length > 0 && ( + + )} + {isReplacedBy.length > 0 && ( + + )} + {memberOf.length > 0 && } + + + ); +}; + +export default RelatedConcepts; diff --git a/src/pages/concept-details-page/RelationsList/index.tsx b/src/pages/concept-details-page/RelationsList/index.tsx new file mode 100644 index 000000000..fc203fc19 --- /dev/null +++ b/src/pages/concept-details-page/RelationsList/index.tsx @@ -0,0 +1,51 @@ +import React from 'react'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import RelationList, { + ItemWithRelationType +} from '../../../components/relation-list'; +import { + Concept, + Dataset, + InformationModel, + PublicService +} from '../../../types'; + +interface Props { + identifier: string | undefined; + conceptsRelations: Concept[]; + datasetsRelations: Dataset[]; + publicServicesRelations: PublicService[]; + informationModelsRelations: InformationModel[]; +} + +const RelationsList = ({ + identifier, + conceptsRelations, + datasetsRelations, + publicServicesRelations, + informationModelsRelations +}: Props) => { + const publicServicesRelationsWithRelationType: ItemWithRelationType[] = + publicServicesRelations.map(relation => ({ + relation, + relationType: translations.sampleData + })); + + return ( + + + + ); +}; + +export default RelationsList; diff --git a/src/pages/concept-details-page/Remark/index.tsx b/src/pages/concept-details-page/Remark/index.tsx new file mode 100644 index 000000000..abf451da2 --- /dev/null +++ b/src/pages/concept-details-page/Remark/index.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import { ContentSection } from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import MultiLingualField from '../../../components/multilingual-field'; +import { Language, TextLanguage } from '../../../types'; + +interface Props { + remark: Partial; + selectedLanguages: Language[]; +} + +const Remark = ({ remark, selectedLanguages }: Props) => ( + + + +); + +export default Remark; diff --git a/src/pages/concept-details-page/SubjectAndApplication/index.tsx b/src/pages/concept-details-page/SubjectAndApplication/index.tsx new file mode 100644 index 000000000..1dab991cf --- /dev/null +++ b/src/pages/concept-details-page/SubjectAndApplication/index.tsx @@ -0,0 +1,60 @@ +import React from 'react'; +import { + ContentSection, + KeyValueList, + KeyValueListItem +} from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import MultiLingualField from '../../../components/multilingual-field'; +import { Language, TextLanguage } from '../../../types'; +import { languageSorter } from '../../../lib/languageSorter'; + +interface Props { + applications: Partial[]; + subjectLabels: Partial[]; + hasFieldSelectedLanguage: (field: Partial[]) => boolean; + selectedLanguages: Language[]; +} + +const SubjectAndApplication = ({ + subjectLabels, + hasFieldSelectedLanguage, + selectedLanguages, + applications +}: Props) => ( + + + {subjectLabels && hasFieldSelectedLanguage(subjectLabels) && ( + ( + + ))} + /> + )} + {applications.length > 0 && hasFieldSelectedLanguage(applications) && ( + ( + + ))} + /> + )} + + +); + +export default SubjectAndApplication; diff --git a/src/pages/concept-details-page/Terms/index.tsx b/src/pages/concept-details-page/Terms/index.tsx new file mode 100644 index 000000000..7d242981f --- /dev/null +++ b/src/pages/concept-details-page/Terms/index.tsx @@ -0,0 +1,60 @@ +import React from 'react'; +import { + ContentSection, + KeyValueList, + KeyValueListItem +} from '../../../components/details-page'; +import translations from '../../../lib/localization'; +import MultiLingualField from '../../../components/multilingual-field'; +import { Language, TextLanguage } from '../../../types'; +import { languageSorter } from '../../../lib/languageSorter'; + +interface Props { + altLabels: Partial[]; + hiddenLabels: Partial[]; + hasFieldSelectedLanguage: (field: Partial[]) => boolean; + selectedLanguages: Language[]; +} + +const Terms = ({ + hasFieldSelectedLanguage, + selectedLanguages, + altLabels, + hiddenLabels +}: Props) => ( + + + {hasFieldSelectedLanguage(altLabels) && ( + ( + + ))} + /> + )} + {hasFieldSelectedLanguage(hiddenLabels) && ( + ( + + ))} + /> + )} + + +); + +export default Terms; diff --git a/src/pages/concept-details-page/Validity/index.tsx b/src/pages/concept-details-page/Validity/index.tsx new file mode 100644 index 000000000..386f8c39f --- /dev/null +++ b/src/pages/concept-details-page/Validity/index.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { + ContentSection, + KeyValueList, + KeyValueListItem +} from '../../../components/details-page'; +import translations from '../../../lib/localization'; + +interface Props { + validFromIncluding: string; + validToIncluding: string; +} + +const Validity = ({ validFromIncluding, validToIncluding }: Props) => ( + + + {(validFromIncluding || validToIncluding) && ( + + )} + + +); + +export default Validity; diff --git a/src/pages/concept-details-page/index.tsx b/src/pages/concept-details-page/index.tsx new file mode 100755 index 000000000..7adab6a09 --- /dev/null +++ b/src/pages/concept-details-page/index.tsx @@ -0,0 +1,314 @@ +import type { FC } from 'react'; +import React, { memo, useState, useEffect } from 'react'; +import { compose } from 'redux'; +import type { RouteComponentProps } from 'react-router-dom'; +import { ThemeProvider } from 'styled-components'; +import translations from '../../lib/localization'; +import { dateStringToDate, formatDate } from '../../lib/date-utils'; +import { getTranslateText as translate } from '../../lib/translateText'; +import { deepKeys } from '../../lib/deep-keys'; +import { themeFDK } from '../../app/theme'; + +import type { Props as ConceptProps } from '../../components/with-concept'; +import withConcept from '../../components/with-concept'; +import type { Props as DatasetsProps } from '../../components/with-datasets'; +import withDatasets from '../../components/with-datasets'; +import type { Props as InformationModelsProps } from '../../components/with-information-models'; +import withInformationModels from '../../components/with-information-models'; +import type { Props as ConceptsProps } from '../../components/with-concepts'; +import withConcepts from '../../components/with-concepts'; +import type { Props as PublicServicesProps } from '../../components/with-public-services'; +import withPublicServices from '../../components/with-public-services'; +import withErrorBoundary from '../../components/with-error-boundary'; + +import DetailsPage from '../../components/details-page'; +import ErrorPage from '../error-page'; + +import type { Theme, Language, TextLanguage } from '../../types'; +import { Entity } from '../../types/enums'; +import RelatedConcepts from './RelatedConcepts'; +import ContactPoint from './ContactPoint'; +import Created from './Created'; +import Description from './Description'; +import Validity from './Validity'; +import Remark from './Remark'; +import Terms from './Terms'; +import Example from './Example'; +import SubjectAndApplication from './SubjectAndApplication'; +import Range from './Range'; +import Identifier from './Identifier'; +import RelationsList from './RelationsList'; + +interface RouteParams { + conceptId: string; +} + +interface Props + extends ConceptProps, + DatasetsProps, + InformationModelsProps, + ConceptsProps, + PublicServicesProps, + RouteComponentProps {} + +const ConceptDetailsPage: FC = ({ + concept, + concepts: conceptReferences, + isLoadingConcept, + datasetsRelations, + publicServicesRelations, + conceptsRelations, + informationModelsRelations, + conceptActions: { getConceptRequested: getConcept }, + conceptsActions: { + getConceptsRequested: getConcepts, + getConceptsRelationsRequested: getConceptsRelations, + resetConcepts, + resetConceptsRelations + }, + datasetsActions: { + getDatasetsRelationsRequested: getDatasetsRelations, + resetDatasetsRelations + }, + informationModelsActions: { + getInformationModelsRelationsRequested: getInformationmodelsRelations, + resetInformationModelsRelations + }, + publicServicesActions: { + getPublicServicesRelationsRequested: getPublicServicesRelations, + resetPublicServicesRelations + }, + match: { + params: { conceptId } + } +}) => { + const [isMounted, setIsMounted] = useState(false); + + const [selectedLanguages, setSelectedLanguages] = useState([ + { code: 'nb' }, + { code: 'nn' }, + { code: 'en' } + ]); + + const renderPage = isLoadingConcept || !isMounted || concept !== null; + + const entity = Entity.CONCEPT; + const theme = { entityColours: themeFDK.extendedColors[entity] }; + + useEffect(() => { + if (concept?.id !== conceptId) { + getConcept(conceptId); + } + + setIsMounted(true); + + return function cleanup() { + setIsMounted(false); + setSelectedLanguages([{ code: 'nb' }, { code: 'nn' }, { code: 'en' }]); + resetConcepts(); + resetConceptsRelations(); + resetDatasetsRelations(); + resetInformationModelsRelations(); + resetPublicServicesRelations(); + }; + }, [conceptId]); + + const translatableFields = [ + 'prefLabel', + 'altLabel', + 'hiddenLabel', + 'definition', + 'example', + 'subject', + 'application' + ]; + + const getUsedLanguages = () => + concept + ? [ + ...new Set( + deepKeys( + Object.fromEntries( + Object.entries(concept).filter(([key]) => + translatableFields.includes(key) + ) + ), + (__: any, v: string) => !!v + ).filter(key => ['nb', 'nn', 'no', 'en'].includes(key)) + ) + ] + : []; + + const hasFieldSelectedLanguage = (field: Partial[]): boolean => + field?.length > 0 + ? Object.keys( + field.reduce((result, obj) => Object.assign(result, obj), {}) + ).some(label => + selectedLanguages + .filter(({ selected }) => selected) + .map(({ code }: Language) => code) + .includes(label) + ) + : false; + + useEffect(() => { + const usedLanguages: string[] = getUsedLanguages(); + if (usedLanguages.length > 0) { + const languages: Language[] = [...new Set(selectedLanguages)].map( + language => ({ + ...language, + selected: usedLanguages.includes(language.code), + disabled: !usedLanguages.includes(language.code) + }) + ); + setSelectedLanguages(languages); + } + }, [concept, translations.getLanguage()]); + + const entityId = concept?.id; + const entityUri = concept?.uri; + const identifier = concept?.identifier; + const publisher = concept?.publisher; + const title = concept?.prefLabel ?? {}; + const description = concept?.definition?.text; + const sourceRelationship = concept?.definition?.sourceRelationship; + const sources = concept?.definition?.sources ?? []; + const remark = concept?.definition?.remark; + const altLabels = concept?.altLabel ?? []; + const hiddenLabels = concept?.hiddenLabel ?? []; + const example = concept?.example; + const subjectLabels = + concept?.subject + ?.map(s => s.label) + ?.filter((element): element is Partial => !!element) ?? []; + const applications = concept?.application ?? []; + const range = translate(concept?.definition?.range?.text); + const rangeUri = concept?.definition?.range?.uri; + const lastPublished = formatDate( + dateStringToDate(concept?.harvest?.firstHarvested) + ); + const validFromIncluding = formatDate( + dateStringToDate(concept?.validFromIncluding) + ); + const validToIncluding = formatDate( + dateStringToDate(concept?.validToIncluding) + ); + const contactPoint = concept?.contactPoint; + + const themes: Theme[] = []; + const created = concept?.created ?? ''; + const hasRelatedConcepts = + concept?.associativeRelation || + concept?.partitiveRelation || + concept?.genericRelation || + concept?.isReplacedBy || + concept?.memberOf || + concept?.seeAlso; + const hasRelationsList = + conceptsRelations.length > 0 || + datasetsRelations.length > 0 || + publicServicesRelations.length > 0 || + informationModelsRelations.length > 0; + const hasSubjectAndApplication = + (subjectLabels.length > 0 && hasFieldSelectedLanguage(subjectLabels)) || + hasFieldSelectedLanguage(applications); + const hasValidity = validFromIncluding || validToIncluding; + const hasTerms = + hasFieldSelectedLanguage(altLabels) || + (hiddenLabels.length > 0 && hasFieldSelectedLanguage(hiddenLabels)); + + return renderPage ? ( + + + {created && } + {description && ( + + )} + {hasValidity && ( + + )} + {remark && ( + + )} + {hasTerms && ( + + )} + {example && ( + + )} + {hasSubjectAndApplication && ( + + )} + {range && } + {identifier && } + {hasRelatedConcepts && ( + + )} + {hasRelationsList && ( + + )} + {(contactPoint?.email || contactPoint?.telephone) && ( + + )} + + + ) : ( + + ); +}; + +export default compose( + memo, + withConcept, + withDatasets, + withInformationModels, + withConcepts, + withPublicServices, + withErrorBoundary(ErrorPage) +)(ConceptDetailsPage); diff --git a/src/components/data-service-details-page/index.tsx b/src/pages/data-service-details-page/index.tsx similarity index 96% rename from src/components/data-service-details-page/index.tsx rename to src/pages/data-service-details-page/index.tsx index fe060b676..db89c00ea 100755 --- a/src/components/data-service-details-page/index.tsx +++ b/src/pages/data-service-details-page/index.tsx @@ -17,30 +17,32 @@ import { themeFDK } from '../../app/theme'; import withDataService, { Props as DataServiceProps -} from '../with-data-service'; +} from '../../components/with-data-service'; import withReferenceData, { Props as ReferenceDataProps -} from '../with-reference-data'; -import withDatasets, { Props as DatasetsProps } from '../with-datasets'; +} from '../../components/with-reference-data'; +import withDatasets, { + Props as DatasetsProps +} from '../../components/with-datasets'; import withInformationModels, { Props as InformationModelsProps -} from '../with-information-models'; -import withErrorBoundary from '../with-error-boundary'; +} from '../../components/with-information-models'; +import withErrorBoundary from '../../components/with-error-boundary'; import DetailsPage, { ContentSection, KeyValueList, KeyValueListItem, InlineList -} from '../details-page'; +} from '../../components/details-page'; import ErrorPage from '../error-page'; -import RelationList from '../relation-list'; +import RelationList from '../../components/relation-list'; import SC from './styled'; import type { Theme } from '../../types'; import { Entity } from '../../types/enums'; -import Markdown from '../markdown'; +import Markdown from '../../components/markdown'; interface RouteParams { dataServiceId: string; diff --git a/src/components/data-service-details-page/styled.ts b/src/pages/data-service-details-page/styled.ts similarity index 100% rename from src/components/data-service-details-page/styled.ts rename to src/pages/data-service-details-page/styled.ts diff --git a/src/components/dataset-details-page/index.tsx b/src/pages/dataset-details-page/index.tsx similarity index 97% rename from src/components/dataset-details-page/index.tsx rename to src/pages/dataset-details-page/index.tsx index 3fafee95e..9f103d889 100755 --- a/src/components/dataset-details-page/index.tsx +++ b/src/pages/dataset-details-page/index.tsx @@ -22,41 +22,51 @@ import { import { themeFDK, themeNAP } from '../../app/theme'; -import withDataset, { Props as DatasetProps } from '../with-dataset'; +import withDataset, { + Props as DatasetProps +} from '../../components/with-dataset'; import withReferenceData, { Props as ReferenceDataProps -} from '../with-reference-data'; -import withConcepts, { Props as ConceptsProps } from '../with-concepts'; -import withDatasets, { Props as DatasetsProps } from '../with-datasets'; +} from '../../components/with-reference-data'; +import withConcepts, { + Props as ConceptsProps +} from '../../components/with-concepts'; +import withDatasets, { + Props as DatasetsProps +} from '../../components/with-datasets'; import withPublicServices, { Props as PublicServicesProps -} from '../with-public-services'; +} from '../../components/with-public-services'; import withDataServices, { Props as DataServicesProps -} from '../with-data-services'; -import withKartverket, { Props as KartverketProps } from '../with-kartverket'; -import withErrorBoundary from '../with-error-boundary'; +} from '../../components/with-data-services'; +import withKartverket, { + Props as KartverketProps +} from '../../components/with-kartverket'; +import withErrorBoundary from '../../components/with-error-boundary'; import DetailsPage, { ContentSection, InlineList, KeyValueList, KeyValueListItem -} from '../details-page'; +} from '../../components/details-page'; import ErrorPage from '../error-page'; -import DatasetDistribution from '../dataset-distribution'; -import RelationList, { ItemWithRelationType } from '../relation-list'; +import DatasetDistribution from '../../components/dataset-distribution'; +import RelationList, { + ItemWithRelationType +} from '../../components/relation-list'; import DownloadIcon from '../../images/icon-download-sm.svg'; import EyeIcon from '../../images/icon-eye.svg'; -import Preview from '../dataset-distribution/components/preview'; +import Preview from '../../components/dataset-distribution/components/preview'; import SC from './styled'; import { Entity } from '../../types/enums'; import { AccessService, Distribution, MediaTypeOrExtent } from '../../types'; -import Markdown from '../markdown'; +import Markdown from '../../components/markdown'; interface RouteParams { datasetId?: string; diff --git a/src/components/dataset-details-page/styled.ts b/src/pages/dataset-details-page/styled.ts similarity index 100% rename from src/components/dataset-details-page/styled.ts rename to src/pages/dataset-details-page/styled.ts diff --git a/src/components/error-page/components/error-400/index.tsx b/src/pages/error-page/components/error-400/index.tsx similarity index 100% rename from src/components/error-page/components/error-400/index.tsx rename to src/pages/error-page/components/error-400/index.tsx diff --git a/src/components/error-page/components/error-400/styled.ts b/src/pages/error-page/components/error-400/styled.ts similarity index 100% rename from src/components/error-page/components/error-400/styled.ts rename to src/pages/error-page/components/error-400/styled.ts diff --git a/src/components/error-page/components/error-500/index.tsx b/src/pages/error-page/components/error-500/index.tsx similarity index 100% rename from src/components/error-page/components/error-500/index.tsx rename to src/pages/error-page/components/error-500/index.tsx diff --git a/src/components/error-page/components/error-500/styled.ts b/src/pages/error-page/components/error-500/styled.ts similarity index 100% rename from src/components/error-page/components/error-500/styled.ts rename to src/pages/error-page/components/error-500/styled.ts diff --git a/src/components/error-page/index.tsx b/src/pages/error-page/index.tsx similarity index 93% rename from src/components/error-page/index.tsx rename to src/pages/error-page/index.tsx index be610aaf3..82421fcbb 100644 --- a/src/components/error-page/index.tsx +++ b/src/pages/error-page/index.tsx @@ -8,8 +8,8 @@ import Error400 from './components/error-400'; import Error500 from './components/error-500'; import SC from './styled'; -import Header from '../header'; -import Footer from '../footer'; +import Header from '../../components/header'; +import Footer from '../../components/footer'; interface Props { errorCode?: string; diff --git a/src/components/error-page/styled.ts b/src/pages/error-page/styled.ts similarity index 100% rename from src/components/error-page/styled.ts rename to src/pages/error-page/styled.ts diff --git a/src/components/event-details-page/index.tsx b/src/pages/event-details-page/index.tsx similarity index 94% rename from src/components/event-details-page/index.tsx rename to src/pages/event-details-page/index.tsx index 0790ef425..c5f5e0a27 100644 --- a/src/components/event-details-page/index.tsx +++ b/src/pages/event-details-page/index.tsx @@ -11,26 +11,28 @@ import { dateStringToDate, formatDate } from '../../lib/date-utils'; import { themeFDK } from '../../app/theme'; -import withEvent, { Props as EventProps } from '../with-event'; +import withEvent, { Props as EventProps } from '../../components/with-event'; import withPublicServices, { Props as PublicServicesProps -} from '../with-public-services'; -import withErrorBoundary from '../with-error-boundary'; +} from '../../components/with-public-services'; +import withErrorBoundary from '../../components/with-error-boundary'; import DetailsPage, { ContentSection, KeyValueList, KeyValueListItem -} from '../details-page'; +} from '../../components/details-page'; import ErrorPage from '../error-page'; -import RelationList, { ItemWithRelationType } from '../relation-list'; +import RelationList, { + ItemWithRelationType +} from '../../components/relation-list'; import type { Theme } from '../../types'; import { Entity, SpecializedEventType } from '../../types/enums'; import { PATHNAME_PUBLIC_SERVICES } from '../../constants/constants'; import SC from './styled'; -import Markdown from '../markdown'; +import Markdown from '../../components/markdown'; interface RouteParams { eventId: string; diff --git a/src/components/event-details-page/styled.ts b/src/pages/event-details-page/styled.ts similarity index 100% rename from src/components/event-details-page/styled.ts rename to src/pages/event-details-page/styled.ts diff --git a/src/components/information-model-details-page/index.tsx b/src/pages/information-model-details-page/index.tsx similarity index 98% rename from src/components/information-model-details-page/index.tsx rename to src/pages/information-model-details-page/index.tsx index 64add3e3b..30cf1d9b2 100755 --- a/src/components/information-model-details-page/index.tsx +++ b/src/pages/information-model-details-page/index.tsx @@ -18,33 +18,37 @@ import { themeFDK } from '../../app/theme'; import withInformationModel, { Props as InformationModelProps -} from '../with-information-model'; -import withConcepts, { Props as ConceptsProps } from '../with-concepts'; +} from '../../components/with-information-model'; +import withConcepts, { + Props as ConceptsProps +} from '../../components/with-concepts'; import withInformationModels, { Props as InformationModelsProps -} from '../with-information-models'; -import withDatasets, { Props as DatasetProps } from '../with-datasets'; +} from '../../components/with-information-models'; +import withDatasets, { + Props as DatasetProps +} from '../../components/with-datasets'; import withDataServices, { Props as DataServicesProps -} from '../with-data-services'; -import withErrorBoundary from '../with-error-boundary'; +} from '../../components/with-data-services'; +import withErrorBoundary from '../../components/with-error-boundary'; import DetailsPage, { ContentSection, InlineList, KeyValueList, KeyValueListItem -} from '../details-page'; +} from '../../components/details-page'; import ErrorPage from '../error-page'; -import InfoModelStructure from '../infomodel-structure'; -import RelationList from '../relation-list'; +import InfoModelStructure from '../../components/infomodel-structure'; +import RelationList from '../../components/relation-list'; import SC from './styled'; import type { InformationModel } from '../../types'; import { Entity, DataFormat } from '../../types/enums'; import { getConfig } from '../../config'; -import Markdown from '../markdown'; +import Markdown from '../../components/markdown'; interface RouteParams { informationModelId: string; diff --git a/src/components/information-model-details-page/styled.ts b/src/pages/information-model-details-page/styled.ts similarity index 100% rename from src/components/information-model-details-page/styled.ts rename to src/pages/information-model-details-page/styled.ts diff --git a/src/pages/news-archive-page/news-archive-page.ts b/src/pages/news-archive-page/news-archive-page.ts index be9e67af9..a598c3040 100644 --- a/src/pages/news-archive-page/news-archive-page.ts +++ b/src/pages/news-archive-page/news-archive-page.ts @@ -3,7 +3,7 @@ import { compose } from 'redux'; import NewsArchivePagePure from './news-archive-page-pure'; import { newsArchivePageResolver } from './news-archive-page-resolver'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; const enhance = compose(newsArchivePageResolver, withErrorBoundary(ErrorPage)); diff --git a/src/pages/news-article-page-v2/news-article-page.tsx b/src/pages/news-article-page-v2/news-article-page.tsx index 13daac9d3..d210f38dd 100644 --- a/src/pages/news-article-page-v2/news-article-page.tsx +++ b/src/pages/news-article-page-v2/news-article-page.tsx @@ -3,7 +3,7 @@ import { useParams } from 'react-router-dom'; import { compose } from 'redux'; import Moment from 'react-moment'; import { useGetArticleQuery } from '../../api/generated/cms/graphql'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; import localization from '../../lib/localization'; // import Article from '../../components/article/components/article/article.component'; diff --git a/src/pages/news-article-page/news-article-page.ts b/src/pages/news-article-page/news-article-page.ts index a888b2730..960a92516 100644 --- a/src/pages/news-article-page/news-article-page.ts +++ b/src/pages/news-article-page/news-article-page.ts @@ -2,7 +2,7 @@ import { compose } from 'redux'; import NewsArticlePure from './news-article-page-pure'; import { newsArticlePageResolver } from './news-article-page-resolver'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; import withErrorBoundary from '../../components/with-error-boundary'; const enhance = compose(newsArticlePageResolver, withErrorBoundary(ErrorPage)); diff --git a/src/pages/organizations/pages/dataset-page/index.tsx b/src/pages/organizations/pages/dataset-page/index.tsx index 62f0c88d6..0e3710ae9 100755 --- a/src/pages/organizations/pages/dataset-page/index.tsx +++ b/src/pages/organizations/pages/dataset-page/index.tsx @@ -25,7 +25,7 @@ import type { Props as DatasetScoresProps } from '../../../../components/with-da import withOrganization from '../../../../components/with-organization'; import type { Props as OrganizationProps } from '../../../../components/with-organization'; import withErrorBoundary from '../../../../components/with-error-boundary'; -import ErrorPage from '../../../../components/error-page'; +import ErrorPage from '../../../error-page'; import SC from './styled'; diff --git a/src/pages/organizations/pages/datasets-page/index.tsx b/src/pages/organizations/pages/datasets-page/index.tsx index 1c8a0c5fb..2236833ca 100755 --- a/src/pages/organizations/pages/datasets-page/index.tsx +++ b/src/pages/organizations/pages/datasets-page/index.tsx @@ -14,7 +14,7 @@ import withOrganization, { Props as OrganizationProps } from '../../../../components/with-organization'; import withErrorBoundary from '../../../../components/with-error-boundary'; -import ErrorPage from '../../../../components/error-page'; +import ErrorPage from '../../../error-page'; import { getTranslateText as translate } from '../../../../lib/translateText'; import translations from '../../../../lib/localization'; diff --git a/src/pages/organizations/pages/organization-page/index.tsx b/src/pages/organizations/pages/organization-page/index.tsx index 2bb2a59a0..594885496 100755 --- a/src/pages/organizations/pages/organization-page/index.tsx +++ b/src/pages/organizations/pages/organization-page/index.tsx @@ -14,7 +14,7 @@ import withReport, { Props as ReportProps } from '../../../../components/with-report'; import withErrorBoundary from '../../../../components/with-error-boundary'; -import ErrorPage from '../../../../components/error-page'; +import ErrorPage from '../../../error-page'; import { getTranslateText as translate } from '../../../../lib/translateText'; import translations from '../../../../lib/localization'; diff --git a/src/pages/organizations/pages/organizations-page/index.tsx b/src/pages/organizations/pages/organizations-page/index.tsx index 13477f44a..4ea07e23b 100755 --- a/src/pages/organizations/pages/organizations-page/index.tsx +++ b/src/pages/organizations/pages/organizations-page/index.tsx @@ -18,7 +18,7 @@ import withOrganizationCategories, { import Spinner from '../../../../components/spinner'; import withErrorBoundary from '../../../../components/with-error-boundary'; -import ErrorPage from '../../../../components/error-page'; +import ErrorPage from '../../../error-page'; import SC from './styled'; diff --git a/src/components/public-service-details-page/index.tsx b/src/pages/public-service-details-page/index.tsx similarity index 98% rename from src/components/public-service-details-page/index.tsx rename to src/pages/public-service-details-page/index.tsx index 175016fd7..60331cb36 100644 --- a/src/components/public-service-details-page/index.tsx +++ b/src/pages/public-service-details-page/index.tsx @@ -17,15 +17,21 @@ import { themeFDK } from '../../app/theme'; import withPublicService, { Props as PublicServiceProps -} from '../with-public-service'; +} from '../../components/with-public-service'; import withPublicServices, { Props as PublicServicesProps -} from '../with-public-services'; -import withConcepts, { Props as ConceptsProps } from '../with-concepts'; -import withDatasets, { Props as DatasetsProps } from '../with-datasets'; -import withEvents, { Props as EventsProps } from '../with-events'; -import withKartverket, { Props as KartverketProps } from '../with-kartverket'; -import withErrorBoundary from '../with-error-boundary'; +} from '../../components/with-public-services'; +import withConcepts, { + Props as ConceptsProps +} from '../../components/with-concepts'; +import withDatasets, { + Props as DatasetsProps +} from '../../components/with-datasets'; +import withEvents, { Props as EventsProps } from '../../components/with-events'; +import withKartverket, { + Props as KartverketProps +} from '../../components/with-kartverket'; +import withErrorBoundary from '../../components/with-error-boundary'; import DetailsPage, { CatalogTypeBox, @@ -34,9 +40,11 @@ import DetailsPage, { List, KeyValueList, KeyValueListItem -} from '../details-page'; +} from '../../components/details-page'; import ErrorPage from '../error-page'; -import RelationList, { ItemWithRelationType } from '../relation-list'; +import RelationList, { + ItemWithRelationType +} from '../../components/relation-list'; import type { TextLanguage, Theme } from '../../types'; import { Entity, Vocabulary } from '../../types/enums'; @@ -49,7 +57,7 @@ import { PATHNAME_PUBLIC_SERVICES_AND_EVENTS } from '../../constants/constants'; import SC from './styled'; -import Markdown from '../markdown'; +import Markdown from '../../components/markdown'; interface RouteParams { publicServiceId: string; diff --git a/src/components/public-service-details-page/styled.ts b/src/pages/public-service-details-page/styled.ts similarity index 100% rename from src/components/public-service-details-page/styled.ts rename to src/pages/public-service-details-page/styled.ts diff --git a/src/pages/report-page/report-page.ts b/src/pages/report-page/report-page.ts index 183db179b..e8422d354 100644 --- a/src/pages/report-page/report-page.ts +++ b/src/pages/report-page/report-page.ts @@ -4,7 +4,7 @@ import { ReportPagePure } from './report-page-pure'; import { reportPageConnector } from './report-page-connector'; import { reportPageResolver } from './report-page-resolver'; import withErrorBoundary from '../../components/with-error-boundary'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; const enhance = compose( reportPageConnector, diff --git a/src/pages/search-page/search-page.ts b/src/pages/search-page/search-page.ts index 3a6ada58a..fba6e41c8 100644 --- a/src/pages/search-page/search-page.ts +++ b/src/pages/search-page/search-page.ts @@ -5,7 +5,7 @@ import { searchPageConnector } from './search-page-connector'; import { searchPageResolver } from './search-page-resolver'; import withErrorBoundary from '../../components/with-error-boundary'; -import ErrorPage from '../../components/error-page'; +import ErrorPage from '../error-page'; const enhance = compose( searchPageResolver, diff --git a/src/components/sparql-page/index.tsx b/src/pages/sparql-page/index.tsx similarity index 100% rename from src/components/sparql-page/index.tsx rename to src/pages/sparql-page/index.tsx diff --git a/src/components/sparql-page/styled.ts b/src/pages/sparql-page/styled.ts similarity index 100% rename from src/components/sparql-page/styled.ts rename to src/pages/sparql-page/styled.ts diff --git a/src/routes.ts b/src/routes.ts index ec1b46d1e..52adb35c7 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -25,7 +25,8 @@ import { PATHNAME_ABOUT_DATA_SERVICES, PATHNAME_ABOUT_CONCEPTS, PATHNAME_ABOUT_INFORMATIONMODELS, - PATHNAME_AI + PATHNAME_AI, + PATHNAME_TRANSPORT } from './constants/constants'; const routes: any = { @@ -59,7 +60,8 @@ const routes: any = { PATHNAME_ABOUT_DATA_SERVICES, PATHNAME_ABOUT_CONCEPTS, PATHNAME_ABOUT_INFORMATIONMODELS, - PATHNAME_AI + PATHNAME_AI, + PATHNAME_TRANSPORT ], publishing: [ PATHNAME_PUBLISHING, diff --git a/src/services/api/strapi/graphql/transport-article.graphql b/src/services/api/strapi/graphql/transport-article.graphql new file mode 100644 index 000000000..1afa269b4 --- /dev/null +++ b/src/services/api/strapi/graphql/transport-article.graphql @@ -0,0 +1,83 @@ +query GetTransportArticle($id: ID!) { + transportArticle(id: $id) { + data { + attributes { + title + subtitle + locale + localizations { + data { + attributes { + title + subtitle + Content { + ... on ComponentBasicParagraph { + __typename + Content + } + ... on ComponentBasicImage { + __typename + media { + data { + attributes { + alternativeText + url + caption + } + } + } + style + } + ... on ComponentBasicYoutube { + __typename + url + } + } + } + } + } + Content { + ... on ComponentBasicParagraph { + __typename + Content + } + ... on ComponentBasicImage { + __typename + media { + data { + attributes { + alternativeText + url + caption + } + } + } + style + } + ... on ComponentBasicYoutube { + __typename + url + } + } + } + } + } +} + +query GetTransportArticleTitle($id: ID!) { + transportArticle(id: $id) { + data { + attributes { + title + localizations { + data { + id + attributes { + title + } + } + } + } + } + } +} diff --git a/src/types/domain.d.ts b/src/types/domain.d.ts index 45f374489..818ec234e 100644 --- a/src/types/domain.d.ts +++ b/src/types/domain.d.ts @@ -276,6 +276,7 @@ export interface Concept { partitiveRelation?: Partial[]; genericRelation?: Partial[]; created?: string; + memberOf?: string[]; } export interface ConceptDefinition {