diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 1daad0749..aced7d09e 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -3,6 +3,7 @@ name: Integration Test on: push: branches: [master] + pull_request: jobs: package: @@ -33,10 +34,26 @@ jobs: runs-on: ${{ matrix.os }} steps: + - uses: actions/checkout@v3 + with: + path: tmp/ + - uses: actions/setup-node@v3 with: node-version: 16 + # Setup integration test package + - name: Extract integration test package + run: | + mv tmp/packages/integration-tests /tmp + rm -rf tmp + + - name: Install dependencies + run: | + cd /tmp/integration-tests + npm i + + # Setup environment - name: Start Postgres (Linux) if: runner.os == 'Linux' run: | @@ -52,13 +69,10 @@ jobs: - uses: actions/download-artifact@v3 with: name: integration-test-${{ github.sha }} - - - name: Display structure of downloaded files - run: ls -R - name: Extract run: tar -xzf logto.tar.gz - + - name: Rebuild Argon2 run: npx node-pre-gyp rebuild -C . working-directory: logto/packages/core/node_modules/argon2 @@ -73,5 +87,10 @@ jobs: - name: Sleep for 5 seconds run: sleep 5 - - name: Health check - run: curl http://localhost:3001/api/status -If + # Test + - name: Run tests + run: | + cd /tmp/integration-tests + npm start + env: + LOGTO_URL: http://localhost:3001 diff --git a/.vscode/settings.json b/.vscode/settings.json index 2da82185a..b66611d04 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -26,6 +26,7 @@ "Logto", "oidc", "Passwordless", + "pnpm", "silverhand", "slonik" ] diff --git a/packages/integration-tests/jest.config.ts b/packages/integration-tests/jest.config.ts new file mode 100644 index 000000000..6b49c6296 --- /dev/null +++ b/packages/integration-tests/jest.config.ts @@ -0,0 +1,7 @@ +import { merge, Config } from '@silverhand/jest-config'; + +const config: Config.InitialOptions = merge({ + testEnvironment: 'node', +}); + +export default config; diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json new file mode 100644 index 000000000..cb02cb873 --- /dev/null +++ b/packages/integration-tests/package.json @@ -0,0 +1,32 @@ +{ + "name": "@logto/integration-tests", + "version": "0.1.0", + "description": "Integration tests for Logto.", + "author": "Silverhand Inc. ", + "license": "MPL-2.0", + "private": true, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "lint": "eslint --ext .ts src tests", + "lint:report": "pnpm lint --format json --output-file report.json", + "start": "jest" + }, + "devDependencies": { + "@silverhand/eslint-config": "^0.12.0", + "@silverhand/essentials": "^1.1.7", + "@silverhand/jest-config": "^0.13.0", + "@silverhand/ts-config": "^0.12.0", + "@types/jest": "^27.4.1", + "@types/node": "^16.0.0", + "eslint": "^8.10.0", + "got": "^11.8.2", + "jest": "^27.5.1", + "prettier": "^2.3.2", + "ts-node": "^10.0.0", + "typescript": "^4.6.4" + }, + "eslintConfig": { + "extends": "@silverhand" + }, + "prettier": "@silverhand/eslint-config/.prettierrc" +} diff --git a/packages/integration-tests/src/api.ts b/packages/integration-tests/src/api.ts new file mode 100644 index 000000000..50b4609d9 --- /dev/null +++ b/packages/integration-tests/src/api.ts @@ -0,0 +1,4 @@ +import { getEnv } from '@silverhand/essentials'; +import got from 'got'; + +export default got.extend({ prefixUrl: new URL('/api', getEnv('LOGTO_URL')) }); diff --git a/packages/integration-tests/tests/health-check.test.ts b/packages/integration-tests/tests/health-check.test.ts new file mode 100644 index 000000000..c2e37f118 --- /dev/null +++ b/packages/integration-tests/tests/health-check.test.ts @@ -0,0 +1,7 @@ +import api from '@/api'; + +describe('Health check', () => { + it('should have a health state', async () => { + expect(await api.get('status')).toHaveProperty('statusCode', 204); + }); +}); diff --git a/packages/integration-tests/tsconfig.json b/packages/integration-tests/tsconfig.json new file mode 100644 index 000000000..11d6f7c8c --- /dev/null +++ b/packages/integration-tests/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@silverhand/ts-config/tsconfig.base", + "compilerOptions": { + "isolatedModules": false, + "noEmit": true, + "baseUrl": ".", + "paths": { + "@/*": [ + "src/*" + ] + } + }, + "include": ["tests", "src", "jest.*.ts"] +} diff --git a/packages/integration-tests/tsconfig.test.json b/packages/integration-tests/tsconfig.test.json new file mode 100644 index 000000000..1c66acf6d --- /dev/null +++ b/packages/integration-tests/tsconfig.test.json @@ -0,0 +1,3 @@ +{ + "extends": "./tsconfig" +} diff --git a/packages/jest-config/package.json b/packages/jest-config/package.json index f908b9bee..24b7a4c4e 100644 --- a/packages/jest-config/package.json +++ b/packages/jest-config/package.json @@ -42,6 +42,7 @@ "identity-obj-proxy": "^3.0.0", "jest-matcher-specific-error": "^1.0.0", "jest-transform-stub": "^2.0.0", + "jest-transformer-svg": "^1.0.2", "ts-jest": "^27.1.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f9e5ded54..4be6c0612 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -722,6 +722,34 @@ importers: react-dom: 17.0.2_react@17.0.2 typescript: 4.6.3 + packages/integration-tests: + specifiers: + '@silverhand/eslint-config': ^0.12.0 + '@silverhand/essentials': ^1.1.7 + '@silverhand/jest-config': ^0.13.0 + '@silverhand/ts-config': ^0.12.0 + '@types/jest': ^27.4.1 + '@types/node': ^16.0.0 + eslint: ^8.10.0 + got: ^11.8.2 + jest: ^27.5.1 + prettier: ^2.3.2 + ts-node: ^10.0.0 + typescript: ^4.6.4 + devDependencies: + '@silverhand/eslint-config': 0.12.0_rqoong6vegs374egqglqjbgiwm + '@silverhand/essentials': 1.1.7 + '@silverhand/jest-config': 0.13.0_53ggqi2i4rbcfjtktmjua6zili + '@silverhand/ts-config': 0.12.0_typescript@4.6.4 + '@types/jest': 27.4.1 + '@types/node': 16.11.12 + eslint: 8.10.0 + got: 11.8.3 + jest: 27.5.1_ts-node@10.7.0 + prettier: 2.5.1 + ts-node: 10.7.0_drbbnc2wk7uwp4gsdsdvgzqgya + typescript: 4.6.4 + packages/jest-config: specifiers: '@jest/types': ^27.5.1 @@ -734,6 +762,7 @@ importers: jest: ^27.5.1 jest-matcher-specific-error: ^1.0.0 jest-transform-stub: ^2.0.0 + jest-transformer-svg: ^1.0.2 lint-staged: ^12.0.0 prettier: ^2.3.2 ts-jest: ^27.1.1 @@ -745,6 +774,7 @@ importers: identity-obj-proxy: 3.0.0 jest-matcher-specific-error: 1.0.0 jest-transform-stub: 2.0.0 + jest-transformer-svg: 1.0.2_jest@27.5.1 ts-jest: 27.1.1_eufcckiefljihjhutvg5ibw4rq devDependencies: '@silverhand/eslint-config': 0.12.0_xpq2m6kgodzytx4bqbpsfgmxbe @@ -3889,6 +3919,7 @@ packages: pacote: 11.3.5 semver: 7.3.5 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -4057,6 +4088,7 @@ packages: whatwg-url: 8.7.0 yargs-parser: 20.2.4 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -4254,6 +4286,7 @@ packages: npm-registry-fetch: 9.0.0 npmlog: 4.1.2 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -4283,6 +4316,7 @@ packages: pify: 5.0.0 read-package-json: 3.0.1 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -4417,6 +4451,7 @@ packages: pacote: 11.3.5 semver: 7.3.5 transitivePeerDependencies: + - bluebird - encoding - supports-color dev: true @@ -4715,6 +4750,8 @@ packages: promise-retry: 2.0.1 semver: 7.3.5 which: 2.0.2 + transitivePeerDependencies: + - bluebird dev: true /@npmcli/installed-package-contents/1.0.7: @@ -5729,6 +5766,7 @@ packages: stylelint-config-xo-scss: 0.14.0_stylelint@13.13.1 transitivePeerDependencies: - eslint + - eslint-import-resolver-webpack - prettier - supports-color - typescript @@ -5752,7 +5790,7 @@ packages: eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u eslint-plugin-consistent-default-export-name: 0.0.7 eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0 - eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-node: 11.1.0_eslint@8.10.0 eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m @@ -5763,6 +5801,7 @@ packages: prettier: 2.5.1 typescript: 4.6.2 transitivePeerDependencies: + - eslint-import-resolver-webpack - supports-color dev: true @@ -5784,7 +5823,7 @@ packages: eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u eslint-plugin-consistent-default-export-name: 0.0.7 eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0 - eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-node: 11.1.0_eslint@8.10.0 eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m @@ -5795,6 +5834,40 @@ packages: prettier: 2.5.1 typescript: 4.6.2 transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + + /@silverhand/eslint-config/0.12.0_rqoong6vegs374egqglqjbgiwm: + resolution: {integrity: sha512-WRR3oGzEt6SAR6GxwCRfUXwMpKqnNXdvSTcb7kBhMW1DDaTi9qNkhJl/NdDTyhqxda+jCqUzS/HF/kYOJwdwpQ==} + engines: {node: '>=14.15.0'} + peerDependencies: + eslint: ^8.1.0 + prettier: ^2.3.2 + typescript: ^4.3.5 + dependencies: + '@silverhand/eslint-plugin-fp': 2.5.0_eslint@8.10.0 + '@typescript-eslint/eslint-plugin': 5.14.0_lyrhcatghsl22zfuax7wrzsedu + '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu + eslint: 8.10.0 + eslint-config-prettier: 8.5.0_eslint@8.10.0 + eslint-config-xo: 0.40.0_eslint@8.10.0 + eslint-config-xo-typescript: 0.50.0_b6hbb4k6vvsdi73yarkmqk6fhi + eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u + eslint-plugin-consistent-default-export-name: 0.0.7 + eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0 + eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany + eslint-plugin-no-use-extend-native: 0.5.0 + eslint-plugin-node: 11.1.0_eslint@8.10.0 + eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m + eslint-plugin-promise: 6.0.0_eslint@8.10.0 + eslint-plugin-sql: 2.1.0_eslint@8.10.0 + eslint-plugin-unicorn: 39.0.0_eslint@8.10.0 + pkg-dir: 4.2.0 + prettier: 2.5.1 + typescript: 4.6.4 + transitivePeerDependencies: + - eslint-import-resolver-webpack - supports-color dev: true @@ -5816,7 +5889,7 @@ packages: eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u eslint-plugin-consistent-default-export-name: 0.0.7 eslint-plugin-eslint-comments: 3.2.0_eslint@8.10.0 - eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany eslint-plugin-no-use-extend-native: 0.5.0 eslint-plugin-node: 11.1.0_eslint@8.10.0 eslint-plugin-prettier: 3.4.1_6pitu4b2tqihty6rv5qeiyb35m @@ -5827,6 +5900,7 @@ packages: prettier: 2.5.1 typescript: 4.6.3 transitivePeerDependencies: + - eslint-import-resolver-webpack - supports-color dev: true @@ -5866,6 +5940,27 @@ packages: lodash.orderby: 4.6.0 lodash.pick: 4.4.0 + /@silverhand/jest-config/0.13.0_53ggqi2i4rbcfjtktmjua6zili: + resolution: {integrity: sha512-9yiktlD7LwqCqT8QrCZRTt/8oTcm5T0O2LfAuPY4cXTY1T2d6sfPPaBrmYShhamD1gcPUNEzXfB4f31iR4KAQw==} + engines: {node: ^16.0.0} + peerDependencies: + jest: ^27.5.0 + dependencies: + '@jest/types': 27.5.1 + deepmerge: 4.2.2 + identity-obj-proxy: 3.0.0 + jest: 27.5.1_ts-node@10.7.0 + jest-matcher-specific-error: 1.0.0 + jest-transform-stub: 2.0.0 + ts-jest: 27.1.1_53ggqi2i4rbcfjtktmjua6zili + transitivePeerDependencies: + - '@babel/core' + - '@types/jest' + - babel-jest + - esbuild + - typescript + dev: true + /@silverhand/ts-config-react/0.12.0_typescript@4.6.2: resolution: {integrity: sha512-B4ECrZ2ClQaDDfNkQxxw+MfBmMEeJawB16qpyBAtvLFYJMA18u85wdYlCCKXOLj9HeMYaNafe3OQ67WLhCTFiQ==} engines: {node: '>=14.15.0'} @@ -5894,6 +5989,15 @@ packages: typescript: 4.6.3 dev: true + /@silverhand/ts-config/0.12.0_typescript@4.6.4: + resolution: {integrity: sha512-+VidYKenVr33P8GDXR1NdUNzkScNarp/ttFRfqus9fGyIWCjP60otygVrY/ZydOlpdZBXnycUgsySC3YqCprCg==} + engines: {node: '>=14.15.0'} + peerDependencies: + typescript: ^4.3.5 + dependencies: + typescript: 4.6.4 + dev: true + /@sindresorhus/is/0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} @@ -5902,7 +6006,6 @@ packages: /@sindresorhus/is/4.2.0: resolution: {integrity: sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==} engines: {node: '>=10'} - dev: false /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} @@ -5933,7 +6036,7 @@ packages: dependencies: '@babel/core': 7.16.0 postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom transitivePeerDependencies: - supports-color dev: true @@ -5946,7 +6049,7 @@ packages: postcss-syntax: '>=0.36.2' dependencies: postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom remark: 13.0.0 unist-util-find-all-after: 3.0.2 transitivePeerDependencies: @@ -6120,7 +6223,6 @@ packages: engines: {node: '>=10'} dependencies: defer-to-connect: 2.0.1 - dev: false /@testing-library/dom/8.11.1: resolution: {integrity: sha512-3KQDyx9r0RKYailW2MiYrSSKEfH0GTkI51UGEvJenvcoDoeRYs0PZpi2SXqtnMClQvCqdtTTpOfFETDTVADpAg==} @@ -6243,7 +6345,6 @@ packages: '@types/keyv': 3.1.3 '@types/node': 17.0.23 '@types/responselike': 1.0.0 - dev: false /@types/connect-history-api-fallback/1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} @@ -6352,7 +6453,6 @@ packages: /@types/http-cache-semantics/4.0.1: resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} - dev: false /@types/http-errors/1.8.1: resolution: {integrity: sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==} @@ -6407,7 +6507,6 @@ packages: resolution: {integrity: sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==} dependencies: '@types/node': 17.0.23 - dev: false /@types/koa-compose/3.2.5: resolution: {integrity: sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==} @@ -6608,7 +6707,6 @@ packages: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: '@types/node': 17.0.23 - dev: false /@types/retry/0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} @@ -6737,6 +6835,33 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin/5.14.0_lyrhcatghsl22zfuax7wrzsedu: + resolution: {integrity: sha512-ir0wYI4FfFUDfLcuwKzIH7sMVA+db7WYen47iRSaCGl+HMAZI9fpBwfDo45ZALD3A45ZGyHWDNLhbg8tZrMX4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/type-utils': 5.14.0_fo4uz55zgcu432252zy2gvpvcu + '@typescript-eslint/utils': 5.14.0_fo4uz55zgcu432252zy2gvpvcu + debug: 4.3.3 + eslint: 8.10.0 + functional-red-black-tree: 1.0.1 + ignore: 5.2.0 + regexpp: 3.2.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser/5.14.0_6ued5m2uqo2r7ksfjlk2bzosza: resolution: {integrity: sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6757,6 +6882,26 @@ packages: - supports-color dev: true + /@typescript-eslint/parser/5.14.0_fo4uz55zgcu432252zy2gvpvcu: + resolution: {integrity: sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/typescript-estree': 5.14.0_typescript@4.6.4 + debug: 4.3.3 + eslint: 8.10.0 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser/5.14.0_pzezdwkd5bvjkx2hshexc25sxq: resolution: {integrity: sha512-aHJN8/FuIy1Zvqk4U/gcO/fxeMKyoSv/rS46UXMXOJKVsLQ+iYPuXNbpbH7cBLcpSbmyyFbwrniLx5+kutu1pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6804,6 +6949,25 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils/5.14.0_fo4uz55zgcu432252zy2gvpvcu: + resolution: {integrity: sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/utils': 5.14.0_fo4uz55zgcu432252zy2gvpvcu + debug: 4.3.3 + eslint: 8.10.0 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/type-utils/5.14.0_pzezdwkd5bvjkx2hshexc25sxq: resolution: {integrity: sha512-d4PTJxsqaUpv8iERTDSQBKUCV7Q5yyXjqXUl3XF7Sd9ogNLuKLkxz82qxokqQ4jXdTPZudWpmNtr/JjbbvUixw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6870,6 +7034,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree/5.14.0_typescript@4.6.4: + resolution: {integrity: sha512-QGnxvROrCVtLQ1724GLTHBTR0lZVu13izOp9njRvMkCBgWX26PKvmMP8k82nmXBRD3DQcFFq2oj3cKDwr0FaUA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/visitor-keys': 5.14.0 + debug: 4.3.3 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.6.4 + typescript: 4.6.4 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils/5.14.0_6ued5m2uqo2r7ksfjlk2bzosza: resolution: {integrity: sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -6888,6 +7073,24 @@ packages: - typescript dev: true + /@typescript-eslint/utils/5.14.0_fo4uz55zgcu432252zy2gvpvcu: + resolution: {integrity: sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 5.14.0 + '@typescript-eslint/types': 5.14.0 + '@typescript-eslint/typescript-estree': 5.14.0_typescript@4.6.4 + eslint: 8.10.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@8.10.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/utils/5.14.0_pzezdwkd5bvjkx2hshexc25sxq: resolution: {integrity: sha512-EHwlII5mvUA0UsKYnVzySb/5EE/t03duUTweVy8Zqt3UQXBrpEVY144OTceFKaOe4xQXZJrkptCf7PjEBeGK4w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -7748,6 +7951,8 @@ packages: qs: 6.9.7 raw-body: 2.4.3 type-is: 1.6.18 + transitivePeerDependencies: + - supports-color dev: true /bonjour-service/1.0.11: @@ -7935,6 +8140,8 @@ packages: ssri: 8.0.1 tar: 6.1.11 unique-filename: 1.1.1 + transitivePeerDependencies: + - bluebird dev: true /cache-content-type/1.0.1: @@ -7947,7 +8154,6 @@ packages: /cacheable-lookup/5.0.4: resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} engines: {node: '>=10.6.0'} - dev: false /cacheable-lookup/6.0.4: resolution: {integrity: sha512-mbcDEZCkv2CZF4G01kr8eBd/5agkt9oCqz75tJMSIsquvRZ2sL6Hi5zGVKi/0OSC9oO1GHfJ2AV0ZIOY9vye0A==} @@ -7978,7 +8184,6 @@ packages: lowercase-keys: 2.0.0 normalize-url: 6.1.0 responselike: 2.0.0 - dev: false /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} @@ -8456,6 +8661,8 @@ packages: on-headers: 1.0.2 safe-buffer: 5.1.2 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true /concat-map/0.0.1: @@ -9026,12 +9233,22 @@ packages: /debug/2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.0.0 dev: true /debug/3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true dependencies: ms: 2.1.3 @@ -9107,7 +9324,6 @@ packages: engines: {node: '>=10'} dependencies: mimic-response: 3.1.0 - dev: false /dedent/0.7.0: resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} @@ -9148,7 +9364,6 @@ packages: /defer-to-connect/2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} engines: {node: '>=10'} - dev: false /define-lazy-prop/2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} @@ -9250,6 +9465,8 @@ packages: dependencies: address: 1.1.2 debug: 2.6.9 + transitivePeerDependencies: + - supports-color dev: true /detect-port/1.3.0: @@ -9259,6 +9476,8 @@ packages: dependencies: address: 1.1.2 debug: 2.6.9 + transitivePeerDependencies: + - supports-color dev: true /dezalgo/1.0.3: @@ -9687,6 +9906,19 @@ packages: eslint-plugin-react-hooks: 4.3.0_eslint@8.10.0 dev: true + /eslint-config-xo-typescript/0.50.0_b6hbb4k6vvsdi73yarkmqk6fhi: + resolution: {integrity: sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg==} + engines: {node: '>=12'} + peerDependencies: + '@typescript-eslint/eslint-plugin': '>=5.8.0' + eslint: '>=8.0.0' + typescript: '>=4.4' + dependencies: + '@typescript-eslint/eslint-plugin': 5.14.0_lyrhcatghsl22zfuax7wrzsedu + eslint: 8.10.0 + typescript: 4.6.4 + dev: true + /eslint-config-xo-typescript/0.50.0_bxagizztfittfwl32gn7ww64qi: resolution: {integrity: sha512-Ru2tXB8y2w9fFHLm4v2AVfY6P81UbfEuDZuxEpeXlfV65Ezlk0xO4nBaT899ojIFkWfr60rP9Ye4CdVUUT1UYg==} engines: {node: '>=12'} @@ -9728,6 +9960,8 @@ packages: dependencies: debug: 3.2.7 resolve: 1.22.0 + transitivePeerDependencies: + - supports-color dev: true /eslint-import-resolver-typescript/2.5.0_rnagsyfcubvpoxo2ynj23pim7u: @@ -9739,7 +9973,7 @@ packages: dependencies: debug: 4.3.3 eslint: 8.10.0 - eslint-plugin-import: 2.25.4_eslint@8.10.0 + eslint-plugin-import: 2.25.4_sidoke6kqbkbdht6nlmwbfnany glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.0 @@ -9748,12 +9982,31 @@ packages: - supports-color dev: true - /eslint-module-utils/2.7.3: + /eslint-module-utils/2.7.3_l62aq42yiamaj3cnpuf6avthf4: resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: + '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu debug: 3.2.7 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 2.5.0_rnagsyfcubvpoxo2ynj23pim7u find-up: 2.1.0 + transitivePeerDependencies: + - supports-color dev: true /eslint-plugin-consistent-default-export-name/0.0.7: @@ -9788,19 +10041,24 @@ packages: ignore: 5.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.10.0: + /eslint-plugin-import/2.25.4_sidoke6kqbkbdht6nlmwbfnany: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: + '@typescript-eslint/parser': '*' eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true dependencies: + '@typescript-eslint/parser': 5.14.0_fo4uz55zgcu432252zy2gvpvcu array-includes: 3.1.4 array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 eslint: 8.10.0 eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 + eslint-module-utils: 2.7.3_l62aq42yiamaj3cnpuf6avthf4 has: 1.0.3 is-core-module: 2.8.1 is-glob: 4.0.3 @@ -9808,6 +10066,10 @@ packages: object.values: 1.1.5 resolve: 1.22.0 tsconfig-paths: 3.13.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: true /eslint-plugin-no-use-extend-native/0.5.0: @@ -10199,6 +10461,8 @@ packages: type-is: 1.6.18 utils-merge: 1.0.1 vary: 1.1.2 + transitivePeerDependencies: + - supports-color dev: true /extend-shallow/2.0.1: @@ -10406,6 +10670,8 @@ packages: parseurl: 1.3.3 statuses: 1.5.0 unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color dev: true /find-cache-dir/3.3.2: @@ -10965,7 +11231,6 @@ packages: lowercase-keys: 2.0.0 p-cancelable: 2.1.1 responselike: 2.0.0 - dev: false /got/9.6.0: resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} @@ -10973,6 +11238,8 @@ packages: dependencies: '@sindresorhus/is': 0.14.0 '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.3 + '@types/responselike': 1.0.0 cacheable-request: 6.1.0 decompress-response: 3.3.0 duplexer3: 0.1.4 @@ -11042,7 +11309,6 @@ packages: /harmony-reflect/1.6.2: resolution: {integrity: sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==} - dev: false /has-bigints/1.0.1: resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} @@ -11444,7 +11710,6 @@ packages: dependencies: quick-lru: 5.1.1 resolve-alpn: 1.2.1 - dev: false /https-proxy-agent/5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} @@ -11533,7 +11798,6 @@ packages: engines: {node: '>=4'} dependencies: harmony-reflect: 1.6.2 - dev: false /ieee754/1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -12364,7 +12628,7 @@ packages: pretty-format: 27.5.1 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.7.0_42uktnex6oapjbpw2i7vzvmrzi + ts-node: 10.7.0_drbbnc2wk7uwp4gsdsdvgzqgya transitivePeerDependencies: - bufferutil - canvas @@ -12670,6 +12934,14 @@ packages: /jest-transform-stub/2.0.0: resolution: {integrity: sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==} + + /jest-transformer-svg/1.0.2_jest@27.5.1: + resolution: {integrity: sha512-A9z5Vzs+TlPpxekwUOCyVu5sHgcCKUKyJTE1q/bUhtAILpgf3kIj6IjguQrTJG0jN0nRnuNV7ckPUE8Vdf12Jg==} + peerDependencies: + jest: ^27.0.6 + react: ^17.0.2 + dependencies: + jest: 27.5.1_ts-node@10.7.0 dev: false /jest-transformer-svg/1.0.2_jest@27.5.1+react@17.0.2: @@ -12878,7 +13150,6 @@ packages: /json-buffer/3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: false /json-parse-better-errors/1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} @@ -12972,7 +13243,6 @@ packages: resolution: {integrity: sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==} dependencies: json-buffer: 3.0.1 - dev: false /kind-of/6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} @@ -13148,6 +13418,7 @@ packages: import-local: 3.1.0 npmlog: 4.1.2 transitivePeerDependencies: + - bluebird - encoding - supports-color dev: true @@ -13182,6 +13453,7 @@ packages: npm-package-arg: 8.1.5 npm-registry-fetch: 11.0.0 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -13195,6 +13467,7 @@ packages: semver: 7.3.5 ssri: 8.0.1 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -13566,6 +13839,7 @@ packages: socks-proxy-agent: 5.0.1 ssri: 8.0.1 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -13590,6 +13864,7 @@ packages: socks-proxy-agent: 6.1.1 ssri: 8.0.1 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -14191,7 +14466,6 @@ packages: /mimic-response/3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: false /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} @@ -14701,6 +14975,7 @@ packages: minizlib: 2.1.2 npm-package-arg: 8.1.5 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -14717,6 +14992,7 @@ packages: minizlib: 2.1.2 npm-package-arg: 8.1.5 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -14999,7 +15275,6 @@ packages: /p-cancelable/2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - dev: false /p-defer/3.0.0: resolution: {integrity: sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==} @@ -15160,6 +15435,7 @@ packages: ssri: 8.0.1 tar: 6.1.11 transitivePeerDependencies: + - bluebird - supports-color dev: true @@ -15561,6 +15837,8 @@ packages: async: 2.6.3 debug: 3.2.7 mkdirp: 0.5.5 + transitivePeerDependencies: + - supports-color dev: true /postcss-calc/8.2.4_postcss@8.4.12: @@ -15650,7 +15928,7 @@ packages: dependencies: htmlparser2: 3.10.1 postcss: 7.0.39 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom dev: true /postcss-less/3.1.4: @@ -16050,12 +16328,31 @@ packages: svgo: 2.8.0 dev: true - /postcss-syntax/0.36.2_postcss@7.0.39: + /postcss-syntax/0.36.2_kei4jy7wdgbhc236h4oijypxom: resolution: {integrity: sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==} peerDependencies: postcss: '>=5.0.0' + postcss-html: '*' + postcss-jsx: '*' + postcss-less: '*' + postcss-markdown: '*' + postcss-scss: '*' + peerDependenciesMeta: + postcss-html: + optional: true + postcss-jsx: + optional: true + postcss-less: + optional: true + postcss-markdown: + optional: true + postcss-scss: + optional: true dependencies: postcss: 7.0.39 + postcss-html: 0.36.0_j55xdkkcxc32kvnyvx3y7casfm + postcss-less: 3.1.4 + postcss-scss: 2.1.1 dev: true /postcss-unique-selectors/5.1.1_postcss@8.4.12: @@ -16267,6 +16564,11 @@ packages: /promise-inflight/1.0.1: resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true dev: true /promise-retry/2.0.1: @@ -16544,6 +16846,7 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - eslint + - supports-color - typescript - vue-template-compiler - webpack @@ -17334,7 +17637,6 @@ packages: /resolve-alpn/1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} - dev: false /resolve-cwd/3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} @@ -17401,7 +17703,6 @@ packages: resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==} dependencies: lowercase-keys: 2.0.0 - dev: false /restore-cursor/3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} @@ -17656,6 +17957,8 @@ packages: on-finished: 2.3.0 range-parser: 1.2.1 statuses: 1.5.0 + transitivePeerDependencies: + - supports-color dev: true /serialize-error/7.0.1: @@ -17702,6 +18005,8 @@ packages: http-errors: 1.6.3 mime-types: 2.1.35 parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color dev: true /serve-static/1.14.2: @@ -17712,6 +18017,8 @@ packages: escape-html: 1.0.3 parseurl: 1.3.3 send: 0.17.2 + transitivePeerDependencies: + - supports-color dev: true /set-blocking/2.0.0: @@ -18541,7 +18848,7 @@ packages: postcss-sass: 0.4.4 postcss-scss: 2.1.1 postcss-selector-parser: 6.0.9 - postcss-syntax: 0.36.2_postcss@7.0.39 + postcss-syntax: 0.36.2_kei4jy7wdgbhc236h4oijypxom postcss-value-parser: 4.2.0 resolve-from: 5.0.0 slash: 3.0.0 @@ -18555,6 +18862,8 @@ packages: v8-compile-cache: 2.3.0 write-file-atomic: 3.0.3 transitivePeerDependencies: + - postcss-jsx + - postcss-markdown - supports-color dev: true @@ -18935,6 +19244,40 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true + /ts-jest/27.1.1_53ggqi2i4rbcfjtktmjua6zili: + resolution: {integrity: sha512-Ds0VkB+cB+8g2JUmP/GKWndeZcCKrbe6jzolGrVWdqVUFByY/2KDHqxJ7yBSon7hDB1TA4PXxjfZ+JjzJisvgA==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@types/jest': ^27.0.0 + babel-jest: '>=27.0.0 <28' + esbuild: ~0.14.0 + jest: ^27.0.0 + typescript: '>=3.8 <5.0' + peerDependenciesMeta: + '@babel/core': + optional: true + '@types/jest': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@types/jest': 27.4.1 + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 27.5.1_ts-node@10.7.0 + jest-util: 27.5.1 + json5: 2.2.1 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.3.5 + typescript: 4.6.4 + yargs-parser: 20.2.9 + dev: true + /ts-jest/27.1.1_eufcckiefljihjhutvg5ibw4rq: resolution: {integrity: sha512-Ds0VkB+cB+8g2JUmP/GKWndeZcCKrbe6jzolGrVWdqVUFByY/2KDHqxJ7yBSon7hDB1TA4PXxjfZ+JjzJisvgA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -19128,6 +19471,37 @@ packages: yn: 3.1.1 dev: true + /ts-node/10.7.0_drbbnc2wk7uwp4gsdsdvgzqgya: + resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + dependencies: + '@cspotcode/source-map-support': 0.7.0 + '@tsconfig/node10': 1.0.8 + '@tsconfig/node12': 1.0.9 + '@tsconfig/node14': 1.0.1 + '@tsconfig/node16': 1.0.2 + '@types/node': 16.11.12 + acorn: 8.7.0 + acorn-walk: 8.2.0 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 4.6.4 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + dev: true + /tsc-watch/5.0.3_typescript@4.6.2: resolution: {integrity: sha512-Hz2UawwELMSLOf0xHvAFc7anLeMw62cMVXr1flYmhRuOhOyOljwmb1l/O60ZwRyy1k7N1iC1mrn1QYM2zITfuw==} engines: {node: '>=8.17.0'} @@ -19198,6 +19572,16 @@ packages: typescript: 4.6.3 dev: true + /tsutils/3.21.0_typescript@4.6.4: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.6.4 + dev: true + /tunnel-agent/0.6.0: resolution: {integrity: sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=} dependencies: @@ -19297,6 +19681,12 @@ packages: hasBin: true dev: true + /typescript/4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + /ua-parser-js/0.7.31: resolution: {integrity: sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==} dev: true