From 2866bafc6a17404c333607004e59742315b8b657 Mon Sep 17 00:00:00 2001 From: Dreamacro <8615343+Dreamacro@users.noreply.github.com> Date: Wed, 30 Mar 2022 20:19:48 +0800 Subject: [PATCH] Upgrade: react 18 && connection table scroll perf --- package.json | 18 +- pnpm-lock.yaml | 721 ++++++++++---------------- src/containers/Connections/index.tsx | 48 +- src/containers/Connections/style.scss | 2 +- src/render.tsx | 14 +- src/stores/request.ts | 2 +- vite.config.ts | 3 +- 7 files changed, 324 insertions(+), 484 deletions(-) diff --git a/package.json b/package.json index b47004e..7724565 100644 --- a/package.json +++ b/package.json @@ -33,10 +33,10 @@ "@types/react-table": "^7.7.10", "@types/react-virtualized-auto-sizer": "^1.0.1", "@types/react-window": "^1.8.5", - "@typescript-eslint/eslint-plugin": "^5.16.0", - "@typescript-eslint/parser": "^5.16.0", + "@typescript-eslint/eslint-plugin": "^5.17.0", + "@typescript-eslint/parser": "^5.17.0", "@vitejs/plugin-react": "^1.2.0", - "eslint": "^8.11.0", + "eslint": "^8.12.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^16.1.4", "eslint-config-standard-with-typescript": "^21.0.1", @@ -44,18 +44,19 @@ "eslint-plugin-import": "^2.25.4", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^6.0.0", - "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-react-hooks": "^4.4.0", "sass": "^1.49.9", "type-fest": "^2.12.1", "typescript": "^4.6.3", - "vite": "^2.8.6", + "vite": "^2.9.0", "vite-plugin-pwa": "^0.11.13", "vite-plugin-windicss": "^1.8.3", "vite-tsconfig-paths": "^3.4.1", "windicss": "^3.5.1" }, "dependencies": { - "@tanstack/react-table": "^8.0.0-alpha.8", + "@react-hookz/web": "^13.1.0", + "@tanstack/react-table": "^8.0.0-alpha.11", "axios": "^0.26.1", "classnames": "^2.3.1", "dayjs": "^1.11.0", @@ -64,10 +65,9 @@ "jotai": "^1.6.1", "lodash-es": "^4.17.21", "neverthrow": "^4.3.1", - "react": "^18.0.0-rc.3", - "react-dom": "^18.0.0-rc.3", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-router-dom": "^6.2.2", - "react-use": "^17.3.2", "react-virtualized-auto-sizer": "^1.0.6", "react-window": "^1.8.6", "swr": "^1.2.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8e9bd21..d70a789 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,7 +1,8 @@ lockfileVersion: 5.3 specifiers: - '@tanstack/react-table': ^8.0.0-alpha.8 + '@react-hookz/web': ^13.1.0 + '@tanstack/react-table': ^8.0.0-alpha.11 '@types/lodash-es': ^4.17.6 '@types/node': ^17.0.23 '@types/react': ^17.0.43 @@ -10,13 +11,13 @@ specifiers: '@types/react-table': ^7.7.10 '@types/react-virtualized-auto-sizer': ^1.0.1 '@types/react-window': ^1.8.5 - '@typescript-eslint/eslint-plugin': ^5.16.0 - '@typescript-eslint/parser': ^5.16.0 + '@typescript-eslint/eslint-plugin': ^5.17.0 + '@typescript-eslint/parser': ^5.17.0 '@vitejs/plugin-react': ^1.2.0 axios: ^0.26.1 classnames: ^2.3.1 dayjs: ^1.11.0 - eslint: ^8.11.0 + eslint: ^8.12.0 eslint-config-airbnb: ^19.0.4 eslint-config-airbnb-typescript: ^16.1.4 eslint-config-standard-with-typescript: ^21.0.1 @@ -24,16 +25,15 @@ specifiers: eslint-plugin-import: ^2.25.4 eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^6.0.0 - eslint-plugin-react-hooks: ^4.3.0 + eslint-plugin-react-hooks: ^4.4.0 eventemitter3: ^4.0.7 immer: ^9.0.12 jotai: ^1.6.1 lodash-es: ^4.17.21 neverthrow: ^4.3.1 - react: ^18.0.0-rc.3 - react-dom: ^18.0.0-rc.3 + react: ^18.0.0 + react-dom: ^18.0.0 react-router-dom: ^6.2.2 - react-use: ^17.3.2 react-virtualized-auto-sizer: ^1.0.6 react-window: ^1.8.6 sass: ^1.49.9 @@ -41,30 +41,30 @@ specifiers: type-fest: ^2.12.1 typescript: ^4.6.3 use-immer: ^0.6.0 - vite: ^2.8.6 + vite: ^2.9.0 vite-plugin-pwa: ^0.11.13 vite-plugin-windicss: ^1.8.3 vite-tsconfig-paths: ^3.4.1 windicss: ^3.5.1 dependencies: - '@tanstack/react-table': 8.0.0-alpha.8_581fa33d3647c30d8078674dcd1b240a + '@react-hookz/web': 13.1.0_react-dom@18.0.0+react@18.0.0 + '@tanstack/react-table': 8.0.0-alpha.11_react-dom@18.0.0+react@18.0.0 axios: 0.26.1 classnames: 2.3.1 dayjs: 1.11.0 eventemitter3: 4.0.7 immer: 9.0.12 - jotai: 1.6.1_immer@9.0.12+react@18.0.0-rc.3 + jotai: 1.6.1_immer@9.0.12+react@18.0.0 lodash-es: 4.17.21 neverthrow: 4.3.1 - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 - react-router-dom: 6.2.2_581fa33d3647c30d8078674dcd1b240a - react-use: 17.3.2_581fa33d3647c30d8078674dcd1b240a - react-virtualized-auto-sizer: 1.0.6_581fa33d3647c30d8078674dcd1b240a - react-window: 1.8.6_581fa33d3647c30d8078674dcd1b240a - swr: 1.2.2_react@18.0.0-rc.3 - use-immer: 0.6.0_immer@9.0.12+react@18.0.0-rc.3 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 + react-router-dom: 6.2.2_react-dom@18.0.0+react@18.0.0 + react-virtualized-auto-sizer: 1.0.6_react-dom@18.0.0+react@18.0.0 + react-window: 1.8.6_react-dom@18.0.0+react@18.0.0 + swr: 1.2.2_react@18.0.0 + use-immer: 0.6.0_immer@9.0.12+react@18.0.0 devDependencies: '@types/lodash-es': 4.17.6 @@ -75,25 +75,25 @@ devDependencies: '@types/react-table': 7.7.10 '@types/react-virtualized-auto-sizer': 1.0.1 '@types/react-window': 1.8.5 - '@typescript-eslint/eslint-plugin': 5.16.0_bc68a9cd5bf604202498b1a9faaf9387 - '@typescript-eslint/parser': 5.16.0_eslint@8.11.0+typescript@4.6.3 + '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 + '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 '@vitejs/plugin-react': 1.2.0 - eslint: 8.11.0 - eslint-config-airbnb: 19.0.4_21dd17da442cb057dd6c2041daee4072 - eslint-config-airbnb-typescript: 16.1.4_199a3777d25e90e3898667ddb95142b1 - eslint-config-standard-with-typescript: 21.0.1_9af640a1891a7e55dd23a89beb2108f1 - eslint-import-resolver-typescript: 2.7.0_fe22d862ffeecaee86c93a006d59e41e - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 - eslint-plugin-react-hooks: 4.3.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-config-airbnb: 19.0.4_3feb31751c277f688db057d8eb6c50f7 + eslint-config-airbnb-typescript: 16.1.4_1a3f98bf42a335fa5aa49fc0ce2fcb90 + eslint-config-standard-with-typescript: 21.0.1_6e26b30b89f6d7411e66a9017be825b6 + eslint-import-resolver-typescript: 2.7.0_dae71b730d6620b67a20047a747b2eda + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 + eslint-plugin-react-hooks: 4.4.0_eslint@8.12.0 sass: 1.49.9 type-fest: 2.12.1 typescript: 4.6.3 - vite: 2.8.6_sass@1.49.9 - vite-plugin-pwa: 0.11.13_vite@2.8.6 - vite-plugin-windicss: 1.8.3_vite@2.8.6 - vite-tsconfig-paths: 3.4.1_vite@2.8.6 + vite: 2.9.0_sass@1.49.9 + vite-plugin-pwa: 0.11.13_vite@2.9.0 + vite-plugin-windicss: 1.8.3_vite@2.9.0 + vite-tsconfig-paths: 3.4.1_vite@2.9.0 windicss: 3.5.1 packages: @@ -1372,6 +1372,25 @@ packages: fastq: 1.13.0 dev: true + /@react-hookz/deep-equal/1.0.1: + resolution: {integrity: sha512-6k/pU2jNlgYvKOy84vpCAZ8MGVwybvAdjzrh4UicCVOCPxz0LSBws1OE6O5TO4sPHaSw+yLfNzNK8RicGFc1Kw==} + dev: false + + /@react-hookz/web/13.1.0_react-dom@18.0.0+react@18.0.0: + resolution: {integrity: sha512-U7/KB0OI6umgABmzAWqWyeQ3v+BPeYGkEbjEyH/4DBdJfCskVfv5y9GZ0aFlo8uFGzeNlGYE1acFzXliVdy/qQ==} + peerDependencies: + js-cookie: ^3.0.1 + react: ^16.8 || ^17 || ^18 + react-dom: ^16.8 || ^17 || ^18 + peerDependenciesMeta: + js-cookie: + optional: true + dependencies: + '@react-hookz/deep-equal': 1.0.1 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 + dev: false + /@rollup/plugin-babel/5.3.1_@babel+core@7.17.8+rollup@2.70.1: resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -1443,16 +1462,27 @@ packages: string.prototype.matchall: 4.0.7 dev: true - /@tanstack/react-table/8.0.0-alpha.8_581fa33d3647c30d8078674dcd1b240a: - resolution: {integrity: sha512-Byp6ScoGxVRLXAWJQm24LbFS5VfYSDJgo7mN4+DuuhBJY88VaWLPcbDcj60OHfxWA+ttUemLJqHEqjlH1ELa9w==} + /@tanstack/react-table/8.0.0-alpha.11_react-dom@18.0.0+react@18.0.0: + resolution: {integrity: sha512-Ds1kqVwdK89yoZ6HvX3+y2zICJre/WLQQxBQh2mNAQE4nI9bsgVVudn5DWWvZsrEfJxO/zv+aoLa1byEVlZyTA==} engines: {node: '>=12'} peerDependencies: react: '>=16' react-dom: '>=16' dependencies: - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 - use-sync-external-store: 1.0.0-rc.0_react@18.0.0-rc.3 + '@tanstack/table-core': 8.0.0-alpha.10_react-dom@18.0.0+react@18.0.0 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 + dev: false + + /@tanstack/table-core/8.0.0-alpha.10_react-dom@18.0.0+react@18.0.0: + resolution: {integrity: sha512-goTPQ6SXrhL+PGTJVuQUfmLLwpurd11TaWf6S7Sm7I2C9cpzYN4qAsyAxNQm9fTK+7rrdtZf7lJXgnJKihurgw==} + engines: {node: '>=12'} + peerDependencies: + react: '>=16' + react-dom: '>=16' + dependencies: + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 dev: false /@types/estree/0.0.39: @@ -1463,12 +1493,8 @@ packages: resolution: {integrity: sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==} dev: true - /@types/js-cookie/2.2.7: - resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} - dev: false - - /@types/json-schema/7.0.10: - resolution: {integrity: sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A==} + /@types/json-schema/7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true /@types/json5/0.0.29: @@ -1478,11 +1504,11 @@ packages: /@types/lodash-es/4.17.6: resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} dependencies: - '@types/lodash': 4.14.180 + '@types/lodash': 4.14.181 dev: true - /@types/lodash/4.14.180: - resolution: {integrity: sha512-XOKXa1KIxtNXgASAnwj7cnttJxS4fksBRywK/9LzRV5YxrF80BXZIGeQSuoESQ/VkUj30Ae0+YcuHc15wJCB2g==} + /@types/lodash/4.14.181: + resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} dev: true /@types/node/17.0.23: @@ -1554,8 +1580,8 @@ packages: resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} dev: true - /@typescript-eslint/eslint-plugin/5.16.0_bc68a9cd5bf604202498b1a9faaf9387: - resolution: {integrity: sha512-SJoba1edXvQRMmNI505Uo4XmGbxCK9ARQpkvOd00anxzri9RNQk0DDCxD+LIl+jYhkzOJiOMMKYEHnHEODjdCw==} + /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5: + resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1565,12 +1591,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.16.0_eslint@8.11.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.16.0 - '@typescript-eslint/type-utils': 5.16.0_eslint@8.11.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.16.0_eslint@8.11.0+typescript@4.6.3 + '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.11.0 + eslint: 8.12.0 functional-red-black-tree: 1.0.1 ignore: 5.2.0 regexpp: 3.2.0 @@ -1581,7 +1607,7 @@ packages: - supports-color dev: true - /@typescript-eslint/parser/4.33.0_eslint@8.11.0+typescript@4.6.3: + /@typescript-eslint/parser/4.33.0_eslint@8.12.0+typescript@4.6.3: resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -1595,14 +1621,14 @@ packages: '@typescript-eslint/types': 4.33.0 '@typescript-eslint/typescript-estree': 4.33.0_typescript@4.6.3 debug: 4.3.4 - eslint: 8.11.0 + eslint: 8.12.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.16.0_eslint@8.11.0+typescript@4.6.3: - resolution: {integrity: sha512-fkDq86F0zl8FicnJtdXakFs4lnuebH6ZADDw6CYQv0UZeIjHvmEw87m9/29nk2Dv5Lmdp0zQ3zDQhiMWQf/GbA==} + /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1611,11 +1637,11 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.16.0 - '@typescript-eslint/types': 5.16.0 - '@typescript-eslint/typescript-estree': 5.16.0_typescript@4.6.3 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 debug: 4.3.4 - eslint: 8.11.0 + eslint: 8.12.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color @@ -1629,16 +1655,16 @@ packages: '@typescript-eslint/visitor-keys': 4.33.0 dev: true - /@typescript-eslint/scope-manager/5.16.0: - resolution: {integrity: sha512-P+Yab2Hovg8NekLIR/mOElCDPyGgFZKhGoZA901Yax6WR6HVeGLbsqJkZ+Cvk5nts/dAlFKm8PfL43UZnWdpIQ==} + /@typescript-eslint/scope-manager/5.17.0: + resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.16.0 - '@typescript-eslint/visitor-keys': 5.16.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 dev: true - /@typescript-eslint/type-utils/5.16.0_eslint@8.11.0+typescript@4.6.3: - resolution: {integrity: sha512-SKygICv54CCRl1Vq5ewwQUJV/8padIWvPgCxlWPGO/OgQLCijY9G7lDu6H+mqfQtbzDNlVjzVWQmeqbLMBLEwQ==} + /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1647,9 +1673,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.16.0_eslint@8.11.0+typescript@4.6.3 + '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 debug: 4.3.4 - eslint: 8.11.0 + eslint: 8.12.0 tsutils: 3.21.0_typescript@4.6.3 typescript: 4.6.3 transitivePeerDependencies: @@ -1661,8 +1687,8 @@ packages: engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/types/5.16.0: - resolution: {integrity: sha512-oUorOwLj/3/3p/HFwrp6m/J2VfbLC8gjW5X3awpQJ/bSG+YRGFS4dpsvtQ8T2VNveV+LflQHjlLvB6v0R87z4g==} + /@typescript-eslint/types/5.17.0: + resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -1687,8 +1713,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree/5.16.0_typescript@4.6.3: - resolution: {integrity: sha512-SE4VfbLWUZl9MR+ngLSARptUv2E8brY0luCdgmUevU6arZRY/KxYoLI/3V/yxaURR8tLRN7bmZtJdgmzLHI6pQ==} + /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3: + resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1696,8 +1722,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.16.0 - '@typescript-eslint/visitor-keys': 5.16.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/visitor-keys': 5.17.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -1708,19 +1734,19 @@ packages: - supports-color dev: true - /@typescript-eslint/utils/5.16.0_eslint@8.11.0+typescript@4.6.3: - resolution: {integrity: sha512-iYej2ER6AwmejLWMWzJIHy3nPJeGDuCqf8Jnb+jAQVoPpmWzwQOfa9hWVB8GIQE5gsCv/rfN4T+AYb/V06WseQ==} + /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3: + resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@types/json-schema': 7.0.10 - '@typescript-eslint/scope-manager': 5.16.0 - '@typescript-eslint/types': 5.16.0 - '@typescript-eslint/typescript-estree': 5.16.0_typescript@4.6.3 - eslint: 8.11.0 + '@types/json-schema': 7.0.11 + '@typescript-eslint/scope-manager': 5.17.0 + '@typescript-eslint/types': 5.17.0 + '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 + eslint: 8.12.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.11.0 + eslint-utils: 3.0.0_eslint@8.12.0 transitivePeerDependencies: - supports-color - typescript @@ -1734,11 +1760,11 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /@typescript-eslint/visitor-keys/5.16.0: - resolution: {integrity: sha512-jqxO8msp5vZDhikTwq9ubyMHqZ67UIvawohr4qF3KhlpL7gzSjOd+8471H3nh5LyABkaI85laEKKU8SnGUK5/g==} + /@typescript-eslint/visitor-keys/5.17.0: + resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.16.0 + '@typescript-eslint/types': 5.17.0 eslint-visitor-keys: 3.3.0 dev: true @@ -1782,10 +1808,6 @@ packages: - supports-color dev: true - /@xobotyi/scrollbar-width/1.9.5: - resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} - dev: false - /acorn-jsx/5.3.2_acorn@8.7.0: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -1855,7 +1877,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 get-intrinsic: 1.1.1 is-string: 1.0.7 dev: true @@ -1871,7 +1893,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 dev: true /async/0.9.2: @@ -1961,8 +1983,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001320 - electron-to-chromium: 1.4.93 + caniuse-lite: 1.0.30001322 + electron-to-chromium: 1.4.101 escalade: 3.1.1 node-releases: 2.0.2 picocolors: 1.0.0 @@ -1989,8 +2011,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite/1.0.30001320: - resolution: {integrity: sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA==} + /caniuse-lite/1.0.30001322: + resolution: {integrity: sha512-neRmrmIrCGuMnxGSoh+x7zYtQFFgnSY2jaomjU56sCkTA6JINqQrxutF459JpWcWRajvoyn95sOXq4Pqrnyjew==} dev: true /chalk/2.4.2: @@ -2073,12 +2095,6 @@ packages: safe-buffer: 5.1.2 dev: true - /copy-to-clipboard/3.3.1: - resolution: {integrity: sha512-i13qo6kIHTTpCm8/Wup+0b1mVWETvu2kIMzKoK8FpkLkFxlt0znUAHcMzox+T8sPlqtZXq3CulEjQHsYiGFJUw==} - dependencies: - toggle-selection: 1.0.6 - dev: false - /core-js-compat/3.21.1: resolution: {integrity: sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==} dependencies: @@ -2100,23 +2116,9 @@ packages: engines: {node: '>=8'} dev: true - /css-in-js-utils/2.0.1: - resolution: {integrity: sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==} - dependencies: - hyphenate-style-name: 1.0.4 - isobject: 3.0.1 - dev: false - - /css-tree/1.1.3: - resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} - engines: {node: '>=8.0.0'} - dependencies: - mdn-data: 2.0.14 - source-map: 0.6.1 - dev: false - /csstype/3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} + dev: true /dayjs/1.11.0: resolution: {integrity: sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug==} @@ -2191,18 +2193,12 @@ packages: jake: 10.8.4 dev: true - /electron-to-chromium/1.4.93: - resolution: {integrity: sha512-ywq9Pc5Gwwpv7NG767CtoU8xF3aAUQJjH9//Wy3MBCg4w5JSLbJUq2L8IsCdzPMjvSgxuue9WcVaTOyyxCL0aQ==} + /electron-to-chromium/1.4.101: + resolution: {integrity: sha512-XJH+XmJjACx1S7ASl/b//KePcda5ocPnFH2jErztXcIS8LpP0SE6rX8ZxiY5/RaDPnaF1rj0fPaHfppzb0e2Aw==} dev: true - /error-stack-parser/2.0.7: - resolution: {integrity: sha512-chLOW0ZGRf4s8raLrDxa5sdkvPec5YdvwbFnqJme4rk0rFajP8mPtrDL1+I+CwrQDCjswDA5sREX7jYQDQs9vA==} - dependencies: - stackframe: 1.2.1 - dev: false - - /es-abstract/1.19.1: - resolution: {integrity: sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==} + /es-abstract/1.19.2: + resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -2236,8 +2232,8 @@ packages: is-symbol: 1.0.4 dev: true - /esbuild-android-64/0.14.27: - resolution: {integrity: sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ==} + /esbuild-android-64/0.14.29: + resolution: {integrity: sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -2245,8 +2241,8 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.27: - resolution: {integrity: sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ==} + /esbuild-android-arm64/0.14.29: + resolution: {integrity: sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -2254,8 +2250,8 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.27: - resolution: {integrity: sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g==} + /esbuild-darwin-64/0.14.29: + resolution: {integrity: sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -2263,8 +2259,8 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.27: - resolution: {integrity: sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ==} + /esbuild-darwin-arm64/0.14.29: + resolution: {integrity: sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -2272,8 +2268,8 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.27: - resolution: {integrity: sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA==} + /esbuild-freebsd-64/0.14.29: + resolution: {integrity: sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -2281,8 +2277,8 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.27: - resolution: {integrity: sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA==} + /esbuild-freebsd-arm64/0.14.29: + resolution: {integrity: sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -2290,8 +2286,8 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.27: - resolution: {integrity: sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw==} + /esbuild-linux-32/0.14.29: + resolution: {integrity: sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -2299,8 +2295,8 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.27: - resolution: {integrity: sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg==} + /esbuild-linux-64/0.14.29: + resolution: {integrity: sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -2308,8 +2304,8 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.27: - resolution: {integrity: sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw==} + /esbuild-linux-arm/0.14.29: + resolution: {integrity: sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -2317,8 +2313,8 @@ packages: dev: true optional: true - /esbuild-linux-arm64/0.14.27: - resolution: {integrity: sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ==} + /esbuild-linux-arm64/0.14.29: + resolution: {integrity: sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -2326,8 +2322,8 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.27: - resolution: {integrity: sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A==} + /esbuild-linux-mips64le/0.14.29: + resolution: {integrity: sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -2335,8 +2331,8 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.27: - resolution: {integrity: sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA==} + /esbuild-linux-ppc64le/0.14.29: + resolution: {integrity: sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -2344,8 +2340,8 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.27: - resolution: {integrity: sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg==} + /esbuild-linux-riscv64/0.14.29: + resolution: {integrity: sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -2353,8 +2349,8 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.27: - resolution: {integrity: sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg==} + /esbuild-linux-s390x/0.14.29: + resolution: {integrity: sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -2362,8 +2358,8 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.27: - resolution: {integrity: sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q==} + /esbuild-netbsd-64/0.14.29: + resolution: {integrity: sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -2371,8 +2367,8 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.27: - resolution: {integrity: sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw==} + /esbuild-openbsd-64/0.14.29: + resolution: {integrity: sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -2380,8 +2376,8 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.27: - resolution: {integrity: sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg==} + /esbuild-sunos-64/0.14.29: + resolution: {integrity: sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -2389,8 +2385,8 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.27: - resolution: {integrity: sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw==} + /esbuild-windows-32/0.14.29: + resolution: {integrity: sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -2398,8 +2394,8 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.27: - resolution: {integrity: sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg==} + /esbuild-windows-64/0.14.29: + resolution: {integrity: sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -2407,8 +2403,8 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.27: - resolution: {integrity: sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg==} + /esbuild-windows-arm64/0.14.29: + resolution: {integrity: sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -2416,32 +2412,32 @@ packages: dev: true optional: true - /esbuild/0.14.27: - resolution: {integrity: sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q==} + /esbuild/0.14.29: + resolution: {integrity: sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - esbuild-android-64: 0.14.27 - esbuild-android-arm64: 0.14.27 - esbuild-darwin-64: 0.14.27 - esbuild-darwin-arm64: 0.14.27 - esbuild-freebsd-64: 0.14.27 - esbuild-freebsd-arm64: 0.14.27 - esbuild-linux-32: 0.14.27 - esbuild-linux-64: 0.14.27 - esbuild-linux-arm: 0.14.27 - esbuild-linux-arm64: 0.14.27 - esbuild-linux-mips64le: 0.14.27 - esbuild-linux-ppc64le: 0.14.27 - esbuild-linux-riscv64: 0.14.27 - esbuild-linux-s390x: 0.14.27 - esbuild-netbsd-64: 0.14.27 - esbuild-openbsd-64: 0.14.27 - esbuild-sunos-64: 0.14.27 - esbuild-windows-32: 0.14.27 - esbuild-windows-64: 0.14.27 - esbuild-windows-arm64: 0.14.27 + esbuild-android-64: 0.14.29 + esbuild-android-arm64: 0.14.29 + esbuild-darwin-64: 0.14.29 + esbuild-darwin-arm64: 0.14.29 + esbuild-freebsd-64: 0.14.29 + esbuild-freebsd-arm64: 0.14.29 + esbuild-linux-32: 0.14.29 + esbuild-linux-64: 0.14.29 + esbuild-linux-arm: 0.14.29 + esbuild-linux-arm64: 0.14.29 + esbuild-linux-mips64le: 0.14.29 + esbuild-linux-ppc64le: 0.14.29 + esbuild-linux-riscv64: 0.14.29 + esbuild-linux-s390x: 0.14.29 + esbuild-netbsd-64: 0.14.29 + esbuild-openbsd-64: 0.14.29 + esbuild-sunos-64: 0.14.29 + esbuild-windows-32: 0.14.29 + esbuild-windows-64: 0.14.29 + esbuild-windows-arm64: 0.14.29 dev: true /escalade/3.1.1: @@ -2459,7 +2455,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-airbnb-base/15.0.0_fe22d862ffeecaee86c93a006d59e41e: + /eslint-config-airbnb-base/15.0.0_dae71b730d6620b67a20047a747b2eda: resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -2467,14 +2463,14 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.11.0 - eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-import: 2.25.4_eslint@8.12.0 object.assign: 4.1.2 object.entries: 1.1.5 semver: 6.3.0 dev: true - /eslint-config-airbnb-typescript/16.1.4_199a3777d25e90e3898667ddb95142b1: + /eslint-config-airbnb-typescript/16.1.4_1a3f98bf42a335fa5aa49fc0ce2fcb90: resolution: {integrity: sha512-dfm2cEaYXh4mCYd+RyJO8+PQfd5/zp8WwrCeRznly5qD9W5tal3KTjgdInYWuEAdwWnNJxWcmQ/HFiA4bfkM1g==} peerDependencies: '@typescript-eslint/eslint-plugin': ^5.0.0 @@ -2482,14 +2478,14 @@ packages: eslint: ^7.32.0 || ^8.2.0 eslint-plugin-import: ^2.25.3 dependencies: - '@typescript-eslint/eslint-plugin': 5.16.0_bc68a9cd5bf604202498b1a9faaf9387 - '@typescript-eslint/parser': 5.16.0_eslint@8.11.0+typescript@4.6.3 - eslint: 8.11.0 - eslint-config-airbnb-base: 15.0.0_fe22d862ffeecaee86c93a006d59e41e - eslint-plugin-import: 2.25.4_eslint@8.11.0 + '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 + '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 + eslint: 8.12.0 + eslint-config-airbnb-base: 15.0.0_dae71b730d6620b67a20047a747b2eda + eslint-plugin-import: 2.25.4_eslint@8.12.0 dev: true - /eslint-config-airbnb/19.0.4_21dd17da442cb057dd6c2041daee4072: + /eslint-config-airbnb/19.0.4_3feb31751c277f688db057d8eb6c50f7: resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2499,15 +2495,15 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 dependencies: - eslint: 8.11.0 - eslint-config-airbnb-base: 15.0.0_fe22d862ffeecaee86c93a006d59e41e - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-react-hooks: 4.3.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-config-airbnb-base: 15.0.0_dae71b730d6620b67a20047a747b2eda + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-react-hooks: 4.4.0_eslint@8.12.0 object.assign: 4.1.2 object.entries: 1.1.5 dev: true - /eslint-config-standard-with-typescript/21.0.1_9af640a1891a7e55dd23a89beb2108f1: + /eslint-config-standard-with-typescript/21.0.1_6e26b30b89f6d7411e66a9017be825b6: resolution: {integrity: sha512-FeiMHljEJ346Y0I/HpAymNKdrgKEpHpcg/D93FvPHWfCzbT4QyUJba/0FwntZeGLXfUiWDSeKmdJD597d9wwiw==} peerDependencies: '@typescript-eslint/eslint-plugin': ^4.0.1 @@ -2517,19 +2513,19 @@ packages: eslint-plugin-promise: ^4.2.1 || ^5.0.0 typescript: ^3.9 || ^4.0.0 dependencies: - '@typescript-eslint/eslint-plugin': 5.16.0_bc68a9cd5bf604202498b1a9faaf9387 - '@typescript-eslint/parser': 4.33.0_eslint@8.11.0+typescript@4.6.3 - eslint: 8.11.0 - eslint-config-standard: 16.0.3_7dc77a0be22b3241d34262bf15f20ff9 - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 + '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 + '@typescript-eslint/parser': 4.33.0_eslint@8.12.0+typescript@4.6.3 + eslint: 8.12.0 + eslint-config-standard: 16.0.3_146d38e67599a909c4e567a04144449b + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 typescript: 4.6.3 transitivePeerDependencies: - supports-color dev: true - /eslint-config-standard/16.0.3_7dc77a0be22b3241d34262bf15f20ff9: + /eslint-config-standard/16.0.3_146d38e67599a909c4e567a04144449b: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -2537,10 +2533,10 @@ packages: eslint-plugin-node: ^11.1.0 eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: - eslint: 8.11.0 - eslint-plugin-import: 2.25.4_eslint@8.11.0 - eslint-plugin-node: 11.1.0_eslint@8.11.0 - eslint-plugin-promise: 6.0.0_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-import: 2.25.4_eslint@8.12.0 + eslint-plugin-node: 11.1.0_eslint@8.12.0 + eslint-plugin-promise: 6.0.0_eslint@8.12.0 dev: true /eslint-import-resolver-node/0.3.6: @@ -2550,7 +2546,7 @@ packages: resolve: 1.22.0 dev: true - /eslint-import-resolver-typescript/2.7.0_fe22d862ffeecaee86c93a006d59e41e: + /eslint-import-resolver-typescript/2.7.0_dae71b730d6620b67a20047a747b2eda: resolution: {integrity: sha512-MNHS3u5pebvROX4MjGP9coda589ZGfL1SqdxUV4kSrcclfDRWvNE2D+eljbnWVMvWDVRgT89nhscMHPKYGcObQ==} engines: {node: '>=4'} peerDependencies: @@ -2558,8 +2554,8 @@ packages: eslint-plugin-import: '*' dependencies: debug: 4.3.4 - eslint: 8.11.0 - eslint-plugin-import: 2.25.4_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-import: 2.25.4_eslint@8.12.0 glob: 7.2.0 is-glob: 4.0.3 resolve: 1.22.0 @@ -2576,18 +2572,18 @@ packages: find-up: 2.1.0 dev: true - /eslint-plugin-es/3.0.1_eslint@8.11.0: + /eslint-plugin-es/3.0.1_eslint@8.12.0: resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' dependencies: - eslint: 8.11.0 + eslint: 8.12.0 eslint-utils: 2.1.0 regexpp: 3.2.0 dev: true - /eslint-plugin-import/2.25.4_eslint@8.11.0: + /eslint-plugin-import/2.25.4_eslint@8.12.0: resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} engines: {node: '>=4'} peerDependencies: @@ -2597,7 +2593,7 @@ packages: array.prototype.flat: 1.2.5 debug: 2.6.9 doctrine: 2.1.0 - eslint: 8.11.0 + eslint: 8.12.0 eslint-import-resolver-node: 0.3.6 eslint-module-utils: 2.7.3 has: 1.0.3 @@ -2609,14 +2605,14 @@ packages: tsconfig-paths: 3.14.1 dev: true - /eslint-plugin-node/11.1.0_eslint@8.11.0: + /eslint-plugin-node/11.1.0_eslint@8.12.0: resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=5.16.0' dependencies: - eslint: 8.11.0 - eslint-plugin-es: 3.0.1_eslint@8.11.0 + eslint: 8.12.0 + eslint-plugin-es: 3.0.1_eslint@8.12.0 eslint-utils: 2.1.0 ignore: 5.2.0 minimatch: 3.1.2 @@ -2624,22 +2620,22 @@ packages: semver: 6.3.0 dev: true - /eslint-plugin-promise/6.0.0_eslint@8.11.0: + /eslint-plugin-promise/6.0.0_eslint@8.12.0: resolution: {integrity: sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 dependencies: - eslint: 8.11.0 + eslint: 8.12.0 dev: true - /eslint-plugin-react-hooks/4.3.0_eslint@8.11.0: - resolution: {integrity: sha512-XslZy0LnMn+84NEG9jSGR6eGqaZB3133L8xewQo3fQagbQuGt7a63gf+P1NGKZavEYEC3UXaWEAA/AqDkuN6xA==} + /eslint-plugin-react-hooks/4.4.0_eslint@8.12.0: + resolution: {integrity: sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.11.0 + eslint: 8.12.0 dev: true /eslint-scope/5.1.1: @@ -2665,13 +2661,13 @@ packages: eslint-visitor-keys: 1.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.11.0: + /eslint-utils/3.0.0_eslint@8.12.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.11.0 + eslint: 8.12.0 eslint-visitor-keys: 2.1.0 dev: true @@ -2690,8 +2686,8 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.11.0: - resolution: {integrity: sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==} + /eslint/8.12.0: + resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: @@ -2704,7 +2700,7 @@ packages: doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.11.0 + eslint-utils: 3.0.0_eslint@8.12.0 eslint-visitor-keys: 3.3.0 espree: 9.3.1 esquery: 1.4.0 @@ -2786,6 +2782,7 @@ packages: /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true /fast-glob/3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} @@ -2806,14 +2803,6 @@ packages: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} dev: true - /fast-shallow-equal/1.0.0: - resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} - dev: false - - /fastest-stable-stringify/2.0.2: - resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} - dev: false - /fastq/1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: @@ -3024,10 +3013,6 @@ packages: '@babel/runtime': 7.17.8 dev: false - /hyphenate-style-name/1.0.4: - resolution: {integrity: sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==} - dev: false - /idb/6.1.5: resolution: {integrity: sha512-IJtugpKkiVXQn5Y+LteyBCNk1N8xpGV3wWZk9EVtZWH8DYkjBn0bX1XnGP9RkyZF0sAcywa6unHqSWKe7q4LGw==} dev: true @@ -3069,12 +3054,6 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /inline-style-prefixer/6.0.1: - resolution: {integrity: sha512-AsqazZ8KcRzJ9YPN1wMH2aNM7lkWQ8tSPrW5uDk1ziYwiAPWSZnUsC7lfZq+BDqLqz0B4Pho5wscWcJzVvRzDQ==} - dependencies: - css-in-js-utils: 2.0.1 - dev: false - /internal-slot/1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} @@ -3207,11 +3186,6 @@ packages: resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} dev: true - /isobject/3.0.1: - resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=} - engines: {node: '>=0.10.0'} - dev: false - /jake/10.8.4: resolution: {integrity: sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==} engines: {node: '>=10'} @@ -3237,7 +3211,7 @@ packages: hasBin: true dev: true - /jotai/1.6.1_immer@9.0.12+react@18.0.0-rc.3: + /jotai/1.6.1_immer@9.0.12+react@18.0.0: resolution: {integrity: sha512-iNKHmpKGN31KXDqxGLsplb4HLTroYtiM7oBEQ9leyoXSEGQGUZKK5IOV4kN6fUmkBSJbwb5WnmInYOYzpjIDOw==} engines: {node: '>=12.7.0'} peerDependencies: @@ -3272,11 +3246,7 @@ packages: optional: true dependencies: immer: 9.0.12 - react: 18.0.0-rc.3 - dev: false - - /js-cookie/2.2.1: - resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + react: 18.0.0 dev: false /js-tokens/4.0.0: @@ -3407,10 +3377,6 @@ packages: sourcemap-codec: 1.4.8 dev: true - /mdn-data/2.0.14: - resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} - dev: false - /memoize-one/5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} dev: false @@ -3454,26 +3420,8 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nano-css/5.3.4_581fa33d3647c30d8078674dcd1b240a: - resolution: {integrity: sha512-wfcviJB6NOxDIDfr7RFn/GlaN7I/Bhe4d39ZRCJ3xvZX60LVe2qZ+rDqM49nm4YT81gAjzS+ZklhKP/Gnfnubg==} - peerDependencies: - react: '*' - react-dom: '*' - dependencies: - css-tree: 1.1.3 - csstype: 3.0.11 - fastest-stable-stringify: 2.0.2 - inline-style-prefixer: 6.0.1 - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 - rtl-css-js: 1.15.0 - sourcemap-codec: 1.4.8 - stacktrace-js: 2.0.2 - stylis: 4.0.13 - dev: false - - /nanoid/3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + /nanoid/3.3.2: + resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -3520,7 +3468,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 dev: true /object.values/1.1.5: @@ -3529,7 +3477,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 dev: true /once/1.4.0: @@ -3613,7 +3561,7 @@ packages: resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.1 + nanoid: 3.3.2 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -3643,14 +3591,14 @@ packages: safe-buffer: 5.2.1 dev: true - /react-dom/18.0.0-rc.3_react@18.0.0-rc.3: - resolution: {integrity: sha512-WPlWXyzZp22+uGUNNNoZnAPWAcr5sSeaEj0S1lLqKc2DkovKugJl1VgnBfk6gQX9llTb5/qkRNVtW31WdhG8iA==} + /react-dom/18.0.0_react@18.0.0: + resolution: {integrity: sha512-XqX7uzmFo0pUceWFCt7Gff6IyIMzFUn7QMZrbrQfGxtaxXZIcGQzoNpRLE3fQLnS4XzLLPMZX2T9TRcSrasicw==} peerDependencies: - react: ^18.0.0-rc.3 + react: ^18.0.0 dependencies: loose-envify: 1.4.0 - react: 18.0.0-rc.3 - scheduler: 0.21.0-rc.3-next-de516ca5a-20220321 + react: 18.0.0 + scheduler: 0.21.0 dev: false /react-refresh/0.11.0: @@ -3658,73 +3606,39 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-router-dom/6.2.2_581fa33d3647c30d8078674dcd1b240a: + /react-router-dom/6.2.2_react-dom@18.0.0+react@18.0.0: resolution: {integrity: sha512-AtYEsAST7bDD4dLSQHDnk/qxWLJdad5t1HFa1qJyUrCeGgEuCSw0VB/27ARbF9Fi/W5598ujvJOm3ujUCVzuYQ==} peerDependencies: react: '>=16.8' react-dom: '>=16.8' dependencies: history: 5.3.0 - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 - react-router: 6.2.2_react@18.0.0-rc.3 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 + react-router: 6.2.2_react@18.0.0 dev: false - /react-router/6.2.2_react@18.0.0-rc.3: + /react-router/6.2.2_react@18.0.0: resolution: {integrity: sha512-/MbxyLzd7Q7amp4gDOGaYvXwhEojkJD5BtExkuKmj39VEE0m3l/zipf6h2WIB2jyAO0lI6NGETh4RDcktRm4AQ==} peerDependencies: react: '>=16.8' dependencies: history: 5.3.0 - react: 18.0.0-rc.3 + react: 18.0.0 dev: false - /react-universal-interface/0.6.2_react@18.0.0-rc.3+tslib@2.3.1: - resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} - peerDependencies: - react: '*' - tslib: '*' - dependencies: - react: 18.0.0-rc.3 - tslib: 2.3.1 - dev: false - - /react-use/17.3.2_581fa33d3647c30d8078674dcd1b240a: - resolution: {integrity: sha512-bj7OD0/1wL03KyWmzFXAFe425zziuTf7q8olwCYBfOeFHY1qfO1FAMjROQLsLZYwG4Rx63xAfb7XAbBrJsZmEw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 - react-dom: ^16.8.0 || ^17.0.0 - dependencies: - '@types/js-cookie': 2.2.7 - '@xobotyi/scrollbar-width': 1.9.5 - copy-to-clipboard: 3.3.1 - fast-deep-equal: 3.1.3 - fast-shallow-equal: 1.0.0 - js-cookie: 2.2.1 - nano-css: 5.3.4_581fa33d3647c30d8078674dcd1b240a - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 - react-universal-interface: 0.6.2_react@18.0.0-rc.3+tslib@2.3.1 - resize-observer-polyfill: 1.5.1 - screenfull: 5.2.0 - set-harmonic-interval: 1.0.1 - throttle-debounce: 3.0.1 - ts-easing: 0.2.0 - tslib: 2.3.1 - dev: false - - /react-virtualized-auto-sizer/1.0.6_581fa33d3647c30d8078674dcd1b240a: + /react-virtualized-auto-sizer/1.0.6_react-dom@18.0.0+react@18.0.0: resolution: {integrity: sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ==} engines: {node: '>8.0.0'} peerDependencies: react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 dependencies: - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 dev: false - /react-window/1.8.6_581fa33d3647c30d8078674dcd1b240a: + /react-window/1.8.6_react-dom@18.0.0+react@18.0.0: resolution: {integrity: sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==} engines: {node: '>8.0.0'} peerDependencies: @@ -3733,12 +3647,12 @@ packages: dependencies: '@babel/runtime': 7.17.8 memoize-one: 5.2.1 - react: 18.0.0-rc.3 - react-dom: 18.0.0-rc.3_react@18.0.0-rc.3 + react: 18.0.0 + react-dom: 18.0.0_react@18.0.0 dev: false - /react/18.0.0-rc.3: - resolution: {integrity: sha512-2NzSty8Dtq+5lnOdnP5MNA2iSn51PmvAuqgHLmUoXU3ohEtL+r0a1Az1iWvurMBIqW9cz49fJ42AM/+ziPmlWg==} + /react/18.0.0: + resolution: {integrity: sha512-x+VL6wbT4JRVPm7EGxXhZ8w8LTROaxPXOqhlGyVSrv0sB1jkyFGgXxJ8LVoPRLvPR6/CIZGFmfzqUa2NYeMr2A==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 @@ -3821,10 +3735,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /resize-observer-polyfill/1.5.1: - resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} - dev: false - /resolve-from/4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3871,12 +3781,6 @@ packages: fsevents: 2.3.2 dev: true - /rtl-css-js/1.15.0: - resolution: {integrity: sha512-99Cu4wNNIhrI10xxUaABHsdDqzalrSRTie4GeCmbGVuehm4oj+fIy8fTzB+16pmKe8Bv9rl+hxIBez6KxExTew==} - dependencies: - '@babel/runtime': 7.17.8 - dev: false - /run-parallel/1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: @@ -3901,17 +3805,12 @@ packages: source-map-js: 1.0.2 dev: true - /scheduler/0.21.0-rc.3-next-de516ca5a-20220321: - resolution: {integrity: sha512-g/Zjh5Nz9nxRP3xQQJuegLJWzJQuO03XF1WkWRS37PNczvw1jOV30utrrCxx819JNsA4A3JXAhdBjyZj81LMfw==} + /scheduler/0.21.0: + resolution: {integrity: sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ==} dependencies: loose-envify: 1.4.0 dev: false - /screenfull/5.2.0: - resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} - engines: {node: '>=0.10.0'} - dev: false - /semver/6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true @@ -3936,11 +3835,6 @@ packages: randombytes: 2.1.0 dev: true - /set-harmonic-interval/1.0.1: - resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} - engines: {node: '>=6.9'} - dev: false - /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -3978,11 +3872,6 @@ packages: source-map: 0.6.1 dev: true - /source-map/0.5.6: - resolution: {integrity: sha1-dc449SvwczxafwwRjYEzSiu19BI=} - engines: {node: '>=0.10.0'} - dev: false - /source-map/0.5.7: resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} engines: {node: '>=0.10.0'} @@ -3991,6 +3880,7 @@ packages: /source-map/0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: true /source-map/0.7.3: resolution: {integrity: sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==} @@ -4006,38 +3896,14 @@ packages: /sourcemap-codec/1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - - /stack-generator/2.0.5: - resolution: {integrity: sha512-/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==} - dependencies: - stackframe: 1.2.1 - dev: false - - /stackframe/1.2.1: - resolution: {integrity: sha512-h88QkzREN/hy8eRdyNhhsO7RSJ5oyTqxxmmn0dzBIMUclZsjpfmrsg81vp8mjjAs2vAZ72nyWxRUwSwmh0e4xg==} - dev: false - - /stacktrace-gps/3.0.4: - resolution: {integrity: sha512-qIr8x41yZVSldqdqe6jciXEaSCKw1U8XTXpjDuy0ki/apyTn/r3w9hDAAQOhZdxvsC93H+WwwEu5cq5VemzYeg==} - dependencies: - source-map: 0.5.6 - stackframe: 1.2.1 - dev: false - - /stacktrace-js/2.0.2: - resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} - dependencies: - error-stack-parser: 2.0.7 - stack-generator: 2.0.5 - stacktrace-gps: 3.0.4 - dev: false + dev: true /string.prototype.matchall/4.0.7: resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.19.1 + es-abstract: 1.19.2 get-intrinsic: 1.1.1 has-symbols: 1.0.3 internal-slot: 1.0.3 @@ -4090,10 +3956,6 @@ packages: engines: {node: '>=8'} dev: true - /stylis/4.0.13: - resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} - dev: false - /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4113,12 +3975,12 @@ packages: engines: {node: '>= 0.4'} dev: true - /swr/1.2.2_react@18.0.0-rc.3: + /swr/1.2.2_react@18.0.0: resolution: {integrity: sha512-ky0BskS/V47GpW8d6RU7CPsr6J8cr7mQD6+do5eky3bM0IyJaoi3vO8UhvrzJaObuTlGhPl2szodeB2dUd76Xw==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: - react: 18.0.0-rc.3 + react: 18.0.0 dev: false /temp-dir/2.0.0: @@ -4151,11 +4013,6 @@ packages: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true - /throttle-debounce/3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} - dev: false - /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} @@ -4168,20 +4025,12 @@ packages: is-number: 7.0.0 dev: true - /toggle-selection/1.0.6: - resolution: {integrity: sha1-bkWxJj8gF/oKzH2J14sVuL932jI=} - dev: false - /tr46/1.0.1: resolution: {integrity: sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=} dependencies: punycode: 2.1.1 dev: true - /ts-easing/0.2.0: - resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} - dev: false - /tsconfig-paths/3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: @@ -4195,10 +4044,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - dev: false - /tsutils/3.21.0_typescript@4.6.3: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -4292,29 +4137,21 @@ packages: punycode: 2.1.1 dev: true - /use-immer/0.6.0_immer@9.0.12+react@18.0.0-rc.3: + /use-immer/0.6.0_immer@9.0.12+react@18.0.0: resolution: {integrity: sha512-dFGRfvWCqPDTOt/S431ETYTg6+uxbpb7A1pptufwXVzGJY3RlXr38+3wyLNpc6SbbmAKjWl6+EP6uW74fkEsXQ==} peerDependencies: immer: '>=2.0.0' react: ^16.8.0 || ^17.0.1 dependencies: immer: 9.0.12 - react: 18.0.0-rc.3 - dev: false - - /use-sync-external-store/1.0.0-rc.0_react@18.0.0-rc.3: - resolution: {integrity: sha512-0U9Xlc2QDFzSGMB0DvcJQL0+DIdxDPJC7mnZlYFbl7wrSrPMcs89X5TVkNB6Dzg618m8lZop+U+J6ow3vq9RAQ==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0-rc - dependencies: - react: 18.0.0-rc.3 + react: 18.0.0 dev: false /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true - /vite-plugin-pwa/0.11.13_vite@2.8.6: + /vite-plugin-pwa/0.11.13_vite@2.9.0: resolution: {integrity: sha512-Ssj14m3TRVLfkFEAWSMcFE2d1cSdEZyrVTzfY2lSL+umHYvcIFHVDAY143sygtBCb44OPczsAOmWwBTxwOvh7g==} peerDependencies: vite: ^2.0.0 @@ -4323,7 +4160,7 @@ packages: fast-glob: 3.2.11 pretty-bytes: 5.6.0 rollup: 2.70.1 - vite: 2.8.6_sass@1.49.9 + vite: 2.9.0_sass@1.49.9 workbox-build: 6.5.2 workbox-window: 6.5.2 transitivePeerDependencies: @@ -4331,7 +4168,7 @@ packages: - supports-color dev: true - /vite-plugin-windicss/1.8.3_vite@2.8.6: + /vite-plugin-windicss/1.8.3_vite@2.9.0: resolution: {integrity: sha512-RIw2GD6H6cKNE8wZXVOBs4L1uTicVS0FaAkeqXvy1oyuXLC4SXmvnzEuoK0+qFuWJjW0ECNwE8eU+ZZhzNQKUg==} peerDependencies: vite: ^2.0.1 @@ -4339,13 +4176,13 @@ packages: '@windicss/plugin-utils': 1.8.3 debug: 4.3.4 kolorist: 1.5.1 - vite: 2.8.6_sass@1.49.9 + vite: 2.9.0_sass@1.49.9 windicss: 3.5.1 transitivePeerDependencies: - supports-color dev: true - /vite-tsconfig-paths/3.4.1_vite@2.8.6: + /vite-tsconfig-paths/3.4.1_vite@2.9.0: resolution: {integrity: sha512-SgK3/pnTuJ3i+gMSAWLR6VCPSw26bnxawrmXGvCDjJgk8MAQgmbCrFrAzfwbwZBXSqSuvWEuX04Wt73qJKx8fQ==} peerDependencies: vite: '>2.0.0-0' @@ -4354,13 +4191,13 @@ packages: globrex: 0.1.2 recrawl-sync: 2.2.2 tsconfig-paths: 3.14.1 - vite: 2.8.6_sass@1.49.9 + vite: 2.9.0_sass@1.49.9 transitivePeerDependencies: - supports-color dev: true - /vite/2.8.6_sass@1.49.9: - resolution: {integrity: sha512-e4H0QpludOVKkmOsRyqQ7LTcMUDF3mcgyNU4lmi0B5JUbe0ZxeBBl8VoZ8Y6Rfn9eFKYtdXNPcYK97ZwH+K2ug==} + /vite/2.9.0_sass@1.49.9: + resolution: {integrity: sha512-5NAnNqzPmZzJvrswZGeTS2JHrBGIzIWJA2hBTTMYuoBVEMh0xwE0b5yyIXFxf7F07hrK4ugX2LJ7q6t7iIbd4Q==} engines: {node: '>=12.2.0'} hasBin: true peerDependencies: @@ -4375,7 +4212,7 @@ packages: stylus: optional: true dependencies: - esbuild: 0.14.27 + esbuild: 0.14.29 postcss: 8.4.12 resolve: 1.22.0 rollup: 2.70.1 diff --git a/src/containers/Connections/index.tsx b/src/containers/Connections/index.tsx index b21b4b1..4bcba8e 100644 --- a/src/containers/Connections/index.tsx +++ b/src/containers/Connections/index.tsx @@ -1,10 +1,9 @@ -import { columnFilterRowsFn, createTable, sortRowsFn } from '@tanstack/react-table' -import { type ColumnSort } from '@tanstack/react-table/build/types/features/Sorting' +import { useIntersectionObserver, useSyncedRef } from '@react-hookz/web/esm' +import { useTable, columnFilterRowsFn, createTable, sortRowsFn } from '@tanstack/react-table' import classnames from 'classnames' import produce from 'immer' import { groupBy } from 'lodash-es' import { useMemo, useLayoutEffect, useRef, useState, useEffect } from 'react' -import { useLatest, useScroll } from 'react-use' import { Header, Checkbox, Modal, Icon, Drawer, Card, Button } from '@components' import { fromNow } from '@lib/date' @@ -47,7 +46,7 @@ function formatSpeed (upload: number, download: number) { } } -const table = createTable().RowType() +const table = createTable() export default function Connections () { const { translation, lang } = useI18n() @@ -95,8 +94,8 @@ export default function Connections () { }, [connections]) // table - const tableRef = useRef(null) - const { x: scrollX } = useScroll(tableRef) + const pinRef = useRef(null) + const intersection = useIntersectionObserver(pinRef, { threshold: [1] }) const columns = useMemo( () => table.createColumns([ table.createDataColumn(Columns.Host, { minWidth: 260, width: 260, header: t(`columns.${Columns.Host}`) }), @@ -113,28 +112,28 @@ export default function Connections () { width: 200, sortDescFirst: true, sortType (rowA, rowB) { - const speedA = rowA.original.speed - const speedB = rowB.original.speed + const speedA = rowA.original?.speed ?? { upload: 0, download: 0 } + const speedB = rowB.original?.speed ?? { upload: 0, download: 0 } return speedA.download === speedB.download ? speedA.upload - speedB.upload : speedA.download - speedB.download }, - cell: cell => formatSpeed(cell.value[0], cell.value[1]), + cell: (cell: { value: [number, number] }) => formatSpeed(cell.value[0], cell.value[1]), }, ), - table.createDataColumn(Columns.Upload, { minWidth: 100, width: 100, header: t(`columns.${Columns.Upload}`), cell: cell => formatTraffic(cell.value) }), - table.createDataColumn(Columns.Download, { minWidth: 100, width: 100, header: t(`columns.${Columns.Download}`), cell: cell => formatTraffic(cell.value) }), + table.createDataColumn(Columns.Upload, { minWidth: 100, width: 100, header: t(`columns.${Columns.Upload}`), cell: cell => formatTraffic(cell.value as number) }), + table.createDataColumn(Columns.Download, { minWidth: 100, width: 100, header: t(`columns.${Columns.Download}`), cell: cell => formatTraffic(cell.value as number) }), table.createDataColumn(Columns.SourceIP, { minWidth: 140, width: 140, header: t(`columns.${Columns.SourceIP}`), filterType: 'equals' }), table.createDataColumn( Columns.Time, { - minWidth: - 120, + minWidth: 120, width: 120, header: t(`columns.${Columns.Time}`), - cell: cell => fromNow(new Date(cell.value), lang), - sortType: (rowA, rowB) => rowB.original.time - rowA.original.time, - }), + cell: cell => fromNow(new Date(cell.value as string), lang), + sortType: (rowA, rowB) => (rowB.original as FormatConnection).time - (rowA.original as FormatConnection).time, + }, + ), ]), [lang, t], ) @@ -158,7 +157,7 @@ export default function Connections () { } }, [connStreamReader, feed, setTraffic]) - const instance = table.useTable({ + const instance = useTable(table, { data, columns, sortRowsFn, @@ -191,7 +190,7 @@ export default function Connections () { setDrawerState(d => { d.connection.completed = true }) client.closeConnection(drawerState.selectedID) } - const latestConntion = useLatest(drawerState.connection) + const latestConntion = useSyncedRef(drawerState.connection) useEffect(() => { const conn = data.find(c => c.id === drawerState.selectedID)?.original if (conn) { @@ -206,9 +205,9 @@ export default function Connections () { } }, [data, drawerState.selectedID, latestConntion, setDrawerState]) - const scrolled = useMemo(() => scrollX > 0, [scrollX]) + const scrolled = useMemo(() => (intersection?.intersectionRatio ?? 0) < 1, [intersection]) const headers = headerGroup.headers.map((header, idx) => { - const column = header.column // as unknown as TableColumn + const column = header.column const id = column.id return (
{header.renderHeader()} @@ -233,13 +233,13 @@ export default function Connections () { }
{ idx !== headerGroup.headers.length - 1 && -
+
} ) }) - const content = instance.getRows().map(row => { + const content = instance.getRowModel().rows.map(row => { return ( 0 && cell.column.id === Columns.Host, + shadow: scrolled && cell.column.id === Columns.Host, }, ) return ( @@ -286,7 +286,7 @@ export default function Connections () { { devices.length > 1 && } -
+
diff --git a/src/containers/Connections/style.scss b/src/containers/Connections/style.scss index af7b732..bc37cab 100644 --- a/src/containers/Connections/style.scss +++ b/src/containers/Connections/style.scss @@ -28,7 +28,7 @@ &.fixed { position: sticky !important; - left: 0; + left: -0.1px; z-index: 99; &.shadow { box-shadow: inset -9px 0 8px -14px $color-black; diff --git a/src/render.tsx b/src/render.tsx index 0162be0..1b520dd 100644 --- a/src/render.tsx +++ b/src/render.tsx @@ -1,4 +1,4 @@ -import { Suspense } from 'react' +import { Suspense, StrictMode } from 'react' import { createRoot } from 'react-dom/client' import { HashRouter } from 'react-router-dom' @@ -9,11 +9,13 @@ import 'virtual:windi.css' export default function renderApp () { const rootEl = document.getElementById('root') const AppInstance = ( - - }> - - - + + + }> + + + + ) const root = createRoot(rootEl!) diff --git a/src/stores/request.ts b/src/stores/request.ts index fe20dfb..e1202fe 100644 --- a/src/stores/request.ts +++ b/src/stores/request.ts @@ -1,6 +1,6 @@ import { atom, useAtom, useAtomValue } from 'jotai' import { atomWithStorage } from 'jotai/utils' -import { useLocation } from 'react-use' +import { useLocation } from 'react-router-dom' import { isClashX, jsBridge } from '@lib/jsBridge' import { Client } from '@lib/request' diff --git a/vite.config.ts b/vite.config.ts index 1342802..e914423 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,5 +1,5 @@ import react from '@vitejs/plugin-react' -import { defineConfig } from 'vite' +import { defineConfig, splitVendorChunkPlugin } from 'vite' import { VitePWA } from 'vite-plugin-pwa' import windiCSS from 'vite-plugin-windicss' import tsConfigPath from 'vite-tsconfig-paths' @@ -24,6 +24,7 @@ export default defineConfig( name: 'Clash Dashboard', }, }), + splitVendorChunkPlugin(), ], base: './', css: {