From be373591a92f190cf502ceedacfe86107ec19fb9 Mon Sep 17 00:00:00 2001 From: Gao Sun Date: Fri, 21 Apr 2023 00:21:21 +0800 Subject: [PATCH] refactor(ui): use swc for testing (#3726) * refactor(ui): use swc for testing * chore: remove unused code --- packages/integration-tests/jest.setup.js | 4 - packages/integration-tests/package.json | 1 - packages/integration-tests/src/utils.ts | 2 + packages/ui/jest.config.ts | 42 ++- packages/ui/package.json | 6 +- packages/ui/src/jest.setup.ts | 5 - packages/ui/tsconfig.test.json | 6 - pnpm-lock.yaml | 351 +++++++++++++---------- 8 files changed, 237 insertions(+), 180 deletions(-) delete mode 100644 packages/ui/tsconfig.test.json diff --git a/packages/integration-tests/jest.setup.js b/packages/integration-tests/jest.setup.js index ac2df4e12..f27b50cf1 100644 --- a/packages/integration-tests/jest.setup.js +++ b/packages/integration-tests/jest.setup.js @@ -1,6 +1,3 @@ -// Need to disable following rules to mock text-decode/text-encoder and crypto for jsdom -// https://github.com/jsdom/jsdom/issues/1612 -import { Crypto } from '@peculiar/webcrypto'; import dotenv from 'dotenv'; import fetch from 'node-fetch'; import { TextDecoder, TextEncoder } from 'text-encoder'; @@ -10,7 +7,6 @@ const { jest } = import.meta; dotenv.config(); /* eslint-disable @silverhand/fp/no-mutation */ -global.crypto = new Crypto(); global.fetch = fetch; global.TextDecoder = TextDecoder; global.TextEncoder = TextEncoder; diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 6853aafed..649f30ff3 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -26,7 +26,6 @@ "@logto/js": "1.1.0", "@logto/node": "1.1.1", "@logto/schemas": "workspace:^1.1.0", - "@peculiar/webcrypto": "^1.3.3", "@silverhand/eslint-config": "3.0.1", "@silverhand/essentials": "^2.5.0", "@silverhand/ts-config": "3.0.0", diff --git a/packages/integration-tests/src/utils.ts b/packages/integration-tests/src/utils.ts index c642d7ae0..c48eb8e18 100644 --- a/packages/integration-tests/src/utils.ts +++ b/packages/integration-tests/src/utils.ts @@ -1,3 +1,5 @@ +import crypto from 'node:crypto'; + import { assert } from '@silverhand/essentials'; export const generateName = () => crypto.randomUUID(); diff --git a/packages/ui/jest.config.ts b/packages/ui/jest.config.ts index b61238ad1..47305ffc4 100644 --- a/packages/ui/jest.config.ts +++ b/packages/ui/jest.config.ts @@ -1,20 +1,32 @@ -import type { Config } from '@silverhand/jest-config'; -import { merge } from '@silverhand/jest-config'; +import type { Config } from '@jest/types'; const config: Config.InitialOptions = { - ...merge({ - testEnvironment: 'jsdom', - setupFilesAfterEnv: ['/src/jest.setup.ts'], - transform: { - '\\.(svg)$': 'jest-transformer-svg', - '\\.(png)$': 'jest-transform-stub', - }, - moduleNameMapper: { - '^@logto/app-insights/(.*)$': '/node_modules/@logto/app-insights/lib/$1', - '^@logto/shared/(.*)$': '/../shared/lib/$1', - }, - }), - // Will update common config soon + roots: ['/src'], + testEnvironment: 'jsdom', + setupFilesAfterEnv: ['/src/jest.setup.ts'], + transform: { + '^.+\\.(t|j)sx?$': [ + '@swc/jest', + { + sourceMaps: true, + jsc: { + transform: { + react: { + runtime: 'automatic', + }, + }, + }, + }, + ], + '\\.(svg)$': 'jest-transformer-svg', + '\\.(png)$': 'jest-transform-stub', + }, + moduleNameMapper: { + '^@/(.*)$': '/src/$1', + '^@logto/app-insights/(.*)$': '/../app-insights/lib/$1', + '^@logto/shared/(.*)$': '/../shared/lib/$1', + '\\.module\\.(css|sass|scss)$': 'identity-obj-proxy', + }, transformIgnorePatterns: ['node_modules/(?!(.*(nanoid|jose|ky|@logto|@silverhand))/)'], }; diff --git a/packages/ui/package.json b/packages/ui/package.json index b1de5a33d..2bbf2f4a5 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -20,6 +20,7 @@ "test": "jest" }, "devDependencies": { + "@jest/types": "^29.5.0", "@logto/app-insights": "workspace:^1.1.0", "@logto/connector-kit": "workspace:^1.1.1", "@logto/core-kit": "workspace:^2.0.0", @@ -32,15 +33,15 @@ "@parcel/core": "2.8.3", "@parcel/transformer-sass": "2.8.3", "@parcel/transformer-svg-react": "2.8.3", - "@peculiar/webcrypto": "^1.3.3", "@react-spring/shared": "^9.6.1", "@react-spring/web": "^9.6.1", "@silverhand/eslint-config": "3.0.1", "@silverhand/eslint-config-react": "3.0.1", "@silverhand/essentials": "^2.5.0", - "@silverhand/jest-config": "1.2.2", "@silverhand/ts-config": "3.0.0", "@silverhand/ts-config-react": "3.0.0", + "@swc/core": "^1.3.52", + "@swc/jest": "^0.2.26", "@testing-library/react": "^14.0.0", "@types/color": "^3.0.3", "@types/jest": "^29.4.0", @@ -84,7 +85,6 @@ "stylelint": "^15.0.0", "superstruct": "^1.0.3", "tiny-cookie": "^2.4.1", - "ts-jest": "^29.0.5", "typescript": "^5.0.0", "use-debounced-loader": "^0.1.1", "zod": "^3.20.2" diff --git a/packages/ui/src/jest.setup.ts b/packages/ui/src/jest.setup.ts index a912d64af..321fe6eda 100644 --- a/packages/ui/src/jest.setup.ts +++ b/packages/ui/src/jest.setup.ts @@ -1,5 +1,3 @@ -import { Crypto } from '@peculiar/webcrypto'; - // https://jestjs.io/docs/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom // eslint-disable-next-line @silverhand/fp/no-mutating-methods Object.defineProperty(window, 'matchMedia', { @@ -17,9 +15,6 @@ Object.defineProperty(window, 'matchMedia', { })), }); -// eslint-disable-next-line @silverhand/fp/no-mutation, no-restricted-syntax -global.crypto = new Crypto() as typeof global.crypto; - const translation = (key: string) => key; // eslint-disable-next-line @typescript-eslint/no-unsafe-return diff --git a/packages/ui/tsconfig.test.json b/packages/ui/tsconfig.test.json deleted file mode 100644 index c68416b04..000000000 --- a/packages/ui/tsconfig.test.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "./tsconfig", - "compilerOptions": { - "allowJs": true - } -} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2ffa77201..23c998971 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3375,9 +3375,6 @@ importers: '@logto/schemas': specifier: workspace:^1.1.0 version: link:../schemas - '@peculiar/webcrypto': - specifier: ^1.3.3 - version: 1.3.3 '@silverhand/eslint-config': specifier: 3.0.1 version: 3.0.1(eslint@8.34.0)(prettier@2.8.4)(typescript@5.0.2) @@ -3780,6 +3777,9 @@ importers: packages/ui: devDependencies: + '@jest/types': + specifier: ^29.5.0 + version: 29.5.0 '@logto/app-insights': specifier: workspace:^1.1.0 version: link:../app-insights @@ -3816,9 +3816,6 @@ importers: '@parcel/transformer-svg-react': specifier: 2.8.3 version: 2.8.3(@parcel/core@2.8.3) - '@peculiar/webcrypto': - specifier: ^1.3.3 - version: 1.3.3 '@react-spring/shared': specifier: ^9.6.1 version: 9.6.1(react@18.2.0) @@ -3834,15 +3831,18 @@ importers: '@silverhand/essentials': specifier: ^2.5.0 version: 2.5.0 - '@silverhand/jest-config': - specifier: 1.2.2 - version: 1.2.2(@babel/core@7.20.2)(jest@29.5.0)(typescript@5.0.2) '@silverhand/ts-config': specifier: 3.0.0 version: 3.0.0(typescript@5.0.2) '@silverhand/ts-config-react': specifier: 3.0.0 version: 3.0.0(typescript@5.0.2) + '@swc/core': + specifier: ^1.3.52 + version: 1.3.52 + '@swc/jest': + specifier: ^0.2.26 + version: 0.2.26(@swc/core@1.3.52) '@testing-library/react': specifier: ^14.0.0 version: 14.0.0(react-dom@18.2.0)(react@18.2.0) @@ -3893,7 +3893,7 @@ importers: version: 3.0.0 jest: specifier: ^29.5.0 - version: 29.5.0(@types/node@18.11.18) + version: 29.5.0 jest-environment-jsdom: specifier: ^29.0.0 version: 29.2.2 @@ -3972,9 +3972,6 @@ importers: tiny-cookie: specifier: ^2.4.1 version: 2.4.1 - ts-jest: - specifier: ^29.0.5 - version: 29.0.5(@babel/core@7.20.2)(@jest/types@29.5.0)(jest@29.5.0)(typescript@5.0.2) typescript: specifier: ^5.0.0 version: 5.0.2 @@ -6739,6 +6736,13 @@ packages: - ts-node dev: true + /@jest/create-cache-key-function@27.5.1: + resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + '@jest/types': 27.5.1 + dev: true + /@jest/environment@27.5.1: resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -8246,33 +8250,6 @@ packages: nullthrows: 1.1.1 dev: true - /@peculiar/asn1-schema@2.1.0: - resolution: {integrity: sha512-D6g4C5YRKC/iPujMAOXuZ7YGdaoMx8GsvWzfVSyx2LYeL38ECOKNywlYAuwbqQvON64lgsYdAujWQPX8hhoBLw==} - dependencies: - '@types/asn1js': 2.0.2 - asn1js: 2.3.2 - pvtsutils: 1.2.2 - tslib: 2.5.0 - dev: true - - /@peculiar/json-schema@1.1.12: - resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} - engines: {node: '>=8.0.0'} - dependencies: - tslib: 2.5.0 - dev: true - - /@peculiar/webcrypto@1.3.3: - resolution: {integrity: sha512-+jkp16Hp18HkphJlMtqsQKjyDWJBh0AhDuoB+vVakuIRbkBdaFb7v26Ldm25altjiYhCyQnR5NChHxwSTvbXJw==} - engines: {node: '>=10.12.0'} - dependencies: - '@peculiar/asn1-schema': 2.1.0 - '@peculiar/json-schema': 1.1.12 - pvtsutils: 1.2.2 - tslib: 2.4.1 - webcrypto-core: 1.7.3 - dev: true - /@pkgr/utils@2.3.1: resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} @@ -8613,26 +8590,6 @@ packages: resolution: {integrity: sha512-8GgVFAmbo6S0EgsjYXH4aH8a69O7SzEtPFPDpVZmJuGEt8e3ODVx0F2V4rXyC3/SzFbcb2md2gRbA+Z6aTad6g==} engines: {node: ^16.13.0 || ^18.12.0 || ^19.2.0, pnpm: ^7} - /@silverhand/jest-config@1.2.2(@babel/core@7.20.2)(jest@29.5.0)(typescript@5.0.2): - resolution: {integrity: sha512-sCOIHN3kIG9nyySkDao8nz6HK8VhGoUV4WG1CCriDDeGTqbHs4IprzTp1p+ChFdC8JGBCElQC0cIFrWYTFnTAQ==} - engines: {node: ^16.0.0 || ^18.0.0} - peerDependencies: - jest: ^29.0.0 || ^29.1.2 - dependencies: - '@jest/types': 29.5.0 - deepmerge: 4.2.2 - identity-obj-proxy: 3.0.0 - jest: 29.5.0(@types/node@18.11.18) - jest-matcher-specific-error: 1.0.0 - jest-transform-stub: 2.0.0 - ts-jest: 29.0.5(@babel/core@7.20.2)(@jest/types@29.5.0)(jest@29.5.0)(typescript@5.0.2) - transitivePeerDependencies: - - '@babel/core' - - babel-jest - - esbuild - - typescript - dev: true - /@silverhand/jest-config@3.0.0(jest@29.5.0): resolution: {integrity: sha512-5ezkX1/EVQiL2Y3lMY3jLT00GvyRgNKWAB/LIToVN0BQPnasdzKV6sSn2wrQD6XY3lNvR9TBdZajGmG/jtcRjA==} engines: {node: ^18.12.0} @@ -8860,12 +8817,135 @@ packages: svgo: 2.8.0 dev: true + /@swc/core-darwin-arm64@1.3.52: + resolution: {integrity: sha512-Y+4YDN7mAhMgqLVMjpIOagFg93uWdQRsJXd3NAXo24CAJXLBuXsiXQdJVdhGavQkF0+NuhFSTGrzB8TknzWQkg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-darwin-x64@1.3.52: + resolution: {integrity: sha512-XbvBA+DwTedleh/smYA6E1Z1L1tVnF+ULhpszAAW4YYDzH47R73ucCdcSH/aHs4swv+uyvRquKoDtTTNZFvD4A==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm-gnueabihf@1.3.52: + resolution: {integrity: sha512-YRTLjZcoGH09q0vjg5s6vxOryzAGlMx2Ly6Hq8+8ruBtG3QTsCN3y7MI8mX254xdFCJiTX5YwQheGjRXS7FF9A==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-gnu@1.3.52: + resolution: {integrity: sha512-B0HKtj0XpqpqflGKMxFlyXyORN0xshF8TVzUBD/2FgF7o8fE2RM1eqtdf1EzmZTT1hwxLpJXrEj+0gSXfWPW4A==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-arm64-musl@1.3.52: + resolution: {integrity: sha512-GCxNjTAborAmv4VV1AMZLyejHLGgIzu13tvLUFqybtU4jFxVbE2ZK4ZnPCfDlWN+eBwyRWk1oNFR2hH+66vaUQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-gnu@1.3.52: + resolution: {integrity: sha512-mrvDBSkLI3Mza2qcu3uzB5JGwMBYDb1++UQ1VB0RXf2AR21/cCper4P44IpfdeqFz9XyXq18Sh3gblICUCGvig==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-linux-x64-musl@1.3.52: + resolution: {integrity: sha512-r9RIvKUQv7yBkpXz+QxPAucdoj8ymBlgIm5rLE0b5VmU7dlKBnpAmRBYaITdH6IXhF0pwuG+FHAd5elBcrkIwA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-arm64-msvc@1.3.52: + resolution: {integrity: sha512-YRtEr7tDo0Wes3M2ZhigF4erUjWBXeFP+O+iz6ELBBmPG7B7m/lrA21eiW9/90YGnzi0iNo46shK6PfXuPhP+Q==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-ia32-msvc@1.3.52: + resolution: {integrity: sha512-t1x6EdYg3nnnmZBkEtmdXwGpVFTnkNCYyTILcn4367tKI6NpcNe75tz6wBUZAWAmol6Bn75je9KHDNC9uBcO2A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core-win32-x64-msvc@1.3.52: + resolution: {integrity: sha512-ef0KzcHxWgRii0EyUlgzNA0ycqaRRKxSb6QCO9Ev3tib4SSjbPy0MAndU7f82Ndm/pPmXT+7cciRtZ083vzjZA==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@swc/core@1.3.52: + resolution: {integrity: sha512-2LOkkl5Ebyzg1e2pu/tqz5zAAiNAtSR99KZDJz4+FTpo6lYwr+SRkeXSNFrYAReHBMb5VJoimrLDLHJ2X1E7Lg==} + engines: {node: '>=10'} + requiresBuild: true + peerDependencies: + '@swc/helpers': ^0.5.0 + peerDependenciesMeta: + '@swc/helpers': + optional: true + optionalDependencies: + '@swc/core-darwin-arm64': 1.3.52 + '@swc/core-darwin-x64': 1.3.52 + '@swc/core-linux-arm-gnueabihf': 1.3.52 + '@swc/core-linux-arm64-gnu': 1.3.52 + '@swc/core-linux-arm64-musl': 1.3.52 + '@swc/core-linux-x64-gnu': 1.3.52 + '@swc/core-linux-x64-musl': 1.3.52 + '@swc/core-win32-arm64-msvc': 1.3.52 + '@swc/core-win32-ia32-msvc': 1.3.52 + '@swc/core-win32-x64-msvc': 1.3.52 + dev: true + /@swc/helpers@0.4.14: resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} dependencies: tslib: 2.5.0 dev: true + /@swc/jest@0.2.26(@swc/core@1.3.52): + resolution: {integrity: sha512-7lAi7q7ShTO3E5Gt1Xqf3pIhRbERxR1DUxvtVa9WKzIB+HGQ7wZP5sYx86zqnaEoKKGhmOoZ7gyW0IRu8Br5+A==} + engines: {npm: '>= 7.0.0'} + peerDependencies: + '@swc/core': '*' + dependencies: + '@jest/create-cache-key-function': 27.5.1 + '@swc/core': 1.3.52 + jsonc-parser: 3.2.0 + dev: true + /@szmarczak/http-timer@5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -8939,10 +9019,6 @@ packages: resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} dev: true - /@types/asn1js@2.0.2: - resolution: {integrity: sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA==} - dev: true - /@types/babel__core@7.1.19: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: @@ -9933,13 +10009,6 @@ packages: safer-buffer: 2.1.2 dev: false - /asn1js@2.3.2: - resolution: {integrity: sha512-IYzujqcOk7fHaePpTyvD3KPAA0AjT3qZlaQAw76zmPPAV/XTjhO+tbHjbFbIQZIhw+fk9wCSfb0Z6K+JHe8Q2g==} - engines: {node: '>=6.0.0'} - dependencies: - pvutils: 1.1.3 - dev: true - /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true @@ -10208,13 +10277,6 @@ packages: update-browserslist-db: 1.0.10(browserslist@4.21.4) dev: true - /bs-logger@0.2.6: - resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} - engines: {node: '>= 6'} - dependencies: - fast-json-stable-stringify: 2.1.0 - dev: true - /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -11096,6 +11158,17 @@ packages: /dayjs@1.11.6: resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + /debug@3.2.7(supports-color@5.5.0): resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -11636,7 +11709,7 @@ packages: /eslint-import-resolver-node@0.3.7: resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 is-core-module: 2.11.0 resolve: 1.22.1 transitivePeerDependencies: @@ -11685,7 +11758,7 @@ packages: optional: true dependencies: '@typescript-eslint/parser': 5.57.0(eslint@8.34.0)(typescript@5.0.2) - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 eslint: 8.34.0 eslint-import-resolver-node: 0.3.7 eslint-import-resolver-typescript: 3.5.4(eslint-plugin-import@2.27.5)(eslint@8.34.0) @@ -11737,7 +11810,7 @@ packages: array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 - debug: 3.2.7(supports-color@5.5.0) + debug: 3.2.7 doctrine: 2.1.0 eslint: 8.34.0 eslint-import-resolver-node: 0.3.7 @@ -13795,6 +13868,34 @@ packages: - supports-color dev: true + /jest-cli@29.5.0: + resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.5.0 + '@jest/test-result': 29.5.0 + '@jest/types': 29.5.0 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + import-local: 3.1.0 + jest-config: 29.5.0(@types/node@18.11.18) + jest-util: 29.5.0 + jest-validate: 29.5.0 + prompts: 2.4.2 + yargs: 17.6.0 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jest-cli@29.5.0(@types/node@18.11.18): resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -14261,7 +14362,7 @@ packages: jest: ^28.1.0 || ^29.1.2 react: ^17.0.0 || ^18.0.0 dependencies: - jest: 29.5.0(@types/node@18.11.18) + jest: 29.5.0 react: 18.2.0 dev: true @@ -14349,6 +14450,26 @@ packages: supports-color: 8.1.1 dev: true + /jest@29.5.0: + resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + dependencies: + '@jest/core': 29.5.0 + '@jest/types': 29.5.0 + import-local: 3.1.0 + jest-cli: 29.5.0 + transitivePeerDependencies: + - '@types/node' + - supports-color + - ts-node + dev: true + /jest@29.5.0(@types/node@18.11.18): resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -14506,10 +14627,8 @@ packages: hasBin: true dev: true - /json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} - hasBin: true + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true /jsonfile@4.0.0: @@ -15018,10 +15137,6 @@ packages: resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} dev: false - /lodash.memoize@4.1.2: - resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} - dev: true - /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true @@ -17118,17 +17233,6 @@ packages: resolution: {integrity: sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==} dev: true - /pvtsutils@1.2.2: - resolution: {integrity: sha512-OALo5ZEdqiI127i64+CXwkCOyFHUA+tCQgaUO/MvRDFXWPr53f2sx28ECNztUEzuyu5xvuuD1EB/szg9mwJoGA==} - dependencies: - tslib: 2.5.0 - dev: true - - /pvutils@1.1.3: - resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} - engines: {node: '>=6.0.0'} - dev: true - /q@1.5.1: resolution: {integrity: sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=} engines: {node: '>=0.6.0', teleport: '>=0.2.0'} @@ -19139,41 +19243,6 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: true - /ts-jest@29.0.5(@babel/core@7.20.2)(@jest/types@29.5.0)(jest@29.5.0)(typescript@5.0.2): - resolution: {integrity: sha512-PL3UciSgIpQ7f6XjVOmbi96vmDHUqAyqDr8YxzopDqX3kfgYtX1cuNeBjP+L9sFXi6nzsGGA6R3fP3DDDJyrxA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^29.0.0 - babel-jest: ^29.0.0 - esbuild: '*' - jest: ^29.0.0 || ^29.1.2 - typescript: '>=4.3' - peerDependenciesMeta: - '@babel/core': - optional: true - '@jest/types': - optional: true - babel-jest: - optional: true - esbuild: - optional: true - dependencies: - '@babel/core': 7.20.2 - '@jest/types': 29.5.0 - bs-logger: 0.2.6 - fast-json-stable-stringify: 2.1.0 - jest: 29.5.0(@types/node@18.11.18) - jest-util: 29.5.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.3.8 - typescript: 5.0.2 - yargs-parser: 21.1.1 - dev: true - /ts-node@10.7.0(@types/node@18.11.18)(typescript@4.9.4): resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} hasBin: true @@ -19705,16 +19774,6 @@ packages: engines: {node: '>= 8'} dev: true - /webcrypto-core@1.7.3: - resolution: {integrity: sha512-8TnMtwwC/hQOyvElAOJ26lJKGgcErUG02KnKS1+QhjV4mDvQetVWU1EUEeLF8ICOrdc42+GypocyBJKRqo2kQg==} - dependencies: - '@peculiar/asn1-schema': 2.1.0 - '@peculiar/json-schema': 1.1.12 - asn1js: 2.3.2 - pvtsutils: 1.2.2 - tslib: 2.5.0 - dev: true - /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}