From 5ec381ac44b7fca117fdd9ff4a4554bf7117e620 Mon Sep 17 00:00:00 2001 From: dionshi Date: Wed, 21 Jun 2023 18:24:24 +0800 Subject: [PATCH 01/17] 1.36.0: - upgrade dev deps and typings. - detect native Proxy support and alert for old browser. --- package.json | 14 +-- pnpm-lock.yaml | 182 ++++++++++++++++++------------------- src/platform/bootstrap.tsx | 24 ++--- src/util/error-util.ts | 8 +- src/util/navigator-util.ts | 10 +- 5 files changed, 121 insertions(+), 117 deletions(-) diff --git a/package.json b/package.json index b480d55..45fc710 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.35.2", + "version": "1.36.0", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -25,7 +25,7 @@ "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", "@types/jest": "29.5.2", - "@types/node": "20.2.5", + "@types/node": "20.3.1", "@types/testing-library__jest-dom": "5.14.6", "@typescript-eslint/eslint-plugin": "5.59.8", "@typescript-eslint/parser": "5.59.8", @@ -39,19 +39,19 @@ "react-dom": "18.2.0", "ts-jest": "29.1.0", "ts-node": "10.9.1", - "typescript": "5.0.4", + "typescript": "5.1.3", "yargs": "17.7.2" }, "dependencies": { "@types/history": "4.7.11", - "@types/react": "18.2.7", - "@types/react-dom": "18.2.4", + "@types/react": "18.2.13", + "@types/react-dom": "18.2.6", "@types/react-redux": "7.1.25", "@types/react-router": "5.1.20", "@types/react-router-dom": "5.3.3", "axios": "1.4.0", "connected-react-router": "6.9.3", - "core-js": "3.30.2", + "core-js": "3.31.0", "history": "4.10.1", "immer": "10.0.2", "react-redux": "7.2.8", @@ -60,7 +60,7 @@ "redux": "4.1.2", "redux-saga": "1.1.3", "regenerator-runtime": "0.13.11", - "tslib": "2.5.2" + "tslib": "2.5.3" }, "peerDependencies": { "react": ">=18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 27ec7eb..1730e84 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -9,11 +9,11 @@ dependencies: specifier: 4.7.11 version: 4.7.11 '@types/react': - specifier: 18.2.7 - version: 18.2.7 + specifier: 18.2.13 + version: 18.2.13 '@types/react-dom': - specifier: 18.2.4 - version: 18.2.4 + specifier: 18.2.6 + version: 18.2.6 '@types/react-redux': specifier: 7.1.25 version: 7.1.25 @@ -30,8 +30,8 @@ dependencies: specifier: 6.9.3 version: 6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2) core-js: - specifier: 3.30.2 - version: 3.30.2 + specifier: 3.31.0 + version: 3.31.0 history: specifier: 4.10.1 version: 4.10.1 @@ -57,8 +57,8 @@ dependencies: specifier: 0.13.11 version: 0.13.11 tslib: - specifier: 2.5.2 - version: 2.5.2 + specifier: 2.5.3 + version: 2.5.3 devDependencies: '@testing-library/dom': @@ -77,17 +77,17 @@ devDependencies: specifier: 29.5.2 version: 29.5.2 '@types/node': - specifier: 20.2.5 - version: 20.2.5 + specifier: 20.3.1 + version: 20.3.1 '@types/testing-library__jest-dom': specifier: 5.14.6 version: 5.14.6 '@typescript-eslint/eslint-plugin': specifier: 5.59.8 - version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/parser': specifier: 5.59.8 - version: 5.59.8(eslint@8.41.0)(typescript@5.0.4) + version: 5.59.8(eslint@8.41.0)(typescript@5.1.3) eslint: specifier: 8.41.0 version: 8.41.0 @@ -99,7 +99,7 @@ devDependencies: version: 11.1.1 jest: specifier: 29.5.0 - version: 29.5.0(@types/node@20.2.5)(ts-node@10.9.1) + version: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) jest-environment-jsdom: specifier: 29.5.0 version: 29.5.0 @@ -114,13 +114,13 @@ devDependencies: version: 18.2.0(react@18.2.0) ts-jest: specifier: 29.1.0 - version: 29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.0.4) + version: 29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.1.3) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.2.5)(typescript@5.0.4) + version: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) typescript: - specifier: 5.0.4 - version: 5.0.4 + specifier: 5.1.3 + version: 5.1.3 yargs: specifier: 17.7.2 version: 17.7.2 @@ -567,7 +567,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 jest-message-util: 29.5.0 jest-util: 29.5.0 @@ -588,14 +588,14 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.5.0(@types/node@20.2.5)(ts-node@10.9.1) + jest-config: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) jest-haste-map: 29.5.0 jest-message-util: 29.5.0 jest-regex-util: 29.4.3 @@ -622,7 +622,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-mock: 29.5.0 dev: true @@ -649,7 +649,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -682,7 +682,7 @@ packages: '@jest/transform': 29.5.0 '@jest/types': 29.5.0 '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -770,7 +770,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.2.5 + '@types/node': 20.3.1 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -933,7 +933,7 @@ packages: dependencies: '@babel/runtime': 7.19.0 '@testing-library/dom': 8.18.0 - '@types/react-dom': 18.2.4 + '@types/react-dom': 18.2.6 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -1004,7 +1004,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.2.5 + '@types/node': 20.3.1 dev: true /@types/history@4.7.11: @@ -1014,7 +1014,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.13 hoist-non-react-statics: 3.3.2 dev: false @@ -1044,7 +1044,7 @@ packages: /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.2.5 + '@types/node': 20.3.1 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -1053,8 +1053,8 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node@20.2.5: - resolution: {integrity: sha512-JJulVEQXmiY9Px5axXHeYGLSjhkZEnD+MDPDGbCbIAbMslkKwmygtZFy1X6s/075Yo94sf8GuSlFfPzysQrWZQ==} + /@types/node@20.3.1: + resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} dev: true /@types/prettier@2.7.0: @@ -1064,16 +1064,16 @@ packages: /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.2.4: - resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} + /@types/react-dom@18.2.6: + resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.13 /@types/react-redux@7.1.25: resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.7 + '@types/react': 18.2.13 hoist-non-react-statics: 3.3.2 redux: 4.1.2 dev: false @@ -1082,7 +1082,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.7 + '@types/react': 18.2.13 '@types/react-router': 5.1.20 dev: false @@ -1090,11 +1090,11 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.7 + '@types/react': 18.2.13 dev: false - /@types/react@18.2.7: - resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} + /@types/react@18.2.13: + resolution: {integrity: sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1131,7 +1131,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1143,23 +1143,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 natural-compare-lite: 1.4.0 semver: 7.3.7 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1171,10 +1171,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 - typescript: 5.0.4 + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -1187,7 +1187,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.8 dev: true - /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1197,12 +1197,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) + '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) debug: 4.3.4 eslint: 8.41.0 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true @@ -1212,7 +1212,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.0.4): + /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3): resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1227,13 +1227,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 + tsutils: 3.21.0(typescript@5.1.3) + typescript: 5.1.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.0.4): + /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1244,7 +1244,7 @@ packages: '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.0.4) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) eslint: 8.41.0 eslint-scope: 5.1.1 semver: 7.3.7 @@ -1660,8 +1660,8 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js@3.30.2: - resolution: {integrity: sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg==} + /core-js@3.31.0: + resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==} requiresBuild: true dev: false @@ -2450,7 +2450,7 @@ packages: '@jest/expect': 29.5.0 '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -2470,7 +2470,7 @@ packages: - supports-color dev: true - /jest-cli@29.5.0(@types/node@20.2.5)(ts-node@10.9.1): + /jest-cli@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2487,7 +2487,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.5.0(@types/node@20.2.5)(ts-node@10.9.1) + jest-config: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) jest-util: 29.5.0 jest-validate: 29.5.0 prompts: 2.4.2 @@ -2498,7 +2498,7 @@ packages: - ts-node dev: true - /jest-config@29.5.0(@types/node@20.2.5)(ts-node@10.9.1): + /jest-config@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -2513,7 +2513,7 @@ packages: '@babel/core': 7.19.1 '@jest/test-sequencer': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 babel-jest: 29.5.0(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 @@ -2533,7 +2533,7 @@ packages: pretty-format: 29.5.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.2.5)(typescript@5.0.4) + ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) transitivePeerDependencies: - supports-color dev: true @@ -2579,7 +2579,7 @@ packages: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 '@types/jsdom': 20.0.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-mock: 29.5.0 jest-util: 29.5.0 jsdom: 20.0.0 @@ -2596,7 +2596,7 @@ packages: '@jest/environment': 29.5.0 '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-mock: 29.5.0 jest-util: 29.5.0 dev: true @@ -2612,7 +2612,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.5 - '@types/node': 20.2.5 + '@types/node': 20.3.1 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -2663,7 +2663,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-util: 29.5.0 dev: true @@ -2718,7 +2718,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -2749,7 +2749,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -2804,7 +2804,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -2816,7 +2816,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -2841,7 +2841,7 @@ packages: dependencies: '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.2.5 + '@types/node': 20.3.1 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -2853,13 +2853,13 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.2.5 + '@types/node': 20.3.1 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.5.0(@types/node@20.2.5)(ts-node@10.9.1): + /jest@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2872,7 +2872,7 @@ packages: '@jest/core': 29.5.0(ts-node@10.9.1) '@jest/types': 29.5.0 import-local: 3.1.0 - jest-cli: 29.5.0(@types/node@20.2.5)(ts-node@10.9.1) + jest-cli: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - supports-color @@ -3764,7 +3764,7 @@ packages: punycode: 2.1.1 dev: true - /ts-jest@29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.0.4): + /ts-jest@29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.1.3): resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3788,17 +3788,17 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.5.0(@types/node@20.2.5)(ts-node@10.9.1) + jest: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) jest-util: 29.2.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.3.7 - typescript: 5.0.4 + typescript: 5.1.3 yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.2.5)(typescript@5.0.4): + /ts-node@10.9.1(@types/node@20.3.1)(typescript@5.1.3): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3817,14 +3817,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.2.5 + '@types/node': 20.3.1 acorn: 8.8.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: 5.0.4 + typescript: 5.1.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -3833,18 +3833,18 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.5.2: - resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==} + /tslib@2.5.3: + resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} dev: false - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.1.3): 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: 5.0.4 + typescript: 5.1.3 dev: true /type-check@0.3.2: @@ -3892,9 +3892,9 @@ packages: typescript-compare: 0.0.2 dev: false - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} + /typescript@5.1.3: + resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + engines: {node: '>=14.17'} hasBin: true dev: true diff --git a/src/platform/bootstrap.tsx b/src/platform/bootstrap.tsx index 188f941..e1021bb 100644 --- a/src/platform/bootstrap.tsx +++ b/src/platform/bootstrap.tsx @@ -10,7 +10,7 @@ import {ErrorListener, executeAction} from "../module"; import {ErrorBoundary} from "../util/ErrorBoundary"; import {ajax} from "../util/network"; import {APIException} from "../Exception"; -import {isIEBrowser} from "../util/navigator-util"; +import {isBrowserSupported} from "../util/navigator-util"; import {captureError, errorToException} from "../util/error-util"; import {SagaGenerator, call, delay} from "../typed-saga"; import {IdleDetector, idleTimeoutActions} from ".."; @@ -30,12 +30,12 @@ interface VersionCheckConfig { /** * Configuration for browser related features. - * - onIE: Alert to user or redirect when using IE browser, because framework does not support IE. + * - onOldBrowserDetected: Alert to user or redirect when using unsupported legacy browser. * - onLocationChange: A global event handler for any location change events. * - navigationPreventionMessage: Only useful if you are leaving some page, whose "setNavigationPrevented" is toggled as true. */ interface BrowserConfig { - onIE?: () => void; + onOldBrowserDetected?: () => void; onLocationChange?: (location: Location) => void; navigationPreventionMessage?: string; } @@ -56,7 +56,7 @@ export const GLOBAL_ERROR_ACTION = "@@framework/global"; export const GLOBAL_PROMISE_REJECTION_ACTION = "@@framework/promise-rejection"; export function bootstrap(option: BootstrapOption): void { - detectIEBrowser(option.browserConfig?.onIE); + detectOldBrowser(option.browserConfig?.onOldBrowserDetected); setupGlobalErrorHandler(option.errorListener); setupAppExitListener(option.loggerConfig?.serverURL); setupLocationChangeListener(option.browserConfig?.onLocationChange); @@ -65,19 +65,19 @@ export function bootstrap(option: BootstrapOption): void { renderRoot(option.componentType, option.rootContainer || injectRootContainer(), option.browserConfig?.navigationPreventionMessage || "Are you sure to leave current page?"); } -function detectIEBrowser(onIE?: () => void) { - if (isIEBrowser()) { - if (onIE) { - onIE(); +function detectOldBrowser(onOldBrowserDetected?: () => void) { + if (!isBrowserSupported()) { + if (onOldBrowserDetected) { + onOldBrowserDetected(); } else { - let ieAlertMessage: string; + let alertMessage: string; const navigatorLanguage = navigator.languages ? navigator.languages[0] : navigator.language; if (navigatorLanguage.startsWith("zh")) { - ieAlertMessage = "对不起,本网站不支持 IE 浏览器\n请使用 Chrome/Firefox/360 浏览器再访问"; + alertMessage = "对不起,您的浏览器版本太老不支持\n请使用最新版的浏览器再访问"; } else { - ieAlertMessage = "This website does not support IE browser.\nPlease use Chrome/Safari/Firefox to visit.\nSorry for the inconvenience."; + alertMessage = "Your browser is not supported.\nPlease upgrade your browser to latest and visit again.\nSorry for the inconvenience."; } - alert(ieAlertMessage); + alert(alertMessage); } // After that, the following code may still run } diff --git a/src/util/error-util.ts b/src/util/error-util.ts index 15c01c7..9a1a0df 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -1,7 +1,7 @@ import {Exception, JavaScriptException} from "../Exception"; import {ErrorHandler} from "../module"; import {app} from "../app"; -import {isIEBrowser} from "./navigator-util"; +import {isBrowserSupported} from "./navigator-util"; import {spawn} from "../typed-saga"; import {GLOBAL_ERROR_ACTION, GLOBAL_PROMISE_REJECTION_ACTION, sendEventLogs} from "../platform/bootstrap"; @@ -80,6 +80,8 @@ export function* runUserErrorHandler(handler: ErrorHandler, exception: Exception } function specialErrorCode(exception: Exception, action: string, stacktrace?: string): string | null { + if (!isBrowserSupported()) return "UNSUPPORTED_BROWSER"; + const errorMessage = exception.message.toLowerCase(); const ignoredPatterns = [ // Network error while downloading JavaScript/CSS (webpack async loading) @@ -97,10 +99,6 @@ function specialErrorCode(exception: Exception, action: string, stacktrace?: str {pattern: "access is denied for this document", errorCode: "BROWSER_LIMIT"}, ]; - if (isIEBrowser()) { - return "IE_BROWSER_ISSUE"; - } - const matchedPattern = ignoredPatterns.find(({pattern}) => errorMessage.includes(pattern)); if (matchedPattern) { return `IGNORED_${matchedPattern.errorCode}_ISSUE`; diff --git a/src/util/navigator-util.ts b/src/util/navigator-util.ts index c5634d4..907cecf 100644 --- a/src/util/navigator-util.ts +++ b/src/util/navigator-util.ts @@ -1,3 +1,9 @@ -export function isIEBrowser() { - return navigator.userAgent.indexOf("MSIE") > 0 || navigator.userAgent.indexOf("Trident/") > 0; +export function isBrowserSupported() { + const isIE = navigator.userAgent.indexOf("MSIE") > 0 || navigator.userAgent.indexOf("Trident/") > 0; + if (isIE) return false; + + const proxySupported = typeof Proxy === "function"; // Required by immer + if (!proxySupported) return false; + + return true; } From 4785bb48cafc979b99906bda3abf9b5cd95a1339 Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Mon, 26 Jun 2023 12:26:55 +0800 Subject: [PATCH 02/17] change config file location --- .prettierrc | 6 ++++++ config/{jest.config.ts => jest.config.js} | 13 +++++++------ config/prettier.json | 6 ------ config/tsconfig.base.json | 2 +- config/tsconfig.src.json | 13 ------------- config/tsconfig.test.json | 11 ----------- package.json | 4 ++-- prettier.config.js | 1 - script/build.js | 11 +++++++---- test/tsconfig.json | 13 +++++++++++++ test/typed-saga.test.ts | 2 +- tsconfig.json | 15 ++++++++++++--- 12 files changed, 49 insertions(+), 48 deletions(-) create mode 100644 .prettierrc rename config/{jest.config.ts => jest.config.js} (61%) delete mode 100644 config/prettier.json delete mode 100644 config/tsconfig.src.json delete mode 100644 config/tsconfig.test.json delete mode 100644 prettier.config.js create mode 100644 test/tsconfig.json diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..06a13dd --- /dev/null +++ b/.prettierrc @@ -0,0 +1,6 @@ +{ + "tabWidth": 4, + "printWidth": 300, + "trailingComma": "es5", + "bracketSpacing": false +} diff --git a/config/jest.config.ts b/config/jest.config.js similarity index 61% rename from config/jest.config.ts rename to config/jest.config.js index b394f16..c1e5a0c 100644 --- a/config/jest.config.ts +++ b/config/jest.config.js @@ -1,14 +1,15 @@ -import * as path from "path"; -import {Config} from "jest"; +/* eslint-env node */ +/* eslint-disable @typescript-eslint/no-var-requires */ +const path = require("path"); -const config: Config = { +/** @type {import('ts-jest').JestConfigWithTsJest} */ +const config = { rootDir: "..", - roots: ["/test"], transform: { "^.+\\.tsx?$": [ "ts-jest", { - tsconfig: path.join(__dirname, "./tsconfig.test.json"), + tsconfig: path.join(__dirname, "../test/tsconfig.json"), }, ], }, @@ -22,4 +23,4 @@ const config: Config = { }, }; -export default config; +module.exports = config; diff --git a/config/prettier.json b/config/prettier.json deleted file mode 100644 index 6b4bcae..0000000 --- a/config/prettier.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "tabWidth": 4, - "printWidth": 300, - "trailingComma": "es5", - "bracketSpacing": false -} diff --git a/config/tsconfig.base.json b/config/tsconfig.base.json index e59c93c..8c2a151 100644 --- a/config/tsconfig.base.json +++ b/config/tsconfig.base.json @@ -2,13 +2,13 @@ "compilerOptions": { "target": "es5", "module": "esnext", - "moduleResolution": "node", "sourceMap": true, "inlineSources": true, "declaration": true, "strict": true, "exactOptionalPropertyTypes": true, "allowSyntheticDefaultImports": true, + "verbatimModuleSyntax": true, "esModuleInterop": true, "importHelpers": true, "experimentalDecorators": true, diff --git a/config/tsconfig.src.json b/config/tsconfig.src.json deleted file mode 100644 index 5c1009a..0000000 --- a/config/tsconfig.src.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "rootDir": "../src", - "outDir": "../lib", - "composite": true, - "declarationMap": true, - "jsx": "react", - "lib": ["DOM", "ES2020"], - "types": ["node"] - }, - "include": ["../src"] -} diff --git a/config/tsconfig.test.json b/config/tsconfig.test.json deleted file mode 100644 index 8e74c0f..0000000 --- a/config/tsconfig.test.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": "./tsconfig.base.json", - "compilerOptions": { - "jsx": "react", - "composite": true, - "lib": ["DOM", "ES2020"], - "types": ["jest", "@testing-library/jest-dom"] - }, - "include": ["../test/"], - "references": [{"path": "./tsconfig.src.json"}] -} diff --git a/package.json b/package.json index 45fc710..7799f04 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,8 @@ }, "scripts": { "build": "node script/build.js", - "test": "jest --config config/jest.config.ts", - "format": "prettier --config config/prettier.json --write \"{src,test,script,config}/**/*.{js,ts,tsx,json}\"", + "test": "jest --config config/jest.config.js", + "format": "prettier --write \"{src,test,script,config}/**/*.{js,ts,tsx,json}\"", "prepublishOnly": "node script/build.js --mode fast" }, "devDependencies": { diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index cfdecd7..0000000 --- a/prettier.config.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./config/prettier.json"); diff --git a/script/build.js b/script/build.js index 386f869..da2f53f 100644 --- a/script/build.js +++ b/script/build.js @@ -4,10 +4,13 @@ const childProcess = require("child_process"); const fs = require("fs-extra"); const yargs = require("yargs"); +const path = require("path"); + +const projectRoot = path.join(__dirname, ".."); function spawn(command, args, errorMessage) { const isWindows = process.platform === "win32"; // spawn with {shell: true} can solve .cmd resolving, but prettier doesn't run correctly on mac/linux - const result = childProcess.spawnSync(isWindows ? command + ".cmd" : command, args, {stdio: "inherit"}); + const result = childProcess.spawnSync(isWindows ? command + ".cmd" : command, args, {stdio: "inherit", cwd: projectRoot}); if (result.error) { console.error(result.error); process.exit(1); @@ -21,12 +24,12 @@ function spawn(command, args, errorMessage) { function checkCodeStyle() { console.info("check code style ..."); - return spawn("prettier", ["--config", "config/prettier.json", "--list-different", "{src,test}/**/*.{ts,tsx}"], "check code style failed, please format above files"); + return spawn("prettier", ["--list-different", "{src,test}/**/*.{ts,tsx}"], "check code style failed, please format above files"); } function test() { console.info("run test ..."); - return spawn("jest", ["--config", "config/jest.config.ts"], "test failed, please fix"); + return spawn("jest", ["--config", "config/jest.config.js"], "test failed, please fix"); } function lint() { @@ -41,7 +44,7 @@ function cleanup() { function compile() { console.info("tsc compile ..."); - return spawn("tsc", ["-p", "config/tsconfig.src.json", "--composite", "false"], "compile failed, please fix"); + return spawn("tsc", ["--composite", "false"], "compile failed, please fix"); } function build() { diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 0000000..de91d01 --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../config/tsconfig.base.json", + "compilerOptions": { + "module": "ES2022", + "jsx": "react", + "moduleResolution": "Bundler", + "composite": true, + "verbatimModuleSyntax": false, + "lib": ["DOM", "ES2020"], + "types": ["jest", "@testing-library/jest-dom", "node"] + }, + "references": [{"path": "../tsconfig.json"}] +} diff --git a/test/typed-saga.test.ts b/test/typed-saga.test.ts index 6d88db7..ac93692 100644 --- a/test/typed-saga.test.ts +++ b/test/typed-saga.test.ts @@ -1,5 +1,5 @@ import {all, call, race} from "../src/typed-saga"; -import {call as rawCall, delay, Effect} from "redux-saga/effects"; +import {call as rawCall, delay, type Effect} from "redux-saga/effects"; describe("typed-saga (functional test)", () => { interface APIResponse { diff --git a/tsconfig.json b/tsconfig.json index f2f3687..f899af2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,5 +1,14 @@ { - "include": [], - "files": [], - "references": [{"path": "./config/tsconfig.src.json"}, {"path": "./config/tsconfig.test.json"}] + "extends": "./config/tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "lib", + "composite": true, + "declarationMap": true, + "moduleResolution": "Bundler", + "jsx": "react", + "lib": ["DOM", "ES2020"], + "types": ["node"] + }, + "include": ["src"] } From 101a80b654fc08fbf8df1badc77a8f69f16392e2 Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Mon, 26 Jun 2023 16:16:29 +0800 Subject: [PATCH 03/17] added type to type import and export --- src/app.ts | 12 ++++++------ src/hooks.ts | 2 +- src/index.ts | 10 +++++----- src/module.ts | 6 +++--- src/platform/Module.tsx | 10 +++++----- src/reducer.ts | 4 ++-- src/typed-saga.ts | 2 +- src/util/IdleDetector.tsx | 2 +- src/util/Route.tsx | 2 +- src/util/error-util.ts | 2 +- src/util/network.ts | 2 +- 11 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/app.ts b/src/app.ts index fcfe275..842c72c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,11 +1,11 @@ import {routerMiddleware} from "connected-react-router"; -import {createBrowserHistory, History} from "history"; -import {applyMiddleware, compose, createStore, Store, StoreEnhancer} from "redux"; -import createSagaMiddleware, {SagaMiddleware} from "redux-saga"; +import {createBrowserHistory, type History} from "history"; +import {applyMiddleware, compose, createStore, type Store, type StoreEnhancer} from "redux"; +import createSagaMiddleware, {type SagaMiddleware} from "redux-saga"; import {takeEvery, call as rawCall, race as rawRace, take} from "redux-saga/effects"; -import {Logger, LoggerConfig, LoggerImpl} from "./Logger"; -import {ActionHandler, ErrorHandler, executeAction} from "./module"; -import {Action, LOADING_ACTION, rootReducer, State} from "./reducer"; +import {LoggerImpl, type Logger, type LoggerConfig} from "./Logger"; +import {executeAction, type ActionHandler, type ErrorHandler} from "./module"; +import {LOADING_ACTION, rootReducer, type Action, type State} from "./reducer"; import {captureError} from "./util/error-util"; declare const window: any; diff --git a/src/hooks.ts b/src/hooks.ts index 6b5f7e1..7ebba57 100644 --- a/src/hooks.ts +++ b/src/hooks.ts @@ -1,6 +1,6 @@ import React from "react"; -import {Action, State} from "./reducer"; import {useDispatch, useSelector} from "react-redux"; +import type {Action, State} from "./reducer"; type DeferLiteralArrayCheck = T extends Array ? T : never; diff --git a/src/index.ts b/src/index.ts index 4123a01..4809d7c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,9 +5,9 @@ import "./debug"; export {push} from "connected-react-router"; export * as immer from "immer"; export {bootstrap} from "./platform/bootstrap"; -export {Module, ModuleLocation, ModuleLifecycleListener} from "./platform/Module"; +export {Module, type ModuleLocation, type ModuleLifecycleListener} from "./platform/Module"; -export {async, AsyncOptions, AsyncErrorComponentProps} from "./util/async"; +export {async, type AsyncOptions, type AsyncErrorComponentProps} from "./util/async"; export {captureError} from "./util/error-util"; export {ajax, uri} from "./util/network"; export {ErrorBoundary} from "./util/ErrorBoundary"; @@ -16,10 +16,10 @@ export {Route} from "./util/Route"; export {createActionHandlerDecorator, Loading, Interval, Mutex, RetryOnNetworkConnectionError, SilentOnNetworkConnectionError, Log} from "./decorator"; export {Exception, APIException, NetworkConnectionException} from "./Exception"; -export {showLoading, loadingAction, navigationPreventionAction, idleStateActions, idleTimeoutActions, State} from "./reducer"; -export {register, ErrorListener} from "./module"; +export {showLoading, loadingAction, navigationPreventionAction, idleStateActions, idleTimeoutActions, type State} from "./reducer"; +export {register, type ErrorListener} from "./module"; export {useLoadingStatus, useAction, useObjectKeyAction, useUnaryAction, useBinaryAction} from "./hooks"; -export {SagaGenerator, call, put, spawn, delay, all, race, fork} from "./typed-saga"; +export {call, put, spawn, delay, all, race, fork, type SagaGenerator} from "./typed-saga"; export {logger} from "./app"; export {useStore, useSelector, useDispatch} from "react-redux"; diff --git a/src/module.ts b/src/module.ts index ba7e4fc..a33692c 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1,9 +1,9 @@ import {app} from "./app"; import {Exception} from "./Exception"; -import {Module, ModuleLifecycleListener} from "./platform/Module"; +import {Module, type ModuleLifecycleListener} from "./platform/Module"; import {ModuleProxy} from "./platform/ModuleProxy"; -import {Action, setStateAction} from "./reducer"; -import {SagaGenerator} from "./typed-saga"; +import {setStateAction, type Action} from "./reducer"; +import {type SagaGenerator} from "./typed-saga"; import {captureError} from "./util/error-util"; import {stringifyWithMask} from "./util/json-util"; diff --git a/src/platform/Module.tsx b/src/platform/Module.tsx index 715e789..0ef2a9c 100644 --- a/src/platform/Module.tsx +++ b/src/platform/Module.tsx @@ -1,12 +1,12 @@ import {push} from "connected-react-router"; -import {Location} from "history"; -import {SagaGenerator} from "../typed-saga"; import {put} from "redux-saga/effects"; import {produce, enablePatches} from "immer"; import {app} from "../app"; -import {Logger} from "../Logger"; -import {TickIntervalDecoratorFlag} from "../module"; -import {navigationPreventionAction, setStateAction, State} from "../reducer"; +import {navigationPreventionAction, setStateAction, type State} from "../reducer"; +import type {Location} from "history"; +import type {TickIntervalDecoratorFlag} from "../module"; +import type {SagaGenerator} from "../typed-saga"; +import type {Logger} from "../Logger"; if (process.env.NODE_ENV === "development") enablePatches(); diff --git a/src/reducer.ts b/src/reducer.ts index 8c65975..9a28176 100644 --- a/src/reducer.ts +++ b/src/reducer.ts @@ -1,5 +1,5 @@ -import {connectRouter, RouterState} from "connected-react-router"; -import {Action as ReduxAction, combineReducers, Reducer} from "redux"; +import {connectRouter, type RouterState} from "connected-react-router"; +import {combineReducers, type Action as ReduxAction, type Reducer} from "redux"; import {DEFAULT_IDLE_TIMEOUT} from "./util/IdleDetector"; import type {History} from "history"; diff --git a/src/typed-saga.ts b/src/typed-saga.ts index 3d45dda..da1af51 100644 --- a/src/typed-saga.ts +++ b/src/typed-saga.ts @@ -1,4 +1,4 @@ -import {StrictEffect, Effect, call as rawCall, race as rawRace, spawn, all as rawAll, delay, put, fork} from "redux-saga/effects"; +import {call as rawCall, race as rawRace, spawn, all as rawAll, delay, put, fork, type StrictEffect, type Effect} from "redux-saga/effects"; type SagaGeneratorWithReturn = Generator; diff --git a/src/util/IdleDetector.tsx b/src/util/IdleDetector.tsx index a35d019..b5f3665 100644 --- a/src/util/IdleDetector.tsx +++ b/src/util/IdleDetector.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {State, idleStateActions, IdleState} from "../reducer"; +import {idleStateActions, type State, type IdleState} from "../reducer"; import {useDispatch, useSelector} from "react-redux"; export const DEFAULT_IDLE_TIMEOUT = 300; diff --git a/src/util/Route.tsx b/src/util/Route.tsx index 5a6c051..f0c8a09 100644 --- a/src/util/Route.tsx +++ b/src/util/Route.tsx @@ -1,5 +1,5 @@ import React from "react"; -import {Redirect, Route as ReactRouterDOMRoute, RouteComponentProps, RouteProps} from "react-router-dom"; +import {Redirect, Route as ReactRouterDOMRoute, type RouteComponentProps, type RouteProps} from "react-router-dom"; import {ErrorBoundary} from "./ErrorBoundary"; import {app} from "../app"; diff --git a/src/util/error-util.ts b/src/util/error-util.ts index 9a1a0df..b2e5277 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -1,9 +1,9 @@ import {Exception, JavaScriptException} from "../Exception"; -import {ErrorHandler} from "../module"; import {app} from "../app"; import {isBrowserSupported} from "./navigator-util"; import {spawn} from "../typed-saga"; import {GLOBAL_ERROR_ACTION, GLOBAL_PROMISE_REJECTION_ACTION, sendEventLogs} from "../platform/bootstrap"; +import type {ErrorHandler} from "../module"; let errorHandlerRunning = false; diff --git a/src/util/network.ts b/src/util/network.ts index a27a97e..040c157 100644 --- a/src/util/network.ts +++ b/src/util/network.ts @@ -1,4 +1,4 @@ -import axios, {AxiosError, AxiosRequestConfig, Method} from "axios"; +import axios, {AxiosError, type AxiosRequestConfig, type Method} from "axios"; import {APIException, NetworkConnectionException} from "../Exception"; import {parseWithDate} from "./json-util"; From bd04feccb580a245f91a26e220e8a5e7bd1b95b1 Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Mon, 26 Jun 2023 16:18:06 +0800 Subject: [PATCH 04/17] updated decorators to stage 3 spec --- config/tsconfig.base.json | 1 - src/decorator/Interval.ts | 16 +++++---- src/decorator/Loading.ts | 2 +- src/decorator/Log.ts | 2 +- src/decorator/Mutex.ts | 2 +- .../RetryOnNetworkConnectionError.ts | 2 +- .../SilentOnNetworkConnectionError.ts | 2 +- src/decorator/createActionHandlerDecorator.ts | 25 +++++++++++++ src/decorator/index.ts | 35 +------------------ test/decorator/Interval.test.ts | 32 +++++++++++++++++ .../SilentOnNetworkConnectionError.test.ts | 28 +++++++++++++++ 11 files changed, 101 insertions(+), 46 deletions(-) create mode 100644 src/decorator/createActionHandlerDecorator.ts create mode 100644 test/decorator/Interval.test.ts create mode 100644 test/decorator/SilentOnNetworkConnectionError.test.ts diff --git a/config/tsconfig.base.json b/config/tsconfig.base.json index 8c2a151..b952010 100644 --- a/config/tsconfig.base.json +++ b/config/tsconfig.base.json @@ -11,7 +11,6 @@ "verbatimModuleSyntax": true, "esModuleInterop": true, "importHelpers": true, - "experimentalDecorators": true, "forceConsistentCasingInFileNames": true, "skipLibCheck": true, "noImplicitOverride": true, diff --git a/src/decorator/Interval.ts b/src/decorator/Interval.ts index 1c529c8..4129dff 100644 --- a/src/decorator/Interval.ts +++ b/src/decorator/Interval.ts @@ -1,13 +1,17 @@ -import {ActionHandler, TickIntervalDecoratorFlag} from "../module"; +import type {ActionHandler, TickIntervalDecoratorFlag} from "../module"; -type OnTickHandlerDecorator = (target: object, propertyKey: "onTick", descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; +export interface OnTickMethodDecorator extends Omit, "name"> { + readonly name: "onTick"; +} /** * For *onTick() action only, to specify to tick interval in second. */ -export function Interval(second: number): OnTickHandlerDecorator { - return (target, propertyKey, descriptor) => { - descriptor.value!.tickInterval = second; - return descriptor; +export function Interval(second: number) { + return function (target: Fn, _: OnTickMethodDecorator) { + Reflect.defineProperty(target, "tickInterval", { + value: second, + writable: false, + }); }; } diff --git a/src/decorator/Loading.ts b/src/decorator/Loading.ts index 77b2645..1eef5ac 100644 --- a/src/decorator/Loading.ts +++ b/src/decorator/Loading.ts @@ -1,4 +1,4 @@ -import {createActionHandlerDecorator} from "./index"; +import {createActionHandlerDecorator} from "./createActionHandlerDecorator"; import {put} from "redux-saga/effects"; import {loadingAction} from "../reducer"; diff --git a/src/decorator/Log.ts b/src/decorator/Log.ts index 5199e6f..6d52cb0 100644 --- a/src/decorator/Log.ts +++ b/src/decorator/Log.ts @@ -1,4 +1,4 @@ -import {createActionHandlerDecorator} from "./index"; +import {createActionHandlerDecorator} from "./createActionHandlerDecorator"; /** * To add a log item for action, with execution duration, action name, and masked action parameters. diff --git a/src/decorator/Mutex.ts b/src/decorator/Mutex.ts index 578bb0f..39fc301 100644 --- a/src/decorator/Mutex.ts +++ b/src/decorator/Mutex.ts @@ -1,4 +1,4 @@ -import {createActionHandlerDecorator} from "./index"; +import {createActionHandlerDecorator} from "./createActionHandlerDecorator"; /** * If specified, the action cannot be entered by other sagas during execution. diff --git a/src/decorator/RetryOnNetworkConnectionError.ts b/src/decorator/RetryOnNetworkConnectionError.ts index 20e8d02..d9a6cd3 100644 --- a/src/decorator/RetryOnNetworkConnectionError.ts +++ b/src/decorator/RetryOnNetworkConnectionError.ts @@ -1,7 +1,7 @@ import {app} from "../app"; import {NetworkConnectionException} from "../Exception"; import {delay} from "redux-saga/effects"; -import {createActionHandlerDecorator} from "./index"; +import {createActionHandlerDecorator} from "./createActionHandlerDecorator"; /** * Re-execute the action if NetworkConnectionException is thrown. diff --git a/src/decorator/SilentOnNetworkConnectionError.ts b/src/decorator/SilentOnNetworkConnectionError.ts index 7beead3..e8e2879 100644 --- a/src/decorator/SilentOnNetworkConnectionError.ts +++ b/src/decorator/SilentOnNetworkConnectionError.ts @@ -1,5 +1,5 @@ import {NetworkConnectionException} from "../Exception"; -import {createActionHandlerDecorator} from "./index"; +import {createActionHandlerDecorator} from "./createActionHandlerDecorator"; import {app} from "../app"; /** diff --git a/src/decorator/createActionHandlerDecorator.ts b/src/decorator/createActionHandlerDecorator.ts new file mode 100644 index 0000000..f3a7a5f --- /dev/null +++ b/src/decorator/createActionHandlerDecorator.ts @@ -0,0 +1,25 @@ +import {app} from "../app"; +import {stringifyWithMask} from "../util/json-util"; +import type {State} from "../reducer"; +import type {SagaGenerator} from "../typed-saga"; +import type {ActionHandler} from "../module"; +import type {Module} from "../platform/Module"; + +type ActionHandlerWithMetaData = ActionHandler & {actionName: string; maskedParams: string}; + +type HandlerInterceptor = (handler: ActionHandlerWithMetaData, thisModule: Module) => SagaGenerator; + +/** + * A helper for ActionHandler functions (Saga). + */ +export function createActionHandlerDecorator SagaGenerator>(interceptor: HandlerInterceptor) { + return (fn: Fn, _: ClassMethodDecoratorContext) => { + const replacement = function* (this: This, ...args: any[]): SagaGenerator { + const boundFn: ActionHandlerWithMetaData = fn.bind(this, ...args) as any; + boundFn.actionName = (fn as any).actionName; + boundFn.maskedParams = stringifyWithMask(app.loggerConfig?.maskedKeywords || [], "***", ...args) || "[No Parameter]"; + yield* interceptor(boundFn, this as any); + }; + return replacement; + }; +} diff --git a/src/decorator/index.ts b/src/decorator/index.ts index 15531d6..791a937 100644 --- a/src/decorator/index.ts +++ b/src/decorator/index.ts @@ -1,40 +1,7 @@ -import {ActionHandler} from "../module"; -import {Module} from "../platform/Module"; -import {SagaGenerator} from "../typed-saga"; -import {State} from "../reducer"; -import {app} from "../app"; -import {stringifyWithMask} from "../util/json-util"; - export {Interval} from "./Interval"; export {Loading} from "./Loading"; export {Log} from "./Log"; export {Mutex} from "./Mutex"; export {RetryOnNetworkConnectionError} from "./RetryOnNetworkConnectionError"; export {SilentOnNetworkConnectionError} from "./SilentOnNetworkConnectionError"; - -/** - * Decorator type declaration, required by TypeScript. - */ -type HandlerDecorator = (target: object, propertyKey: string, descriptor: TypedPropertyDescriptor) => TypedPropertyDescriptor; - -type ActionHandlerWithMetaData = ActionHandler & {actionName: string; maskedParams: string}; - -type HandlerInterceptor = (handler: ActionHandlerWithMetaData, thisModule: Module) => SagaGenerator; - -/** - * A helper for ActionHandler functions (Saga). - */ -export function createActionHandlerDecorator(interceptor: HandlerInterceptor): HandlerDecorator { - return (target, propertyKey, descriptor) => { - const fn = descriptor.value!; - descriptor.value = function* (...args: any[]): SagaGenerator { - const boundFn: ActionHandlerWithMetaData = fn.bind(this, ...args) as any; - // Do not use fn.actionName, it returns undefined - // The reason is, fn is created before module register(), and the actionName had not been attached then - boundFn.actionName = (descriptor.value as any).actionName; - boundFn.maskedParams = stringifyWithMask(app.loggerConfig?.maskedKeywords || [], "***", ...args) || "[No Parameter]"; - yield* interceptor(boundFn, this as any); - }; - return descriptor; - }; -} +export {createActionHandlerDecorator} from "./createActionHandlerDecorator"; diff --git a/test/decorator/Interval.test.ts b/test/decorator/Interval.test.ts new file mode 100644 index 0000000..e536c06 --- /dev/null +++ b/test/decorator/Interval.test.ts @@ -0,0 +1,32 @@ +import {Interval, type SagaGenerator} from "../../src"; + +describe("Interval decorator", () => { + test("should assign tickInterval to onTick method", () => { + class Person { + @Interval(10) + *onTick(): SagaGenerator {} + + // @ts-expect-error + @Interval(123) + *anyGeneratorFunction(): SagaGenerator {} + + // @ts-expect-error + @Interval(123) + getSomeValue() {} + } + // @ts-ignore + expect(new Person().onTick.tickInterval).toBe(10); + }); + + test("should not able to re-assign tickInterval to onTick method", () => { + class Person { + @Interval(10) + *onTick(): SagaGenerator {} + } + expect(() => { + const person = new Person(); + // @ts-ignore + person.onTick.tickInterval = 20; + }).toThrow(); + }); +}); diff --git a/test/decorator/SilentOnNetworkConnectionError.test.ts b/test/decorator/SilentOnNetworkConnectionError.test.ts new file mode 100644 index 0000000..f30116d --- /dev/null +++ b/test/decorator/SilentOnNetworkConnectionError.test.ts @@ -0,0 +1,28 @@ +import {Module, NetworkConnectionException, SagaGenerator, SilentOnNetworkConnectionError, State} from "../../src"; +import {JavaScriptException} from "../../src/Exception"; + +describe("SilentOnNetworkConnectionError", () => { + it("should silent and only silent NetworkConnectionException", () => { + const mock = jest.fn(); + class Person { + @SilentOnNetworkConnectionError() + *throwNetworkConnectionException(): SagaGenerator { + mock(); + throw new NetworkConnectionException("", ""); + } + + @SilentOnNetworkConnectionError() + *throwJavaScriptException(): SagaGenerator { + mock(); + throw new JavaScriptException("", ""); + } + } + + const person = new Person(); + expect(() => person.throwNetworkConnectionException().next()).not.toThrow(); + expect(mock).toBeCalledTimes(1); + + expect(() => person.throwJavaScriptException().next()).toThrow(); + expect(mock).toBeCalledTimes(2); + }); +}); From 7236fd15609686b0efac5825114e7d07e53fb2ce Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Mon, 26 Jun 2023 16:57:59 +0800 Subject: [PATCH 05/17] added type to type import and export --- src/platform/ModuleProxy.tsx | 12 ++++++------ src/platform/NavigationGuard.tsx | 4 ++-- src/platform/bootstrap.tsx | 21 ++++++++++----------- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/platform/ModuleProxy.tsx b/src/platform/ModuleProxy.tsx index 1122448..3ca8242 100644 --- a/src/platform/ModuleProxy.tsx +++ b/src/platform/ModuleProxy.tsx @@ -1,12 +1,12 @@ import React from "react"; -import {RouteComponentProps} from "react-router"; -import {Task} from "redux-saga"; import {delay, call as rawCall, take, select, cancel, fork, call, put} from "redux-saga/effects"; import {app} from "../app"; -import {ActionCreators, executeAction} from "../module"; -import {IDLE_STATE_ACTION, navigationPreventionAction, State} from "../reducer"; -import {Module, ModuleLifecycleListener} from "./Module"; -import {Location} from "history"; +import {executeAction, type ActionCreators} from "../module"; +import {IDLE_STATE_ACTION, navigationPreventionAction, type State} from "../reducer"; +import {Module, type ModuleLifecycleListener} from "./Module"; +import type {Location} from "history"; +import type {RouteComponentProps} from "react-router"; +import type {Task} from "redux-saga"; let startupModuleName: string | null = null; diff --git a/src/platform/NavigationGuard.tsx b/src/platform/NavigationGuard.tsx index 05ff533..3937744 100644 --- a/src/platform/NavigationGuard.tsx +++ b/src/platform/NavigationGuard.tsx @@ -1,7 +1,7 @@ import React from "react"; -import {connect, DispatchProp} from "react-redux"; +import {connect, type DispatchProp} from "react-redux"; import {Prompt} from "react-router"; -import {State} from "../reducer"; +import type {State} from "../reducer"; interface OwnProps { message: string; diff --git a/src/platform/bootstrap.tsx b/src/platform/bootstrap.tsx index e1021bb..aae8248 100644 --- a/src/platform/bootstrap.tsx +++ b/src/platform/bootstrap.tsx @@ -1,22 +1,21 @@ -import {ConnectedRouter} from "connected-react-router"; -import {Location} from "history"; import React from "react"; import {createRoot} from "react-dom/client"; +import {ConnectedRouter} from "connected-react-router"; import {Provider} from "react-redux"; -import {app} from "../app"; +import axios from "axios"; import {NavigationGuard} from "./NavigationGuard"; -import {LoggerConfig} from "../Logger"; -import {ErrorListener, executeAction} from "../module"; +import {app} from "../app"; +import {executeAction, type ErrorListener} from "../module"; +import {idleTimeoutActions} from "../reducer"; +import {APIException} from "../Exception"; +import {call, delay, type SagaGenerator} from "../typed-saga"; import {ErrorBoundary} from "../util/ErrorBoundary"; import {ajax} from "../util/network"; -import {APIException} from "../Exception"; import {isBrowserSupported} from "../util/navigator-util"; import {captureError, errorToException} from "../util/error-util"; -import {SagaGenerator, call, delay} from "../typed-saga"; -import {IdleDetector, idleTimeoutActions} from ".."; -import {DEFAULT_IDLE_TIMEOUT} from "../util/IdleDetector"; -import {SagaIterator} from "redux-saga"; -import axios, {AxiosRequestConfig} from "axios"; +import {DEFAULT_IDLE_TIMEOUT, IdleDetector} from "../util/IdleDetector"; +import type {Location} from "history"; +import type {LoggerConfig} from "../Logger"; /** * Configuration for frontend version check. From e0f21938a46f7b0dd8980b3860c5102b4bbee776 Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Mon, 26 Jun 2023 16:58:47 +0800 Subject: [PATCH 06/17] 1.36.1-beta.0: decorator stage 3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7799f04..6d97b7f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.0", + "version": "1.36.1-beta.0", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", From 1990287f739e7a40c722ba295d19dc44a5bed6df Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Tue, 27 Jun 2023 11:14:10 +0800 Subject: [PATCH 07/17] 1.36.1-beta.1: fix undefined actionName inside createActionHandlerDecorator --- package.json | 2 +- src/decorator/createActionHandlerDecorator.ts | 11 +++++----- .../SilentOnNetworkConnectionError.test.ts | 4 ++-- .../createActionHandlerDecorator.test.ts | 22 +++++++++++++++++++ tsconfig.json | 3 ++- 5 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 test/decorator/createActionHandlerDecorator.test.ts diff --git a/package.json b/package.json index 6d97b7f..db7c656 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.1-beta.0", + "version": "1.36.1-beta.1", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/decorator/createActionHandlerDecorator.ts b/src/decorator/createActionHandlerDecorator.ts index f3a7a5f..5680d2a 100644 --- a/src/decorator/createActionHandlerDecorator.ts +++ b/src/decorator/createActionHandlerDecorator.ts @@ -12,14 +12,15 @@ type HandlerInterceptor = (handler: ActionHandl /** * A helper for ActionHandler functions (Saga). */ -export function createActionHandlerDecorator SagaGenerator>(interceptor: HandlerInterceptor) { - return (fn: Fn, _: ClassMethodDecoratorContext) => { - const replacement = function* (this: This, ...args: any[]): SagaGenerator { +export function createActionHandlerDecorator = Module, Fn extends (this: This, ...args: any[]) => SagaGenerator = ActionHandler>(interceptor: HandlerInterceptor) { + return (fn: Fn, context: ClassMethodDecoratorContext) => { + return function* (this: This, ...args: any[]): SagaGenerator { const boundFn: ActionHandlerWithMetaData = fn.bind(this, ...args) as any; - boundFn.actionName = (fn as any).actionName; + // Do not use fn.actionName, it returns undefined + // The reason is, fn is created before module register(), and the actionName had not been attached then + boundFn.actionName = (this as any)[context.name].actionName; boundFn.maskedParams = stringifyWithMask(app.loggerConfig?.maskedKeywords || [], "***", ...args) || "[No Parameter]"; yield* interceptor(boundFn, this as any); }; - return replacement; }; } diff --git a/test/decorator/SilentOnNetworkConnectionError.test.ts b/test/decorator/SilentOnNetworkConnectionError.test.ts index f30116d..c1247ac 100644 --- a/test/decorator/SilentOnNetworkConnectionError.test.ts +++ b/test/decorator/SilentOnNetworkConnectionError.test.ts @@ -4,7 +4,7 @@ import {JavaScriptException} from "../../src/Exception"; describe("SilentOnNetworkConnectionError", () => { it("should silent and only silent NetworkConnectionException", () => { const mock = jest.fn(); - class Person { + class Person extends Module { @SilentOnNetworkConnectionError() *throwNetworkConnectionException(): SagaGenerator { mock(); @@ -18,7 +18,7 @@ describe("SilentOnNetworkConnectionError", () => { } } - const person = new Person(); + const person = new Person("person", {}); expect(() => person.throwNetworkConnectionException().next()).not.toThrow(); expect(mock).toBeCalledTimes(1); diff --git a/test/decorator/createActionHandlerDecorator.test.ts b/test/decorator/createActionHandlerDecorator.test.ts new file mode 100644 index 0000000..201c0c6 --- /dev/null +++ b/test/decorator/createActionHandlerDecorator.test.ts @@ -0,0 +1,22 @@ +import {Module, SagaGenerator, State, createActionHandlerDecorator, register} from "../../src"; + +describe("createActionHandlerDecorator", () => { + test("obtain action name", () => { + const mock = jest.fn((_) => _); + const testDecorator = createActionHandlerDecorator(function* (handler) { + mock(handler.actionName); + }); + + class Person extends Module { + @testDecorator + *test(): SagaGenerator {} + } + + const mary = new Person("person", {}); + register(mary); //actionName is attached after register() + + mary.test().next(); + expect(mock).toBeCalledTimes(1); + expect(mock).toReturnWith("person/test"); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index f899af2..3ec8eec 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,5 +10,6 @@ "lib": ["DOM", "ES2020"], "types": ["node"] }, - "include": ["src"] + "include": ["src"], + "references": [{"path": "./test/tsconfig.json"}] } From 244c9682f80bf373d34c133f16744a52afe60a3a Mon Sep 17 00:00:00 2001 From: Alvis Tse Date: Thu, 29 Jun 2023 15:15:30 +0800 Subject: [PATCH 08/17] 1.36.1: stage 3 decorator --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index db7c656..c00f58b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.1-beta.1", + "version": "1.36.1", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", From e220fd8c4dcad60ecf41e81f076e86781ee67913 Mon Sep 17 00:00:00 2001 From: dionshi Date: Fri, 14 Jul 2023 12:33:03 +0800 Subject: [PATCH 09/17] 1.36.2: - upgrade tslib and prettier 3 - tune prettier config - add more ignorable browser injection error pattern --- .prettierrc | 6 - config/prettier.config.js | 12 + package.json | 20 +- pnpm-lock.yaml | 784 ++++++++++-------- prettier.config.js | 6 + src/Exception.ts | 20 +- src/decorator/createActionHandlerDecorator.ts | 6 +- src/platform/Module.tsx | 19 +- src/platform/ModuleProxy.tsx | 6 +- src/platform/bootstrap.tsx | 4 +- src/typed-saga.ts | 8 +- src/util/IdleDetector.tsx | 2 +- src/util/error-util.ts | 4 +- src/util/json-util.ts | 4 +- src/util/network.ts | 20 +- .../createActionHandlerDecorator.test.ts | 2 +- test/hooks.test.ts | 6 +- test/typed-saga.test.ts | 4 +- 18 files changed, 550 insertions(+), 383 deletions(-) delete mode 100644 .prettierrc create mode 100644 config/prettier.config.js create mode 100644 prettier.config.js diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 06a13dd..0000000 --- a/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "tabWidth": 4, - "printWidth": 300, - "trailingComma": "es5", - "bracketSpacing": false -} diff --git a/config/prettier.config.js b/config/prettier.config.js new file mode 100644 index 0000000..2aeff5e --- /dev/null +++ b/config/prettier.config.js @@ -0,0 +1,12 @@ +// @ts-check + +/** @type {import("prettier").Options} */ +const config = { + tabWidth: 4, + printWidth: 200, + trailingComma: "es5", + bracketSpacing: false, + arrowParens: "avoid", +}; + +module.exports = config; diff --git a/package.json b/package.json index c00f58b..7fdb6cd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.1", + "version": "1.36.2", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -24,22 +24,22 @@ "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", - "@types/jest": "29.5.2", - "@types/node": "20.3.1", + "@types/jest": "29.5.3", + "@types/node": "20.4.2", "@types/testing-library__jest-dom": "5.14.6", "@typescript-eslint/eslint-plugin": "5.59.8", "@typescript-eslint/parser": "5.59.8", - "eslint": "8.41.0", + "eslint": "8.44.0", "eslint-config-prettier": "8.8.0", "fs-extra": "11.1.1", - "jest": "29.5.0", - "jest-environment-jsdom": "29.5.0", - "prettier": "2.8.8", + "jest": "29.6.1", + "jest-environment-jsdom": "29.6.1", + "prettier": "3.0.0", "react": "18.2.0", "react-dom": "18.2.0", - "ts-jest": "29.1.0", + "ts-jest": "29.1.1", "ts-node": "10.9.1", - "typescript": "5.1.3", + "typescript": "5.1.6", "yargs": "17.7.2" }, "dependencies": { @@ -60,7 +60,7 @@ "redux": "4.1.2", "redux-saga": "1.1.3", "regenerator-runtime": "0.13.11", - "tslib": "2.5.3" + "tslib": "2.6.0" }, "peerDependencies": { "react": ">=18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1730e84..e91fa60 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -57,8 +57,8 @@ dependencies: specifier: 0.13.11 version: 0.13.11 tslib: - specifier: 2.5.3 - version: 2.5.3 + specifier: 2.6.0 + version: 2.6.0 devDependencies: '@testing-library/dom': @@ -74,38 +74,38 @@ devDependencies: specifier: 14.4.3 version: 14.4.3(@testing-library/dom@8.18.0) '@types/jest': - specifier: 29.5.2 - version: 29.5.2 + specifier: 29.5.3 + version: 29.5.3 '@types/node': - specifier: 20.3.1 - version: 20.3.1 + specifier: 20.4.2 + version: 20.4.2 '@types/testing-library__jest-dom': specifier: 5.14.6 version: 5.14.6 '@typescript-eslint/eslint-plugin': specifier: 5.59.8 - version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3) + version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/parser': specifier: 5.59.8 - version: 5.59.8(eslint@8.41.0)(typescript@5.1.3) + version: 5.59.8(eslint@8.44.0)(typescript@5.1.6) eslint: - specifier: 8.41.0 - version: 8.41.0 + specifier: 8.44.0 + version: 8.44.0 eslint-config-prettier: specifier: 8.8.0 - version: 8.8.0(eslint@8.41.0) + version: 8.8.0(eslint@8.44.0) fs-extra: specifier: 11.1.1 version: 11.1.1 jest: - specifier: 29.5.0 - version: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) + specifier: 29.6.1 + version: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) jest-environment-jsdom: - specifier: 29.5.0 - version: 29.5.0 + specifier: 29.6.1 + version: 29.6.1 prettier: - specifier: 2.8.8 - version: 2.8.8 + specifier: 3.0.0 + version: 3.0.0 react: specifier: 18.2.0 version: 18.2.0 @@ -113,20 +113,25 @@ devDependencies: specifier: 18.2.0 version: 18.2.0(react@18.2.0) ts-jest: - specifier: 29.1.0 - version: 29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.1.3) + specifier: 29.1.1 + version: 29.1.1(@babel/core@7.19.1)(jest@29.6.1)(typescript@5.1.6) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) + version: 10.9.1(@types/node@20.4.2)(typescript@5.1.6) typescript: - specifier: 5.1.3 - version: 5.1.3 + specifier: 5.1.6 + version: 5.1.6 yargs: specifier: 17.7.2 version: 17.7.2 packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + dev: true + /@adobe/css-tools@4.0.1: resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} dev: true @@ -136,7 +141,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.18 dev: true /@babel/code-frame@7.18.6: @@ -489,13 +494,13 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.41.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.41.0 + eslint: 8.44.0 eslint-visitor-keys: 3.4.1 dev: true @@ -504,13 +509,13 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.0.3: - resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==} + /@eslint/eslintrc@2.1.0: + resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.5.2 + espree: 9.6.0 globals: 13.20.0 ignore: 5.2.0 import-fresh: 3.3.0 @@ -521,13 +526,13 @@ packages: - supports-color dev: true - /@eslint/js@8.41.0: - resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} + /@eslint/js@8.44.0: + resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.8: - resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} + /@humanwhocodes/config-array@0.11.10: + resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -562,20 +567,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@29.5.0: - resolution: {integrity: sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==} + /@jest/console@29.6.1: + resolution: {integrity: sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 chalk: 4.1.2 - jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-message-util: 29.6.1 + jest-util: 29.6.1 slash: 3.0.0 dev: true - /@jest/core@29.5.0(ts-node@10.9.1): - resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==} + /@jest/core@29.6.1(ts-node@10.9.1): + resolution: {integrity: sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -583,32 +588,32 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.5.0 - '@jest/reporters': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/console': 29.6.1 + '@jest/reporters': 29.6.1 + '@jest/test-result': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) - jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 + jest-config: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + jest-haste-map: 29.6.1 + jest-message-util: 29.6.1 jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-resolve-dependencies: 29.5.0 - jest-runner: 29.5.0 - jest-runtime: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 - jest-watcher: 29.5.0 + jest-resolve: 29.6.1 + jest-resolve-dependencies: 29.6.1 + jest-runner: 29.6.1 + jest-runtime: 29.6.1 + jest-snapshot: 29.6.1 + jest-util: 29.6.1 + jest-validate: 29.6.1 + jest-watcher: 29.6.1 micromatch: 4.0.5 - pretty-format: 29.5.0 + pretty-format: 29.6.1 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -616,14 +621,14 @@ packages: - ts-node dev: true - /@jest/environment@29.5.0: - resolution: {integrity: sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==} + /@jest/environment@29.6.1: + resolution: {integrity: sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 - jest-mock: 29.5.0 + '@jest/fake-timers': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 + jest-mock: 29.6.1 dev: true /@jest/expect-utils@29.5.0: @@ -633,42 +638,49 @@ packages: jest-get-type: 29.4.3 dev: true - /@jest/expect@29.5.0: - resolution: {integrity: sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==} + /@jest/expect-utils@29.6.1: + resolution: {integrity: sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.5.0 - jest-snapshot: 29.5.0 + jest-get-type: 29.4.3 + dev: true + + /@jest/expect@29.6.1: + resolution: {integrity: sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.6.1 + jest-snapshot: 29.6.1 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.5.0: - resolution: {integrity: sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==} + /@jest/fake-timers@29.6.1: + resolution: {integrity: sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.3.1 - jest-message-util: 29.5.0 - jest-mock: 29.5.0 - jest-util: 29.5.0 + '@types/node': 20.4.2 + jest-message-util: 29.6.1 + jest-mock: 29.6.1 + jest-util: 29.6.1 dev: true - /@jest/globals@29.5.0: - resolution: {integrity: sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==} + /@jest/globals@29.6.1: + resolution: {integrity: sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.5.0 - '@jest/expect': 29.5.0 - '@jest/types': 29.5.0 - jest-mock: 29.5.0 + '@jest/environment': 29.6.1 + '@jest/expect': 29.6.1 + '@jest/types': 29.6.1 + jest-mock: 29.6.1 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.5.0: - resolution: {integrity: sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==} + /@jest/reporters@29.6.1: + resolution: {integrity: sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -677,12 +689,12 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@jridgewell/trace-mapping': 0.3.15 - '@types/node': 20.3.1 + '@jest/console': 29.6.1 + '@jest/test-result': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 + '@jridgewell/trace-mapping': 0.3.18 + '@types/node': 20.4.2 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -693,9 +705,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - jest-worker: 29.5.0 + jest-message-util: 29.6.1 + jest-util: 29.6.1 + jest-worker: 29.6.1 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -711,50 +723,57 @@ packages: '@sinclair/typebox': 0.25.24 dev: true - /@jest/source-map@29.4.3: - resolution: {integrity: sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w==} + /@jest/schemas@29.6.0: + resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jridgewell/trace-mapping': 0.3.15 + '@sinclair/typebox': 0.27.8 + dev: true + + /@jest/source-map@29.6.0: + resolution: {integrity: sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 callsites: 3.1.0 graceful-fs: 4.2.10 dev: true - /@jest/test-result@29.5.0: - resolution: {integrity: sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==} + /@jest/test-result@29.6.1: + resolution: {integrity: sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.5.0 - '@jest/types': 29.5.0 + '@jest/console': 29.6.1 + '@jest/types': 29.6.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.5.0: - resolution: {integrity: sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==} + /@jest/test-sequencer@29.6.1: + resolution: {integrity: sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.5.0 + '@jest/test-result': 29.6.1 graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 + jest-haste-map: 29.6.1 slash: 3.0.0 dev: true - /@jest/transform@29.5.0: - resolution: {integrity: sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==} + /@jest/transform@29.6.1: + resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 - '@jest/types': 29.5.0 - '@jridgewell/trace-mapping': 0.3.15 + '@jest/types': 29.6.1 + '@jridgewell/trace-mapping': 0.3.18 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-haste-map: 29.6.1 jest-regex-util: 29.4.3 - jest-util: 29.5.0 + jest-util: 29.6.1 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -770,7 +789,19 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.3.1 + '@types/node': 20.4.2 + '@types/yargs': 17.0.12 + chalk: 4.1.2 + dev: true + + /@jest/types@29.6.1: + resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.0 + '@types/istanbul-lib-coverage': 2.0.4 + '@types/istanbul-reports': 3.0.1 + '@types/node': 20.4.2 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -813,6 +844,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: @@ -883,6 +921,10 @@ packages: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} dev: true + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + dev: true + /@sinonjs/commons@2.0.0: resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: @@ -1004,7 +1046,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.4.2 dev: true /@types/history@4.7.11: @@ -1034,8 +1076,8 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest@29.5.2: - resolution: {integrity: sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg==} + /@types/jest@29.5.3: + resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} dependencies: expect: 29.5.0 pretty-format: 29.5.0 @@ -1044,7 +1086,7 @@ packages: /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.3.1 + '@types/node': 20.4.2 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -1053,8 +1095,8 @@ packages: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/node@20.3.1: - resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + /@types/node@20.4.2: + resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} dev: true /@types/prettier@2.7.0: @@ -1114,7 +1156,7 @@ packages: /@types/testing-library__jest-dom@5.14.6: resolution: {integrity: sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA==} dependencies: - '@types/jest': 29.5.2 + '@types/jest': 29.5.3 dev: true /@types/tough-cookie@4.0.2: @@ -1131,7 +1173,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.41.0)(typescript@5.1.3): + /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1143,23 +1185,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.8(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/type-utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/type-utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.41.0 + eslint: 8.44.0 grapheme-splitter: 1.0.4 ignore: 5.2.0 natural-compare-lite: 1.4.0 semver: 7.3.7 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.3): + /@typescript-eslint/parser@5.59.8(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1171,10 +1213,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) debug: 4.3.4 - eslint: 8.41.0 - typescript: 5.1.3 + eslint: 8.44.0 + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true @@ -1187,7 +1229,7 @@ packages: '@typescript-eslint/visitor-keys': 5.59.8 dev: true - /@typescript-eslint/type-utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): + /@typescript-eslint/type-utils@5.59.8(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1197,12 +1239,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) + '@typescript-eslint/utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.41.0 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + eslint: 8.44.0 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true @@ -1212,7 +1254,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3): + /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.6): resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1227,25 +1269,25 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.3.7 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.8(eslint@8.41.0)(typescript@5.1.3): + /@typescript-eslint/utils@5.59.8(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) '@types/json-schema': 7.0.11 '@types/semver': 7.3.13 '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) - eslint: 8.41.0 + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) + eslint: 8.44.0 eslint-scope: 5.1.1 semver: 7.3.7 transitivePeerDependencies: @@ -1272,12 +1314,12 @@ packages: acorn-walk: 7.2.0 dev: true - /acorn-jsx@5.3.2(acorn@8.8.0): + /acorn-jsx@5.3.2(acorn@8.10.0): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.8.0 + acorn: 8.10.0 dev: true /acorn-walk@7.2.0: @@ -1296,6 +1338,12 @@ packages: hasBin: true dev: true + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.8.0: resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} engines: {node: '>=0.4.0'} @@ -1401,14 +1449,14 @@ packages: - debug dev: false - /babel-jest@29.5.0(@babel/core@7.19.1): - resolution: {integrity: sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==} + /babel-jest@29.6.1(@babel/core@7.19.1): + resolution: {integrity: sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.19.1 - '@jest/transform': 29.5.0 + '@jest/transform': 29.6.1 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.5.0(@babel/core@7.19.1) @@ -1839,13 +1887,13 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@8.8.0(eslint@8.41.0): + /eslint-config-prettier@8.8.0(eslint@8.44.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.41.0 + eslint: 8.44.0 dev: true /eslint-scope@5.1.1: @@ -1874,16 +1922,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.41.0: - resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==} + /eslint@8.44.0: + resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.41.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.41.0 - '@humanwhocodes/config-array': 0.11.8 + '@eslint/eslintrc': 2.1.0 + '@eslint/js': 8.44.0 + '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -1894,7 +1942,7 @@ packages: escape-string-regexp: 4.0.0 eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.1 - espree: 9.5.2 + espree: 9.6.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1914,7 +1962,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -1922,12 +1970,12 @@ packages: - supports-color dev: true - /espree@9.5.2: - resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==} + /espree@9.6.0: + resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.8.0 - acorn-jsx: 5.3.2(acorn@8.8.0) + acorn: 8.10.0 + acorn-jsx: 5.3.2(acorn@8.10.0) eslint-visitor-keys: 3.4.1 dev: true @@ -1997,6 +2045,18 @@ packages: jest-util: 29.5.0 dev: true + /expect@29.6.1: + resolution: {integrity: sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.6.1 + '@types/node': 20.4.2 + jest-get-type: 29.4.3 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-util: 29.6.1 + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -2442,27 +2502,27 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus@29.5.0: - resolution: {integrity: sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==} + /jest-circus@29.6.1: + resolution: {integrity: sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.5.0 - '@jest/expect': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/environment': 29.6.1 + '@jest/expect': 29.6.1 + '@jest/test-result': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 is-generator-fn: 2.1.0 - jest-each: 29.5.0 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-runtime: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 + jest-each: 29.6.1 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-runtime: 29.6.1 + jest-snapshot: 29.6.1 + jest-util: 29.6.1 p-limit: 3.1.0 - pretty-format: 29.5.0 + pretty-format: 29.6.1 pure-rand: 6.0.1 slash: 3.0.0 stack-utils: 2.0.5 @@ -2470,8 +2530,8 @@ packages: - supports-color dev: true - /jest-cli@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): - resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} + /jest-cli@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): + resolution: {integrity: sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2480,16 +2540,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.5.0(ts-node@10.9.1) - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 + '@jest/core': 29.6.1(ts-node@10.9.1) + '@jest/test-result': 29.6.1 + '@jest/types': 29.6.1 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@20.3.1)(ts-node@10.9.1) - jest-util: 29.5.0 - jest-validate: 29.5.0 + jest-config: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + jest-util: 29.6.1 + jest-validate: 29.6.1 prompts: 2.4.2 yargs: 17.7.2 transitivePeerDependencies: @@ -2498,8 +2558,8 @@ packages: - ts-node dev: true - /jest-config@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): - resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} + /jest-config@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): + resolution: {integrity: sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -2511,29 +2571,29 @@ packages: optional: true dependencies: '@babel/core': 7.19.1 - '@jest/test-sequencer': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 - babel-jest: 29.5.0(@babel/core@7.19.1) + '@jest/test-sequencer': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 + babel-jest: 29.6.1(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.5.0 - jest-environment-node: 29.5.0 + jest-circus: 29.6.1 + jest-environment-node: 29.6.1 jest-get-type: 29.4.3 jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-runner: 29.5.0 - jest-util: 29.5.0 - jest-validate: 29.5.0 + jest-resolve: 29.6.1 + jest-runner: 29.6.1 + jest-util: 29.6.1 + jest-validate: 29.6.1 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.5.0 + pretty-format: 29.6.1 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.3.1)(typescript@5.1.3) + ts-node: 10.9.1(@types/node@20.4.2)(typescript@5.1.6) transitivePeerDependencies: - supports-color dev: true @@ -2548,6 +2608,16 @@ packages: pretty-format: 29.5.0 dev: true + /jest-diff@29.6.1: + resolution: {integrity: sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.4.3 + jest-get-type: 29.4.3 + pretty-format: 29.6.1 + dev: true + /jest-docblock@29.4.3: resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2555,19 +2625,19 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each@29.5.0: - resolution: {integrity: sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==} + /jest-each@29.6.1: + resolution: {integrity: sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.1 chalk: 4.1.2 jest-get-type: 29.4.3 - jest-util: 29.5.0 - pretty-format: 29.5.0 + jest-util: 29.6.1 + pretty-format: 29.6.1 dev: true - /jest-environment-jsdom@29.5.0: - resolution: {integrity: sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==} + /jest-environment-jsdom@29.6.1: + resolution: {integrity: sha512-PoY+yLaHzVRhVEjcVKSfJ7wXmJW4UqPYNhR05h7u/TK0ouf6DmRNZFBL/Z00zgQMyWGMBXn69/FmOvhEJu8cIw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -2575,13 +2645,13 @@ packages: canvas: optional: true dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 + '@jest/environment': 29.6.1 + '@jest/fake-timers': 29.6.1 + '@jest/types': 29.6.1 '@types/jsdom': 20.0.0 - '@types/node': 20.3.1 - jest-mock: 29.5.0 - jest-util: 29.5.0 + '@types/node': 20.4.2 + jest-mock: 29.6.1 + jest-util: 29.6.1 jsdom: 20.0.0 transitivePeerDependencies: - bufferutil @@ -2589,16 +2659,16 @@ packages: - utf-8-validate dev: true - /jest-environment-node@29.5.0: - resolution: {integrity: sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==} + /jest-environment-node@29.6.1: + resolution: {integrity: sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 - jest-mock: 29.5.0 - jest-util: 29.5.0 + '@jest/environment': 29.6.1 + '@jest/fake-timers': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 + jest-mock: 29.6.1 + jest-util: 29.6.1 dev: true /jest-get-type@29.4.3: @@ -2606,31 +2676,31 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.5.0: - resolution: {integrity: sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==} + /jest-haste-map@29.6.1: + resolution: {integrity: sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.5 - '@types/node': 20.3.1 + '@types/node': 20.4.2 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 29.4.3 - jest-util: 29.5.0 - jest-worker: 29.5.0 + jest-util: 29.6.1 + jest-worker: 29.6.1 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-leak-detector@29.5.0: - resolution: {integrity: sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==} + /jest-leak-detector@29.6.1: + resolution: {integrity: sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.4.3 - pretty-format: 29.5.0 + pretty-format: 29.6.1 dev: true /jest-matcher-utils@29.5.0: @@ -2643,6 +2713,16 @@ packages: pretty-format: 29.5.0 dev: true + /jest-matcher-utils@29.6.1: + resolution: {integrity: sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.6.1 + jest-get-type: 29.4.3 + pretty-format: 29.6.1 + dev: true + /jest-message-util@29.5.0: resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2658,16 +2738,31 @@ packages: stack-utils: 2.0.5 dev: true - /jest-mock@29.5.0: - resolution: {integrity: sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==} + /jest-message-util@29.6.1: + resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 - '@types/node': 20.3.1 - jest-util: 29.5.0 + '@babel/code-frame': 7.18.6 + '@jest/types': 29.6.1 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.6.1 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + + /jest-mock@29.6.1: + resolution: {integrity: sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.1 + '@types/node': 20.4.2 + jest-util: 29.6.1 dev: true - /jest-pnp-resolver@1.2.2(jest-resolve@29.5.0): + /jest-pnp-resolver@1.2.2(jest-resolve@29.6.1): resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -2676,7 +2771,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.5.0 + jest-resolve: 29.6.1 dev: true /jest-regex-util@29.4.3: @@ -2684,183 +2779,181 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@29.5.0: - resolution: {integrity: sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==} + /jest-resolve-dependencies@29.6.1: + resolution: {integrity: sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.4.3 - jest-snapshot: 29.5.0 + jest-snapshot: 29.6.1 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.5.0: - resolution: {integrity: sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==} + /jest-resolve@29.6.1: + resolution: {integrity: sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - jest-pnp-resolver: 1.2.2(jest-resolve@29.5.0) - jest-util: 29.5.0 - jest-validate: 29.5.0 + jest-haste-map: 29.6.1 + jest-pnp-resolver: 1.2.2(jest-resolve@29.6.1) + jest-util: 29.6.1 + jest-validate: 29.6.1 resolve: 1.22.1 resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@29.5.0: - resolution: {integrity: sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==} + /jest-runner@29.6.1: + resolution: {integrity: sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.5.0 - '@jest/environment': 29.5.0 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/console': 29.6.1 + '@jest/environment': 29.6.1 + '@jest/test-result': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 jest-docblock: 29.4.3 - jest-environment-node: 29.5.0 - jest-haste-map: 29.5.0 - jest-leak-detector: 29.5.0 - jest-message-util: 29.5.0 - jest-resolve: 29.5.0 - jest-runtime: 29.5.0 - jest-util: 29.5.0 - jest-watcher: 29.5.0 - jest-worker: 29.5.0 + jest-environment-node: 29.6.1 + jest-haste-map: 29.6.1 + jest-leak-detector: 29.6.1 + jest-message-util: 29.6.1 + jest-resolve: 29.6.1 + jest-runtime: 29.6.1 + jest-util: 29.6.1 + jest-watcher: 29.6.1 + jest-worker: 29.6.1 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.5.0: - resolution: {integrity: sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==} + /jest-runtime@29.6.1: + resolution: {integrity: sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.5.0 - '@jest/fake-timers': 29.5.0 - '@jest/globals': 29.5.0 - '@jest/source-map': 29.4.3 - '@jest/test-result': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/environment': 29.6.1 + '@jest/fake-timers': 29.6.1 + '@jest/globals': 29.6.1 + '@jest/source-map': 29.6.0 + '@jest/test-result': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.5.0 - jest-message-util: 29.5.0 - jest-mock: 29.5.0 + jest-haste-map: 29.6.1 + jest-message-util: 29.6.1 + jest-mock: 29.6.1 jest-regex-util: 29.4.3 - jest-resolve: 29.5.0 - jest-snapshot: 29.5.0 - jest-util: 29.5.0 + jest-resolve: 29.6.1 + jest-snapshot: 29.6.1 + jest-util: 29.6.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.5.0: - resolution: {integrity: sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==} + /jest-snapshot@29.6.1: + resolution: {integrity: sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 '@babel/generator': 7.19.0 '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1) '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1) - '@babel/traverse': 7.19.1 '@babel/types': 7.19.0 - '@jest/expect-utils': 29.5.0 - '@jest/transform': 29.5.0 - '@jest/types': 29.5.0 - '@types/babel__traverse': 7.18.1 + '@jest/expect-utils': 29.6.1 + '@jest/transform': 29.6.1 + '@jest/types': 29.6.1 '@types/prettier': 2.7.0 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1) chalk: 4.1.2 - expect: 29.5.0 + expect: 29.6.1 graceful-fs: 4.2.10 - jest-diff: 29.5.0 + jest-diff: 29.6.1 jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 + jest-matcher-utils: 29.6.1 + jest-message-util: 29.6.1 + jest-util: 29.6.1 natural-compare: 1.4.0 - pretty-format: 29.5.0 - semver: 7.3.7 + pretty-format: 29.6.1 + semver: 7.5.4 transitivePeerDependencies: - supports-color dev: true - /jest-util@29.2.0: - resolution: {integrity: sha512-8M1dx12ujkBbnhwytrezWY0Ut79hbflwodE+qZKjxSRz5qt4xDp6dQQJaOCFvCmE0QJqp9KyEK33lpPNjnhevw==} + /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': 20.3.1 + '@types/node': 20.4.2 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-util@29.5.0: - resolution: {integrity: sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==} + /jest-util@29.6.1: + resolution: {integrity: sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate@29.5.0: - resolution: {integrity: sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==} + /jest-validate@29.6.1: + resolution: {integrity: sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.5.0 + '@jest/types': 29.6.1 camelcase: 6.3.0 chalk: 4.1.2 jest-get-type: 29.4.3 leven: 3.1.0 - pretty-format: 29.5.0 + pretty-format: 29.6.1 dev: true - /jest-watcher@29.5.0: - resolution: {integrity: sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==} + /jest-watcher@29.6.1: + resolution: {integrity: sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.5.0 - '@jest/types': 29.5.0 - '@types/node': 20.3.1 + '@jest/test-result': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 20.4.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.5.0 + jest-util: 29.6.1 string-length: 4.0.2 dev: true - /jest-worker@29.5.0: - resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} + /jest-worker@29.6.1: + resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.3.1 - jest-util: 29.5.0 + '@types/node': 20.4.2 + jest-util: 29.6.1 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.5.0(@types/node@20.3.1)(ts-node@10.9.1): - resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} + /jest@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): + resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2869,10 +2962,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.5.0(ts-node@10.9.1) - '@jest/types': 29.5.0 + '@jest/core': 29.6.1(ts-node@10.9.1) + '@jest/types': 29.6.1 import-local: 3.1.0 - jest-cli: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) + jest-cli: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - supports-color @@ -3187,16 +3280,16 @@ packages: word-wrap: 1.2.3 dev: true - /optionator@0.9.1: - resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} engines: {node: '>= 0.8.0'} dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 deep-is: 0.1.4 fast-levenshtein: 2.0.6 levn: 0.4.1 prelude-ls: 1.2.1 type-check: 0.4.0 - word-wrap: 1.2.3 dev: true /p-limit@2.3.0: @@ -3316,9 +3409,9 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} + /prettier@3.0.0: + resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + engines: {node: '>=14'} hasBin: true dev: true @@ -3340,6 +3433,15 @@ packages: react-is: 18.2.0 dev: true + /pretty-format@29.6.1: + resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.0 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -3586,6 +3688,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -3764,8 +3874,8 @@ packages: punycode: 2.1.1 dev: true - /ts-jest@29.1.0(@babel/core@7.19.1)(jest@29.5.0)(typescript@5.1.3): - resolution: {integrity: sha512-ZhNr7Z4PcYa+JjMl62ir+zPiNJfXJN6E8hSLnaUKhOgqcn8vb3e537cpkd0FuAfRK3sR1LSqM1MOhliXNgOFPA==} + /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.1)(typescript@5.1.6): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -3788,17 +3898,17 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.5.0(@types/node@20.3.1)(ts-node@10.9.1) - jest-util: 29.2.0 + jest: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.3.7 - typescript: 5.1.3 + semver: 7.5.4 + typescript: 5.1.6 yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.3.1)(typescript@5.1.3): + /ts-node@10.9.1(@types/node@20.4.2)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3817,14 +3927,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.3.1 + '@types/node': 20.4.2 acorn: 8.8.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: 5.1.3 + typescript: 5.1.6 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -3833,18 +3943,18 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib@2.5.3: - resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} + /tslib@2.6.0: + resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} dev: false - /tsutils@3.21.0(typescript@5.1.3): + /tsutils@3.21.0(typescript@5.1.6): 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: 5.1.3 + typescript: 5.1.6 dev: true /type-check@0.3.2: @@ -3892,8 +4002,8 @@ packages: typescript-compare: 0.0.2 dev: false - /typescript@5.1.3: - resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -3940,7 +4050,7 @@ packages: resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.18 '@types/istanbul-lib-coverage': 2.0.4 convert-source-map: 1.8.0 dev: true diff --git a/prettier.config.js b/prettier.config.js new file mode 100644 index 0000000..3972ea6 --- /dev/null +++ b/prettier.config.js @@ -0,0 +1,6 @@ +// @ts-check + +/** @type {import("prettier").Options} */ +const config = require("./config/prettier.config.js"); + +module.exports = config; diff --git a/src/Exception.ts b/src/Exception.ts index a5e8f05..812f430 100644 --- a/src/Exception.ts +++ b/src/Exception.ts @@ -7,19 +7,33 @@ export abstract class Exception { } export class APIException extends Exception { - constructor(message: string, public statusCode: number, public requestURL: string, public responseData: any, public errorId: string | null, public errorCode: string | null) { + constructor( + message: string, + public statusCode: number, + public requestURL: string, + public responseData: any, + public errorId: string | null, + public errorCode: string | null + ) { super(message); } } export class NetworkConnectionException extends Exception { - constructor(message: string, public requestURL: string, public originalErrorMessage: string = "") { + constructor( + message: string, + public requestURL: string, + public originalErrorMessage: string = "" + ) { super(message); } } export class JavaScriptException extends Exception { - constructor(message: string, public originalError: any) { + constructor( + message: string, + public originalError: any + ) { super(message); } } diff --git a/src/decorator/createActionHandlerDecorator.ts b/src/decorator/createActionHandlerDecorator.ts index 5680d2a..d097188 100644 --- a/src/decorator/createActionHandlerDecorator.ts +++ b/src/decorator/createActionHandlerDecorator.ts @@ -12,7 +12,11 @@ type HandlerInterceptor = (handler: ActionHandl /** * A helper for ActionHandler functions (Saga). */ -export function createActionHandlerDecorator = Module, Fn extends (this: This, ...args: any[]) => SagaGenerator = ActionHandler>(interceptor: HandlerInterceptor) { +export function createActionHandlerDecorator< + RootState extends State = State, + This extends Module = Module, + Fn extends (this: This, ...args: any[]) => SagaGenerator = ActionHandler, +>(interceptor: HandlerInterceptor) { return (fn: Fn, context: ClassMethodDecoratorContext) => { return function* (this: This, ...args: any[]): SagaGenerator { const boundFn: ActionHandlerWithMetaData = fn.bind(this, ...args) as any; diff --git a/src/platform/Module.tsx b/src/platform/Module.tsx index 0ef2a9c..19f436b 100644 --- a/src/platform/Module.tsx +++ b/src/platform/Module.tsx @@ -19,8 +19,13 @@ export interface ModuleLifecycleListener SagaGenerator) & TickIntervalDecoratorFlag; } -export class Module implements ModuleLifecycleListener { - constructor(readonly name: ModuleName, readonly initialState: RootState["app"][ModuleName]) {} +export class Module + implements ModuleLifecycleListener +{ + constructor( + readonly name: ModuleName, + readonly initialState: RootState["app"][ModuleName] + ) {} *onEnter(entryComponentProps: any): SagaGenerator { /** @@ -65,21 +70,23 @@ export class Module(stateOrUpdater: ((state: RootState["app"][ModuleName]) => void) | Pick | RootState["app"][ModuleName]): void { + setState( + stateOrUpdater: ((state: RootState["app"][ModuleName]) => void) | Pick | RootState["app"][ModuleName] + ): void { if (typeof stateOrUpdater === "function") { const originalState = this.state; const updater = stateOrUpdater as (state: RootState["app"][ModuleName]) => void; let patchDescriptions: string[] | undefined; const newState = produce, RootState["app"][ModuleName]>( originalState, - (draftState) => { + draftState => { // Wrap into a void function, in case updater() might return anything updater(draftState); }, process.env.NODE_ENV === "development" - ? (patches) => { + ? patches => { // No need to read "op", in will only be "replace" - patchDescriptions = patches.map((_) => _.path.join(".")); + patchDescriptions = patches.map(_ => _.path.join(".")); } : undefined ); diff --git a/src/platform/ModuleProxy.tsx b/src/platform/ModuleProxy.tsx index 3ca8242..a9b2e6b 100644 --- a/src/platform/ModuleProxy.tsx +++ b/src/platform/ModuleProxy.tsx @@ -11,7 +11,11 @@ import type {Task} from "redux-saga"; let startupModuleName: string | null = null; export class ModuleProxy> { - constructor(private module: M, private actions: ActionCreators, private moduleName: string) {} + constructor( + private module: M, + private actions: ActionCreators, + private moduleName: string + ) {} getActions(): ActionCreators { return this.actions; diff --git a/src/platform/bootstrap.tsx b/src/platform/bootstrap.tsx index aae8248..161f0f0 100644 --- a/src/platform/bootstrap.tsx +++ b/src/platform/bootstrap.tsx @@ -86,7 +86,7 @@ function setupGlobalErrorHandler(errorListener: ErrorListener) { app.errorHandler = errorListener.onError.bind(errorListener); window.addEventListener( "error", - (event) => { + event => { try { const analyzeByTarget = (): string => { if (event.target && event.target !== window) { @@ -115,7 +115,7 @@ function setupGlobalErrorHandler(errorListener: ErrorListener) { ); window.addEventListener( "unhandledrejection", - (event) => { + event => { try { captureError(event.reason, GLOBAL_PROMISE_REJECTION_ACTION); } catch (e) { diff --git a/src/typed-saga.ts b/src/typed-saga.ts index da1af51..18da741 100644 --- a/src/typed-saga.ts +++ b/src/typed-saga.ts @@ -14,7 +14,9 @@ export function race>(effects: T): SagaGenerat export function race(effects: [T1, T2]): SagaGeneratorWithReturn<[UnwrapReturnType?, UnwrapReturnType?]>; export function race(effects: [T1, T2, T3]): SagaGeneratorWithReturn<[UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?]>; export function race(effects: [T1, T2, T3, T4]): SagaGeneratorWithReturn<[UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?]>; -export function race(effects: [T1, T2, T3, T4, T5]): SagaGeneratorWithReturn<[UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?]>; +export function race( + effects: [T1, T2, T3, T4, T5] +): SagaGeneratorWithReturn<[UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?, UnwrapReturnType?]>; export function race(effects: T[]): SagaGeneratorWithReturn | undefined>>; export function* race(effects: any): any { return yield rawRace(effects); @@ -24,7 +26,9 @@ export function all>(effects: T): SagaGenerato export function all(effects: [T1, T2]): SagaGeneratorWithReturn<[UnwrapReturnType, UnwrapReturnType]>; export function all(effects: [T1, T2, T3]): SagaGeneratorWithReturn<[UnwrapReturnType, UnwrapReturnType, UnwrapReturnType]>; export function all(effects: [T1, T2, T3, T4]): SagaGeneratorWithReturn<[UnwrapReturnType, UnwrapReturnType, UnwrapReturnType, UnwrapReturnType]>; -export function all(effects: [T1, T2, T3, T4, T5]): SagaGeneratorWithReturn<[UnwrapReturnType, UnwrapReturnType, UnwrapReturnType, UnwrapReturnType, UnwrapReturnType]>; +export function all( + effects: [T1, T2, T3, T4, T5] +): SagaGeneratorWithReturn<[UnwrapReturnType, UnwrapReturnType, UnwrapReturnType, UnwrapReturnType, UnwrapReturnType]>; export function all(effects: T[]): SagaGeneratorWithReturn>>; export function* all(effects: any): any { return yield rawAll(effects); diff --git a/src/util/IdleDetector.tsx b/src/util/IdleDetector.tsx index b5f3665..330295f 100644 --- a/src/util/IdleDetector.tsx +++ b/src/util/IdleDetector.tsx @@ -43,7 +43,7 @@ export function IdleDetector(props: Props) { React.useEffect(() => { if (timeout > 0) { - const idleTimer = createTimer(timeout, (newIdleState) => { + const idleTimer = createTimer(timeout, newIdleState => { if (newIdleState !== stateRef.current) { dispatch(idleStateActions(newIdleState)); } diff --git a/src/util/error-util.ts b/src/util/error-util.ts index b2e5277..2da548a 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -114,8 +114,8 @@ function specialErrorCode(exception: Exception, action: string, stacktrace?: str function isValidStacktrace(stacktrace?: string): boolean { if (stacktrace) { - const ignoredPatterns = ["chrome-extension://", "moz-extension://"]; - if (ignoredPatterns.some((_) => stacktrace.includes(_))) { + const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script"]; + if (ignoredPatterns.some(_ => stacktrace.includes(_))) { return false; } diff --git a/src/util/json-util.ts b/src/util/json-util.ts index 5da33aa..60922ae 100644 --- a/src/util/json-util.ts +++ b/src/util/json-util.ts @@ -16,14 +16,14 @@ export function stringifyWithMask(maskedKeywords: RegExp[], maskedOutput: string if (typeof value === "function" || typeof value === "symbol") { return undefined; } - if (maskedKeywords.some((_) => _.test(key))) { + if (maskedKeywords.some(_ => _.test(key))) { return maskedOutput; } return value; }; const isEvent = (e: any) => Boolean(e && e.target && e.currentTarget); - const serializableArgs = args.filter((_) => typeof _ !== "function" && typeof _ !== "symbol" && !isEvent(_)); + const serializableArgs = args.filter(_ => typeof _ !== "function" && typeof _ !== "symbol" && !isEvent(_)); switch (serializableArgs.length) { case 0: return undefined; diff --git a/src/util/network.ts b/src/util/network.ts index 040c157..16d55ba 100644 --- a/src/util/network.ts +++ b/src/util/network.ts @@ -2,7 +2,13 @@ import axios, {AxiosError, type AxiosRequestConfig, type Method} from "axios"; import {APIException, NetworkConnectionException} from "../Exception"; import {parseWithDate} from "./json-util"; -export type PathParams = string extends T ? {[key: string]: string | number} : T extends `${infer Start}:${infer Param}/${infer Rest}` ? {[k in Param | keyof PathParams]: string | number} : T extends `${infer Start}:${infer Param}` ? {[k in Param]: string | number} : {}; +export type PathParams = string extends T + ? {[key: string]: string | number} + : T extends `${infer Start}:${infer Param}/${infer Rest}` + ? {[k in Param | keyof PathParams]: string | number} + : T extends `${infer Start}:${infer Param}` + ? {[k in Param]: string | number} + : {}; export interface APIErrorResponse { id?: string | null; @@ -27,8 +33,8 @@ const ajaxClient = axios.create({ }); ajaxClient.interceptors.response.use( - (response) => response, - (error) => { + response => response, + error => { if (axios.isAxiosError(error)) { const typedError = error as AxiosError; const requestURL = typedError.config?.url || "-"; @@ -55,7 +61,13 @@ ajaxClient.interceptors.response.use( } ); -export async function ajax(method: Method, path: Path, pathParams: PathParams, request: Request, extraConfig: Partial = {}): Promise { +export async function ajax( + method: Method, + path: Path, + pathParams: PathParams, + request: Request, + extraConfig: Partial = {} +): Promise { const fullURL = urlParams(path, pathParams); const config: AxiosRequestConfig = {...extraConfig, method, url: fullURL}; diff --git a/test/decorator/createActionHandlerDecorator.test.ts b/test/decorator/createActionHandlerDecorator.test.ts index 201c0c6..ca6e676 100644 --- a/test/decorator/createActionHandlerDecorator.test.ts +++ b/test/decorator/createActionHandlerDecorator.test.ts @@ -2,7 +2,7 @@ import {Module, SagaGenerator, State, createActionHandlerDecorator, register} fr describe("createActionHandlerDecorator", () => { test("obtain action name", () => { - const mock = jest.fn((_) => _); + const mock = jest.fn(_ => _); const testDecorator = createActionHandlerDecorator(function* (handler) { mock(handler.actionName); }); diff --git a/test/hooks.test.ts b/test/hooks.test.ts index 35a8f63..e43de4e 100644 --- a/test/hooks.test.ts +++ b/test/hooks.test.ts @@ -23,7 +23,7 @@ describe("useAction(type test)", () => { }); test("type union test", () => { - const createTabChangeAction: ActionCreator<["a" | "b" | "c"]> = (tab) => ({type: "String Union test", payload: [tab]}); + const createTabChangeAction: ActionCreator<["a" | "b" | "c"]> = tab => ({type: "String Union test", payload: [tab]}); const changeToA = useAction(createTabChangeAction, "a"); const changeToB = useAction(createTabChangeAction, "b"); @@ -204,7 +204,7 @@ describe("useBinaryAction(type test)", () => { useBinaryAction(noArgAction); }); test("Misuse 1-arg action", () => { - const oneArgAction: ActionCreator<[number]> = (id) => ({type: "test", payload: [id]}); + const oneArgAction: ActionCreator<[number]> = id => ({type: "test", payload: [id]}); // @ts-expect-error useBinaryAction(oneArgAction, 1); // @ts-expect-error @@ -214,7 +214,7 @@ describe("useBinaryAction(type test)", () => { describe("useModuleObjectKeyAction(type test)", () => { test("Should accept key of object", () => { - const updateObjectAction: ActionCreator<[{a: string; b: number; c: boolean; d: null | "a" | "b"}]> = (object) => ({type: "update object", payload: [object]}); + const updateObjectAction: ActionCreator<[{a: string; b: number; c: boolean; d: null | "a" | "b"}]> = object => ({type: "update object", payload: [object]}); const updateA = useObjectKeyAction(updateObjectAction, "a"); const updateB = useObjectKeyAction(updateObjectAction, "b"); const updateC = useObjectKeyAction(updateObjectAction, "c"); diff --git a/test/typed-saga.test.ts b/test/typed-saga.test.ts index ac93692..3c21c14 100644 --- a/test/typed-saga.test.ts +++ b/test/typed-saga.test.ts @@ -57,7 +57,7 @@ describe("typed-saga (type test)", () => { string | undefined, {baz: boolean} | undefined, Effect | undefined, - string | undefined + string | undefined, ] = [a, b, c, d, e]; } }); @@ -81,7 +81,7 @@ describe("typed-saga (type test)", () => { string | undefined, {baz: boolean} | undefined, Effect | undefined, - string | undefined + string | undefined, ] = [a, b, c, d, e]; } }); From 21c28db967f6eb7c167f4fb988965095cbaea50b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 17:42:00 +0000 Subject: [PATCH 10/17] Bump word-wrap from 1.2.3 to 1.2.4 Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e91fa60..66402ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3277,7 +3277,7 @@ packages: levn: 0.3.0 prelude-ls: 1.1.2 type-check: 0.3.2 - word-wrap: 1.2.3 + word-wrap: 1.2.4 dev: true /optionator@0.9.3: @@ -4112,8 +4112,8 @@ packages: isexe: 2.0.0 dev: true - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + /word-wrap@1.2.4: + resolution: {integrity: sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==} engines: {node: '>=0.10.0'} dev: true From d5a1f73af1aa2f0e38890f672ede092fcb51a828 Mon Sep 17 00:00:00 2001 From: dionshi Date: Thu, 10 Aug 2023 12:11:07 +0800 Subject: [PATCH 11/17] 1.36.3: - upgrade tslib, core-js and dev deps - tune hooks/decorator folder structure --- package.json | 30 +- pnpm-lock.yaml | 855 +++++++++---------- src/decorator/index.ts | 7 - src/{hooks.ts => hooks/action.ts} | 13 +- src/hooks/loading.ts | 6 + src/index.ts | 13 +- test/{hooks.test.ts => hooks/action.test.ts} | 6 +- 7 files changed, 453 insertions(+), 477 deletions(-) delete mode 100644 src/decorator/index.ts rename src/{hooks.ts => hooks/action.ts} (86%) create mode 100644 src/hooks/loading.ts rename test/{hooks.test.ts => hooks/action.test.ts} (97%) diff --git a/package.json b/package.json index 7fdb6cd..43f9f20 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.2", + "version": "1.36.3", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -25,16 +25,16 @@ "@testing-library/react": "13.4.0", "@testing-library/user-event": "14.4.3", "@types/jest": "29.5.3", - "@types/node": "20.4.2", - "@types/testing-library__jest-dom": "5.14.6", - "@typescript-eslint/eslint-plugin": "5.59.8", - "@typescript-eslint/parser": "5.59.8", - "eslint": "8.44.0", - "eslint-config-prettier": "8.8.0", + "@types/node": "20.4.9", + "@types/testing-library__jest-dom": "5.14.9", + "@typescript-eslint/eslint-plugin": "6.3.0", + "@typescript-eslint/parser": "6.3.0", + "eslint": "8.46.0", + "eslint-config-prettier": "9.0.0", "fs-extra": "11.1.1", - "jest": "29.6.1", - "jest-environment-jsdom": "29.6.1", - "prettier": "3.0.0", + "jest": "29.6.2", + "jest-environment-jsdom": "29.6.2", + "prettier": "3.0.1", "react": "18.2.0", "react-dom": "18.2.0", "ts-jest": "29.1.1", @@ -44,14 +44,14 @@ }, "dependencies": { "@types/history": "4.7.11", - "@types/react": "18.2.13", - "@types/react-dom": "18.2.6", + "@types/react": "18.2.20", + "@types/react-dom": "18.2.7", "@types/react-redux": "7.1.25", "@types/react-router": "5.1.20", "@types/react-router-dom": "5.3.3", "axios": "1.4.0", "connected-react-router": "6.9.3", - "core-js": "3.31.0", + "core-js": "3.32.0", "history": "4.10.1", "immer": "10.0.2", "react-redux": "7.2.8", @@ -59,8 +59,8 @@ "react-router-dom": "5.3.0", "redux": "4.1.2", "redux-saga": "1.1.3", - "regenerator-runtime": "0.13.11", - "tslib": "2.6.0" + "regenerator-runtime": "0.14.0", + "tslib": "2.6.1" }, "peerDependencies": { "react": ">=18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e91fa60..9ddf4e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,11 +9,11 @@ dependencies: specifier: 4.7.11 version: 4.7.11 '@types/react': - specifier: 18.2.13 - version: 18.2.13 + specifier: 18.2.20 + version: 18.2.20 '@types/react-dom': - specifier: 18.2.6 - version: 18.2.6 + specifier: 18.2.7 + version: 18.2.7 '@types/react-redux': specifier: 7.1.25 version: 7.1.25 @@ -30,8 +30,8 @@ dependencies: specifier: 6.9.3 version: 6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2) core-js: - specifier: 3.31.0 - version: 3.31.0 + specifier: 3.32.0 + version: 3.32.0 history: specifier: 4.10.1 version: 4.10.1 @@ -54,11 +54,11 @@ dependencies: specifier: 1.1.3 version: 1.1.3 regenerator-runtime: - specifier: 0.13.11 - version: 0.13.11 + specifier: 0.14.0 + version: 0.14.0 tslib: - specifier: 2.6.0 - version: 2.6.0 + specifier: 2.6.1 + version: 2.6.1 devDependencies: '@testing-library/dom': @@ -77,35 +77,35 @@ devDependencies: specifier: 29.5.3 version: 29.5.3 '@types/node': - specifier: 20.4.2 - version: 20.4.2 + specifier: 20.4.9 + version: 20.4.9 '@types/testing-library__jest-dom': - specifier: 5.14.6 - version: 5.14.6 + specifier: 5.14.9 + version: 5.14.9 '@typescript-eslint/eslint-plugin': - specifier: 5.59.8 - version: 5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.44.0)(typescript@5.1.6) + specifier: 6.3.0 + version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6) '@typescript-eslint/parser': - specifier: 5.59.8 - version: 5.59.8(eslint@8.44.0)(typescript@5.1.6) + specifier: 6.3.0 + version: 6.3.0(eslint@8.46.0)(typescript@5.1.6) eslint: - specifier: 8.44.0 - version: 8.44.0 + specifier: 8.46.0 + version: 8.46.0 eslint-config-prettier: - specifier: 8.8.0 - version: 8.8.0(eslint@8.44.0) + specifier: 9.0.0 + version: 9.0.0(eslint@8.46.0) fs-extra: specifier: 11.1.1 version: 11.1.1 jest: - specifier: 29.6.1 - version: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + specifier: 29.6.2 + version: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) jest-environment-jsdom: - specifier: 29.6.1 - version: 29.6.1 + specifier: 29.6.2 + version: 29.6.2 prettier: - specifier: 3.0.0 - version: 3.0.0 + specifier: 3.0.1 + version: 3.0.1 react: specifier: 18.2.0 version: 18.2.0 @@ -114,10 +114,10 @@ devDependencies: version: 18.2.0(react@18.2.0) ts-jest: specifier: 29.1.1 - version: 29.1.1(@babel/core@7.19.1)(jest@29.6.1)(typescript@5.1.6) + version: 29.1.1(@babel/core@7.19.1)(jest@29.6.2)(typescript@5.1.6) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.4.2)(typescript@5.1.6) + version: 10.9.1(@types/node@20.4.9)(typescript@5.1.6) typescript: specifier: 5.1.6 version: 5.1.6 @@ -494,28 +494,28 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.44.0 - eslint-visitor-keys: 3.4.1 + eslint: 8.46.0 + eslint-visitor-keys: 3.4.2 dev: true - /@eslint-community/regexpp@4.5.0: - resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + /@eslint-community/regexpp@4.6.2: + resolution: {integrity: sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + /@eslint/eslintrc@2.1.1: + resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 - espree: 9.6.0 + espree: 9.6.1 globals: 13.20.0 ignore: 5.2.0 import-fresh: 3.3.0 @@ -526,8 +526,8 @@ packages: - supports-color dev: true - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} + /@eslint/js@8.46.0: + resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -567,20 +567,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@29.6.1: - resolution: {integrity: sha512-Aj772AYgwTSr5w8qnyoJ0eDYvN6bMsH3ORH1ivMotrInHLKdUz6BDlaEXHdM6kODaBIkNIyQGzsMvRdOv7VG7Q==} + /@jest/console@29.6.2: + resolution: {integrity: sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 - jest-message-util: 29.6.1 - jest-util: 29.6.1 + jest-message-util: 29.6.2 + jest-util: 29.6.2 slash: 3.0.0 dev: true - /@jest/core@29.6.1(ts-node@10.9.1): - resolution: {integrity: sha512-CcowHypRSm5oYQ1obz1wfvkjZZ2qoQlrKKvlfPwh5jUXVU12TWr2qMeH8chLMuTFzHh5a1g2yaqlqDICbr+ukQ==} + /@jest/core@29.6.2(ts-node@10.9.1): + resolution: {integrity: sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -588,47 +588,48 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.6.1 - '@jest/reporters': 29.6.1 - '@jest/test-result': 29.6.1 - '@jest/transform': 29.6.1 + '@jest/console': 29.6.2 + '@jest/reporters': 29.6.2 + '@jest/test-result': 29.6.2 + '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) - jest-haste-map: 29.6.1 - jest-message-util: 29.6.1 + jest-config: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) + jest-haste-map: 29.6.2 + jest-message-util: 29.6.2 jest-regex-util: 29.4.3 - jest-resolve: 29.6.1 - jest-resolve-dependencies: 29.6.1 - jest-runner: 29.6.1 - jest-runtime: 29.6.1 - jest-snapshot: 29.6.1 - jest-util: 29.6.1 - jest-validate: 29.6.1 - jest-watcher: 29.6.1 + jest-resolve: 29.6.2 + jest-resolve-dependencies: 29.6.2 + jest-runner: 29.6.2 + jest-runtime: 29.6.2 + jest-snapshot: 29.6.2 + jest-util: 29.6.2 + jest-validate: 29.6.2 + jest-watcher: 29.6.2 micromatch: 4.0.5 - pretty-format: 29.6.1 + pretty-format: 29.6.2 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color - ts-node dev: true - /@jest/environment@29.6.1: - resolution: {integrity: sha512-RMMXx4ws+Gbvw3DfLSuo2cfQlK7IwGbpuEWXCqyYDcqYTI+9Ju3a5hDnXaxjNsa6uKh9PQF2v+qg+RLe63tz5A==} + /@jest/environment@29.6.2: + resolution: {integrity: sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.1 + '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 - jest-mock: 29.6.1 + '@types/node': 20.4.9 + jest-mock: 29.6.2 dev: true /@jest/expect-utils@29.5.0: @@ -638,49 +639,49 @@ packages: jest-get-type: 29.4.3 dev: true - /@jest/expect-utils@29.6.1: - resolution: {integrity: sha512-o319vIf5pEMx0LmzSxxkYYxo4wrRLKHq9dP1yJU7FoPTB0LfAKSz8SWD6D/6U3v/O52t9cF5t+MeJiRsfk7zMw==} + /@jest/expect-utils@29.6.2: + resolution: {integrity: sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.4.3 dev: true - /@jest/expect@29.6.1: - resolution: {integrity: sha512-N5xlPrAYaRNyFgVf2s9Uyyvr795jnB6rObuPx4QFvNJz8aAjpZUDfO4bh5G/xuplMID8PrnuF1+SfSyDxhsgYg==} + /@jest/expect@29.6.2: + resolution: {integrity: sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.1 - jest-snapshot: 29.6.1 + expect: 29.6.2 + jest-snapshot: 29.6.2 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.1: - resolution: {integrity: sha512-RdgHgbXyosCDMVYmj7lLpUwXA4c69vcNzhrt69dJJdf8azUrpRh3ckFCaTPNjsEeRi27Cig0oKDGxy5j7hOgHg==} + /@jest/fake-timers@29.6.2: + resolution: {integrity: sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.4.2 - jest-message-util: 29.6.1 - jest-mock: 29.6.1 - jest-util: 29.6.1 + '@types/node': 20.4.9 + jest-message-util: 29.6.2 + jest-mock: 29.6.2 + jest-util: 29.6.2 dev: true - /@jest/globals@29.6.1: - resolution: {integrity: sha512-2VjpaGy78JY9n9370H8zGRCFbYVWwjY6RdDMhoJHa1sYfwe6XM/azGN0SjY8kk7BOZApIejQ1BFPyH7FPG0w3A==} + /@jest/globals@29.6.2: + resolution: {integrity: sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.1 - '@jest/expect': 29.6.1 + '@jest/environment': 29.6.2 + '@jest/expect': 29.6.2 '@jest/types': 29.6.1 - jest-mock: 29.6.1 + jest-mock: 29.6.2 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.6.1: - resolution: {integrity: sha512-9zuaI9QKr9JnoZtFQlw4GREQbxgmNYXU6QuWtmuODvk5nvPUeBYapVR/VYMyi2WSx3jXTLJTJji8rN6+Cm4+FA==} + /@jest/reporters@29.6.2: + resolution: {integrity: sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -689,12 +690,12 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.6.1 - '@jest/test-result': 29.6.1 - '@jest/transform': 29.6.1 + '@jest/console': 29.6.2 + '@jest/test-result': 29.6.2 + '@jest/transform': 29.6.2 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -705,9 +706,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.6.1 - jest-util: 29.6.1 - jest-worker: 29.6.1 + jest-message-util: 29.6.2 + jest-util: 29.6.2 + jest-worker: 29.6.2 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -739,28 +740,28 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result@29.6.1: - resolution: {integrity: sha512-Ynr13ZRcpX6INak0TPUukU8GWRfm/vAytE3JbJNGAvINySWYdfE7dGZMbk36oVuK4CigpbhMn8eg1dixZ7ZJOw==} + /@jest/test-result@29.6.2: + resolution: {integrity: sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.1 + '@jest/console': 29.6.2 '@jest/types': 29.6.1 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.6.1: - resolution: {integrity: sha512-oBkC36PCDf/wb6dWeQIhaviU0l5u6VCsXa119yqdUosYAt7/FbQU2M2UoziO3igj/HBDEgp57ONQ3fm0v9uyyg==} + /@jest/test-sequencer@29.6.2: + resolution: {integrity: sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.1 + '@jest/test-result': 29.6.2 graceful-fs: 4.2.10 - jest-haste-map: 29.6.1 + jest-haste-map: 29.6.2 slash: 3.0.0 dev: true - /@jest/transform@29.6.1: - resolution: {integrity: sha512-URnTneIU3ZjRSaf906cvf6Hpox3hIeJXRnz3VDSw5/X93gR8ycdfSIEy19FlVx8NFmpN7fe3Gb1xF+NjXaQLWg==} + /@jest/transform@29.6.2: + resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 @@ -771,9 +772,9 @@ packages: convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.6.1 + jest-haste-map: 29.6.2 jest-regex-util: 29.4.3 - jest-util: 29.6.1 + jest-util: 29.6.2 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -789,7 +790,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -801,7 +802,7 @@ packages: '@jest/schemas': 29.6.0 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -820,7 +821,7 @@ packages: dependencies: '@jridgewell/set-array': 1.1.2 '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.15 + '@jridgewell/trace-mapping': 0.3.18 dev: true /@jridgewell/resolve-uri@3.1.0: @@ -837,13 +838,6 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping@0.3.15: - resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - /@jridgewell/trace-mapping@0.3.18: resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: @@ -957,7 +951,7 @@ packages: dependencies: '@adobe/css-tools': 4.0.1 '@babel/runtime': 7.18.9 - '@types/testing-library__jest-dom': 5.14.6 + '@types/testing-library__jest-dom': 5.14.9 aria-query: 5.0.0 chalk: 3.0.0 css.escape: 1.5.1 @@ -975,7 +969,7 @@ packages: dependencies: '@babel/runtime': 7.19.0 '@testing-library/dom': 8.18.0 - '@types/react-dom': 18.2.6 + '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -1046,7 +1040,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.4.2 + '@types/node': 20.4.9 dev: true /@types/history@4.7.11: @@ -1056,7 +1050,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.20 hoist-non-react-statics: 3.3.2 dev: false @@ -1086,36 +1080,32 @@ packages: /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.4.2 + '@types/node': 20.4.9 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true - /@types/json-schema@7.0.11: - resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} - dev: true - - /@types/node@20.4.2: - resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} + /@types/json-schema@7.0.12: + resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/prettier@2.7.0: - resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==} + /@types/node@20.4.9: + resolution: {integrity: sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ==} dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.2.6: - resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==} + /@types/react-dom@18.2.7: + resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.13 + '@types/react': 18.2.20 /@types/react-redux@7.1.25: resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.13 + '@types/react': 18.2.20 hoist-non-react-statics: 3.3.2 redux: 4.1.2 dev: false @@ -1124,7 +1114,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.13 + '@types/react': 18.2.20 '@types/react-router': 5.1.20 dev: false @@ -1132,11 +1122,11 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.13 + '@types/react': 18.2.20 dev: false - /@types/react@18.2.13: - resolution: {integrity: sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q==} + /@types/react@18.2.20: + resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1145,16 +1135,16 @@ packages: /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true /@types/stack-utils@2.0.1: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/testing-library__jest-dom@5.14.6: - resolution: {integrity: sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA==} + /@types/testing-library__jest-dom@5.14.9: + resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} dependencies: '@types/jest': 29.5.3 dev: true @@ -1173,134 +1163,136 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.8(@typescript-eslint/parser@5.59.8)(eslint@8.44.0)(typescript@5.1.6): - resolution: {integrity: sha512-JDMOmhXteJ4WVKOiHXGCoB96ADWg9q7efPWHRViT/f09bA8XOMLAVHHju3l0MkZnG1izaWXYmgvQcUjTRcpShQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - '@typescript-eslint/parser': ^5.0.0 - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@eslint-community/regexpp': 4.5.0 - '@typescript-eslint/parser': 5.59.8(eslint@8.44.0)(typescript@5.1.6) - '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/type-utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) - '@typescript-eslint/utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) + '@eslint-community/regexpp': 4.6.2 + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/type-utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.44.0 - grapheme-splitter: 1.0.4 - ignore: 5.2.0 + eslint: 8.46.0 + graphemer: 1.4.0 + ignore: 5.2.4 + natural-compare: 1.4.0 natural-compare-lite: 1.4.0 - semver: 7.3.7 - tsutils: 3.21.0(typescript@5.1.6) + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.59.8(eslint@8.44.0)(typescript@5.1.6): - resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/parser@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 - eslint: 8.44.0 + eslint: 8.46.0 typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@5.59.8: - resolution: {integrity: sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/scope-manager@6.3.0: + resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/visitor-keys': 5.59.8 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 dev: true - /@typescript-eslint/type-utils@5.59.8(eslint@8.44.0)(typescript@5.1.6): - resolution: {integrity: sha512-+5M518uEIHFBy3FnyqZUF3BMP+AXnYn4oyH8RF012+e7/msMY98FhGL5SrN29NQ9xDgvqCgYnsOiKp1VjZ/fpA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/type-utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: '*' + eslint: ^7.0.0 || ^8.0.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) - '@typescript-eslint/utils': 5.59.8(eslint@8.44.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.44.0 - tsutils: 3.21.0(typescript@5.1.6) + eslint: 8.46.0 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@5.59.8: - resolution: {integrity: sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/types@6.3.0: + resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.6): - resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): + resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/visitor-keys': 5.59.8 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.7 - tsutils: 3.21.0(typescript@5.1.6) + semver: 7.5.4 + ts-api-utils: 1.0.1(typescript@5.1.6) typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.59.8(eslint@8.44.0)(typescript@5.1.6): - resolution: {integrity: sha512-Tr65630KysnNn9f9G7ROF3w1b5/7f6QVCJ+WK9nhIocWmx9F+TmCAcglF26Vm7z8KCTwoKcNEBZrhlklla3CKg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} + engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) - '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 - '@typescript-eslint/scope-manager': 5.59.8 - '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) - eslint: 8.44.0 - eslint-scope: 5.1.1 - semver: 7.3.7 + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@types/json-schema': 7.0.12 + '@types/semver': 7.5.0 + '@typescript-eslint/scope-manager': 6.3.0 + '@typescript-eslint/types': 6.3.0 + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + eslint: 8.46.0 + semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@5.59.8: - resolution: {integrity: sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@typescript-eslint/visitor-keys@6.3.0: + resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 5.59.8 - eslint-visitor-keys: 3.4.0 + '@typescript-eslint/types': 6.3.0 + eslint-visitor-keys: 3.4.1 dev: true /abab@2.0.6: @@ -1449,14 +1441,14 @@ packages: - debug dev: false - /babel-jest@29.6.1(@babel/core@7.19.1): - resolution: {integrity: sha512-qu+3bdPEQC6KZSPz+4Fyjbga5OODNcp49j6GKzG1EKbkfyJBxEYGVUmVGpwCSeGouG52R4EgYMLb6p9YeEEQ4A==} + /babel-jest@29.6.2(@babel/core@7.19.1): + resolution: {integrity: sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.19.1 - '@jest/transform': 29.6.1 + '@jest/transform': 29.6.2 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.5.0(@babel/core@7.19.1) @@ -1708,8 +1700,8 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js@3.31.0: - resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==} + /core-js@3.32.0: + resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} requiresBuild: true dev: false @@ -1773,8 +1765,13 @@ packages: resolution: {integrity: sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==} dev: true - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + /dedent@1.5.1: + resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true dev: true /deep-is@0.1.4: @@ -1887,50 +1884,42 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@8.8.0(eslint@8.44.0): - resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} + /eslint-config-prettier@9.0.0(eslint@8.46.0): + resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.44.0 + eslint: 8.46.0 dev: true - /eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} - dependencies: - esrecurse: 4.3.0 - estraverse: 4.3.0 - dev: true - - /eslint-scope@7.2.0: - resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} + /eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} + /eslint-visitor-keys@3.4.1: + resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.44.0: - resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} + /eslint@8.46.0: + resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0) - '@eslint-community/regexpp': 4.5.0 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/regexpp': 4.6.2 + '@eslint/eslintrc': 2.1.1 + '@eslint/js': 8.46.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -1940,9 +1929,9 @@ packages: debug: 4.3.4 doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.6.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.2 + espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -1952,7 +1941,6 @@ packages: globals: 13.20.0 graphemer: 1.4.0 ignore: 5.2.0 - import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1964,19 +1952,18 @@ packages: natural-compare: 1.4.0 optionator: 0.9.3 strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 text-table: 0.2.0 transitivePeerDependencies: - supports-color dev: true - /espree@9.6.0: - resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + /espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 + eslint-visitor-keys: 3.4.2 dev: true /esprima@4.0.1: @@ -1999,11 +1986,6 @@ packages: estraverse: 5.3.0 dev: true - /estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} - dev: true - /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} @@ -2045,16 +2027,16 @@ packages: jest-util: 29.5.0 dev: true - /expect@29.6.1: - resolution: {integrity: sha512-XEdDLonERCU1n9uR56/Stx9OqojaLAQtZf9PrCHH9Hl8YXiEIka3H4NXJ3NOIBmQJTg7+j7buh34PMHfJujc8g==} + /expect@29.6.2: + resolution: {integrity: sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.6.1 - '@types/node': 20.4.2 + '@jest/expect-utils': 29.6.2 + '@types/node': 20.4.9 jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.1 - jest-message-util: 29.6.1 - jest-util: 29.6.1 + jest-matcher-utils: 29.6.2 + jest-message-util: 29.6.2 + jest-util: 29.6.2 dev: true /fast-deep-equal@3.1.3: @@ -2250,10 +2232,6 @@ packages: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true - /grapheme-splitter@1.0.4: - resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} - dev: true - /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -2341,6 +2319,11 @@ packages: engines: {node: '>= 4'} dev: true + /ignore@5.2.4: + resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + engines: {node: '>= 4'} + dev: true + /immer@10.0.2: resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} dev: false @@ -2502,36 +2485,37 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus@29.6.1: - resolution: {integrity: sha512-tPbYLEiBU4MYAL2XoZme/bgfUeotpDBd81lgHLCbDZZFaGmECk0b+/xejPFtmiBP87GgP/y4jplcRpbH+fgCzQ==} + /jest-circus@29.6.2: + resolution: {integrity: sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.1 - '@jest/expect': 29.6.1 - '@jest/test-result': 29.6.1 + '@jest/environment': 29.6.2 + '@jest/expect': 29.6.2 + '@jest/test-result': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 co: 4.6.0 - dedent: 0.7.0 + dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 29.6.1 - jest-matcher-utils: 29.6.1 - jest-message-util: 29.6.1 - jest-runtime: 29.6.1 - jest-snapshot: 29.6.1 - jest-util: 29.6.1 + jest-each: 29.6.2 + jest-matcher-utils: 29.6.2 + jest-message-util: 29.6.2 + jest-runtime: 29.6.2 + jest-snapshot: 29.6.2 + jest-util: 29.6.2 p-limit: 3.1.0 - pretty-format: 29.6.1 + pretty-format: 29.6.2 pure-rand: 6.0.1 slash: 3.0.0 stack-utils: 2.0.5 transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true - /jest-cli@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): - resolution: {integrity: sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==} + /jest-cli@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2540,26 +2524,27 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.1(ts-node@10.9.1) - '@jest/test-result': 29.6.1 + '@jest/core': 29.6.2(ts-node@10.9.1) + '@jest/test-result': 29.6.2 '@jest/types': 29.6.1 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) - jest-util: 29.6.1 - jest-validate: 29.6.1 + jest-config: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) + jest-util: 29.6.2 + jest-validate: 29.6.2 prompts: 2.4.2 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node dev: true - /jest-config@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): - resolution: {integrity: sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==} + /jest-config@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -2571,30 +2556,31 @@ packages: optional: true dependencies: '@babel/core': 7.19.1 - '@jest/test-sequencer': 29.6.1 + '@jest/test-sequencer': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 - babel-jest: 29.6.1(@babel/core@7.19.1) + '@types/node': 20.4.9 + babel-jest: 29.6.2(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.6.1 - jest-environment-node: 29.6.1 + jest-circus: 29.6.2 + jest-environment-node: 29.6.2 jest-get-type: 29.4.3 jest-regex-util: 29.4.3 - jest-resolve: 29.6.1 - jest-runner: 29.6.1 - jest-util: 29.6.1 - jest-validate: 29.6.1 + jest-resolve: 29.6.2 + jest-runner: 29.6.2 + jest-util: 29.6.2 + jest-validate: 29.6.2 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.6.1 + pretty-format: 29.6.2 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.4.2)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@20.4.9)(typescript@5.1.6) transitivePeerDependencies: + - babel-plugin-macros - supports-color dev: true @@ -2608,14 +2594,14 @@ packages: pretty-format: 29.5.0 dev: true - /jest-diff@29.6.1: - resolution: {integrity: sha512-FsNCvinvl8oVxpNLttNQX7FAq7vR+gMDGj90tiP7siWw1UdakWUGqrylpsYrpvj908IYckm5Y0Q7azNAozU1Kg==} + /jest-diff@29.6.2: + resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 diff-sequences: 29.4.3 jest-get-type: 29.4.3 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /jest-docblock@29.4.3: @@ -2625,19 +2611,19 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each@29.6.1: - resolution: {integrity: sha512-n5eoj5eiTHpKQCAVcNTT7DRqeUmJ01hsAL0Q1SMiBHcBcvTKDELixQOGMCpqhbIuTcfC4kMfSnpmDqRgRJcLNQ==} + /jest-each@29.6.2: + resolution: {integrity: sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 chalk: 4.1.2 jest-get-type: 29.4.3 - jest-util: 29.6.1 - pretty-format: 29.6.1 + jest-util: 29.6.2 + pretty-format: 29.6.2 dev: true - /jest-environment-jsdom@29.6.1: - resolution: {integrity: sha512-PoY+yLaHzVRhVEjcVKSfJ7wXmJW4UqPYNhR05h7u/TK0ouf6DmRNZFBL/Z00zgQMyWGMBXn69/FmOvhEJu8cIw==} + /jest-environment-jsdom@29.6.2: + resolution: {integrity: sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -2645,13 +2631,13 @@ packages: canvas: optional: true dependencies: - '@jest/environment': 29.6.1 - '@jest/fake-timers': 29.6.1 + '@jest/environment': 29.6.2 + '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 '@types/jsdom': 20.0.0 - '@types/node': 20.4.2 - jest-mock: 29.6.1 - jest-util: 29.6.1 + '@types/node': 20.4.9 + jest-mock: 29.6.2 + jest-util: 29.6.2 jsdom: 20.0.0 transitivePeerDependencies: - bufferutil @@ -2659,16 +2645,16 @@ packages: - utf-8-validate dev: true - /jest-environment-node@29.6.1: - resolution: {integrity: sha512-ZNIfAiE+foBog24W+2caIldl4Irh8Lx1PUhg/GZ0odM1d/h2qORAsejiFc7zb+SEmYPn1yDZzEDSU5PmDkmVLQ==} + /jest-environment-node@29.6.2: + resolution: {integrity: sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.1 - '@jest/fake-timers': 29.6.1 + '@jest/environment': 29.6.2 + '@jest/fake-timers': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 - jest-mock: 29.6.1 - jest-util: 29.6.1 + '@types/node': 20.4.9 + jest-mock: 29.6.2 + jest-util: 29.6.2 dev: true /jest-get-type@29.4.3: @@ -2676,31 +2662,31 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.1: - resolution: {integrity: sha512-0m7f9PZXxOCk1gRACiVgX85knUKPKLPg4oRCjLoqIm9brTHXaorMA0JpmtmVkQiT8nmXyIVoZd/nnH1cfC33ig==} + /jest-haste-map@29.6.2: + resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.5 - '@types/node': 20.4.2 + '@types/node': 20.4.9 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 29.4.3 - jest-util: 29.6.1 - jest-worker: 29.6.1 + jest-util: 29.6.2 + jest-worker: 29.6.2 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-leak-detector@29.6.1: - resolution: {integrity: sha512-OrxMNyZirpOEwkF3UHnIkAiZbtkBWiye+hhBweCHkVbCgyEy71Mwbb5zgeTNYWJBi1qgDVfPC1IwO9dVEeTLwQ==} + /jest-leak-detector@29.6.2: + resolution: {integrity: sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.4.3 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /jest-matcher-utils@29.5.0: @@ -2713,14 +2699,14 @@ packages: pretty-format: 29.5.0 dev: true - /jest-matcher-utils@29.6.1: - resolution: {integrity: sha512-SLaztw9d2mfQQKHmJXKM0HCbl2PPVld/t9Xa6P9sgiExijviSp7TnZZpw2Fpt+OI3nwUO/slJbOfzfUMKKC5QA==} + /jest-matcher-utils@29.6.2: + resolution: {integrity: sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.1 + jest-diff: 29.6.2 jest-get-type: 29.4.3 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true /jest-message-util@29.5.0: @@ -2738,8 +2724,8 @@ packages: stack-utils: 2.0.5 dev: true - /jest-message-util@29.6.1: - resolution: {integrity: sha512-KoAW2zAmNSd3Gk88uJ56qXUWbFk787QKmjjJVOjtGFmmGSZgDBrlIL4AfQw1xyMYPNVD7dNInfIbur9B2rd/wQ==} + /jest-message-util@29.6.2: + resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 @@ -2748,21 +2734,21 @@ packages: chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.6.1 + pretty-format: 29.6.2 slash: 3.0.0 stack-utils: 2.0.5 dev: true - /jest-mock@29.6.1: - resolution: {integrity: sha512-brovyV9HBkjXAEdRooaTQK42n8usKoSRR3gihzUpYeV/vwqgSoNfrksO7UfSACnPmxasO/8TmHM3w9Hp3G1dgw==} + /jest-mock@29.6.2: + resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.2 - jest-util: 29.6.1 + '@types/node': 20.4.9 + jest-util: 29.6.2 dev: true - /jest-pnp-resolver@1.2.2(jest-resolve@29.6.1): + /jest-pnp-resolver@1.2.2(jest-resolve@29.6.2): resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -2771,7 +2757,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.6.1 + jest-resolve: 29.6.2 dev: true /jest-regex-util@29.4.3: @@ -2779,92 +2765,92 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@29.6.1: - resolution: {integrity: sha512-BbFvxLXtcldaFOhNMXmHRWx1nXQO5LoXiKSGQcA1LxxirYceZT6ch8KTE1bK3X31TNG/JbkI7OkS/ABexVahiw==} + /jest-resolve-dependencies@29.6.2: + resolution: {integrity: sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.4.3 - jest-snapshot: 29.6.1 + jest-snapshot: 29.6.2 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.6.1: - resolution: {integrity: sha512-AeRkyS8g37UyJiP9w3mmI/VXU/q8l/IH52vj/cDAyScDcemRbSBhfX/NMYIGilQgSVwsjxrCHf3XJu4f+lxCMg==} + /jest-resolve@29.6.2: + resolution: {integrity: sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.6.1 - jest-pnp-resolver: 1.2.2(jest-resolve@29.6.1) - jest-util: 29.6.1 - jest-validate: 29.6.1 + jest-haste-map: 29.6.2 + jest-pnp-resolver: 1.2.2(jest-resolve@29.6.2) + jest-util: 29.6.2 + jest-validate: 29.6.2 resolve: 1.22.1 resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@29.6.1: - resolution: {integrity: sha512-tw0wb2Q9yhjAQ2w8rHRDxteryyIck7gIzQE4Reu3JuOBpGp96xWgF0nY8MDdejzrLCZKDcp8JlZrBN/EtkQvPQ==} + /jest-runner@29.6.2: + resolution: {integrity: sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.1 - '@jest/environment': 29.6.1 - '@jest/test-result': 29.6.1 - '@jest/transform': 29.6.1 + '@jest/console': 29.6.2 + '@jest/environment': 29.6.2 + '@jest/test-result': 29.6.2 + '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 jest-docblock: 29.4.3 - jest-environment-node: 29.6.1 - jest-haste-map: 29.6.1 - jest-leak-detector: 29.6.1 - jest-message-util: 29.6.1 - jest-resolve: 29.6.1 - jest-runtime: 29.6.1 - jest-util: 29.6.1 - jest-watcher: 29.6.1 - jest-worker: 29.6.1 + jest-environment-node: 29.6.2 + jest-haste-map: 29.6.2 + jest-leak-detector: 29.6.2 + jest-message-util: 29.6.2 + jest-resolve: 29.6.2 + jest-runtime: 29.6.2 + jest-util: 29.6.2 + jest-watcher: 29.6.2 + jest-worker: 29.6.2 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.6.1: - resolution: {integrity: sha512-D6/AYOA+Lhs5e5il8+5pSLemjtJezUr+8zx+Sn8xlmOux3XOqx4d8l/2udBea8CRPqqrzhsKUsN/gBDE/IcaPQ==} + /jest-runtime@29.6.2: + resolution: {integrity: sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.1 - '@jest/fake-timers': 29.6.1 - '@jest/globals': 29.6.1 + '@jest/environment': 29.6.2 + '@jest/fake-timers': 29.6.2 + '@jest/globals': 29.6.2 '@jest/source-map': 29.6.0 - '@jest/test-result': 29.6.1 - '@jest/transform': 29.6.1 + '@jest/test-result': 29.6.2 + '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.6.1 - jest-message-util: 29.6.1 - jest-mock: 29.6.1 + jest-haste-map: 29.6.2 + jest-message-util: 29.6.2 + jest-mock: 29.6.2 jest-regex-util: 29.4.3 - jest-resolve: 29.6.1 - jest-snapshot: 29.6.1 - jest-util: 29.6.1 + jest-resolve: 29.6.2 + jest-snapshot: 29.6.2 + jest-util: 29.6.2 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.6.1: - resolution: {integrity: sha512-G4UQE1QQ6OaCgfY+A0uR1W2AY0tGXUPQpoUClhWHq1Xdnx1H6JOrC2nH5lqnOEqaDgbHFgIwZ7bNq24HpB180A==} + /jest-snapshot@29.6.2: + resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 @@ -2872,21 +2858,20 @@ packages: '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1) '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1) '@babel/types': 7.19.0 - '@jest/expect-utils': 29.6.1 - '@jest/transform': 29.6.1 + '@jest/expect-utils': 29.6.2 + '@jest/transform': 29.6.2 '@jest/types': 29.6.1 - '@types/prettier': 2.7.0 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1) chalk: 4.1.2 - expect: 29.6.1 + expect: 29.6.2 graceful-fs: 4.2.10 - jest-diff: 29.6.1 + jest-diff: 29.6.2 jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.1 - jest-message-util: 29.6.1 - jest-util: 29.6.1 + jest-matcher-utils: 29.6.2 + jest-message-util: 29.6.2 + jest-util: 29.6.2 natural-compare: 1.4.0 - pretty-format: 29.6.1 + pretty-format: 29.6.2 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2897,27 +2882,27 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-util@29.6.1: - resolution: {integrity: sha512-NRFCcjc+/uO3ijUVyNOQJluf8PtGCe/W6cix36+M3cTFgiYqFOOW5MgN4JOOcvbUhcKTYVd1CvHz/LWi8d16Mg==} + /jest-util@29.6.2: + resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate@29.6.1: - resolution: {integrity: sha512-r3Ds69/0KCN4vx4sYAbGL1EVpZ7MSS0vLmd3gV78O+NAx3PDQQukRU5hNHPXlyqCgFY8XUk7EuTMLugh0KzahA==} + /jest-validate@29.6.2: + resolution: {integrity: sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 @@ -2925,35 +2910,35 @@ packages: chalk: 4.1.2 jest-get-type: 29.4.3 leven: 3.1.0 - pretty-format: 29.6.1 + pretty-format: 29.6.2 dev: true - /jest-watcher@29.6.1: - resolution: {integrity: sha512-d4wpjWTS7HEZPaaj8m36QiaP856JthRZkrgcIY/7ISoUWPIillrXM23WPboZVLbiwZBt4/qn2Jke84Sla6JhFA==} + /jest-watcher@29.6.2: + resolution: {integrity: sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.1 + '@jest/test-result': 29.6.2 '@jest/types': 29.6.1 - '@types/node': 20.4.2 + '@types/node': 20.4.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.6.1 + jest-util: 29.6.2 string-length: 4.0.2 dev: true - /jest-worker@29.6.1: - resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} + /jest-worker@29.6.2: + resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.2 - jest-util: 29.6.1 + '@types/node': 20.4.9 + jest-util: 29.6.2 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.6.1(@types/node@20.4.2)(ts-node@10.9.1): - resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} + /jest@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2962,12 +2947,13 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.1(ts-node@10.9.1) + '@jest/core': 29.6.2(ts-node@10.9.1) '@jest/types': 29.6.1 import-local: 3.1.0 - jest-cli: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + jest-cli: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node dev: true @@ -3000,7 +2986,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.0 + acorn: 8.10.0 acorn-globals: 6.0.0 cssom: 0.5.0 cssstyle: 2.3.0 @@ -3409,8 +3395,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.0: - resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} + /prettier@3.0.1: + resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -3433,8 +3419,8 @@ packages: react-is: 18.2.0 dev: true - /pretty-format@29.6.1: - resolution: {integrity: sha512-7jRj+yXO0W7e4/tSJKoR7HRIHLPPjtNaUGG2xxKQnGvPNRkgWcQ0AZX6P4KBRJN4FcTBWb3sa7DVUJmocYuoog==} + /pretty-format@29.6.2: + resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/schemas': 29.6.0 @@ -3587,6 +3573,10 @@ packages: /regenerator-runtime@0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + /regenerator-runtime@0.14.0: + resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3680,14 +3670,6 @@ packages: hasBin: true dev: true - /semver@7.3.7: - resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - /semver@7.5.4: resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} engines: {node: '>=10'} @@ -3874,7 +3856,16 @@ packages: punycode: 2.1.1 dev: true - /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.1)(typescript@5.1.6): + /ts-api-utils@1.0.1(typescript@5.1.6): + resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} + engines: {node: '>=16.13.0'} + peerDependencies: + typescript: '>=4.2.0' + dependencies: + typescript: 5.1.6 + dev: true + + /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.2)(typescript@5.1.6): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3898,7 +3889,7 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.1(@types/node@20.4.2)(ts-node@10.9.1) + jest: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -3908,7 +3899,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.4.2)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@20.4.9)(typescript@5.1.6): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3927,7 +3918,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.4.2 + '@types/node': 20.4.9 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -3939,24 +3930,10 @@ packages: yn: 3.1.1 dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true - - /tslib@2.6.0: - resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} + /tslib@2.6.1: + resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} dev: false - /tsutils@3.21.0(typescript@5.1.6): - 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: 5.1.6 - dev: true - /type-check@0.3.2: resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} engines: {node: '>= 0.8.0'} diff --git a/src/decorator/index.ts b/src/decorator/index.ts deleted file mode 100644 index 791a937..0000000 --- a/src/decorator/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export {Interval} from "./Interval"; -export {Loading} from "./Loading"; -export {Log} from "./Log"; -export {Mutex} from "./Mutex"; -export {RetryOnNetworkConnectionError} from "./RetryOnNetworkConnectionError"; -export {SilentOnNetworkConnectionError} from "./SilentOnNetworkConnectionError"; -export {createActionHandlerDecorator} from "./createActionHandlerDecorator"; diff --git a/src/hooks.ts b/src/hooks/action.ts similarity index 86% rename from src/hooks.ts rename to src/hooks/action.ts index 7ebba57..1f11122 100644 --- a/src/hooks.ts +++ b/src/hooks/action.ts @@ -1,18 +1,9 @@ import React from "react"; -import {useDispatch, useSelector} from "react-redux"; -import type {Action, State} from "./reducer"; +import {useDispatch} from "react-redux"; +import type {Action} from "../reducer"; type DeferLiteralArrayCheck = T extends Array ? T : never; -export function useLoadingStatus(identifier: string = "global"): boolean { - return useSelector((state: State) => state.loading[identifier] > 0); -} - -interface IdleStatus { - idle: boolean; - startAt: number | null; -} - /** * Action parameters must be of primitive types, so that the dependency check can work well. * No need add dispatch to dep list, because it is always fixed. diff --git a/src/hooks/loading.ts b/src/hooks/loading.ts new file mode 100644 index 0000000..a250408 --- /dev/null +++ b/src/hooks/loading.ts @@ -0,0 +1,6 @@ +import {useSelector} from "react-redux"; +import type {State} from "../reducer"; + +export function useLoadingStatus(identifier: string = "global"): boolean { + return useSelector((state: State) => state.loading[identifier] > 0); +} diff --git a/src/index.ts b/src/index.ts index 4809d7c..4f43228 100644 --- a/src/index.ts +++ b/src/index.ts @@ -14,11 +14,20 @@ export {ErrorBoundary} from "./util/ErrorBoundary"; export {IdleDetector, IdleDetectorContext} from "./util/IdleDetector"; export {Route} from "./util/Route"; -export {createActionHandlerDecorator, Loading, Interval, Mutex, RetryOnNetworkConnectionError, SilentOnNetworkConnectionError, Log} from "./decorator"; +export {useAction, useObjectKeyAction, useUnaryAction, useBinaryAction} from "./hooks/action"; +export {useLoadingStatus} from "./hooks/loading"; + +export {Interval} from "./decorator/Interval"; +export {Loading} from "./decorator/Loading"; +export {Log} from "./decorator/Log"; +export {Mutex} from "./decorator/Mutex"; +export {RetryOnNetworkConnectionError} from "./decorator/RetryOnNetworkConnectionError"; +export {SilentOnNetworkConnectionError} from "./decorator/SilentOnNetworkConnectionError"; +export {createActionHandlerDecorator} from "./decorator/createActionHandlerDecorator"; + export {Exception, APIException, NetworkConnectionException} from "./Exception"; export {showLoading, loadingAction, navigationPreventionAction, idleStateActions, idleTimeoutActions, type State} from "./reducer"; export {register, type ErrorListener} from "./module"; -export {useLoadingStatus, useAction, useObjectKeyAction, useUnaryAction, useBinaryAction} from "./hooks"; export {call, put, spawn, delay, all, race, fork, type SagaGenerator} from "./typed-saga"; export {logger} from "./app"; diff --git a/test/hooks.test.ts b/test/hooks/action.test.ts similarity index 97% rename from test/hooks.test.ts rename to test/hooks/action.test.ts index e43de4e..0b7779a 100644 --- a/test/hooks.test.ts +++ b/test/hooks/action.test.ts @@ -1,10 +1,10 @@ -import {useAction, useBinaryAction, useObjectKeyAction, useUnaryAction} from "../src/hooks"; -import {Action} from "../src/reducer"; +import {useAction, useBinaryAction, useObjectKeyAction, useUnaryAction} from "../../src/hooks/action"; +import {Action} from "../../src/reducer"; /** * Using real useModuleAction in Jest environment will error, because the hooks are not called in a React component context. */ -jest.mock("../src/hooks", () => ({useAction: () => () => {}, useUnaryAction: () => () => {}, useBinaryAction: () => () => {}, useObjectKeyAction: () => () => {}})); +jest.mock("../../src/hooks/action", () => ({useAction: () => () => {}, useUnaryAction: () => () => {}, useBinaryAction: () => () => {}, useObjectKeyAction: () => () => {}})); type ActionCreator

= (...args: P) => Action

; From 980dd92df7324b4f9e7b944be8e2b1fc06b09af2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Aug 2023 04:13:30 +0000 Subject: [PATCH 12/17] Bump tough-cookie from 4.1.2 to 4.1.3 Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/salesforce/tough-cookie/releases) - [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md) - [Commits](https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3) --- updated-dependencies: - dependency-name: tough-cookie dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9ddf4e4..738df98 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3003,7 +3003,7 @@ packages: parse5: 7.1.1 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 4.1.2 + tough-cookie: 4.1.3 w3c-hr-time: 1.0.2 w3c-xmlserializer: 3.0.0 webidl-conversions: 7.0.0 @@ -3839,8 +3839,8 @@ packages: is-number: 7.0.0 dev: true - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} + /tough-cookie@4.1.3: + resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} engines: {node: '>=6'} dependencies: psl: 1.9.0 From 5b8f273c634e22b9784a4c005fa5da0c30f70ffa Mon Sep 17 00:00:00 2001 From: dionshi Date: Mon, 28 Aug 2023 16:55:39 +0800 Subject: [PATCH 13/17] 1.36.4: - upgrade tslib, core-js, ts and some other dev deps - enhance ignorable error pattern for UCBrowser extension --- package.json | 18 +- pnpm-lock.yaml | 687 +++++++++++++++++++++-------------------- src/util/error-util.ts | 2 +- 3 files changed, 365 insertions(+), 342 deletions(-) diff --git a/package.json b/package.json index 43f9f20..d9e8d41 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.3", + "version": "1.36.4", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -32,26 +32,26 @@ "eslint": "8.46.0", "eslint-config-prettier": "9.0.0", "fs-extra": "11.1.1", - "jest": "29.6.2", - "jest-environment-jsdom": "29.6.2", - "prettier": "3.0.1", + "jest": "29.6.4", + "jest-environment-jsdom": "29.6.4", + "prettier": "3.0.2", "react": "18.2.0", "react-dom": "18.2.0", "ts-jest": "29.1.1", "ts-node": "10.9.1", - "typescript": "5.1.6", + "typescript": "5.2.2", "yargs": "17.7.2" }, "dependencies": { "@types/history": "4.7.11", - "@types/react": "18.2.20", + "@types/react": "18.2.21", "@types/react-dom": "18.2.7", "@types/react-redux": "7.1.25", "@types/react-router": "5.1.20", "@types/react-router-dom": "5.3.3", - "axios": "1.4.0", + "axios": "1.5.0", "connected-react-router": "6.9.3", - "core-js": "3.32.0", + "core-js": "3.32.1", "history": "4.10.1", "immer": "10.0.2", "react-redux": "7.2.8", @@ -60,7 +60,7 @@ "redux": "4.1.2", "redux-saga": "1.1.3", "regenerator-runtime": "0.14.0", - "tslib": "2.6.1" + "tslib": "2.6.2" }, "peerDependencies": { "react": ">=18.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c4433e1..e74c451 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ dependencies: specifier: 4.7.11 version: 4.7.11 '@types/react': - specifier: 18.2.20 - version: 18.2.20 + specifier: 18.2.21 + version: 18.2.21 '@types/react-dom': specifier: 18.2.7 version: 18.2.7 @@ -24,14 +24,14 @@ dependencies: specifier: 5.3.3 version: 5.3.3 axios: - specifier: 1.4.0 - version: 1.4.0 + specifier: 1.5.0 + version: 1.5.0 connected-react-router: specifier: 6.9.3 version: 6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2) core-js: - specifier: 3.32.0 - version: 3.32.0 + specifier: 3.32.1 + version: 3.32.1 history: specifier: 4.10.1 version: 4.10.1 @@ -57,8 +57,8 @@ dependencies: specifier: 0.14.0 version: 0.14.0 tslib: - specifier: 2.6.1 - version: 2.6.1 + specifier: 2.6.2 + version: 2.6.2 devDependencies: '@testing-library/dom': @@ -84,10 +84,10 @@ devDependencies: version: 5.14.9 '@typescript-eslint/eslint-plugin': specifier: 6.3.0 - version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6) + version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: 6.3.0 - version: 6.3.0(eslint@8.46.0)(typescript@5.1.6) + version: 6.3.0(eslint@8.46.0)(typescript@5.2.2) eslint: specifier: 8.46.0 version: 8.46.0 @@ -98,14 +98,14 @@ devDependencies: specifier: 11.1.1 version: 11.1.1 jest: - specifier: 29.6.2 - version: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) + specifier: 29.6.4 + version: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) jest-environment-jsdom: - specifier: 29.6.2 - version: 29.6.2 + specifier: 29.6.4 + version: 29.6.4 prettier: - specifier: 3.0.1 - version: 3.0.1 + specifier: 3.0.2 + version: 3.0.2 react: specifier: 18.2.0 version: 18.2.0 @@ -114,13 +114,13 @@ devDependencies: version: 18.2.0(react@18.2.0) ts-jest: specifier: 29.1.1 - version: 29.1.1(@babel/core@7.19.1)(jest@29.6.2)(typescript@5.1.6) + version: 29.1.1(@babel/core@7.19.1)(jest@29.6.4)(typescript@5.2.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.4.9)(typescript@5.1.6) + version: 10.9.1(@types/node@20.4.9)(typescript@5.2.2) typescript: - specifier: 5.1.6 - version: 5.1.6 + specifier: 5.2.2 + version: 5.2.2 yargs: specifier: 17.7.2 version: 17.7.2 @@ -567,20 +567,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@29.6.2: - resolution: {integrity: sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w==} + /@jest/console@29.6.4: + resolution: {integrity: sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/node': 20.4.9 chalk: 4.1.2 - jest-message-util: 29.6.2 - jest-util: 29.6.2 + jest-message-util: 29.6.3 + jest-util: 29.6.3 slash: 3.0.0 dev: true - /@jest/core@29.6.2(ts-node@10.9.1): - resolution: {integrity: sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg==} + /@jest/core@29.6.4(ts-node@10.9.1): + resolution: {integrity: sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -588,32 +588,32 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.6.2 - '@jest/reporters': 29.6.2 - '@jest/test-result': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/console': 29.6.4 + '@jest/reporters': 29.6.4 + '@jest/test-result': 29.6.4 + '@jest/transform': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.5.0 - jest-config: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) - jest-haste-map: 29.6.2 - jest-message-util: 29.6.2 - jest-regex-util: 29.4.3 - jest-resolve: 29.6.2 - jest-resolve-dependencies: 29.6.2 - jest-runner: 29.6.2 - jest-runtime: 29.6.2 - jest-snapshot: 29.6.2 - jest-util: 29.6.2 - jest-validate: 29.6.2 - jest-watcher: 29.6.2 + jest-changed-files: 29.6.3 + jest-config: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest-haste-map: 29.6.4 + jest-message-util: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.6.4 + jest-resolve-dependencies: 29.6.4 + jest-runner: 29.6.4 + jest-runtime: 29.6.4 + jest-snapshot: 29.6.4 + jest-util: 29.6.3 + jest-validate: 29.6.3 + jest-watcher: 29.6.4 micromatch: 4.0.5 - pretty-format: 29.6.2 + pretty-format: 29.6.3 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -622,14 +622,14 @@ packages: - ts-node dev: true - /@jest/environment@29.6.2: - resolution: {integrity: sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q==} + /@jest/environment@29.6.4: + resolution: {integrity: sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.2 - '@jest/types': 29.6.1 + '@jest/fake-timers': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 - jest-mock: 29.6.2 + jest-mock: 29.6.3 dev: true /@jest/expect-utils@29.5.0: @@ -639,49 +639,49 @@ packages: jest-get-type: 29.4.3 dev: true - /@jest/expect-utils@29.6.2: - resolution: {integrity: sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg==} + /@jest/expect-utils@29.6.4: + resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 dev: true - /@jest/expect@29.6.2: - resolution: {integrity: sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg==} + /@jest/expect@29.6.4: + resolution: {integrity: sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.2 - jest-snapshot: 29.6.2 + expect: 29.6.4 + jest-snapshot: 29.6.4 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.2: - resolution: {integrity: sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA==} + /@jest/fake-timers@29.6.4: + resolution: {integrity: sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 '@types/node': 20.4.9 - jest-message-util: 29.6.2 - jest-mock: 29.6.2 - jest-util: 29.6.2 + jest-message-util: 29.6.3 + jest-mock: 29.6.3 + jest-util: 29.6.3 dev: true - /@jest/globals@29.6.2: - resolution: {integrity: sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw==} + /@jest/globals@29.6.4: + resolution: {integrity: sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.2 - '@jest/expect': 29.6.2 - '@jest/types': 29.6.1 - jest-mock: 29.6.2 + '@jest/environment': 29.6.4 + '@jest/expect': 29.6.4 + '@jest/types': 29.6.3 + jest-mock: 29.6.3 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.6.2: - resolution: {integrity: sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw==} + /@jest/reporters@29.6.4: + resolution: {integrity: sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -690,10 +690,10 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.6.2 - '@jest/test-result': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/console': 29.6.4 + '@jest/test-result': 29.6.4 + '@jest/transform': 29.6.4 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 '@types/node': 20.4.9 chalk: 4.1.2 @@ -702,13 +702,13 @@ packages: glob: 7.2.3 graceful-fs: 4.2.10 istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.0 + istanbul-lib-instrument: 6.0.0 istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.6.2 - jest-util: 29.6.2 - jest-worker: 29.6.2 + jest-message-util: 29.6.3 + jest-util: 29.6.3 + jest-worker: 29.6.4 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -724,15 +724,15 @@ packages: '@sinclair/typebox': 0.25.24 dev: true - /@jest/schemas@29.6.0: - resolution: {integrity: sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@sinclair/typebox': 0.27.8 dev: true - /@jest/source-map@29.6.0: - resolution: {integrity: sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA==} + /@jest/source-map@29.6.3: + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jridgewell/trace-mapping': 0.3.18 @@ -740,41 +740,41 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result@29.6.2: - resolution: {integrity: sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw==} + /@jest/test-result@29.6.4: + resolution: {integrity: sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.2 - '@jest/types': 29.6.1 + '@jest/console': 29.6.4 + '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.6.2: - resolution: {integrity: sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw==} + /@jest/test-sequencer@29.6.4: + resolution: {integrity: sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.2 + '@jest/test-result': 29.6.4 graceful-fs: 4.2.10 - jest-haste-map: 29.6.2 + jest-haste-map: 29.6.4 slash: 3.0.0 dev: true - /@jest/transform@29.6.2: - resolution: {integrity: sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg==} + /@jest/transform@29.6.4: + resolution: {integrity: sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 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.6.2 - jest-regex-util: 29.4.3 - jest-util: 29.6.2 + jest-haste-map: 29.6.4 + jest-regex-util: 29.6.3 + jest-util: 29.6.3 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -795,11 +795,11 @@ packages: chalk: 4.1.2 dev: true - /@jest/types@29.6.1: - resolution: {integrity: sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw==} + /@jest/types@29.6.3: + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 '@types/node': 20.4.9 @@ -1050,7 +1050,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.20 + '@types/react': 18.2.21 hoist-non-react-statics: 3.3.2 dev: false @@ -1099,13 +1099,13 @@ packages: /@types/react-dom@18.2.7: resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} dependencies: - '@types/react': 18.2.20 + '@types/react': 18.2.21 /@types/react-redux@7.1.25: resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.20 + '@types/react': 18.2.21 hoist-non-react-statics: 3.3.2 redux: 4.1.2 dev: false @@ -1114,7 +1114,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.20 + '@types/react': 18.2.21 '@types/react-router': 5.1.20 dev: false @@ -1122,11 +1122,11 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.20 + '@types/react': 18.2.21 dev: false - /@types/react@18.2.20: - resolution: {integrity: sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw==} + /@types/react@18.2.21: + resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1163,7 +1163,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.2.2): resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1175,10 +1175,10 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/type-utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) - '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/type-utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 eslint: 8.46.0 @@ -1187,13 +1187,13 @@ packages: natural-compare: 1.4.0 natural-compare-lite: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.3.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/parser@6.3.0(eslint@8.46.0)(typescript@5.2.2): resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1205,11 +1205,11 @@ packages: dependencies: '@typescript-eslint/scope-manager': 6.3.0 '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.3.0 debug: 4.3.4 eslint: 8.46.0 - typescript: 5.1.6 + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1222,7 +1222,7 @@ packages: '@typescript-eslint/visitor-keys': 6.3.0 dev: true - /@typescript-eslint/type-utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/type-utils@6.3.0(eslint@8.46.0)(typescript@5.2.2): resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1232,12 +1232,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) - '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) debug: 4.3.4 eslint: 8.46.0 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true @@ -1247,7 +1247,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.3.0(typescript@5.1.6): + /@typescript-eslint/typescript-estree@6.3.0(typescript@5.2.2): resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1262,13 +1262,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.1.6) - typescript: 5.1.6 + ts-api-utils: 1.0.1(typescript@5.2.2) + typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.3.0(eslint@8.46.0)(typescript@5.1.6): + /@typescript-eslint/utils@6.3.0(eslint@8.46.0)(typescript@5.2.2): resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1279,7 +1279,7 @@ packages: '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.3.0 '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) eslint: 8.46.0 semver: 7.5.4 transitivePeerDependencies: @@ -1431,8 +1431,8 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - /axios@1.4.0: - resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} + /axios@1.5.0: + resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} dependencies: follow-redirects: 1.15.1 form-data: 4.0.0 @@ -1441,17 +1441,17 @@ packages: - debug dev: false - /babel-jest@29.6.2(@babel/core@7.19.1): - resolution: {integrity: sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A==} + /babel-jest@29.6.4(@babel/core@7.19.1): + resolution: {integrity: sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.19.1 - '@jest/transform': 29.6.2 + '@jest/transform': 29.6.4 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.5.0(@babel/core@7.19.1) + babel-preset-jest: 29.6.3(@babel/core@7.19.1) chalk: 4.1.2 graceful-fs: 4.2.10 slash: 3.0.0 @@ -1472,8 +1472,8 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist@29.5.0: - resolution: {integrity: sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==} + /babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/template': 7.18.10 @@ -1502,14 +1502,14 @@ packages: '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.19.1) dev: true - /babel-preset-jest@29.5.0(@babel/core@7.19.1): - resolution: {integrity: sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==} + /babel-preset-jest@29.6.3(@babel/core@7.19.1): + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.19.1 - babel-plugin-jest-hoist: 29.5.0 + babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1) dev: true @@ -1700,8 +1700,8 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js@3.32.0: - resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} + /core-js@3.32.1: + resolution: {integrity: sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==} requiresBuild: true dev: false @@ -1797,6 +1797,11 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -2027,16 +2032,15 @@ packages: jest-util: 29.5.0 dev: true - /expect@29.6.2: - resolution: {integrity: sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA==} + /expect@29.6.4: + resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/expect-utils': 29.6.2 - '@types/node': 20.4.9 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.2 - jest-message-util: 29.6.2 - jest-util: 29.6.2 + '@jest/expect-utils': 29.6.4 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.6.4 + jest-message-util: 29.6.3 + jest-util: 29.6.3 dev: true /fast-deep-equal@3.1.3: @@ -2449,6 +2453,19 @@ packages: - supports-color dev: true + /istanbul-lib-instrument@6.0.0: + resolution: {integrity: sha512-x58orMzEVfzPUKqlbLd1hXCnySCxKdDKa6Rjg97CwuLLRI4g3FHTdnExu1OqffVFay6zeMW+T6/DowFLndWnIw==} + engines: {node: '>=10'} + dependencies: + '@babel/core': 7.19.1 + '@babel/parser': 7.19.1 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + dev: true + /istanbul-lib-report@3.0.0: resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} engines: {node: '>=8'} @@ -2477,35 +2494,36 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jest-changed-files@29.5.0: - resolution: {integrity: sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==} + /jest-changed-files@29.6.3: + resolution: {integrity: sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 + jest-util: 29.6.3 p-limit: 3.1.0 dev: true - /jest-circus@29.6.2: - resolution: {integrity: sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw==} + /jest-circus@29.6.4: + resolution: {integrity: sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.2 - '@jest/expect': 29.6.2 - '@jest/test-result': 29.6.2 - '@jest/types': 29.6.1 + '@jest/environment': 29.6.4 + '@jest/expect': 29.6.4 + '@jest/test-result': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 29.6.2 - jest-matcher-utils: 29.6.2 - jest-message-util: 29.6.2 - jest-runtime: 29.6.2 - jest-snapshot: 29.6.2 - jest-util: 29.6.2 + jest-each: 29.6.3 + jest-matcher-utils: 29.6.4 + jest-message-util: 29.6.3 + jest-runtime: 29.6.4 + jest-snapshot: 29.6.4 + jest-util: 29.6.3 p-limit: 3.1.0 - pretty-format: 29.6.2 + pretty-format: 29.6.3 pure-rand: 6.0.1 slash: 3.0.0 stack-utils: 2.0.5 @@ -2514,8 +2532,8 @@ packages: - supports-color dev: true - /jest-cli@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): - resolution: {integrity: sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q==} + /jest-cli@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2524,16 +2542,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.2(ts-node@10.9.1) - '@jest/test-result': 29.6.2 - '@jest/types': 29.6.1 + '@jest/core': 29.6.4(ts-node@10.9.1) + '@jest/test-result': 29.6.4 + '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) - jest-util: 29.6.2 - jest-validate: 29.6.2 + jest-config: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest-util: 29.6.3 + jest-validate: 29.6.3 prompts: 2.4.2 yargs: 17.7.2 transitivePeerDependencies: @@ -2543,8 +2561,8 @@ packages: - ts-node dev: true - /jest-config@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): - resolution: {integrity: sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw==} + /jest-config@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -2556,29 +2574,29 @@ packages: optional: true dependencies: '@babel/core': 7.19.1 - '@jest/test-sequencer': 29.6.2 - '@jest/types': 29.6.1 + '@jest/test-sequencer': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 - babel-jest: 29.6.2(@babel/core@7.19.1) + babel-jest: 29.6.4(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.6.2 - jest-environment-node: 29.6.2 - jest-get-type: 29.4.3 - jest-regex-util: 29.4.3 - jest-resolve: 29.6.2 - jest-runner: 29.6.2 - jest-util: 29.6.2 - jest-validate: 29.6.2 + jest-circus: 29.6.4 + jest-environment-node: 29.6.4 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.6.4 + jest-runner: 29.6.4 + jest-util: 29.6.3 + jest-validate: 29.6.3 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.6.2 + pretty-format: 29.6.3 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.4.9)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@20.4.9)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -2594,36 +2612,36 @@ packages: pretty-format: 29.5.0 dev: true - /jest-diff@29.6.2: - resolution: {integrity: sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA==} + /jest-diff@29.6.4: + resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - diff-sequences: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.6.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 dev: true - /jest-docblock@29.4.3: - resolution: {integrity: sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg==} + /jest-docblock@29.6.3: + resolution: {integrity: sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each@29.6.2: - resolution: {integrity: sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw==} + /jest-each@29.6.3: + resolution: {integrity: sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 chalk: 4.1.2 - jest-get-type: 29.4.3 - jest-util: 29.6.2 - pretty-format: 29.6.2 + jest-get-type: 29.6.3 + jest-util: 29.6.3 + pretty-format: 29.6.3 dev: true - /jest-environment-jsdom@29.6.2: - resolution: {integrity: sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ==} + /jest-environment-jsdom@29.6.4: + resolution: {integrity: sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -2631,13 +2649,13 @@ packages: canvas: optional: true dependencies: - '@jest/environment': 29.6.2 - '@jest/fake-timers': 29.6.2 - '@jest/types': 29.6.1 + '@jest/environment': 29.6.4 + '@jest/fake-timers': 29.6.4 + '@jest/types': 29.6.3 '@types/jsdom': 20.0.0 '@types/node': 20.4.9 - jest-mock: 29.6.2 - jest-util: 29.6.2 + jest-mock: 29.6.3 + jest-util: 29.6.3 jsdom: 20.0.0 transitivePeerDependencies: - bufferutil @@ -2645,16 +2663,16 @@ packages: - utf-8-validate dev: true - /jest-environment-node@29.6.2: - resolution: {integrity: sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ==} + /jest-environment-node@29.6.4: + resolution: {integrity: sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.2 - '@jest/fake-timers': 29.6.2 - '@jest/types': 29.6.1 + '@jest/environment': 29.6.4 + '@jest/fake-timers': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 - jest-mock: 29.6.2 - jest-util: 29.6.2 + jest-mock: 29.6.3 + jest-util: 29.6.3 dev: true /jest-get-type@29.4.3: @@ -2662,31 +2680,36 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.2: - resolution: {integrity: sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA==} + /jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dev: true + + /jest-haste-map@29.6.4: + resolution: {integrity: sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 '@types/node': 20.4.9 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 - jest-regex-util: 29.4.3 - jest-util: 29.6.2 - jest-worker: 29.6.2 + jest-regex-util: 29.6.3 + jest-util: 29.6.3 + jest-worker: 29.6.4 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-leak-detector@29.6.2: - resolution: {integrity: sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ==} + /jest-leak-detector@29.6.3: + resolution: {integrity: sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-get-type: 29.4.3 - pretty-format: 29.6.2 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 dev: true /jest-matcher-utils@29.5.0: @@ -2699,14 +2722,14 @@ packages: pretty-format: 29.5.0 dev: true - /jest-matcher-utils@29.6.2: - resolution: {integrity: sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ==} + /jest-matcher-utils@29.6.4: + resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 - jest-diff: 29.6.2 - jest-get-type: 29.4.3 - pretty-format: 29.6.2 + jest-diff: 29.6.4 + jest-get-type: 29.6.3 + pretty-format: 29.6.3 dev: true /jest-message-util@29.5.0: @@ -2724,31 +2747,31 @@ packages: stack-utils: 2.0.5 dev: true - /jest-message-util@29.6.2: - resolution: {integrity: sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ==} + /jest-message-util@29.6.3: + resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/code-frame': 7.18.6 - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/stack-utils': 2.0.1 chalk: 4.1.2 graceful-fs: 4.2.10 micromatch: 4.0.5 - pretty-format: 29.6.2 + pretty-format: 29.6.3 slash: 3.0.0 stack-utils: 2.0.5 dev: true - /jest-mock@29.6.2: - resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==} + /jest-mock@29.6.3: + resolution: {integrity: sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/node': 20.4.9 - jest-util: 29.6.2 + jest-util: 29.6.3 dev: true - /jest-pnp-resolver@1.2.2(jest-resolve@29.6.2): + /jest-pnp-resolver@1.2.2(jest-resolve@29.6.4): resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -2757,100 +2780,100 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.6.2 + jest-resolve: 29.6.4 dev: true - /jest-regex-util@29.4.3: - resolution: {integrity: sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==} + /jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@29.6.2: - resolution: {integrity: sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w==} + /jest-resolve-dependencies@29.6.4: + resolution: {integrity: sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - jest-regex-util: 29.4.3 - jest-snapshot: 29.6.2 + jest-regex-util: 29.6.3 + jest-snapshot: 29.6.4 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.6.2: - resolution: {integrity: sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw==} + /jest-resolve@29.6.4: + resolution: {integrity: sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.6.2 - jest-pnp-resolver: 1.2.2(jest-resolve@29.6.2) - jest-util: 29.6.2 - jest-validate: 29.6.2 + jest-haste-map: 29.6.4 + jest-pnp-resolver: 1.2.2(jest-resolve@29.6.4) + jest-util: 29.6.3 + jest-validate: 29.6.3 resolve: 1.22.1 resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@29.6.2: - resolution: {integrity: sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w==} + /jest-runner@29.6.4: + resolution: {integrity: sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.2 - '@jest/environment': 29.6.2 - '@jest/test-result': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/console': 29.6.4 + '@jest/environment': 29.6.4 + '@jest/test-result': 29.6.4 + '@jest/transform': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 - jest-docblock: 29.4.3 - jest-environment-node: 29.6.2 - jest-haste-map: 29.6.2 - jest-leak-detector: 29.6.2 - jest-message-util: 29.6.2 - jest-resolve: 29.6.2 - jest-runtime: 29.6.2 - jest-util: 29.6.2 - jest-watcher: 29.6.2 - jest-worker: 29.6.2 + jest-docblock: 29.6.3 + jest-environment-node: 29.6.4 + jest-haste-map: 29.6.4 + jest-leak-detector: 29.6.3 + jest-message-util: 29.6.3 + jest-resolve: 29.6.4 + jest-runtime: 29.6.4 + jest-util: 29.6.3 + jest-watcher: 29.6.4 + jest-worker: 29.6.4 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.6.2: - resolution: {integrity: sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg==} + /jest-runtime@29.6.4: + resolution: {integrity: sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.2 - '@jest/fake-timers': 29.6.2 - '@jest/globals': 29.6.2 - '@jest/source-map': 29.6.0 - '@jest/test-result': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/environment': 29.6.4 + '@jest/fake-timers': 29.6.4 + '@jest/globals': 29.6.4 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.6.4 + '@jest/transform': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.6.2 - jest-message-util: 29.6.2 - jest-mock: 29.6.2 - jest-regex-util: 29.4.3 - jest-resolve: 29.6.2 - jest-snapshot: 29.6.2 - jest-util: 29.6.2 + jest-haste-map: 29.6.4 + jest-message-util: 29.6.3 + jest-mock: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.6.4 + jest-snapshot: 29.6.4 + jest-util: 29.6.3 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.6.2: - resolution: {integrity: sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA==} + /jest-snapshot@29.6.4: + resolution: {integrity: sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 @@ -2858,20 +2881,20 @@ packages: '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1) '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1) '@babel/types': 7.19.0 - '@jest/expect-utils': 29.6.2 - '@jest/transform': 29.6.2 - '@jest/types': 29.6.1 + '@jest/expect-utils': 29.6.4 + '@jest/transform': 29.6.4 + '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1) chalk: 4.1.2 - expect: 29.6.2 + expect: 29.6.4 graceful-fs: 4.2.10 - jest-diff: 29.6.2 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.6.2 - jest-message-util: 29.6.2 - jest-util: 29.6.2 + jest-diff: 29.6.4 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.6.4 + jest-message-util: 29.6.3 + jest-util: 29.6.3 natural-compare: 1.4.0 - pretty-format: 29.6.2 + pretty-format: 29.6.3 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -2889,11 +2912,11 @@ packages: picomatch: 2.3.1 dev: true - /jest-util@29.6.2: - resolution: {integrity: sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w==} + /jest-util@29.6.3: + resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 '@types/node': 20.4.9 chalk: 4.1.2 ci-info: 3.4.0 @@ -2901,44 +2924,44 @@ packages: picomatch: 2.3.1 dev: true - /jest-validate@29.6.2: - resolution: {integrity: sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg==} + /jest-validate@29.6.3: + resolution: {integrity: sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/types': 29.6.1 + '@jest/types': 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 29.4.3 + jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.6.2 + pretty-format: 29.6.3 dev: true - /jest-watcher@29.6.2: - resolution: {integrity: sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA==} + /jest-watcher@29.6.4: + resolution: {integrity: sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.2 - '@jest/types': 29.6.1 + '@jest/test-result': 29.6.4 + '@jest/types': 29.6.3 '@types/node': 20.4.9 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.6.2 + jest-util: 29.6.3 string-length: 4.0.2 dev: true - /jest-worker@29.6.2: - resolution: {integrity: sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ==} + /jest-worker@29.6.4: + resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@types/node': 20.4.9 - jest-util: 29.6.2 + jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.6.2(@types/node@20.4.9)(ts-node@10.9.1): - resolution: {integrity: sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg==} + /jest@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + resolution: {integrity: sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2947,10 +2970,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.2(ts-node@10.9.1) - '@jest/types': 29.6.1 + '@jest/core': 29.6.4(ts-node@10.9.1) + '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) + jest-cli: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3395,8 +3418,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.1: - resolution: {integrity: sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==} + /prettier@3.0.2: + resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -3419,11 +3442,11 @@ packages: react-is: 18.2.0 dev: true - /pretty-format@29.6.2: - resolution: {integrity: sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg==} + /pretty-format@29.6.3: + resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.6.0 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -3856,16 +3879,16 @@ packages: punycode: 2.1.1 dev: true - /ts-api-utils@1.0.1(typescript@5.1.6): + /ts-api-utils@1.0.1(typescript@5.2.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.1.6 + typescript: 5.2.2 dev: true - /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.2)(typescript@5.1.6): + /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.4)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3889,17 +3912,17 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.2(@types/node@20.4.9)(ts-node@10.9.1) + jest: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.5.4 - typescript: 5.1.6 + typescript: 5.2.2 yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.4.9)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@20.4.9)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3925,13 +3948,13 @@ packages: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 5.2.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tslib@2.6.1: - resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} + /tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: false /type-check@0.3.2: @@ -3979,8 +4002,8 @@ packages: typescript-compare: 0.0.2 dev: false - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} + /typescript@5.2.2: + resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} engines: {node: '>=14.17'} hasBin: true dev: true diff --git a/src/util/error-util.ts b/src/util/error-util.ts index 2da548a..3e49885 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -114,7 +114,7 @@ function specialErrorCode(exception: Exception, action: string, stacktrace?: str function isValidStacktrace(stacktrace?: string): boolean { if (stacktrace) { - const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script"]; + const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script", "ucbrowser_script"]; if (ignoredPatterns.some(_ => stacktrace.includes(_))) { return false; } From 1c7f4e938db856782c2fc6968f51869b5292b360 Mon Sep 17 00:00:00 2001 From: dionshi Date: Thu, 31 Aug 2023 14:48:49 +0800 Subject: [PATCH 14/17] 1.36.5: - add `ShadowRoot` API check as browser requirement - upgrade jest related dev deps --- config/jest.config.js | 2 +- package.json | 22 +- pnpm-lock.yaml | 738 +++++++++++++++++++++++++------------ src/util/navigator-util.ts | 5 +- 4 files changed, 512 insertions(+), 255 deletions(-) diff --git a/config/jest.config.js b/config/jest.config.js index c1e5a0c..bfe32c5 100644 --- a/config/jest.config.js +++ b/config/jest.config.js @@ -17,7 +17,7 @@ const config = { moduleFileExtensions: ["ts", "tsx", "js"], moduleDirectories: ["node_modules", "src"], testEnvironment: "jsdom", - setupFilesAfterEnv: ["@testing-library/jest-dom/extend-expect"], + setupFilesAfterEnv: ["@testing-library/jest-dom"], testEnvironmentOptions: { url: "http://127.0.0.1", }, diff --git a/package.json b/package.json index d9e8d41..f10946e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.4", + "version": "1.36.5", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -20,21 +20,21 @@ "prepublishOnly": "node script/build.js --mode fast" }, "devDependencies": { - "@testing-library/dom": "8.18.0", - "@testing-library/jest-dom": "5.16.5", - "@testing-library/react": "13.4.0", + "@testing-library/dom": "9.3.1", + "@testing-library/jest-dom": "6.1.2", + "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", - "@types/jest": "29.5.3", - "@types/node": "20.4.9", - "@types/testing-library__jest-dom": "5.14.9", - "@typescript-eslint/eslint-plugin": "6.3.0", - "@typescript-eslint/parser": "6.3.0", - "eslint": "8.46.0", + "@types/jest": "29.5.4", + "@types/node": "20.5.7", + "@types/testing-library__jest-dom": "6.0.0", + "@typescript-eslint/eslint-plugin": "6.5.0", + "@typescript-eslint/parser": "6.5.0", + "eslint": "8.48.0", "eslint-config-prettier": "9.0.0", "fs-extra": "11.1.1", "jest": "29.6.4", "jest-environment-jsdom": "29.6.4", - "prettier": "3.0.2", + "prettier": "3.0.3", "react": "18.2.0", "react-dom": "18.2.0", "ts-jest": "29.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e74c451..ed2a31c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,50 +62,50 @@ dependencies: devDependencies: '@testing-library/dom': - specifier: 8.18.0 - version: 8.18.0 + specifier: 9.3.1 + version: 9.3.1 '@testing-library/jest-dom': - specifier: 5.16.5 - version: 5.16.5 + specifier: 6.1.2 + version: 6.1.2(@types/jest@29.5.4)(jest@29.6.4) '@testing-library/react': - specifier: 13.4.0 - version: 13.4.0(react-dom@18.2.0)(react@18.2.0) + specifier: 14.0.0 + version: 14.0.0(react-dom@18.2.0)(react@18.2.0) '@testing-library/user-event': specifier: 14.4.3 - version: 14.4.3(@testing-library/dom@8.18.0) + version: 14.4.3(@testing-library/dom@9.3.1) '@types/jest': - specifier: 29.5.3 - version: 29.5.3 + specifier: 29.5.4 + version: 29.5.4 '@types/node': - specifier: 20.4.9 - version: 20.4.9 + specifier: 20.5.7 + version: 20.5.7 '@types/testing-library__jest-dom': - specifier: 5.14.9 - version: 5.14.9 + specifier: 6.0.0 + version: 6.0.0(@types/jest@29.5.4)(jest@29.6.4) '@typescript-eslint/eslint-plugin': - specifier: 6.3.0 - version: 6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.2.2) + specifier: 6.5.0 + version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@5.2.2) '@typescript-eslint/parser': - specifier: 6.3.0 - version: 6.3.0(eslint@8.46.0)(typescript@5.2.2) + specifier: 6.5.0 + version: 6.5.0(eslint@8.48.0)(typescript@5.2.2) eslint: - specifier: 8.46.0 - version: 8.46.0 + specifier: 8.48.0 + version: 8.48.0 eslint-config-prettier: specifier: 9.0.0 - version: 9.0.0(eslint@8.46.0) + version: 9.0.0(eslint@8.48.0) fs-extra: specifier: 11.1.1 version: 11.1.1 jest: specifier: 29.6.4 - version: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + version: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) jest-environment-jsdom: specifier: 29.6.4 version: 29.6.4 prettier: - specifier: 3.0.2 - version: 3.0.2 + specifier: 3.0.3 + version: 3.0.3 react: specifier: 18.2.0 version: 18.2.0 @@ -117,7 +117,7 @@ devDependencies: version: 29.1.1(@babel/core@7.19.1)(jest@29.6.4)(typescript@5.2.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.4.9)(typescript@5.2.2) + version: 10.9.1(@types/node@20.5.7)(typescript@5.2.2) typescript: specifier: 5.2.2 version: 5.2.2 @@ -132,8 +132,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@adobe/css-tools@4.0.1: - resolution: {integrity: sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==} + /@adobe/css-tools@4.3.1: + resolution: {integrity: sha512-/62yikz7NLScCGAAST5SHdnjaDJQBDq0M2muyRTpf2VQhw6StBg2ALiu73zSJQ4fMVLA+0uBhBHAle7Wg+2kSg==} dev: true /@ampproject/remapping@2.2.0: @@ -440,6 +440,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.11 + dev: false /@babel/runtime@7.19.0: resolution: {integrity: sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==} @@ -494,14 +495,14 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.46.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.46.0 - eslint-visitor-keys: 3.4.2 + eslint: 8.48.0 + eslint-visitor-keys: 3.4.3 dev: true /@eslint-community/regexpp@4.6.2: @@ -509,15 +510,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.1: - resolution: {integrity: sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA==} + /@eslint/eslintrc@2.1.2: + resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 globals: 13.20.0 - ignore: 5.2.0 + ignore: 5.2.4 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -526,8 +527,8 @@ packages: - supports-color dev: true - /@eslint/js@8.46.0: - resolution: {integrity: sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA==} + /@eslint/js@8.48.0: + resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -572,7 +573,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 jest-message-util: 29.6.3 jest-util: 29.6.3 @@ -593,14 +594,14 @@ packages: '@jest/test-result': 29.6.4 '@jest/transform': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.6.3 - jest-config: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest-config: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) jest-haste-map: 29.6.4 jest-message-util: 29.6.3 jest-regex-util: 29.6.3 @@ -628,17 +629,10 @@ packages: dependencies: '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-mock: 29.6.3 dev: true - /@jest/expect-utils@29.5.0: - resolution: {integrity: sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.3 - dev: true - /@jest/expect-utils@29.6.4: resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -662,7 +656,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-message-util: 29.6.3 jest-mock: 29.6.3 jest-util: 29.6.3 @@ -695,7 +689,7 @@ packages: '@jest/transform': 29.6.4 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -790,7 +784,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.9 + '@types/node': 20.5.7 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -802,7 +796,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.4.9 + '@types/node': 20.5.7 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -931,56 +925,71 @@ packages: '@sinonjs/commons': 2.0.0 dev: true - /@testing-library/dom@8.18.0: - resolution: {integrity: sha512-hP7v7Ifiq104Lb4dTuQzUtlkbX4sgsmxVwOTnVSDOU4ntApvPfp+eFLvasS8GpMP6pVfdbNRXNF/bSK7LTriEg==} - engines: {node: '>=12'} + /@testing-library/dom@9.3.1: + resolution: {integrity: sha512-0DGPd9AR3+iDTjGoMpxIkAsUihHZ3Ai6CneU6bRRrffXMgzCdlNk43jTrD2/5LT6CBb3MWTP8v510JzYtahD2w==} + engines: {node: '>=14'} dependencies: '@babel/code-frame': 7.18.6 '@babel/runtime': 7.19.0 - '@types/aria-query': 4.2.2 - aria-query: 5.0.2 + '@types/aria-query': 5.0.1 + aria-query: 5.1.3 chalk: 4.1.2 dom-accessibility-api: 0.5.14 - lz-string: 1.4.4 + lz-string: 1.5.0 pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@5.16.5: - resolution: {integrity: sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==} - engines: {node: '>=8', npm: '>=6', yarn: '>=1'} + /@testing-library/jest-dom@6.1.2(@types/jest@29.5.4)(jest@29.6.4): + resolution: {integrity: sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + peerDependencies: + '@jest/globals': '>= 28' + '@types/jest': '>= 28' + jest: '>= 28' + vitest: '>= 0.32' + peerDependenciesMeta: + '@jest/globals': + optional: true + '@types/jest': + optional: true + jest: + optional: true + vitest: + optional: true dependencies: - '@adobe/css-tools': 4.0.1 - '@babel/runtime': 7.18.9 - '@types/testing-library__jest-dom': 5.14.9 - aria-query: 5.0.0 + '@adobe/css-tools': 4.3.1 + '@babel/runtime': 7.19.0 + '@types/jest': 29.5.4 + aria-query: 5.0.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.5.14 + jest: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) lodash: 4.17.21 redent: 3.0.0 dev: true - /@testing-library/react@13.4.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==} - engines: {node: '>=12'} + /@testing-library/react@14.0.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-S04gSNJbYE30TlIMLTzv6QCTzt9AqIF5y6s6SzVFILNcNvbV/jU96GeiTPillGQo+Ny64M/5PV7klNYYgv5Dfg==} + engines: {node: '>=14'} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: '@babel/runtime': 7.19.0 - '@testing-library/dom': 8.18.0 + '@testing-library/dom': 9.3.1 '@types/react-dom': 18.2.7 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@testing-library/user-event@14.4.3(@testing-library/dom@8.18.0): + /@testing-library/user-event@14.4.3(@testing-library/dom@9.3.1): resolution: {integrity: sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==} engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' dependencies: - '@testing-library/dom': 8.18.0 + '@testing-library/dom': 9.3.1 dev: true /@tootallnate/once@2.0.0: @@ -1004,8 +1013,8 @@ packages: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true - /@types/aria-query@4.2.2: - resolution: {integrity: sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==} + /@types/aria-query@5.0.1: + resolution: {integrity: sha512-XTIieEY+gvJ39ChLcB4If5zHtPxt3Syj5rgZR+e1ctpmK8NjPf0zFqsz4JpLJT0xla9GFDKjy8Cpu331nrmE1Q==} dev: true /@types/babel__core@7.1.19: @@ -1040,7 +1049,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.4.9 + '@types/node': 20.5.7 dev: true /@types/history@4.7.11: @@ -1070,17 +1079,17 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest@29.5.3: - resolution: {integrity: sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA==} + /@types/jest@29.5.4: + resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} dependencies: - expect: 29.5.0 - pretty-format: 29.5.0 + expect: 29.6.4 + pretty-format: 29.6.3 dev: true /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.4.9 + '@types/node': 20.5.7 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -1089,8 +1098,8 @@ packages: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/node@20.4.9: - resolution: {integrity: sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ==} + /@types/node@20.5.7: + resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} dev: true /@types/prop-types@15.7.5: @@ -1143,10 +1152,16 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/testing-library__jest-dom@5.14.9: - resolution: {integrity: sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==} + /@types/testing-library__jest-dom@6.0.0(@types/jest@29.5.4)(jest@29.6.4): + resolution: {integrity: sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==} + deprecated: This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed. dependencies: - '@types/jest': 29.5.3 + '@testing-library/jest-dom': 6.1.2(@types/jest@29.5.4)(jest@29.6.4) + transitivePeerDependencies: + - '@jest/globals' + - '@types/jest' + - jest + - vitest dev: true /@types/tough-cookie@4.0.2: @@ -1163,8 +1178,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@6.3.0(@typescript-eslint/parser@6.3.0)(eslint@8.46.0)(typescript@5.2.2): - resolution: {integrity: sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A==} + /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1175,17 +1190,16 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.3.0(eslint@8.46.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/type-utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/type-utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.48.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 - natural-compare-lite: 1.4.0 semver: 7.5.4 ts-api-utils: 1.0.1(typescript@5.2.2) typescript: 5.2.2 @@ -1193,8 +1207,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.3.0(eslint@8.46.0)(typescript@5.2.2): - resolution: {integrity: sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg==} + /@typescript-eslint/parser@6.5.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1203,27 +1217,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.48.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.3.0: - resolution: {integrity: sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ==} + /@typescript-eslint/scope-manager@6.5.0: + resolution: {integrity: sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/visitor-keys': 6.5.0 dev: true - /@typescript-eslint/type-utils@6.3.0(eslint@8.46.0)(typescript@5.2.2): - resolution: {integrity: sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ==} + /@typescript-eslint/type-utils@6.5.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1232,23 +1246,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.3.0(eslint@8.46.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.46.0 + eslint: 8.48.0 ts-api-utils: 1.0.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.3.0: - resolution: {integrity: sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg==} + /@typescript-eslint/types@6.5.0: + resolution: {integrity: sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.3.0(typescript@5.2.2): - resolution: {integrity: sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg==} + /@typescript-eslint/typescript-estree@6.5.0(typescript@5.2.2): + resolution: {integrity: sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1256,8 +1270,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/visitor-keys': 6.3.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1268,31 +1282,31 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.3.0(eslint@8.46.0)(typescript@5.2.2): - resolution: {integrity: sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q==} + /@typescript-eslint/utils@6.5.0(eslint@8.48.0)(typescript@5.2.2): + resolution: {integrity: sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.3.0 - '@typescript-eslint/types': 6.3.0 - '@typescript-eslint/typescript-estree': 6.3.0(typescript@5.2.2) - eslint: 8.46.0 + '@typescript-eslint/scope-manager': 6.5.0 + '@typescript-eslint/types': 6.5.0 + '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) + eslint: 8.48.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.3.0: - resolution: {integrity: sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw==} + /@typescript-eslint/visitor-keys@6.5.0: + resolution: {integrity: sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.3.0 - eslint-visitor-keys: 3.4.1 + '@typescript-eslint/types': 6.5.0 + eslint-visitor-keys: 3.4.2 dev: true /abab@2.0.6: @@ -1413,16 +1427,24 @@ packages: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /aria-query@5.0.0: - resolution: {integrity: sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==} - engines: {node: '>=6.0'} - dev: true - /aria-query@5.0.2: resolution: {integrity: sha512-eigU3vhqSO+Z8BKDnVLN/ompjhf3pYzecKXz8+whRy+9gZu8n1TCGfwzQUUPnqdHl9ax1Hr9031orZ+UOEYr7Q==} engines: {node: '>=6.0'} dev: true + /aria-query@5.1.3: + resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} + dependencies: + deep-equal: 2.2.2 + dev: true + + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} @@ -1431,6 +1453,11 @@ packages: /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + /axios@1.5.0: resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} dependencies: @@ -1563,6 +1590,13 @@ packages: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.1 + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1774,6 +1808,29 @@ packages: optional: true dev: true + /deep-equal@2.2.2: + resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + dependencies: + array-buffer-byte-length: 1.0.0 + call-bind: 1.0.2 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.1 + is-arguments: 1.1.1 + is-array-buffer: 3.0.2 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.11 + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -1783,6 +1840,14 @@ packages: engines: {node: '>=0.10.0'} dev: true + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1792,11 +1857,6 @@ packages: engines: {node: '>=8'} dev: true - /diff-sequences@29.4.3: - resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -1856,6 +1916,20 @@ packages: is-arrayish: 0.2.1 dev: true + /es-get-iterator@1.1.3: + resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + has-symbols: 1.0.3 + is-arguments: 1.1.1 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.7 + isarray: 2.0.5 + stop-iteration-iterator: 1.0.0 + dev: true + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} @@ -1889,13 +1963,13 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@9.0.0(eslint@8.46.0): + /eslint-config-prettier@9.0.0(eslint@8.48.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.46.0 + eslint: 8.48.0 dev: true /eslint-scope@7.2.2: @@ -1906,25 +1980,25 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} + /eslint-visitor-keys@3.4.2: + resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} + /eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.46.0: - resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==} + /eslint@8.48.0: + resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.46.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.1 - '@eslint/js': 8.46.0 + '@eslint/eslintrc': 2.1.2 + '@eslint/js': 8.48.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -1935,7 +2009,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 espree: 9.6.1 esquery: 1.5.0 esutils: 2.0.3 @@ -1945,7 +2019,7 @@ packages: glob-parent: 6.0.2 globals: 13.20.0 graphemer: 1.4.0 - ignore: 5.2.0 + ignore: 5.2.4 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1968,7 +2042,7 @@ packages: dependencies: acorn: 8.10.0 acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.2 + eslint-visitor-keys: 3.4.3 dev: true /esprima@4.0.1: @@ -2021,17 +2095,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expect@29.5.0: - resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.5.0 - jest-get-type: 29.4.3 - jest-matcher-utils: 29.5.0 - jest-message-util: 29.5.0 - jest-util: 29.5.0 - dev: true - /expect@29.6.4: resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2130,6 +2193,12 @@ packages: optional: true dev: false + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} @@ -2163,6 +2232,10 @@ packages: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} dev: true + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2173,6 +2246,15 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-intrinsic@1.2.1: + resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-proto: 1.0.1 + has-symbols: 1.0.3 + dev: true + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -2227,11 +2309,17 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.2.11 - ignore: 5.2.0 + ignore: 5.2.4 merge2: 1.4.1 slash: 3.0.0 dev: true + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + /graceful-fs@4.2.10: resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} dev: true @@ -2240,6 +2328,10 @@ packages: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: true + /has-flag@3.0.0: resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} engines: {node: '>=4'} @@ -2250,6 +2342,29 @@ packages: engines: {node: '>=8'} dev: true + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.1 + dev: true + + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: true + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -2318,11 +2433,6 @@ packages: safer-buffer: 2.1.2 dev: true - /ignore@5.2.0: - resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} - engines: {node: '>= 4'} - dev: true - /ignore@5.2.4: resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} engines: {node: '>= 4'} @@ -2376,16 +2486,67 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + is-typed-array: 1.1.12 + dev: true + /is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} dev: true + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: true + /is-core-module@2.10.0: resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: has: 1.0.3 dev: true + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} @@ -2408,6 +2569,17 @@ packages: is-extglob: 2.1.1 dev: true + /is-map@2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -2422,15 +2594,69 @@ packages: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} dev: true + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-set@2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: true + /is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array@1.1.12: + resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + engines: {node: '>= 0.4'} + dependencies: + which-typed-array: 1.1.11 + dev: true + + /is-weakmap@2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakset@2.0.2: + resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + dev: true + /isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: false + /isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true @@ -2511,7 +2737,7 @@ packages: '@jest/expect': 29.6.4 '@jest/test-result': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -2532,7 +2758,7 @@ packages: - supports-color dev: true - /jest-cli@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + /jest-cli@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): resolution: {integrity: sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2549,7 +2775,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest-config: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) jest-util: 29.6.3 jest-validate: 29.6.3 prompts: 2.4.2 @@ -2561,7 +2787,7 @@ packages: - ts-node dev: true - /jest-config@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + /jest-config@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): resolution: {integrity: sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -2576,7 +2802,7 @@ packages: '@babel/core': 7.19.1 '@jest/test-sequencer': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 babel-jest: 29.6.4(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 @@ -2596,22 +2822,12 @@ packages: pretty-format: 29.6.3 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.4.9)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.5.7)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-diff@29.5.0: - resolution: {integrity: sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.4.3 - jest-get-type: 29.4.3 - pretty-format: 29.5.0 - dev: true - /jest-diff@29.6.4: resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2653,7 +2869,7 @@ packages: '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 '@types/jsdom': 20.0.0 - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-mock: 29.6.3 jest-util: 29.6.3 jsdom: 20.0.0 @@ -2670,16 +2886,11 @@ packages: '@jest/environment': 29.6.4 '@jest/fake-timers': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-mock: 29.6.3 jest-util: 29.6.3 dev: true - /jest-get-type@29.4.3: - resolution: {integrity: sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2691,7 +2902,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 - '@types/node': 20.4.9 + '@types/node': 20.5.7 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -2712,16 +2923,6 @@ packages: pretty-format: 29.6.3 dev: true - /jest-matcher-utils@29.5.0: - resolution: {integrity: sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.5.0 - jest-get-type: 29.4.3 - pretty-format: 29.5.0 - dev: true - /jest-matcher-utils@29.6.4: resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2732,21 +2933,6 @@ packages: pretty-format: 29.6.3 dev: true - /jest-message-util@29.5.0: - resolution: {integrity: sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 29.5.0 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.5.0 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util@29.6.3: resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2767,7 +2953,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-util: 29.6.3 dev: true @@ -2822,7 +3008,7 @@ packages: '@jest/test-result': 29.6.4 '@jest/transform': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -2853,7 +3039,7 @@ packages: '@jest/test-result': 29.6.4 '@jest/transform': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -2905,7 +3091,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -2917,7 +3103,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -2942,7 +3128,7 @@ packages: dependencies: '@jest/test-result': 29.6.4 '@jest/types': 29.6.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -2954,13 +3140,13 @@ packages: resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.9 + '@types/node': 20.5.7 jest-util: 29.6.3 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.6.4(@types/node@20.4.9)(ts-node@10.9.1): + /jest@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): resolution: {integrity: sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2973,7 +3159,7 @@ packages: '@jest/core': 29.6.4(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest-cli: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3146,8 +3332,8 @@ packages: yallist: 4.0.0 dev: true - /lz-string@1.4.4: - resolution: {integrity: sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==} + /lz-string@1.5.0: + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true dev: true @@ -3227,10 +3413,6 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /natural-compare-lite@1.4.0: - resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} - dev: true - /natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true @@ -3264,6 +3446,33 @@ packages: engines: {node: '>=0.10.0'} dev: false + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-is@1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + dev: true + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + /once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} dependencies: @@ -3418,8 +3627,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.2: - resolution: {integrity: sha512-o2YR9qtniXvwEZlOKbveKfDQVyqxbEIWn48Z8m3ZJjBjcCmUy3xZGIv+7AkaeuaTr6yPXJjwv07ZWlsWbEy1rQ==} + /prettier@3.0.3: + resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} engines: {node: '>=14'} hasBin: true dev: true @@ -3433,15 +3642,6 @@ packages: react-is: 17.0.2 dev: true - /pretty-format@29.5.0: - resolution: {integrity: sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.4.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - /pretty-format@29.6.3: resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3600,6 +3800,15 @@ packages: resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} dev: false + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -3713,6 +3922,14 @@ packages: engines: {node: '>=8'} dev: true + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.1 + object-inspect: 1.12.3 + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -3749,6 +3966,13 @@ packages: escape-string-regexp: 2.0.0 dev: true + /stop-iteration-iterator@1.0.0: + resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} + engines: {node: '>= 0.4'} + dependencies: + internal-slot: 1.0.5 + dev: true + /string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -3912,7 +4136,7 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.4(@types/node@20.4.9)(ts-node@10.9.1) + jest: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -3922,7 +4146,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.4.9)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.5.7)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -3941,7 +4165,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.4.9 + '@types/node': 20.5.7 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -4104,6 +4328,36 @@ packages: webidl-conversions: 7.0.0 dev: true + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-collection@1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.2 + dev: true + + /which-typed-array@1.1.11: + resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/src/util/navigator-util.ts b/src/util/navigator-util.ts index 907cecf..610116d 100644 --- a/src/util/navigator-util.ts +++ b/src/util/navigator-util.ts @@ -2,8 +2,11 @@ export function isBrowserSupported() { const isIE = navigator.userAgent.indexOf("MSIE") > 0 || navigator.userAgent.indexOf("Trident/") > 0; if (isIE) return false; - const proxySupported = typeof Proxy === "function"; // Required by immer + const proxySupported = typeof Proxy === "function"; // required by immer if (!proxySupported) return false; + const shadowRootSupported = typeof ShadowRoot === "function"; // required by antd + if (!shadowRootSupported) return false; + return true; } From 21a842fd01966b1f35bfd58dbd8d1d42828a8bc4 Mon Sep 17 00:00:00 2001 From: dionshi Date: Wed, 18 Oct 2023 10:45:40 +0800 Subject: [PATCH 15/17] 1.36.6: - handle browser extension JS code error as warning - minor upgrade deps --- package.json | 25 +- pnpm-lock.yaml | 705 +++++++++++++++++++++---------------- src/util/ErrorBoundary.tsx | 2 +- src/util/error-util.ts | 4 +- 4 files changed, 409 insertions(+), 327 deletions(-) diff --git a/package.json b/package.json index f10946e..a3236c1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.5", + "version": "1.36.6", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -24,16 +24,15 @@ "@testing-library/jest-dom": "6.1.2", "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", - "@types/jest": "29.5.4", - "@types/node": "20.5.7", - "@types/testing-library__jest-dom": "6.0.0", + "@types/jest": "29.5.5", + "@types/node": "20.8.6", "@typescript-eslint/eslint-plugin": "6.5.0", "@typescript-eslint/parser": "6.5.0", - "eslint": "8.48.0", + "eslint": "8.51.0", "eslint-config-prettier": "9.0.0", "fs-extra": "11.1.1", - "jest": "29.6.4", - "jest-environment-jsdom": "29.6.4", + "jest": "29.7.0", + "jest-environment-jsdom": "29.7.0", "prettier": "3.0.3", "react": "18.2.0", "react-dom": "18.2.0", @@ -44,16 +43,16 @@ }, "dependencies": { "@types/history": "4.7.11", - "@types/react": "18.2.21", - "@types/react-dom": "18.2.7", - "@types/react-redux": "7.1.25", + "@types/react": "18.2.28", + "@types/react-dom": "18.2.13", + "@types/react-redux": "7.1.27", "@types/react-router": "5.1.20", "@types/react-router-dom": "5.3.3", - "axios": "1.5.0", + "axios": "1.5.1", "connected-react-router": "6.9.3", - "core-js": "3.32.1", + "core-js": "3.33.0", "history": "4.10.1", - "immer": "10.0.2", + "immer": "10.0.3", "react-redux": "7.2.8", "react-router": "5.2.1", "react-router-dom": "5.3.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed2a31c..6745546 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,14 +9,14 @@ dependencies: specifier: 4.7.11 version: 4.7.11 '@types/react': - specifier: 18.2.21 - version: 18.2.21 + specifier: 18.2.28 + version: 18.2.28 '@types/react-dom': - specifier: 18.2.7 - version: 18.2.7 + specifier: 18.2.13 + version: 18.2.13 '@types/react-redux': - specifier: 7.1.25 - version: 7.1.25 + specifier: 7.1.27 + version: 7.1.27 '@types/react-router': specifier: 5.1.20 version: 5.1.20 @@ -24,20 +24,20 @@ dependencies: specifier: 5.3.3 version: 5.3.3 axios: - specifier: 1.5.0 - version: 1.5.0 + specifier: 1.5.1 + version: 1.5.1 connected-react-router: specifier: 6.9.3 version: 6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2) core-js: - specifier: 3.32.1 - version: 3.32.1 + specifier: 3.33.0 + version: 3.33.0 history: specifier: 4.10.1 version: 4.10.1 immer: - specifier: 10.0.2 - version: 10.0.2 + specifier: 10.0.3 + version: 10.0.3 react-redux: specifier: 7.2.8 version: 7.2.8(react-dom@18.2.0)(react@18.2.0) @@ -66,7 +66,7 @@ devDependencies: version: 9.3.1 '@testing-library/jest-dom': specifier: 6.1.2 - version: 6.1.2(@types/jest@29.5.4)(jest@29.6.4) + version: 6.1.2(@types/jest@29.5.5)(jest@29.7.0) '@testing-library/react': specifier: 14.0.0 version: 14.0.0(react-dom@18.2.0)(react@18.2.0) @@ -74,35 +74,32 @@ devDependencies: specifier: 14.4.3 version: 14.4.3(@testing-library/dom@9.3.1) '@types/jest': - specifier: 29.5.4 - version: 29.5.4 + specifier: 29.5.5 + version: 29.5.5 '@types/node': - specifier: 20.5.7 - version: 20.5.7 - '@types/testing-library__jest-dom': - specifier: 6.0.0 - version: 6.0.0(@types/jest@29.5.4)(jest@29.6.4) + specifier: 20.8.6 + version: 20.8.6 '@typescript-eslint/eslint-plugin': specifier: 6.5.0 - version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@5.2.2) + version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/parser': specifier: 6.5.0 - version: 6.5.0(eslint@8.48.0)(typescript@5.2.2) + version: 6.5.0(eslint@8.51.0)(typescript@5.2.2) eslint: - specifier: 8.48.0 - version: 8.48.0 + specifier: 8.51.0 + version: 8.51.0 eslint-config-prettier: specifier: 9.0.0 - version: 9.0.0(eslint@8.48.0) + version: 9.0.0(eslint@8.51.0) fs-extra: specifier: 11.1.1 version: 11.1.1 jest: - specifier: 29.6.4 - version: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) + specifier: 29.7.0 + version: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) jest-environment-jsdom: - specifier: 29.6.4 - version: 29.6.4 + specifier: 29.7.0 + version: 29.7.0 prettier: specifier: 3.0.3 version: 3.0.3 @@ -114,10 +111,10 @@ devDependencies: version: 18.2.0(react@18.2.0) ts-jest: specifier: 29.1.1 - version: 29.1.1(@babel/core@7.19.1)(jest@29.6.4)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.2.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.5.7)(typescript@5.2.2) + version: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) typescript: specifier: 5.2.2 version: 5.2.2 @@ -495,13 +492,13 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.48.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.48.0 + eslint: 8.51.0 eslint-visitor-keys: 3.4.3 dev: true @@ -527,13 +524,13 @@ packages: - supports-color dev: true - /@eslint/js@8.48.0: - resolution: {integrity: sha512-ZSjtmelB7IJfWD2Fvb7+Z+ChTIKWq6kjda95fLcQKNS5aheVHn4IkfgRQE3sIIzTcSLwLcLZUD9UBt+V7+h+Pw==} + /@eslint/js@8.51.0: + resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} + /@humanwhocodes/config-array@0.11.11: + resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 @@ -568,20 +565,20 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@29.6.4: - resolution: {integrity: sha512-wNK6gC0Ha9QeEPSkeJedQuTQqxZYnDPuDcDhVuVatRvMkL4D0VTvFVZj+Yuh6caG2aOfzkUZ36KtCmLNtR02hw==} + /@jest/console@29.7.0: + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 - jest-message-util: 29.6.3 - jest-util: 29.6.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 dev: true - /@jest/core@29.6.4(ts-node@10.9.1): - resolution: {integrity: sha512-U/vq5ccNTSVgYH7mHnodHmCffGWHJnz/E1BEWlLuK5pM4FZmGfBn/nrJGLjUsSmyx3otCeqc1T31F4y08AMDLg==} + /@jest/core@29.7.0(ts-node@10.9.1): + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -589,32 +586,32 @@ packages: node-notifier: optional: true dependencies: - '@jest/console': 29.6.4 - '@jest/reporters': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 - jest-changed-files: 29.6.3 - jest-config: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) - jest-haste-map: 29.6.4 - jest-message-util: 29.6.3 + jest-changed-files: 29.7.0 + jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-resolve-dependencies: 29.6.4 - jest-runner: 29.6.4 - jest-runtime: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 - jest-validate: 29.6.3 - jest-watcher: 29.6.4 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.5 - pretty-format: 29.6.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: @@ -623,14 +620,14 @@ packages: - ts-node dev: true - /@jest/environment@29.6.4: - resolution: {integrity: sha512-sQ0SULEjA1XUTHmkBRl7A1dyITM9yb1yb3ZNKPX3KlTd6IG7mWUe3e2yfExtC2Zz1Q+mMckOLHmL/qLiuQJrBQ==} + /@jest/environment@29.7.0: + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/fake-timers': 29.6.4 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 - jest-mock: 29.6.3 + '@types/node': 20.8.6 + jest-mock: 29.7.0 dev: true /@jest/expect-utils@29.6.4: @@ -640,42 +637,49 @@ packages: jest-get-type: 29.6.3 dev: true - /@jest/expect@29.6.4: - resolution: {integrity: sha512-Warhsa7d23+3X5bLbrbYvaehcgX5TLYhI03JKoedTiI8uJU4IhqYBWF7OSSgUyz4IgLpUYPkK0AehA5/fRclAA==} + /@jest/expect-utils@29.7.0: + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - expect: 29.6.4 - jest-snapshot: 29.6.4 + jest-get-type: 29.6.3 + dev: true + + /@jest/expect@29.7.0: + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/fake-timers@29.6.4: - resolution: {integrity: sha512-6UkCwzoBK60edXIIWb0/KWkuj7R7Qq91vVInOe3De6DSpaEiqjKcJw4F7XUet24Wupahj9J6PlR09JqJ5ySDHw==} + /@jest/fake-timers@29.7.0: + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.5.7 - jest-message-util: 29.6.3 - jest-mock: 29.6.3 - jest-util: 29.6.3 + '@types/node': 20.8.6 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true - /@jest/globals@29.6.4: - resolution: {integrity: sha512-wVIn5bdtjlChhXAzVXavcY/3PEjf4VqM174BM3eGL5kMxLiZD5CLnbmkEyA1Dwh9q8XjP6E8RwjBsY/iCWrWsA==} + /@jest/globals@29.7.0: + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/expect': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 '@jest/types': 29.6.3 - jest-mock: 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /@jest/reporters@29.6.4: - resolution: {integrity: sha512-sxUjWxm7QdchdrD3NfWKrL8FBsortZeibSJv4XLjESOOjSUOkjQcb0ZHJwfhEGIvBvTluTzfG2yZWZhkrXJu8g==} + /@jest/reporters@29.7.0: + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -684,12 +688,12 @@ packages: optional: true dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -700,9 +704,9 @@ packages: istanbul-lib-report: 3.0.0 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.5 - jest-message-util: 29.6.3 - jest-util: 29.6.3 - jest-worker: 29.6.4 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 @@ -734,28 +738,28 @@ packages: graceful-fs: 4.2.10 dev: true - /@jest/test-result@29.6.4: - resolution: {integrity: sha512-uQ1C0AUEN90/dsyEirgMLlouROgSY+Wc/JanVVk0OiUKa5UFh7sJpMEM3aoUBAz2BRNvUJ8j3d294WFuRxSyOQ==} + /@jest/test-result@29.7.0: + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.4 + '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 collect-v8-coverage: 1.0.1 dev: true - /@jest/test-sequencer@29.6.4: - resolution: {integrity: sha512-E84M6LbpcRq3fT4ckfKs9ryVanwkaIB0Ws9bw3/yP4seRLg/VaCZ/LgW0MCq5wwk4/iP/qnilD41aj2fsw2RMg==} + /@jest/test-sequencer@29.7.0: + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.4 + '@jest/test-result': 29.7.0 graceful-fs: 4.2.10 - jest-haste-map: 29.6.4 + jest-haste-map: 29.7.0 slash: 3.0.0 dev: true - /@jest/transform@29.6.4: - resolution: {integrity: sha512-8thgRSiXUqtr/pPGY/OsyHuMjGyhVnWrFAwoxmIemlBuiMyU1WFs0tXoNxzcr4A4uErs/ABre76SGmrr5ab/AA==} + /@jest/transform@29.7.0: + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 @@ -766,9 +770,9 @@ packages: convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.10 - jest-haste-map: 29.6.4 + jest-haste-map: 29.7.0 jest-regex-util: 29.6.3 - jest-util: 29.6.3 + jest-util: 29.7.0 micromatch: 4.0.5 pirates: 4.0.5 slash: 3.0.0 @@ -784,7 +788,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.5.7 + '@types/node': 20.8.6 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -796,7 +800,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.5.7 + '@types/node': 20.8.6 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -939,7 +943,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.1.2(@types/jest@29.5.4)(jest@29.6.4): + /@testing-library/jest-dom@6.1.2(@types/jest@29.5.5)(jest@29.7.0): resolution: {integrity: sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -959,12 +963,12 @@ packages: dependencies: '@adobe/css-tools': 4.3.1 '@babel/runtime': 7.19.0 - '@types/jest': 29.5.4 + '@types/jest': 29.5.5 aria-query: 5.0.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.5.14 - jest: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) lodash: 4.17.21 redent: 3.0.0 dev: true @@ -978,7 +982,7 @@ packages: dependencies: '@babel/runtime': 7.19.0 '@testing-library/dom': 9.3.1 - '@types/react-dom': 18.2.7 + '@types/react-dom': 18.2.13 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -1049,7 +1053,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.5.7 + '@types/node': 20.8.6 dev: true /@types/history@4.7.11: @@ -1059,7 +1063,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.21 + '@types/react': 18.2.28 hoist-non-react-statics: 3.3.2 dev: false @@ -1079,8 +1083,8 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest@29.5.4: - resolution: {integrity: sha512-PhglGmhWeD46FYOVLt3X7TiWjzwuVGW9wG/4qocPevXMjCmrIc5b6db9WjeGE4QYVpUAWMDv3v0IiBwObY289A==} + /@types/jest@29.5.5: + resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} dependencies: expect: 29.6.4 pretty-format: 29.6.3 @@ -1089,7 +1093,7 @@ packages: /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.5.7 + '@types/node': 20.8.6 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -1098,23 +1102,25 @@ packages: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/node@20.5.7: - resolution: {integrity: sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==} + /@types/node@20.8.6: + resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + dependencies: + undici-types: 5.25.3 dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.2.7: - resolution: {integrity: sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==} + /@types/react-dom@18.2.13: + resolution: {integrity: sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==} dependencies: - '@types/react': 18.2.21 + '@types/react': 18.2.28 - /@types/react-redux@7.1.25: - resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} + /@types/react-redux@7.1.27: + resolution: {integrity: sha512-xj7d9z32p1K/eBmO+OEy+qfaWXtcPlN8f1Xk3Ne0p/ZRQ867RI5bQ/bpBtxbqU1AHNhKJSgGvld/P2myU2uYkg==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.21 + '@types/react': 18.2.28 hoist-non-react-statics: 3.3.2 redux: 4.1.2 dev: false @@ -1123,7 +1129,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.21 + '@types/react': 18.2.28 '@types/react-router': 5.1.20 dev: false @@ -1131,11 +1137,11 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.21 + '@types/react': 18.2.28 dev: false - /@types/react@18.2.21: - resolution: {integrity: sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==} + /@types/react@18.2.28: + resolution: {integrity: sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1152,18 +1158,6 @@ packages: resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} dev: true - /@types/testing-library__jest-dom@6.0.0(@types/jest@29.5.4)(jest@29.6.4): - resolution: {integrity: sha512-bnreXCgus6IIadyHNlN/oI5FfX4dWgvGhOPvpr7zzCYDGAPIfvyIoAozMBINmhmsVuqV0cncejF2y5KC7ScqOg==} - deprecated: This is a stub types definition. @testing-library/jest-dom provides its own type definitions, so you do not need this installed. - dependencies: - '@testing-library/jest-dom': 6.1.2(@types/jest@29.5.4)(jest@29.6.4) - transitivePeerDependencies: - - '@jest/globals' - - '@types/jest' - - jest - - vitest - dev: true - /@types/tough-cookie@4.0.2: resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} dev: true @@ -1178,7 +1172,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.48.0)(typescript@5.2.2): + /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1190,13 +1184,13 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.5.0(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/scope-manager': 6.5.0 - '@typescript-eslint/type-utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/type-utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.48.0 + eslint: 8.51.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 @@ -1207,7 +1201,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.5.0(eslint@8.48.0)(typescript@5.2.2): + /@typescript-eslint/parser@6.5.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1222,7 +1216,7 @@ packages: '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) '@typescript-eslint/visitor-keys': 6.5.0 debug: 4.3.4 - eslint: 8.48.0 + eslint: 8.51.0 typescript: 5.2.2 transitivePeerDependencies: - supports-color @@ -1236,7 +1230,7 @@ packages: '@typescript-eslint/visitor-keys': 6.5.0 dev: true - /@typescript-eslint/type-utils@6.5.0(eslint@8.48.0)(typescript@5.2.2): + /@typescript-eslint/type-utils@6.5.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -1247,9 +1241,9 @@ packages: optional: true dependencies: '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.5.0(eslint@8.48.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) debug: 4.3.4 - eslint: 8.48.0 + eslint: 8.51.0 ts-api-utils: 1.0.1(typescript@5.2.2) typescript: 5.2.2 transitivePeerDependencies: @@ -1282,19 +1276,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils@6.5.0(eslint@8.48.0)(typescript@5.2.2): + /@typescript-eslint/utils@6.5.0(eslint@8.51.0)(typescript@5.2.2): resolution: {integrity: sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 6.5.0 '@typescript-eslint/types': 6.5.0 '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) - eslint: 8.48.0 + eslint: 8.51.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -1458,8 +1452,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /axios@1.5.0: - resolution: {integrity: sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==} + /axios@1.5.1: + resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} dependencies: follow-redirects: 1.15.1 form-data: 4.0.0 @@ -1468,14 +1462,14 @@ packages: - debug dev: false - /babel-jest@29.6.4(@babel/core@7.19.1): - resolution: {integrity: sha512-meLj23UlSLddj6PC+YTOFRgDAtjnZom8w/ACsrx0gtPtv5cJZk0A5Unk5bV4wixD7XaPCN1fQvpww8czkZURmw==} + /babel-jest@29.7.0(@babel/core@7.19.1): + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 dependencies: '@babel/core': 7.19.1 - '@jest/transform': 29.6.4 + '@jest/transform': 29.7.0 '@types/babel__core': 7.1.19 babel-plugin-istanbul: 6.1.1 babel-preset-jest: 29.6.3(@babel/core@7.19.1) @@ -1734,11 +1728,30 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true - /core-js@3.32.1: - resolution: {integrity: sha512-lqufgNn9NLnESg5mQeYsxQP5w7wrViSj0jr/kv6ECQiByzQkrn1MKvV0L3acttpDqfQrHLwr2KCMgX5b8X+lyQ==} + /core-js@3.33.0: + resolution: {integrity: sha512-HoZr92+ZjFEKar5HS6MC776gYslNOKHt75mEBKWKnPeFDpZ6nH5OeF3S6HFT1mUAUZKrzkez05VboaX8myjSuw==} requiresBuild: true dev: false + /create-jest@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.10 + jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -1963,13 +1976,13 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@9.0.0(eslint@8.48.0): + /eslint-config-prettier@9.0.0(eslint@8.51.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.48.0 + eslint: 8.51.0 dev: true /eslint-scope@7.2.2: @@ -1990,16 +2003,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.48.0: - resolution: {integrity: sha512-sb6DLeIuRXxeM1YljSe1KEx9/YYeZFQWcV8Rq9HfigmdDEugjLEVEa1ozDjL6YDjBpQHPJxJzze+alxi4T3OLg==} + /eslint@8.51.0: + resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.48.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) '@eslint-community/regexpp': 4.6.2 '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.48.0 - '@humanwhocodes/config-array': 0.11.10 + '@eslint/js': 8.51.0 + '@humanwhocodes/config-array': 0.11.11 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 @@ -2106,6 +2119,17 @@ packages: jest-util: 29.6.3 dev: true + /expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + dev: true + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -2438,8 +2462,8 @@ packages: engines: {node: '>= 4'} dev: true - /immer@10.0.2: - resolution: {integrity: sha512-Rx3CqeqQ19sxUtYV9CU911Vhy8/721wRFnJv3REVGWUmoAcIwzifTsdmJte/MV+0/XpM35LZdQMBGkRIoLPwQA==} + /immer@10.0.3: + resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} dev: false /immutable@4.3.0: @@ -2720,36 +2744,36 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jest-changed-files@29.6.3: - resolution: {integrity: sha512-G5wDnElqLa4/c66ma5PG9eRjE342lIbF6SUnTJi26C3J28Fv2TVY2rOyKB9YGbSA5ogwevgmxc4j4aVjrEK6Yg==} + /jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: execa: 5.1.1 - jest-util: 29.6.3 + jest-util: 29.7.0 p-limit: 3.1.0 dev: true - /jest-circus@29.6.4: - resolution: {integrity: sha512-YXNrRyntVUgDfZbjXWBMPslX1mQ8MrSG0oM/Y06j9EYubODIyHWP8hMUbjbZ19M3M+zamqEur7O80HODwACoJw==} + /jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/expect': 29.6.4 - '@jest/test-result': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 is-generator-fn: 2.1.0 - jest-each: 29.6.3 - jest-matcher-utils: 29.6.4 - jest-message-util: 29.6.3 - jest-runtime: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 + jest-each: 29.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 pure-rand: 6.0.1 slash: 3.0.0 stack-utils: 2.0.5 @@ -2758,8 +2782,8 @@ packages: - supports-color dev: true - /jest-cli@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): - resolution: {integrity: sha512-+uMCQ7oizMmh8ZwRfZzKIEszFY9ksjjEQnTEMTaL7fYiL3Kw4XhqT9bYh+A4DQKUb67hZn2KbtEnDuHvcgK4pQ==} + /jest-cli@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -2768,17 +2792,16 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.4(ts-node@10.9.1) - '@jest/test-result': 29.6.4 + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) exit: 0.1.2 - graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) - jest-util: 29.6.3 - jest-validate: 29.6.3 - prompts: 2.4.2 + jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' @@ -2787,8 +2810,8 @@ packages: - ts-node dev: true - /jest-config@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): - resolution: {integrity: sha512-JWohr3i9m2cVpBumQFv2akMEnFEPVOh+9L2xIBJhJ0zOaci2ZXuKJj0tgMKQCBZAKA09H049IR4HVS/43Qb19A==} + /jest-config@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' @@ -2800,29 +2823,29 @@ packages: optional: true dependencies: '@babel/core': 7.19.1 - '@jest/test-sequencer': 29.6.4 + '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 - babel-jest: 29.6.4(@babel/core@7.19.1) + '@types/node': 20.8.6 + babel-jest: 29.7.0(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 deepmerge: 4.2.2 glob: 7.2.3 graceful-fs: 4.2.10 - jest-circus: 29.6.4 - jest-environment-node: 29.6.4 + jest-circus: 29.7.0 + jest-environment-node: 29.7.0 jest-get-type: 29.6.3 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-runner: 29.6.4 - jest-util: 29.6.3 - jest-validate: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.5 parse-json: 5.2.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.5.7)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -2838,26 +2861,36 @@ packages: pretty-format: 29.6.3 dev: true - /jest-docblock@29.6.3: - resolution: {integrity: sha512-2+H+GOTQBEm2+qFSQ7Ma+BvyV+waiIFxmZF5LdpBsAEjWX8QYjSCa4FrkIYtbfXUJJJnFCYrOtt6TZ+IAiTjBQ==} + /jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + + /jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: detect-newline: 3.1.0 dev: true - /jest-each@29.6.3: - resolution: {integrity: sha512-KoXfJ42k8cqbkfshW7sSHcdfnv5agDdHCPA87ZBdmHP+zJstTJc0ttQaJ/x7zK6noAL76hOuTIJ6ZkQRS5dcyg==} + /jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 jest-get-type: 29.6.3 - jest-util: 29.6.3 - pretty-format: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 dev: true - /jest-environment-jsdom@29.6.4: - resolution: {integrity: sha512-K6wfgUJ16DoMs02JYFid9lOsqfpoVtyJxpRlnTxUHzvZWBnnh2VNGRB9EC1Cro96TQdq5TtSjb3qUjNaJP9IyA==} + /jest-environment-jsdom@29.7.0: + resolution: {integrity: sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: canvas: ^2.5.0 @@ -2865,13 +2898,13 @@ packages: canvas: optional: true dependencies: - '@jest/environment': 29.6.4 - '@jest/fake-timers': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.0 - '@types/node': 20.5.7 - jest-mock: 29.6.3 - jest-util: 29.6.3 + '@types/node': 20.8.6 + jest-mock: 29.7.0 + jest-util: 29.7.0 jsdom: 20.0.0 transitivePeerDependencies: - bufferutil @@ -2879,16 +2912,16 @@ packages: - utf-8-validate dev: true - /jest-environment-node@29.6.4: - resolution: {integrity: sha512-i7SbpH2dEIFGNmxGCpSc2w9cA4qVD+wfvg2ZnfQ7XVrKL0NA5uDVBIiGH8SR4F0dKEv/0qI5r+aDomDf04DpEQ==} + /jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/fake-timers': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 - jest-mock: 29.6.3 - jest-util: 29.6.3 + '@types/node': 20.8.6 + jest-mock: 29.7.0 + jest-util: 29.7.0 dev: true /jest-get-type@29.6.3: @@ -2896,31 +2929,31 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-haste-map@29.6.4: - resolution: {integrity: sha512-12Ad+VNTDHxKf7k+M65sviyynRoZYuL1/GTuhEVb8RYsNSNln71nANRb/faSyWvx0j+gHcivChXHIoMJrGYjog==} + /jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 - '@types/node': 20.5.7 + '@types/node': 20.8.6 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 jest-regex-util: 29.6.3 - jest-util: 29.6.3 - jest-worker: 29.6.4 + jest-util: 29.7.0 + jest-worker: 29.7.0 micromatch: 4.0.5 walker: 1.0.8 optionalDependencies: fsevents: 2.3.2 dev: true - /jest-leak-detector@29.6.3: - resolution: {integrity: sha512-0kfbESIHXYdhAdpLsW7xdwmYhLf1BRu4AA118/OxFm0Ho1b2RcTmO4oF6aAMaxpxdxnJ3zve2rgwzNBD4Zbm7Q==} + /jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-get-type: 29.6.3 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true /jest-matcher-utils@29.6.4: @@ -2933,6 +2966,16 @@ packages: pretty-format: 29.6.3 dev: true + /jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + dev: true + /jest-message-util@29.6.3: resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2948,16 +2991,31 @@ packages: stack-utils: 2.0.5 dev: true - /jest-mock@29.6.3: - resolution: {integrity: sha512-Z7Gs/mOyTSR4yPsaZ72a/MtuK6RnC3JYqWONe48oLaoEcYwEDxqvbXz85G4SJrm2Z5Ar9zp6MiHF4AlFlRM4Pg==} + /jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: + '@babel/code-frame': 7.18.6 '@jest/types': 29.6.3 - '@types/node': 20.5.7 - jest-util: 29.6.3 + '@types/stack-utils': 2.0.1 + chalk: 4.1.2 + graceful-fs: 4.2.10 + micromatch: 4.0.5 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.5 + dev: true + + /jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.6 + jest-util: 29.7.0 dev: true - /jest-pnp-resolver@1.2.2(jest-resolve@29.6.4): + /jest-pnp-resolver@1.2.2(jest-resolve@29.7.0): resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==} engines: {node: '>=6'} peerDependencies: @@ -2966,7 +3024,7 @@ packages: jest-resolve: optional: true dependencies: - jest-resolve: 29.6.4 + jest-resolve: 29.7.0 dev: true /jest-regex-util@29.6.3: @@ -2974,92 +3032,92 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@29.6.4: - resolution: {integrity: sha512-7+6eAmr1ZBF3vOAJVsfLj1QdqeXG+WYhidfLHBRZqGN24MFRIiKG20ItpLw2qRAsW/D2ZUUmCNf6irUr/v6KHA==} + /jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: jest-regex-util: 29.6.3 - jest-snapshot: 29.6.4 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color dev: true - /jest-resolve@29.6.4: - resolution: {integrity: sha512-fPRq+0vcxsuGlG0O3gyoqGTAxasagOxEuyoxHeyxaZbc9QNek0AmJWSkhjlMG+mTsj+8knc/mWb3fXlRNVih7Q==} + /jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: chalk: 4.1.2 graceful-fs: 4.2.10 - jest-haste-map: 29.6.4 - jest-pnp-resolver: 1.2.2(jest-resolve@29.6.4) - jest-util: 29.6.3 - jest-validate: 29.6.3 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.2(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 resolve: 1.22.1 resolve.exports: 2.0.2 slash: 3.0.0 dev: true - /jest-runner@29.6.4: - resolution: {integrity: sha512-SDaLrMmtVlQYDuG0iSPYLycG8P9jLI+fRm8AF/xPKhYDB2g6xDWjXBrR5M8gEWsK6KVFlebpZ4QsrxdyIX1Jaw==} + /jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/console': 29.6.4 - '@jest/environment': 29.6.4 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 - jest-docblock: 29.6.3 - jest-environment-node: 29.6.4 - jest-haste-map: 29.6.4 - jest-leak-detector: 29.6.3 - jest-message-util: 29.6.3 - jest-resolve: 29.6.4 - jest-runtime: 29.6.4 - jest-util: 29.6.3 - jest-watcher: 29.6.4 - jest-worker: 29.6.4 + jest-docblock: 29.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color dev: true - /jest-runtime@29.6.4: - resolution: {integrity: sha512-s/QxMBLvmwLdchKEjcLfwzP7h+jsHvNEtxGP5P+Fl1FMaJX2jMiIqe4rJw4tFprzCwuSvVUo9bn0uj4gNRXsbA==} + /jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/environment': 29.6.4 - '@jest/fake-timers': 29.6.4 - '@jest/globals': 29.6.4 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 '@jest/source-map': 29.6.3 - '@jest/test-result': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 glob: 7.2.3 graceful-fs: 4.2.10 - jest-haste-map: 29.6.4 - jest-message-util: 29.6.3 - jest-mock: 29.6.3 + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 jest-regex-util: 29.6.3 - jest-resolve: 29.6.4 - jest-snapshot: 29.6.4 - jest-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color dev: true - /jest-snapshot@29.6.4: - resolution: {integrity: sha512-VC1N8ED7+4uboUKGIDsbvNAZb6LakgIPgAF4RSpF13dN6YaMokfRqO+BaqK4zIh6X3JffgwbzuGqDEjHm/MrvA==} + /jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@babel/core': 7.19.1 @@ -3067,20 +3125,20 @@ packages: '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.19.1) '@babel/plugin-syntax-typescript': 7.18.6(@babel/core@7.19.1) '@babel/types': 7.19.0 - '@jest/expect-utils': 29.6.4 - '@jest/transform': 29.6.4 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.0.1(@babel/core@7.19.1) chalk: 4.1.2 - expect: 29.6.4 + expect: 29.7.0 graceful-fs: 4.2.10 - jest-diff: 29.6.4 + jest-diff: 29.7.0 jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.4 - jest-message-util: 29.6.3 - jest-util: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 semver: 7.5.4 transitivePeerDependencies: - supports-color @@ -3091,7 +3149,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -3103,15 +3161,27 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 picomatch: 2.3.1 dev: true - /jest-validate@29.6.3: - resolution: {integrity: sha512-e7KWZcAIX+2W1o3cHfnqpGajdCs1jSM3DkXjGeLSNmCazv1EeI1ggTeK5wdZhF+7N+g44JI2Od3veojoaumlfg==} + /jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/types': 29.6.3 + '@types/node': 20.8.6 + chalk: 4.1.2 + ci-info: 3.4.0 + graceful-fs: 4.2.10 + picomatch: 2.3.1 + dev: true + + /jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 @@ -3119,35 +3189,35 @@ packages: chalk: 4.1.2 jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 29.6.3 + pretty-format: 29.7.0 dev: true - /jest-watcher@29.6.4: - resolution: {integrity: sha512-oqUWvx6+On04ShsT00Ir9T4/FvBeEh2M9PTubgITPxDa739p4hoQweWPRGyYeaojgT0xTpZKF0Y/rSY1UgMxvQ==} + /jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/test-result': 29.6.4 + '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 - jest-util: 29.6.3 + jest-util: 29.7.0 string-length: 4.0.2 dev: true - /jest-worker@29.6.4: - resolution: {integrity: sha512-6dpvFV4WjcWbDVGgHTWo/aupl8/LbBx2NSKfiwqf79xC/yeJjKHT1+StcKy/2KTmW16hE68ccKVOtXf+WZGz7Q==} + /jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.5.7 - jest-util: 29.6.3 + '@types/node': 20.8.6 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.6.4(@types/node@20.5.7)(ts-node@10.9.1): - resolution: {integrity: sha512-tEFhVQFF/bzoYV1YuGyzLPZ6vlPrdfvDmmAxudA1dLEuiztqg2Rkx20vkKY32xiDROcD2KXlgZ7Cu8RPeEHRKw==} + /jest@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: @@ -3156,10 +3226,10 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 29.6.4(ts-node@10.9.1) + '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3651,6 +3721,15 @@ packages: react-is: 18.2.0 dev: true + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.2.0 + dev: true + /prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -3725,7 +3804,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.18.9 - '@types/react-redux': 7.1.25 + '@types/react-redux': 7.1.27 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -4112,7 +4191,7 @@ packages: typescript: 5.2.2 dev: true - /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.6.4)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.2.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4136,7 +4215,7 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.4(@types/node@20.5.7)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -4146,7 +4225,7 @@ packages: yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.5.7)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.8.6)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -4165,7 +4244,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.5.7 + '@types/node': 20.8.6 acorn: 8.8.0 acorn-walk: 8.2.0 arg: 4.1.3 @@ -4232,6 +4311,10 @@ packages: hasBin: true dev: true + /undici-types@5.25.3: + resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + dev: true + /universalify@0.2.0: resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} engines: {node: '>= 4.0.0'} diff --git a/src/util/ErrorBoundary.tsx b/src/util/ErrorBoundary.tsx index d40560b..bae887d 100644 --- a/src/util/ErrorBoundary.tsx +++ b/src/util/ErrorBoundary.tsx @@ -21,7 +21,7 @@ export class ErrorBoundary extends React.PureComponent { } override componentDidCatch(error: Error, errorInfo: React.ErrorInfo) { - const exception = captureError(error, "@@framework/error-boundary", {extraStacktrace: errorInfo.componentStack}); + const exception = captureError(error, "@@framework/error-boundary", errorInfo.componentStack ? {extraStacktrace: errorInfo.componentStack} : undefined); this.setState({exception}); } diff --git a/src/util/error-util.ts b/src/util/error-util.ts index 3e49885..c8d311a 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -8,7 +8,7 @@ import type {ErrorHandler} from "../module"; let errorHandlerRunning = false; interface ErrorExtra { - actionPayload?: string; // Should be masked + actionPayload?: string; // masked extraStacktrace?: string; } @@ -114,7 +114,7 @@ function specialErrorCode(exception: Exception, action: string, stacktrace?: str function isValidStacktrace(stacktrace?: string): boolean { if (stacktrace) { - const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script", "ucbrowser_script"]; + const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script", "ucbrowser_script", ":"]; if (ignoredPatterns.some(_ => stacktrace.includes(_))) { return false; } From ed020e0c4ebb67a447fde9414bb2b7fc75c0c884 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 02:46:21 +0000 Subject: [PATCH 16/17] Bump @babel/traverse from 7.19.1 to 7.23.2 Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.19.1 to 7.23.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse) --- updated-dependencies: - dependency-name: "@babel/traverse" dependency-type: indirect ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 115 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 95 insertions(+), 20 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6745546..5b097b5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -148,6 +148,14 @@ packages: '@babel/highlight': 7.18.6 dev: true + /@babel/code-frame@7.22.13: + resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.22.20 + chalk: 2.4.2 + dev: true + /@babel/compat-data@7.19.1: resolution: {integrity: sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==} engines: {node: '>=6.9.0'} @@ -165,7 +173,7 @@ packages: '@babel/helpers': 7.19.0 '@babel/parser': 7.19.1 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 + '@babel/traverse': 7.23.2 '@babel/types': 7.19.0 convert-source-map: 1.8.0 debug: 4.3.4 @@ -185,6 +193,16 @@ packages: jsesc: 2.5.2 dev: true + /@babel/generator@7.23.0: + resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + '@jridgewell/gen-mapping': 0.3.2 + '@jridgewell/trace-mapping': 0.3.18 + jsesc: 2.5.2 + dev: true + /@babel/helper-compilation-targets@7.19.1(@babel/core@7.19.1): resolution: {integrity: sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==} engines: {node: '>=6.9.0'} @@ -203,19 +221,24 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-function-name@7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} + /@babel/helper-environment-visitor@7.22.20: + resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helper-function-name@7.23.0: + resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.0 + '@babel/template': 7.22.15 + '@babel/types': 7.23.0 dev: true - /@babel/helper-hoist-variables@7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} + /@babel/helper-hoist-variables@7.22.5: + resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.0 + '@babel/types': 7.23.0 dev: true /@babel/helper-module-imports@7.18.6: @@ -235,7 +258,7 @@ packages: '@babel/helper-split-export-declaration': 7.18.6 '@babel/helper-validator-identifier': 7.19.1 '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 + '@babel/traverse': 7.23.2 '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color @@ -260,16 +283,33 @@ packages: '@babel/types': 7.19.0 dev: true + /@babel/helper-split-export-declaration@7.22.6: + resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.23.0 + dev: true + /@babel/helper-string-parser@7.18.10: resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-string-parser@7.22.5: + resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.19.1: resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-option@7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} @@ -280,7 +320,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.18.10 - '@babel/traverse': 7.19.1 + '@babel/traverse': 7.23.2 '@babel/types': 7.19.0 transitivePeerDependencies: - supports-color @@ -295,6 +335,15 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/highlight@7.22.20: + resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + /@babel/parser@7.19.1: resolution: {integrity: sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==} engines: {node: '>=6.0.0'} @@ -303,6 +352,14 @@ packages: '@babel/types': 7.19.0 dev: true + /@babel/parser@7.23.0: + resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.23.0 + dev: true + /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.19.1): resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: @@ -454,18 +511,27 @@ packages: '@babel/types': 7.19.0 dev: true - /@babel/traverse@7.19.1: - resolution: {integrity: sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==} + /@babel/template@7.22.15: + resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.0 - '@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.19.1 - '@babel/types': 7.19.0 + '@babel/code-frame': 7.22.13 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 + dev: true + + /@babel/traverse@7.23.2: + resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.22.13 + '@babel/generator': 7.23.0 + '@babel/helper-environment-visitor': 7.22.20 + '@babel/helper-function-name': 7.23.0 + '@babel/helper-hoist-variables': 7.22.5 + '@babel/helper-split-export-declaration': 7.22.6 + '@babel/parser': 7.23.0 + '@babel/types': 7.23.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: @@ -481,6 +547,15 @@ packages: to-fast-properties: 2.0.0 dev: true + /@babel/types@7.23.0: + resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.22.5 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true From 8bec28d34f798398d12ded5e282d43244203fa62 Mon Sep 17 00:00:00 2001 From: dionshi Date: Mon, 27 Nov 2023 11:51:34 +0800 Subject: [PATCH 17/17] 1.37.0: - use new redux-first-history to replace deprecated connected-react-router - upgrade TypeScript 5.3 (https://devblogs.microsoft.com/typescript/announcing-typescript-5-3/) - upgrade axios 1.6 (https://github.com/axios/axios/releases) - upgrade core-js, and other dev deps - add one more pattern, handle browser extension error as warning --- package.json | 26 +-- pnpm-lock.yaml | 467 +++++++++++++++---------------------- src/app.ts | 27 ++- src/index.ts | 4 +- src/platform/Module.tsx | 6 +- src/platform/bootstrap.tsx | 16 +- src/reducer.ts | 7 +- src/util/error-util.ts | 2 +- src/util/navigator-util.ts | 4 + src/util/network.ts | 8 +- 10 files changed, 237 insertions(+), 330 deletions(-) diff --git a/package.json b/package.json index a3236c1..b65cbbc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "core-fe", - "version": "1.36.6", + "version": "1.37.0", "main": "lib/index.js", "module": "lib/index.js", "types": "lib/index.d.ts", @@ -24,32 +24,31 @@ "@testing-library/jest-dom": "6.1.2", "@testing-library/react": "14.0.0", "@testing-library/user-event": "14.4.3", - "@types/jest": "29.5.5", - "@types/node": "20.8.6", - "@typescript-eslint/eslint-plugin": "6.5.0", - "@typescript-eslint/parser": "6.5.0", - "eslint": "8.51.0", + "@types/jest": "29.5.10", + "@types/node": "20.9.5", + "@typescript-eslint/eslint-plugin": "6.12.0", + "@typescript-eslint/parser": "6.12.0", + "eslint": "8.54.0", "eslint-config-prettier": "9.0.0", "fs-extra": "11.1.1", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", - "prettier": "3.0.3", + "prettier": "3.1.0", "react": "18.2.0", "react-dom": "18.2.0", "ts-jest": "29.1.1", "ts-node": "10.9.1", - "typescript": "5.2.2", + "typescript": "5.3.2", "yargs": "17.7.2" }, "dependencies": { "@types/history": "4.7.11", - "@types/react": "18.2.28", - "@types/react-dom": "18.2.13", - "@types/react-redux": "7.1.27", + "@types/react": "18.2.35", + "@types/react-dom": "18.2.14", + "@types/react-redux": "7.1.28", "@types/react-router": "5.1.20", "@types/react-router-dom": "5.3.3", - "axios": "1.5.1", - "connected-react-router": "6.9.3", + "axios": "1.6.1", "core-js": "3.33.0", "history": "4.10.1", "immer": "10.0.3", @@ -57,6 +56,7 @@ "react-router": "5.2.1", "react-router-dom": "5.3.0", "redux": "4.1.2", + "redux-first-history": "5.1.1", "redux-saga": "1.1.3", "regenerator-runtime": "0.14.0", "tslib": "2.6.2" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b097b5..a3e3bfa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,14 +9,14 @@ dependencies: specifier: 4.7.11 version: 4.7.11 '@types/react': - specifier: 18.2.28 - version: 18.2.28 + specifier: 18.2.35 + version: 18.2.35 '@types/react-dom': - specifier: 18.2.13 - version: 18.2.13 + specifier: 18.2.14 + version: 18.2.14 '@types/react-redux': - specifier: 7.1.27 - version: 7.1.27 + specifier: 7.1.28 + version: 7.1.28 '@types/react-router': specifier: 5.1.20 version: 5.1.20 @@ -24,11 +24,8 @@ dependencies: specifier: 5.3.3 version: 5.3.3 axios: - specifier: 1.5.1 - version: 1.5.1 - connected-react-router: - specifier: 6.9.3 - version: 6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2) + specifier: 1.6.1 + version: 1.6.1 core-js: specifier: 3.33.0 version: 3.33.0 @@ -50,6 +47,9 @@ dependencies: redux: specifier: 4.1.2 version: 4.1.2 + redux-first-history: + specifier: 5.1.1 + version: 5.1.1(history@4.10.1)(redux@4.1.2) redux-saga: specifier: 1.1.3 version: 1.1.3 @@ -66,7 +66,7 @@ devDependencies: version: 9.3.1 '@testing-library/jest-dom': specifier: 6.1.2 - version: 6.1.2(@types/jest@29.5.5)(jest@29.7.0) + version: 6.1.2(@types/jest@29.5.10)(jest@29.7.0) '@testing-library/react': specifier: 14.0.0 version: 14.0.0(react-dom@18.2.0)(react@18.2.0) @@ -74,35 +74,35 @@ devDependencies: specifier: 14.4.3 version: 14.4.3(@testing-library/dom@9.3.1) '@types/jest': - specifier: 29.5.5 - version: 29.5.5 + specifier: 29.5.10 + version: 29.5.10 '@types/node': - specifier: 20.8.6 - version: 20.8.6 + specifier: 20.9.5 + version: 20.9.5 '@typescript-eslint/eslint-plugin': - specifier: 6.5.0 - version: 6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.51.0)(typescript@5.2.2) + specifier: 6.12.0 + version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) '@typescript-eslint/parser': - specifier: 6.5.0 - version: 6.5.0(eslint@8.51.0)(typescript@5.2.2) + specifier: 6.12.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) eslint: - specifier: 8.51.0 - version: 8.51.0 + specifier: 8.54.0 + version: 8.54.0 eslint-config-prettier: specifier: 9.0.0 - version: 9.0.0(eslint@8.51.0) + version: 9.0.0(eslint@8.54.0) fs-extra: specifier: 11.1.1 version: 11.1.1 jest: specifier: 29.7.0 - version: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + version: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) jest-environment-jsdom: specifier: 29.7.0 version: 29.7.0 prettier: - specifier: 3.0.3 - version: 3.0.3 + specifier: 3.1.0 + version: 3.1.0 react: specifier: 18.2.0 version: 18.2.0 @@ -111,13 +111,13 @@ devDependencies: version: 18.2.0(react@18.2.0) ts-jest: specifier: 29.1.1 - version: 29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.2.2) + version: 29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.3.2) ts-node: specifier: 10.9.1 - version: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) + version: 10.9.1(@types/node@20.9.5)(typescript@5.3.2) typescript: - specifier: 5.2.2 - version: 5.2.2 + specifier: 5.3.2 + version: 5.3.2 yargs: specifier: 17.7.2 version: 17.7.2 @@ -567,13 +567,13 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.51.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.54.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.51.0 + eslint: 8.54.0 eslint-visitor-keys: 3.4.3 dev: true @@ -582,8 +582,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.2: - resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} + /@eslint/eslintrc@2.1.3: + resolution: {integrity: sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 @@ -599,16 +599,16 @@ packages: - supports-color dev: true - /@eslint/js@8.51.0: - resolution: {integrity: sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==} + /@eslint/js@8.54.0: + resolution: {integrity: sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@humanwhocodes/config-array@0.11.11: - resolution: {integrity: sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==} + /@humanwhocodes/config-array@0.11.13: + resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 1.2.1 + '@humanwhocodes/object-schema': 2.0.1 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -620,8 +620,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@1.2.1: - resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + /@humanwhocodes/object-schema@2.0.1: + resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true /@istanbuljs/load-nyc-config@1.1.0: @@ -645,7 +645,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 jest-message-util: 29.7.0 jest-util: 29.7.0 @@ -666,14 +666,14 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.4.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -701,17 +701,10 @@ packages: dependencies: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-mock: 29.7.0 dev: true - /@jest/expect-utils@29.6.4: - resolution: {integrity: sha512-FEhkJhqtvBwgSpiTrocquJCdXPsyvNKcl/n7A3u7X4pVoF4bswm11c9d4AV+kfq2Gpv/mM8x7E7DsRvH+djkrg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.6.3 - dev: true - /@jest/expect-utils@29.7.0: resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -735,7 +728,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-message-util: 29.7.0 jest-mock: 29.7.0 jest-util: 29.7.0 @@ -768,7 +761,7 @@ packages: '@jest/transform': 29.7.0 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -863,7 +856,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.8.6 + '@types/node': 20.9.5 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -875,7 +868,7 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.8.6 + '@types/node': 20.9.5 '@types/yargs': 17.0.12 chalk: 4.1.2 dev: true @@ -1018,7 +1011,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.1.2(@types/jest@29.5.5)(jest@29.7.0): + /@testing-library/jest-dom@6.1.2(@types/jest@29.5.10)(jest@29.7.0): resolution: {integrity: sha512-NP9jl1Q2qDDtx+cqogowtQtmgD2OVs37iMSIsTv5eN5ETRkf26Kj6ugVwA93/gZzzFWQAsgkKkcftDe91BJCkQ==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} peerDependencies: @@ -1038,12 +1031,12 @@ packages: dependencies: '@adobe/css-tools': 4.3.1 '@babel/runtime': 7.19.0 - '@types/jest': 29.5.5 + '@types/jest': 29.5.10 aria-query: 5.0.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.5.14 - jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) lodash: 4.17.21 redent: 3.0.0 dev: true @@ -1057,7 +1050,7 @@ packages: dependencies: '@babel/runtime': 7.19.0 '@testing-library/dom': 9.3.1 - '@types/react-dom': 18.2.13 + '@types/react-dom': 18.2.14 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true @@ -1128,7 +1121,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.8.6 + '@types/node': 20.9.5 dev: true /@types/history@4.7.11: @@ -1138,7 +1131,7 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.28 + '@types/react': 18.2.35 hoist-non-react-statics: 3.3.2 dev: false @@ -1158,17 +1151,17 @@ packages: '@types/istanbul-lib-report': 3.0.0 dev: true - /@types/jest@29.5.5: - resolution: {integrity: sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==} + /@types/jest@29.5.10: + resolution: {integrity: sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==} dependencies: - expect: 29.6.4 - pretty-format: 29.6.3 + expect: 29.7.0 + pretty-format: 29.7.0 dev: true /@types/jsdom@20.0.0: resolution: {integrity: sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==} dependencies: - '@types/node': 20.8.6 + '@types/node': 20.9.5 '@types/tough-cookie': 4.0.2 parse5: 7.1.1 dev: true @@ -1177,25 +1170,25 @@ packages: resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==} dev: true - /@types/node@20.8.6: - resolution: {integrity: sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==} + /@types/node@20.9.5: + resolution: {integrity: sha512-Uq2xbNq0chGg+/WQEU0LJTSs/1nKxz6u1iemLcGomkSnKokbW1fbLqc3HOqCf2JP7KjlL4QkS7oZZTrOQHQYgQ==} dependencies: - undici-types: 5.25.3 + undici-types: 5.26.5 dev: true /@types/prop-types@15.7.5: resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - /@types/react-dom@18.2.13: - resolution: {integrity: sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==} + /@types/react-dom@18.2.14: + resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==} dependencies: - '@types/react': 18.2.28 + '@types/react': 18.2.35 - /@types/react-redux@7.1.27: - resolution: {integrity: sha512-xj7d9z32p1K/eBmO+OEy+qfaWXtcPlN8f1Xk3Ne0p/ZRQ867RI5bQ/bpBtxbqU1AHNhKJSgGvld/P2myU2uYkg==} + /@types/react-redux@7.1.28: + resolution: {integrity: sha512-EQr7cChVzVUuqbA+J8ArWK1H0hLAHKOs21SIMrskKZ3nHNeE+LFYA+IsoZGhVOT8Ktjn3M20v4rnZKN3fLbypw==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.28 + '@types/react': 18.2.35 hoist-non-react-statics: 3.3.2 redux: 4.1.2 dev: false @@ -1204,7 +1197,7 @@ packages: resolution: {integrity: sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.28 + '@types/react': 18.2.35 '@types/react-router': 5.1.20 dev: false @@ -1212,11 +1205,11 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.28 + '@types/react': 18.2.35 dev: false - /@types/react@18.2.28: - resolution: {integrity: sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==} + /@types/react@18.2.35: + resolution: {integrity: sha512-LG3xpFZ++rTndV+/XFyX5vUP7NI9yxyk+MQvBDq+CVs8I9DLSc3Ymwb1Vmw5YDoeNeHN4PDZa3HylMKJYT9PNQ==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -1247,8 +1240,8 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@6.5.0(@typescript-eslint/parser@6.5.0)(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-2pktILyjvMaScU6iK3925uvGU87E+N9rh372uGZgiMYwafaw9SXq86U04XPq3UH6tzRvNgBsub6x2DacHc33lw==} + /@typescript-eslint/eslint-plugin@6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-XOpZ3IyJUIV1b15M7HVOpgQxPPF7lGXgsfcEIu3yDxFPaf/xZKt7s9QO/pbk7vpWQyVulpJbu4E5LwpZiQo4kA==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -1259,25 +1252,25 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.6.2 - '@typescript-eslint/parser': 6.5.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/scope-manager': 6.5.0 - '@typescript-eslint/type-utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.5.0 + '@typescript-eslint/parser': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/type-utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4 - eslint: 8.51.0 + eslint: 8.54.0 graphemer: 1.4.0 ignore: 5.2.4 natural-compare: 1.4.0 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.5.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-LMAVtR5GN8nY0G0BadkG0XIe4AcNMeyEy3DyhKGAh9k4pLSMBO7rF29JvDBpZGCmp5Pgz5RLHP6eCpSYZJQDuQ==} + /@typescript-eslint/parser@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-s8/jNFPKPNRmXEnNXfuo1gemBdVmpQsK1pcu+QIvuNJuhFzGrpD7WjOcvDc/+uEdfzSYpNu7U/+MmbScjoQ6vg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1286,27 +1279,27 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.5.0 - '@typescript-eslint/types': 6.5.0 - '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) - '@typescript-eslint/visitor-keys': 6.5.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4 - eslint: 8.51.0 - typescript: 5.2.2 + eslint: 8.54.0 + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.5.0: - resolution: {integrity: sha512-A8hZ7OlxURricpycp5kdPTH3XnjG85UpJS6Fn4VzeoH4T388gQJ/PGP4ole5NfKt4WDVhmLaQ/dBLNDC4Xl/Kw==} + /@typescript-eslint/scope-manager@6.12.0: + resolution: {integrity: sha512-5gUvjg+XdSj8pcetdL9eXJzQNTl3RD7LgUiYTl8Aabdi8hFkaGSYnaS6BLc0BGNaDH+tVzVwmKtWvu0jLgWVbw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.5.0 - '@typescript-eslint/visitor-keys': 6.5.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 dev: true - /@typescript-eslint/type-utils@6.5.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-f7OcZOkRivtujIBQ4yrJNIuwyCQO1OjocVqntl9dgSIZAdKqicj3xFDqDOzHDlGCZX990LqhLQXWRnQvsapq8A==} + /@typescript-eslint/type-utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-WWmRXxhm1X8Wlquj+MhsAG4dU/Blvf1xDgGaYCzfvStP2NwPQh6KBvCDbiOEvaE0filhranjIlK/2fSTVwtBng==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -1315,23 +1308,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) - '@typescript-eslint/utils': 6.5.0(eslint@8.51.0)(typescript@5.2.2) + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + '@typescript-eslint/utils': 6.12.0(eslint@8.54.0)(typescript@5.3.2) debug: 4.3.4 - eslint: 8.51.0 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + eslint: 8.54.0 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.5.0: - resolution: {integrity: sha512-eqLLOEF5/lU8jW3Bw+8auf4lZSbbljHR2saKnYqON12G/WsJrGeeDHWuQePoEf9ro22+JkbPfWQwKEC5WwLQ3w==} + /@typescript-eslint/types@6.12.0: + resolution: {integrity: sha512-MA16p/+WxM5JG/F3RTpRIcuOghWO30//VEOvzubM8zuOOBYXsP+IfjoCXXiIfy2Ta8FRh9+IO9QLlaFQUU+10Q==} engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@6.5.0(typescript@5.2.2): - resolution: {integrity: sha512-q0rGwSe9e5Kk/XzliB9h2LBc9tmXX25G0833r7kffbl5437FPWb2tbpIV9wAATebC/018pGa9fwPDuvGN+LxWQ==} + /@typescript-eslint/typescript-estree@6.12.0(typescript@5.3.2): + resolution: {integrity: sha512-vw9E2P9+3UUWzhgjyyVczLWxZ3GuQNT7QpnIY3o5OMeLO/c8oHljGc8ZpryBMIyympiAAaKgw9e5Hl9dCWFOYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -1339,43 +1332,47 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.5.0 - '@typescript-eslint/visitor-keys': 6.5.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/visitor-keys': 6.12.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - ts-api-utils: 1.0.1(typescript@5.2.2) - typescript: 5.2.2 + ts-api-utils: 1.0.1(typescript@5.3.2) + typescript: 5.3.2 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.5.0(eslint@8.51.0)(typescript@5.2.2): - resolution: {integrity: sha512-9nqtjkNykFzeVtt9Pj6lyR9WEdd8npPhhIPM992FWVkZuS6tmxHfGVnlUcjpUP2hv8r4w35nT33mlxd+Be1ACQ==} + /@typescript-eslint/utils@6.12.0(eslint@8.54.0)(typescript@5.3.2): + resolution: {integrity: sha512-LywPm8h3tGEbgfyjYnu3dauZ0U7R60m+miXgKcZS8c7QALO9uWJdvNoP+duKTk2XMWc7/Q3d/QiCuLN9X6SWyQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@types/json-schema': 7.0.12 '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 6.5.0 - '@typescript-eslint/types': 6.5.0 - '@typescript-eslint/typescript-estree': 6.5.0(typescript@5.2.2) - eslint: 8.51.0 + '@typescript-eslint/scope-manager': 6.12.0 + '@typescript-eslint/types': 6.12.0 + '@typescript-eslint/typescript-estree': 6.12.0(typescript@5.3.2) + eslint: 8.54.0 semver: 7.5.4 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.5.0: - resolution: {integrity: sha512-yCB/2wkbv3hPsh02ZS8dFQnij9VVQXJMN/gbQsaaY+zxALkZnxa/wagvLEFsAWMPv7d7lxQmNsIzGU1w/T/WyA==} + /@typescript-eslint/visitor-keys@6.12.0: + resolution: {integrity: sha512-rg3BizTZHF1k3ipn8gfrzDXXSFKyOEB5zxYXInQ6z0hUvmQlhaZQzK+YmHmNViMA9HzW5Q9+bPPt90bU6GQwyw==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.5.0 - eslint-visitor-keys: 3.4.2 + '@typescript-eslint/types': 6.12.0 + eslint-visitor-keys: 3.4.3 + dev: true + + /@ungap/structured-clone@1.2.0: + resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true /abab@2.0.6: @@ -1527,8 +1524,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /axios@1.5.1: - resolution: {integrity: sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==} + /axios@1.6.1: + resolution: {integrity: sha512-vfBmhDpKafglh0EldBEbVuoe7DyAavGSLWhuSm5ZSEKQnHhBf0xAAwybbNH1IkrJNGnS/VG4I5yxig1pCEXE4g==} dependencies: follow-redirects: 1.15.1 form-data: 4.0.0 @@ -1772,27 +1769,6 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /connected-react-router@6.9.3(history@4.10.1)(react-redux@7.2.8)(react-router@5.2.1)(react@18.2.0)(redux@4.1.2): - resolution: {integrity: sha512-4ThxysOiv/R2Dc4Cke1eJwjKwH1Y51VDwlOrOfs1LjpdYOVvCNjNkZDayo7+sx42EeGJPQUNchWkjAIJdXGIOQ==} - peerDependencies: - history: ^4.7.2 - react: ^16.4.0 || ^17.0.0 - react-redux: ^6.0.0 || ^7.1.0 - react-router: ^4.3.1 || ^5.0.0 - redux: ^3.6.0 || ^4.0.0 - dependencies: - history: 4.10.1 - lodash.isequalwith: 4.4.0 - prop-types: 15.8.1 - react: 18.2.0 - react-redux: 7.2.8(react-dom@18.2.0)(react@18.2.0) - react-router: 5.2.1(react@18.2.0) - redux: 4.1.2 - optionalDependencies: - immutable: 4.3.0 - seamless-immutable: 7.1.4 - dev: false - /convert-source-map@1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: @@ -1808,7 +1784,7 @@ packages: requiresBuild: true dev: false - /create-jest@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + /create-jest@29.7.0(@types/node@20.9.5)(ts-node@10.9.1): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -1817,7 +1793,7 @@ packages: chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.10 - jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -2051,13 +2027,13 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-prettier@9.0.0(eslint@8.51.0): + /eslint-config-prettier@9.0.0(eslint@8.54.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.51.0 + eslint: 8.54.0 dev: true /eslint-scope@7.2.2: @@ -2068,28 +2044,24 @@ packages: estraverse: 5.3.0 dev: true - /eslint-visitor-keys@3.4.2: - resolution: {integrity: sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.51.0: - resolution: {integrity: sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==} + /eslint@8.54.0: + resolution: {integrity: sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.51.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.54.0) '@eslint-community/regexpp': 4.6.2 - '@eslint/eslintrc': 2.1.2 - '@eslint/js': 8.51.0 - '@humanwhocodes/config-array': 0.11.11 + '@eslint/eslintrc': 2.1.3 + '@eslint/js': 8.54.0 + '@humanwhocodes/config-array': 0.11.13 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 @@ -2183,17 +2155,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expect@29.6.4: - resolution: {integrity: sha512-F2W2UyQ8XYyftHT57dtfg8Ue3X5qLgm2sSug0ivvLRH/VKNRL/pDxg/TH7zVzbQB0tu80clNFy6LU7OS/VSEKA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.6.4 - jest-get-type: 29.6.3 - jest-matcher-utils: 29.6.4 - jest-message-util: 29.6.3 - jest-util: 29.6.3 - dev: true - /expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2474,7 +2435,7 @@ packages: /history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} dependencies: - '@babel/runtime': 7.18.9 + '@babel/runtime': 7.19.0 loose-envify: 1.4.0 resolve-pathname: 3.0.0 tiny-invariant: 1.2.0 @@ -2541,12 +2502,6 @@ packages: resolution: {integrity: sha512-pwupu3eWfouuaowscykeckFmVTpqbzW+rXFCX8rQLkZzM9ftBmU/++Ra+o+L27mz03zJTlyV4UUr+fdKNffo4A==} dev: false - /immutable@4.3.0: - resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} - requiresBuild: true - dev: false - optional: true - /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -2836,7 +2791,7 @@ packages: '@jest/expect': 29.7.0 '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 co: 4.6.0 dedent: 1.5.1 @@ -2857,7 +2812,7 @@ packages: - supports-color dev: true - /jest-cli@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.9.5)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -2871,10 +2826,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -2885,7 +2840,7 @@ packages: - ts-node dev: true - /jest-config@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + /jest-config@29.7.0(@types/node@20.9.5)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -2900,7 +2855,7 @@ packages: '@babel/core': 7.19.1 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 babel-jest: 29.7.0(@babel/core@7.19.1) chalk: 4.1.2 ci-info: 3.4.0 @@ -2920,22 +2875,12 @@ packages: pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 - ts-node: 10.9.1(@types/node@20.8.6)(typescript@5.2.2) + ts-node: 10.9.1(@types/node@20.9.5)(typescript@5.3.2) transitivePeerDependencies: - babel-plugin-macros - supports-color dev: true - /jest-diff@29.6.4: - resolution: {integrity: sha512-9F48UxR9e4XOEZvoUXEHSWY4qC4zERJaOfrbBg9JpbJOO43R1vN76REt/aMGZoY6GD5g84nnJiBIVlscegefpw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.6.3 - dev: true - /jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2977,7 +2922,7 @@ packages: '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.0 - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.0 @@ -2994,7 +2939,7 @@ packages: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-mock: 29.7.0 jest-util: 29.7.0 dev: true @@ -3010,7 +2955,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.5 - '@types/node': 20.8.6 + '@types/node': 20.9.5 anymatch: 3.1.2 fb-watchman: 2.0.1 graceful-fs: 4.2.10 @@ -3031,16 +2976,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-matcher-utils@29.6.4: - resolution: {integrity: sha512-KSzwyzGvK4HcfnserYqJHYi7sZVqdREJ9DMPAKVbS98JsIAvumihaNUbjrWw0St7p9IY7A9UskCW5MYlGmBQFQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.6.4 - jest-get-type: 29.6.3 - pretty-format: 29.6.3 - dev: true - /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3051,21 +2986,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-message-util@29.6.3: - resolution: {integrity: sha512-FtzaEEHzjDpQp51HX4UMkPZjy46ati4T5pEMyM6Ik48ztu4T9LQplZ6OsimHx7EuM9dfEh5HJa6D3trEftu3dA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 29.6.3 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.6.3 - slash: 3.0.0 - stack-utils: 2.0.5 - dev: true - /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3086,7 +3006,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-util: 29.7.0 dev: true @@ -3141,7 +3061,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -3172,7 +3092,7 @@ packages: '@jest/test-result': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -3224,19 +3144,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.8.6 - chalk: 4.1.2 - ci-info: 3.4.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 - dev: true - - /jest-util@29.6.3: - resolution: {integrity: sha512-QUjna/xSy4B32fzcKTSz1w7YYzgiHrjjJjevdRf61HYk998R5vVMMNmrHESYZVDS5DSWs+1srPLPKxXPkeSDOA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -3248,7 +3156,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 chalk: 4.1.2 ci-info: 3.4.0 graceful-fs: 4.2.10 @@ -3273,7 +3181,7 @@ packages: dependencies: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -3285,13 +3193,13 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.8.6 + '@types/node': 20.9.5 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true - /jest@29.7.0(@types/node@20.8.6)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.9.5)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -3304,7 +3212,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -3448,10 +3356,6 @@ packages: p-locate: 5.0.0 dev: true - /lodash.isequalwith@4.4.0: - resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} - dev: false - /lodash.memoize@4.1.2: resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} dev: true @@ -3772,8 +3676,8 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /prettier@3.0.3: - resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==} + /prettier@3.1.0: + resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true @@ -3787,15 +3691,6 @@ packages: react-is: 17.0.2 dev: true - /pretty-format@29.6.3: - resolution: {integrity: sha512-ZsBgjVhFAj5KeK+nHfF1305/By3lechHQSMWCTl8iHSbfOm2TN5nHEtFc/+W7fAyUeCs2n5iow72gld4gW0xDw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - /pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3879,7 +3774,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.18.9 - '@types/react-redux': 7.1.27 + '@types/react-redux': 7.1.28 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 prop-types: 15.8.1 @@ -3935,6 +3830,16 @@ packages: strip-indent: 3.0.0 dev: true + /redux-first-history@5.1.1(history@4.10.1)(redux@4.1.2): + resolution: {integrity: sha512-ujVHv+y9wC2rqavS5tLiSu6zkw+VYrEea+/ggwVTRuutadEtwxSRlaK19ry/PTLSQtFuUF1Xu+plL5erD4roVw==} + peerDependencies: + history: ^4.7.2 || ^5.0 + redux: ^3.6.0 || ^4.0.0 + dependencies: + history: 4.10.1 + redux: 4.1.2 + dev: false + /redux-saga@1.1.3: resolution: {integrity: sha512-RkSn/z0mwaSa5/xH/hQLo8gNf4tlvT18qXDNvedihLcfzh+jMchDgaariQoehCpgRltEm4zHKJyINEz6aqswTw==} dependencies: @@ -4045,12 +3950,6 @@ packages: dependencies: loose-envify: 1.4.0 - /seamless-immutable@7.1.4: - resolution: {integrity: sha512-XiUO1QP4ki4E2PHegiGAlu6r82o5A+6tRh7IkGGTVg/h+UoeX4nFBeCGPOhb4CYjvkqsfm/TUtvOMYC1xmV30A==} - requiresBuild: true - dev: false - optional: true - /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -4257,16 +4156,16 @@ packages: punycode: 2.1.1 dev: true - /ts-api-utils@1.0.1(typescript@5.2.2): + /ts-api-utils@1.0.1(typescript@5.3.2): resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==} engines: {node: '>=16.13.0'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.2.2 + typescript: 5.3.2 dev: true - /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.2.2): + /ts-jest@29.1.1(@babel/core@7.19.1)(jest@29.7.0)(typescript@5.3.2): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -4290,17 +4189,17 @@ packages: '@babel/core': 7.19.1 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.8.6)(ts-node@10.9.1) + jest: 29.7.0(@types/node@20.9.5)(ts-node@10.9.1) jest-util: 29.5.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.5.4 - typescript: 5.2.2 + typescript: 5.3.2 yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.8.6)(typescript@5.2.2): + /ts-node@10.9.1(@types/node@20.9.5)(typescript@5.3.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -4319,14 +4218,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 20.8.6 + '@types/node': 20.9.5 acorn: 8.8.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: 5.2.2 + typescript: 5.3.2 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -4380,14 +4279,14 @@ packages: typescript-compare: 0.0.2 dev: false - /typescript@5.2.2: - resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} + /typescript@5.3.2: + resolution: {integrity: sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==} engines: {node: '>=14.17'} hasBin: true dev: true - /undici-types@5.25.3: - resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true /universalify@0.2.0: diff --git a/src/app.ts b/src/app.ts index 842c72c..84c48dc 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,17 +1,17 @@ -import {routerMiddleware} from "connected-react-router"; import {createBrowserHistory, type History} from "history"; import {applyMiddleware, compose, createStore, type Store, type StoreEnhancer} from "redux"; +import {createReduxHistoryContext} from "redux-first-history"; import createSagaMiddleware, {type SagaMiddleware} from "redux-saga"; -import {takeEvery, call as rawCall, race as rawRace, take} from "redux-saga/effects"; -import {LoggerImpl, type Logger, type LoggerConfig} from "./Logger"; -import {executeAction, type ActionHandler, type ErrorHandler} from "./module"; -import {LOADING_ACTION, rootReducer, type Action, type State} from "./reducer"; +import {call as rawCall, race as rawRace, take, takeEvery} from "redux-saga/effects"; +import {type Logger, type LoggerConfig, LoggerImpl} from "./Logger"; +import {type ActionHandler, type ErrorHandler, executeAction} from "./module"; +import {type Action, LOADING_ACTION, rootReducer, type State} from "./reducer"; import {captureError} from "./util/error-util"; declare const window: any; interface App { - readonly browserHistory: History; + readonly history: History; readonly store: Store; readonly sagaMiddleware: SagaMiddleware; readonly actionHandlers: {[actionType: string]: {handler: ActionHandler; moduleName: string}}; @@ -38,12 +38,17 @@ function composeWithDevTools(enhancer: StoreEnhancer): StoreEnhancer { } function createApp(): App { - const browserHistory = createBrowserHistory(); - const eventLogger = new LoggerImpl(); + const {createReduxHistory, routerMiddleware, routerReducer} = createReduxHistoryContext({ + history: createBrowserHistory(), + }); const sagaMiddleware = createSagaMiddleware({ onError: (error, info) => captureError(error, "@@framework/detached-saga", {extraStacktrace: info.sagaStack}), }); - const store: Store = createStore(rootReducer(browserHistory), composeWithDevTools(applyMiddleware(routerMiddleware(browserHistory), sagaMiddleware))); + const store: Store = createStore(rootReducer(routerReducer), composeWithDevTools(applyMiddleware(routerMiddleware, sagaMiddleware))); + + // createReduxHistory() will dispatch an action, it must be called before middleware takeEvery(*) takes effect + const reduxHistory = createReduxHistory(store); + sagaMiddleware.run(function* () { yield takeEvery("*", function* (action: Action) { const actionHandler = app.actionHandlers[action.type]; @@ -60,11 +65,11 @@ function createApp(): App { }); return { - browserHistory, + history: reduxHistory, store, sagaMiddleware, actionHandlers: {}, - logger: eventLogger, + logger: new LoggerImpl(), loggerConfig: null, *errorHandler() {}, }; diff --git a/src/index.ts b/src/index.ts index 4f43228..a56a417 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,7 +2,7 @@ import "core-js/stable"; import "regenerator-runtime/runtime"; import "./debug"; -export {push} from "connected-react-router"; +export {push, replace} from "redux-first-history"; export * as immer from "immer"; export {bootstrap} from "./platform/bootstrap"; export {Module, type ModuleLocation, type ModuleLifecycleListener} from "./platform/Module"; @@ -31,6 +31,8 @@ export {register, type ErrorListener} from "./module"; export {call, put, spawn, delay, all, race, fork, type SagaGenerator} from "./typed-saga"; export {logger} from "./app"; +export {Switch, Redirect, NavLink, useLocation, useHistory, useParams, useRouteMatch, matchPath} from "react-router-dom"; export {useStore, useSelector, useDispatch} from "react-redux"; export type {Action, Dispatch, Reducer} from "redux"; export type {Location} from "history"; +export {produce} from "immer"; diff --git a/src/platform/Module.tsx b/src/platform/Module.tsx index 19f436b..cc76fa8 100644 --- a/src/platform/Module.tsx +++ b/src/platform/Module.tsx @@ -1,4 +1,4 @@ -import {push} from "connected-react-router"; +import {push} from "redux-first-history"; import {put} from "redux-saga/effects"; import {produce, enablePatches} from "immer"; import {app} from "../app"; @@ -15,7 +15,7 @@ export type ModuleLocation = Location | undefined>; export interface ModuleLifecycleListener { onEnter: (entryComponentProps?: any) => SagaGenerator; onDestroy: () => SagaGenerator; - onLocationMatched: (routeParameters: RouteParam, location: Location | undefined>) => SagaGenerator; + onLocationMatched: (routeParameters: RouteParam, location: ModuleLocation) => SagaGenerator; onTick: (() => SagaGenerator) & TickIntervalDecoratorFlag; } @@ -126,7 +126,7 @@ export class Module - {/* @ts-ignore - @types/react removed default props.children in class component, and no children prop in ConnectedRouter */} - + - + ); @@ -158,10 +157,9 @@ function injectRootContainer(): HTMLElement { function setupAppExitListener(eventServerURL?: string) { if (eventServerURL) { - const isIOS = /iPad|iPhone|iPod/.test(navigator.platform); + // ref: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5 window.addEventListener( - // Ref: https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW5 - isIOS ? "pagehide" : "unload", + isIOS() ? "pagehide" : "unload", () => { try { app.logger.info({action: "@@EXIT"}); @@ -183,7 +181,7 @@ function setupAppExitListener(eventServerURL?: string) { function setupLocationChangeListener(listener?: (location: Location) => void) { if (listener) { - app.browserHistory.listen(listener); + app.history.listen(listener); } } diff --git a/src/reducer.ts b/src/reducer.ts index 9a28176..3bd86a3 100644 --- a/src/reducer.ts +++ b/src/reducer.ts @@ -1,7 +1,6 @@ -import {connectRouter, type RouterState} from "connected-react-router"; +import {type RouterState} from "redux-first-history"; import {combineReducers, type Action as ReduxAction, type Reducer} from "redux"; import {DEFAULT_IDLE_TIMEOUT} from "./util/IdleDetector"; -import type {History} from "history"; // Redux State interface LoadingState { @@ -143,9 +142,9 @@ export function idleReducer(state: IdleState = {timeout: DEFAULT_IDLE_TIMEOUT, s } // Root Reducer -export function rootReducer(history: History): Reducer { +export function rootReducer(routerReducer: Reducer): Reducer { return combineReducers({ - router: connectRouter(history), + router: routerReducer, loading: loadingReducer, app: setStateReducer, navigationPrevented: navigationPreventionReducer, diff --git a/src/util/error-util.ts b/src/util/error-util.ts index c8d311a..7cce195 100644 --- a/src/util/error-util.ts +++ b/src/util/error-util.ts @@ -114,7 +114,7 @@ function specialErrorCode(exception: Exception, action: string, stacktrace?: str function isValidStacktrace(stacktrace?: string): boolean { if (stacktrace) { - const ignoredPatterns = ["chrome-extension://", "moz-extension://", "@user-script", "ucbrowser_script", ":"]; + const ignoredPatterns = ["extension://", "@user-script", "ucbrowser_script", "x-plugin-script", ":"]; if (ignoredPatterns.some(_ => stacktrace.includes(_))) { return false; } diff --git a/src/util/navigator-util.ts b/src/util/navigator-util.ts index 610116d..ca9f8ea 100644 --- a/src/util/navigator-util.ts +++ b/src/util/navigator-util.ts @@ -10,3 +10,7 @@ export function isBrowserSupported() { return true; } + +export function isIOS() { + return /iPhone|iPad|iPod/i.test(navigator.userAgent); +} diff --git a/src/util/network.ts b/src/util/network.ts index 16d55ba..e2e917f 100644 --- a/src/util/network.ts +++ b/src/util/network.ts @@ -5,10 +5,10 @@ import {parseWithDate} from "./json-util"; export type PathParams = string extends T ? {[key: string]: string | number} : T extends `${infer Start}:${infer Param}/${infer Rest}` - ? {[k in Param | keyof PathParams]: string | number} - : T extends `${infer Start}:${infer Param}` - ? {[k in Param]: string | number} - : {}; + ? {[k in Param | keyof PathParams]: string | number} + : T extends `${infer Start}:${infer Param}` + ? {[k in Param]: string | number} + : {}; export interface APIErrorResponse { id?: string | null;