diff --git a/api-server/package.json b/api-server/package.json index 060280b2c28..79a35a91f67 100644 --- a/api-server/package.json +++ b/api-server/package.json @@ -72,6 +72,7 @@ "rate-limit-mongo": "^2.3.2", "rx": "4.1.0", "stripe": "8.205.0", + "strong-error-handler": "3.5.0", "uuid": "3.4.0", "validator": "13.7.0" }, diff --git a/client/package.json b/client/package.json index 534e7cdd995..8131001c571 100644 --- a/client/package.json +++ b/client/package.json @@ -137,6 +137,7 @@ "validator": "13.9.0" }, "devDependencies": { + "@babel/plugin-syntax-dynamic-import": "7.8.3", "@babel/types": "7.20.7", "@codesee/babel-plugin-instrument": "0.531.0", "@codesee/tracker": "0.531.0", @@ -170,6 +171,7 @@ "@types/testing-library__jest-dom": "^5.14.5", "@types/validator": "^13.7.12", "autoprefixer": "10.4.14", + "babel-plugin-macros": "3.1.0", "babel-plugin-transform-imports": "2.0.0", "chokidar": "3.5.3", "copy-webpack-plugin": "9.1.0", diff --git a/curriculum/package.json b/curriculum/package.json index c9a7cd25389..99753a6962a 100644 --- a/curriculum/package.json +++ b/curriculum/package.json @@ -34,6 +34,7 @@ "@babel/preset-env": "7.20.2", "@babel/preset-typescript": "7.18.6", "@babel/register": "7.18.9", + "@compodoc/live-server": "^1.2.3", "babel-plugin-dynamic-import-node": "2.3.3", "babel-plugin-lodash": "3.3.4", "babel-plugin-transform-runtime": "6.23.0", @@ -43,6 +44,7 @@ "chai": "4.3.7", "cross-env": "7.0.3", "css": "3.0.0", + "glob": "8.1.0", "invariant": "2.2.4", "joi": "17.8.3", "joi-objectid": "3.0.1", @@ -51,10 +53,10 @@ "lodash": "4.17.21", "mocha": "10.2.0", "mock-require": "3.0.3", + "ora": "5.4.1", "puppeteer": "10.4.0", "readdirp": "3.6.0", "string-similarity": "4.0.4", - "unist-util-visit": "2.0.3", - "@compodoc/live-server": "^1.2.3" + "unist-util-visit": "2.0.3" } } diff --git a/package.json b/package.json index 7cff0dc6478..0fe2a8f6eb6 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "challenge-editor": "npm-run-all -p challenge-editor:*", "challenge-editor:client": "cd ./tools/challenge-editor/client && pnpm start", "challenge-editor:server": "cd ./tools/challenge-editor/api && pnpm start", - "clean": "npm-run-all -p clean:*", + "clean": "npm-run-all -p clean:client clean:server clean:curriculum --serial clean:packages", "clean-and-develop": "pnpm run clean && pnpm install && pnpm run develop", "clean:client": "cd ./client && pnpm run clean", "clean:curriculum": "rimraf ./config/curriculum.json", @@ -117,6 +117,7 @@ "@types/node": "18.15.0", "@types/store": "2.0.2", "babel-eslint": "10.1.0", + "babel-jest": "29.5.0", "babel-plugin-transform-imports": "2.0.0", "cross-env": "7.0.3", "cypress": "10.11.0", @@ -142,7 +143,6 @@ "markdownlint": "0.27.0", "mock-fs": "5.2.0", "npm-run-all": "4.1.5", - "ora": "5.4.1", "prettier": "^2.8.0", "prismjs": "1.29.0", "process": "0.11.10", @@ -151,6 +151,7 @@ "store": "2.0.12", "ts-node": "10.9.1", "typescript": "4.9.5", - "webpack-bundle-analyzer": "4.8.0" + "webpack-bundle-analyzer": "4.8.0", + "yargs": "17.7.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dabf615ee33..49833c97c1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,6 +18,7 @@ importers: '@types/node': 18.15.0 '@types/store': 2.0.2 babel-eslint: 10.1.0 + babel-jest: 29.5.0 babel-plugin-transform-imports: 2.0.0 cross-env: 7.0.3 cypress: 10.11.0 @@ -45,7 +46,6 @@ importers: markdownlint: 0.27.0 mock-fs: 5.2.0 npm-run-all: 4.1.5 - ora: 5.4.1 pm2: ^5.2.2 prettier: ^2.8.0 prismjs: 1.29.0 @@ -56,6 +56,7 @@ importers: ts-node: 10.9.1 typescript: 4.9.5 webpack-bundle-analyzer: 4.8.0 + yargs: 17.7.1 dependencies: dotenv: 16.0.3 invariant: 2.2.4 @@ -75,6 +76,7 @@ importers: '@types/node': 18.15.0 '@types/store': 2.0.2 babel-eslint: 10.1.0_eslint@7.32.0 + babel-jest: 29.5.0_@babel+core@7.20.12 babel-plugin-transform-imports: 2.0.0 cross-env: 7.0.3 cypress: 10.11.0 @@ -100,7 +102,6 @@ importers: markdownlint: 0.27.0 mock-fs: 5.2.0 npm-run-all: 4.1.5 - ora: 5.4.1 prettier: 2.8.4 prismjs: 1.29.0 process: 0.11.10 @@ -110,6 +111,7 @@ importers: ts-node: 10.9.1_lwgqdwokjtwlohdqtbb6s252kq typescript: 4.9.5 webpack-bundle-analyzer: 4.8.0 + yargs: 17.7.1 api: specifiers: @@ -193,6 +195,7 @@ importers: rx: 4.1.0 smee-client: 1.2.3 stripe: 8.205.0 + strong-error-handler: 3.5.0 uuid: 3.4.0 validator: 13.7.0 dependencies: @@ -240,6 +243,7 @@ importers: rate-limit-mongo: 2.3.2 rx: 4.1.0 stripe: 8.205.0 + strong-error-handler: 3.5.0 uuid: 3.4.0 validator: 13.7.0 devDependencies: @@ -262,6 +266,7 @@ importers: specifiers: '@babel/plugin-proposal-export-default-from': 7.18.10 '@babel/plugin-proposal-function-bind': 7.18.9 + '@babel/plugin-syntax-dynamic-import': 7.8.3 '@babel/plugin-transform-runtime': ^7.19.6 '@babel/polyfill': 7.12.1 '@babel/preset-env': 7.20.2 @@ -320,6 +325,7 @@ importers: assert: 2.0.0 autoprefixer: 10.4.14 babel-loader: 8.3.0 + babel-plugin-macros: 3.1.0 babel-plugin-preval: 5.1.0 babel-plugin-prismjs: 2.1.0 babel-plugin-transform-imports: 2.0.0 @@ -513,6 +519,7 @@ importers: uuid: 8.3.2 validator: 13.9.0 devDependencies: + '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.20.12 '@babel/types': 7.20.7 '@codesee/babel-plugin-instrument': 0.531.0_@babel+core@7.20.12 '@codesee/tracker': 0.531.0 @@ -545,6 +552,7 @@ importers: '@types/testing-library__jest-dom': 5.14.5 '@types/validator': 13.7.12 autoprefixer: 10.4.14_postcss@8.4.21 + babel-plugin-macros: 3.1.0 babel-plugin-transform-imports: 2.0.0 chokidar: 3.5.3 copy-webpack-plugin: 9.1.0_webpack@5.76.1 @@ -589,6 +597,7 @@ importers: chai: 4.3.7 cross-env: 7.0.3 css: 3.0.0 + glob: 8.1.0 invariant: 2.2.4 joi: 17.8.3 joi-objectid: 3.0.1 @@ -597,6 +606,7 @@ importers: lodash: 4.17.21 mocha: 10.2.0 mock-require: 3.0.3 + ora: 5.4.1 puppeteer: 10.4.0 readdirp: 3.6.0 string-similarity: 4.0.4 @@ -617,6 +627,7 @@ importers: chai: 4.3.7 cross-env: 7.0.3 css: 3.0.0 + glob: 8.1.0 invariant: 2.2.4 joi: 17.8.3 joi-objectid: 3.0.1 @@ -625,6 +636,7 @@ importers: lodash: 4.17.21 mocha: 10.2.0 mock-require: 3.0.3 + ora: 5.4.1 puppeteer: 10.4.0 readdirp: 3.6.0 string-similarity: 4.0.4 @@ -1939,7 +1951,7 @@ packages: '@babel/parser': 7.21.2 '@babel/template': 7.20.7 '@babel/traverse': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 convert-source-map: 1.9.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -1988,14 +2000,14 @@ packages: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: resolution: {integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-explode-assignable-expression': 7.18.6 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-compilation-targets/7.20.7_@babel+core@7.18.0: resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==} @@ -2139,7 +2151,7 @@ packages: resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-function-name/7.21.0: resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==} @@ -2152,7 +2164,7 @@ packages: resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-member-expression-to-functions/7.21.0: resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==} @@ -2164,7 +2176,7 @@ packages: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-module-transforms/7.21.2: resolution: {integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==} @@ -2185,7 +2197,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-plugin-utils/7.10.4: resolution: {integrity: sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==} @@ -2219,7 +2231,7 @@ packages: '@babel/helper-annotate-as-pure': 7.18.6 '@babel/helper-environment-visitor': 7.18.9 '@babel/helper-wrap-function': 7.20.5 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color @@ -2232,7 +2244,7 @@ packages: '@babel/helper-optimise-call-expression': 7.18.6 '@babel/template': 7.20.7 '@babel/traverse': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color @@ -2240,19 +2252,19 @@ packages: resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-skip-transparent-expression-wrappers/7.20.0: resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-split-export-declaration/7.18.6: resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/helper-string-parser/7.19.4: resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} @@ -2273,7 +2285,7 @@ packages: '@babel/helper-function-name': 7.21.0 '@babel/template': 7.20.7 '@babel/traverse': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 transitivePeerDependencies: - supports-color @@ -4301,7 +4313,7 @@ packages: dependencies: '@babel/code-frame': 7.18.6 '@babel/parser': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@babel/traverse/7.21.2: resolution: {integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==} @@ -5279,6 +5291,13 @@ packages: '@sinclair/typebox': 0.24.51 dev: false + /@jest/schemas/29.4.3: + resolution: {integrity: sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@sinclair/typebox': 0.25.24 + dev: true + /@jest/source-map/27.5.1: resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5362,6 +5381,29 @@ packages: transitivePeerDependencies: - supports-color + /@jest/transform/29.5.0: + resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/core': 7.20.12 + '@jest/types': 29.5.0 + '@jridgewell/trace-mapping': 0.3.17 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.10 + jest-haste-map: 29.5.0 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + micromatch: 4.0.5 + pirates: 4.0.5 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: true + /@jest/types/25.5.0: resolution: {integrity: sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==} engines: {node: '>= 8.3'} @@ -5404,6 +5446,18 @@ packages: chalk: 4.1.2 dev: false + /@jest/types/29.5.0: + resolution: {integrity: sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.4.3 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 18.15.0 + '@types/yargs': 17.0.22 + chalk: 4.1.2 + dev: true + /@jridgewell/gen-mapping/0.1.1: resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} engines: {node: '>=6.0.0'} @@ -6121,6 +6175,10 @@ packages: resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} dev: false + /@sinclair/typebox/0.25.24: + resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} + dev: true + /@sindresorhus/is/0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -7834,7 +7892,7 @@ packages: resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} dependencies: '@babel/parser': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 '@types/babel__generator': 7.6.4 '@types/babel__template': 7.4.1 '@types/babel__traverse': 7.18.3 @@ -7842,18 +7900,18 @@ packages: /@types/babel__generator/7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@types/babel__template/7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@types/babel__traverse/7.18.3: resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} dependencies: - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 /@types/body-parser/1.19.2: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} @@ -8490,7 +8548,6 @@ packages: resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==} dependencies: '@types/yargs-parser': 21.0.0 - dev: false /@types/yauzl/2.10.0: resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==} @@ -10006,6 +10063,24 @@ packages: transitivePeerDependencies: - supports-color + /babel-jest/29.5.0_@babel+core@7.20.12: + resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.8.0 + dependencies: + '@babel/core': 7.20.12 + '@jest/transform': 29.5.0 + '@types/babel__core': 7.20.0 + babel-plugin-istanbul: 6.1.1 + babel-preset-jest: 29.5.0_@babel+core@7.20.12 + chalk: 4.1.2 + graceful-fs: 4.2.10 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /babel-loader/8.3.0_nwtvwtk5tmh22l2urnqucz7kqu: resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==} engines: {node: '>= 8.9'} @@ -10092,10 +10167,20 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@babel/template': 7.20.7 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 '@types/babel__core': 7.20.0 '@types/babel__traverse': 7.18.3 + /babel-plugin-jest-hoist/29.5.0: + resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@babel/template': 7.20.7 + '@babel/types': 7.21.2 + '@types/babel__core': 7.20.0 + '@types/babel__traverse': 7.18.3 + dev: true + /babel-plugin-lodash/3.3.4: resolution: {integrity: sha512-yDZLjK7TCkWl1gpBeBGmuaDIFhZKmkoL+Cu2MUUjv5VxUZx/z7tBGBCBcQs5RI1Bkz5LLmNdjx7paOyQtMovyg==} dependencies: @@ -10763,6 +10848,17 @@ packages: babel-plugin-jest-hoist: 27.5.1 babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 + /babel-preset-jest/29.5.0_@babel+core@7.20.12: + resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/core': 7.20.12 + babel-plugin-jest-hoist: 29.5.0 + babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.12 + dev: true + /babel-preset-react-app/10.0.1: resolution: {integrity: sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==} dependencies: @@ -11969,6 +12065,15 @@ packages: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + /cliui/8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + /clone-deep/4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} @@ -12342,6 +12447,10 @@ packages: /convert-source-map/1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + /convert-source-map/2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + dev: true + /cookie-parser/1.4.6: resolution: {integrity: sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA==} engines: {node: '>= 0.8.0'} @@ -19220,6 +19329,25 @@ packages: optionalDependencies: fsevents: 2.3.2 + /jest-haste-map/29.5.0: + resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/graceful-fs': 4.1.6 + '@types/node': 18.15.0 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.10 + jest-regex-util: 29.4.3 + jest-util: 29.5.0 + jest-worker: 29.5.0 + micromatch: 4.0.5 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /jest-jasmine2/27.5.1: resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -19346,6 +19474,11 @@ packages: engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} dev: false + /jest-regex-util/29.4.3: + resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /jest-resolve-dependencies/27.5.1: resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -19454,7 +19587,7 @@ packages: '@babel/generator': 7.21.1 '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.12 '@babel/traverse': 7.21.2 - '@babel/types': 7.20.7 + '@babel/types': 7.21.2 '@jest/transform': 27.5.1 '@jest/types': 27.5.1 '@types/babel__traverse': 7.18.3 @@ -19510,6 +19643,18 @@ packages: picomatch: 2.3.1 dev: false + /jest-util/29.5.0: + resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.5.0 + '@types/node': 18.15.0 + chalk: 4.1.2 + ci-info: 3.8.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + /jest-validate/27.5.1: resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -19588,6 +19733,16 @@ packages: supports-color: 8.1.1 dev: false + /jest-worker/29.5.0: + resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@types/node': 18.15.0 + jest-util: 29.5.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + dev: true + /jest/27.5.1: resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -30335,6 +30490,14 @@ packages: signal-exit: 3.0.7 typedarray-to-buffer: 3.1.5 + /write-file-atomic/4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + dev: true + /ws/7.4.5: resolution: {integrity: sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==} engines: {node: '>=8.3.0'} @@ -30531,10 +30694,15 @@ packages: /yargs-parser/20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} + dev: true /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} engines: {node: '>=10'} + + /yargs-parser/21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} dev: true /yargs-unparser/2.0.0: @@ -30573,7 +30741,20 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 + + /yargs/17.7.1: + resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + engines: {node: '>=12'} + dependencies: + cliui: 8.0.1 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + dev: true /yauzl/2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}