From f3ca3d81f937ab7f82d1927f1fd1640192b7be26 Mon Sep 17 00:00:00 2001 From: xiaojiecong Date: Thu, 9 Feb 2023 16:15:44 +0800 Subject: [PATCH] release: v0.0.6 --- CHANGELOG.md | 4 + README.md | 7 +- README.zh_CN.md | 8 +- examples/crx-vue-antd-newtab/package.json | 2 +- .../crx-vue-antd-newtab/src/manifest.json | 2 +- package.json | 2 +- pnpm-lock.yaml | 2119 +++++++++++------ src/constants.ts | 1 + src/http.ts | 2 +- src/index.ts | 160 +- src/manifest.d.ts | 28 +- src/processors/background.ts | 35 +- src/processors/content_scripts.ts | 66 +- src/processors/manifest.ts | 208 +- src/utils.ts | 21 +- 15 files changed, 1704 insertions(+), 961 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 247f245..2b5684c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.6 (2023-2-9) ++ fix: Rollup input issue ++ chore: Overall code optimization + ## 0.0.5 (2022-12-26) + fix: Page does not reload after modifying content_scripts's sass/less. + fix: Cannot remove dynamically injected CSS. diff --git a/README.md b/README.md index c29e334..996bfd1 100644 --- a/README.md +++ b/README.md @@ -69,14 +69,14 @@ npm run build Check out the examples in this repo. + crx-basic -+ crx-react -+ crx-solid -+ crx-jquery + crx-vue + crx-vue-drawer + crx-vue-multi-page + crx-vue-antd-newtab + crx-vue-antd-bookmarks ++ crx-react ++ crx-react-sandbox ++ crx-solid + crx-contentscript-sass-less + crx-executescript-function + crx-executescript-files @@ -88,5 +88,4 @@ Check out this [GIF](./docs/gif.md) preview. ## Notes + After starting the project, you need to refresh the page manually for the first time, so that the client and the server can establish a websocket connection. -+ In manifest.json, when the background.service_worker, action.default_popup, options_page, devtools_page configuration is changed, you need to restart the project. + The html file needs to be placed outside the src directory. diff --git a/README.zh_CN.md b/README.zh_CN.md index 4386816..8f1f28e 100644 --- a/README.zh_CN.md +++ b/README.zh_CN.md @@ -69,23 +69,23 @@ npm run build 在本仓库下的examples目录下: + crx-basic -+ crx-react -+ crx-solid -+ crx-jquery + crx-vue + crx-vue-drawer + crx-vue-multi-page + crx-vue-antd-newtab + crx-vue-antd-bookmarks ++ crx-react ++ crx-react-sandbox ++ crx-solid + crx-contentscript-sass-less + crx-executescript-function + crx-executescript-files + crx-insertcss-files + crx-devtools + 查看这个[GIF](./docs/gif.md)预览效果。 ## 注意事项 + 启动项目后,第一次需要手动刷新页面,这样客户端和服务端便建立了websocket连接。 -+ 在manifest.json中,当background.service_worker, action.default_popup, options_page, devtools_page配置发生变化时,需要重启项目。 + html文件需要放在src目录外层。 diff --git a/examples/crx-vue-antd-newtab/package.json b/examples/crx-vue-antd-newtab/package.json index 16f9761..80611e8 100644 --- a/examples/crx-vue-antd-newtab/package.json +++ b/examples/crx-vue-antd-newtab/package.json @@ -1,5 +1,5 @@ { - "name": "crx-vue-antd-bookmarks", + "name": "crx-vue-antd-newtab", "version": "0.0.1", "scripts": { "web:dev": "vite", diff --git a/examples/crx-vue-antd-newtab/src/manifest.json b/examples/crx-vue-antd-newtab/src/manifest.json index 93dbf5e..4ec996a 100644 --- a/examples/crx-vue-antd-newtab/src/manifest.json +++ b/examples/crx-vue-antd-newtab/src/manifest.json @@ -1,5 +1,5 @@ { - "name": "crx-vue-antd-bookmarks", + "name": "crx-vue-antd-newtab", "description": "A Chrome extension demo.", "version": "1.0.0", "icons": {}, diff --git a/package.json b/package.json index 7bfa6b4..1f220a6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vite-plugin-crx-mv3", - "version": "0.0.5", + "version": "0.0.6", "description": "Build a Chrome Extension with Vite.", "main": "dist/index.js", "scripts": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1033053..1bf6522 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -96,17 +96,6 @@ importers: vite: 3.1.8 vite-plugin-crx-mv3: link:../.. - examples/crx-jquery: - specifiers: - jquery: ^3.6.1 - vite: ^3.0.9 - vite-plugin-crx-mv3: workspace:* - dependencies: - jquery: 3.6.1 - devDependencies: - vite: 3.1.8 - vite-plugin-crx-mv3: link:../.. - examples/crx-react: specifiers: '@types/react': ^17.0.33 @@ -128,6 +117,27 @@ importers: vite: 3.1.8 vite-plugin-crx-mv3: link:../.. + examples/crx-react-sandbox: + specifiers: + '@types/react': ^17.0.33 + '@types/react-dom': ^17.0.10 + '@vitejs/plugin-react': ^1.0.7 + react: ^17.0.2 + react-dom: ^17.0.2 + typescript: ^4.5.4 + vite: ^3.0.9 + vite-plugin-crx-mv3: workspace:* + dependencies: + react: registry.npmmirror.com/react/17.0.2 + react-dom: registry.npmmirror.com/react-dom/17.0.2_react@17.0.2 + devDependencies: + '@types/react': registry.npmmirror.com/@types/react/17.0.50 + '@types/react-dom': registry.npmmirror.com/@types/react-dom/17.0.17 + '@vitejs/plugin-react': registry.npmmirror.com/@vitejs/plugin-react/1.3.2 + typescript: registry.npmmirror.com/typescript/4.8.4 + vite: registry.npmmirror.com/vite/3.1.8 + vite-plugin-crx-mv3: link:../.. + examples/crx-solid: specifiers: solid-js: ^1.5.1 @@ -244,8 +254,8 @@ packages: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.17 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 dev: true /@ant-design/colors/6.0.0: @@ -276,12 +286,7 @@ packages: resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} engines: {node: '>=6.9.0'} dependencies: - '@babel/highlight': 7.18.6 - dev: true - - /@babel/compat-data/7.19.4: - resolution: {integrity: sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==} - engines: {node: '>=6.9.0'} + '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.18.6 dev: true /@babel/core/7.19.6: @@ -311,16 +316,16 @@ packages: resolution: {integrity: sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.4 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2 + jsesc: registry.npmmirror.com/jsesc/2.5.2 dev: true /@babel/helper-annotate-as-pure/7.18.6: resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.4 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 dev: true /@babel/helper-compilation-targets/7.19.3_@babel+core@7.19.6: @@ -329,11 +334,11 @@ packages: peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.19.4 + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.19.4 '@babel/core': 7.19.6 - '@babel/helper-validator-option': 7.18.6 - browserslist: 4.21.4 - semver: 6.3.0 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option/7.18.6 + browserslist: registry.npmmirror.com/browserslist/4.21.4 + semver: registry.npmmirror.com/semver/6.3.0 dev: true /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.19.6: @@ -343,70 +348,43 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.19.6 - '@babel/helper-annotate-as-pure': 7.18.6 - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-function-name': 7.19.0 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.18.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/helper-replace-supers': 7.19.1 - '@babel/helper-split-export-declaration': 7.18.6 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-environment-visitor/7.18.9: - resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-function-name/7.19.0: - resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.18.10 - '@babel/types': 7.19.4 - dev: true - - /@babel/helper-hoist-variables/7.18.6: - resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.4 - dev: true - /@babel/helper-member-expression-to-functions/7.18.9: resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.4 - dev: true - - /@babel/helper-module-imports/7.16.0: - resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.4 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 dev: true /@babel/helper-module-imports/7.18.6: resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.4 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 dev: true /@babel/helper-module-transforms/7.19.6: resolution: {integrity: sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.9 - '@babel/helper-module-imports': 7.18.6 - '@babel/helper-simple-access': 7.19.4 - '@babel/helper-split-export-declaration': 7.18.6 - '@babel/helper-validator-identifier': 7.19.1 - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.6 - '@babel/types': 7.19.4 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.19.4 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 transitivePeerDependencies: - supports-color dev: true @@ -415,7 +393,7 @@ packages: resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.19.4 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 dev: true /@babel/helper-plugin-utils/7.19.0: @@ -427,37 +405,15 @@ packages: resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 '@babel/helper-member-expression-to-functions': 7.18.9 '@babel/helper-optimise-call-expression': 7.18.6 - '@babel/traverse': 7.19.6 - '@babel/types': 7.19.4 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 transitivePeerDependencies: - supports-color dev: true - /@babel/helper-simple-access/7.19.4: - resolution: {integrity: sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.4 - dev: true - - /@babel/helper-split-export-declaration/7.18.6: - resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.19.4 - dev: true - - /@babel/helper-string-parser/7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - - /@babel/helper-validator-identifier/7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.18.6: resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} engines: {node: '>=6.9.0'} @@ -467,28 +423,19 @@ packages: resolution: {integrity: sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/template': 7.18.10 - '@babel/traverse': 7.19.6 - '@babel/types': 7.19.4 + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 transitivePeerDependencies: - supports-color dev: true - /@babel/highlight/7.18.6: - resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.19.1 - chalk: 2.4.2 - js-tokens: 4.0.0 - dev: true - /@babel/parser/7.19.6: resolution: {integrity: sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.19.4 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6: resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} @@ -497,7 +444,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 dev: true /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.19.6: @@ -507,7 +454,7 @@ packages: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.19.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 dev: true /@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.6: @@ -562,7 +509,7 @@ packages: dependencies: '@babel/core': 7.19.6 '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.19.6 - '@babel/helper-plugin-utils': 7.19.0 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.19.6 transitivePeerDependencies: - supports-color @@ -593,25 +540,25 @@ packages: resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/parser': 7.19.6 - '@babel/types': 7.19.4 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 dev: true /@babel/traverse/7.19.6: resolution: {integrity: sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/code-frame': 7.18.6 - '@babel/generator': 7.19.6 - '@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.6 - '@babel/types': 7.19.4 - debug: 4.3.4 - globals: 11.12.0 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.19.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + debug: registry.npmmirror.com/debug/4.3.4 + globals: registry.npmmirror.com/globals/11.12.0 transitivePeerDependencies: - supports-color dev: true @@ -620,41 +567,24 @@ packages: resolution: {integrity: sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser/7.19.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 + dev: true /@ctrl/tinycolor/3.4.1: resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} engines: {node: '>=10'} dev: false - /@esbuild/android-arm/0.15.11: - resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64/0.15.11: - resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@eslint/eslintrc/1.3.3: resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 + debug: registry.npmmirror.com/debug/4.3.4 espree: 9.4.0 - globals: 13.17.0 + globals: registry.npmmirror.com/globals/13.17.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -669,7 +599,7 @@ packages: engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: registry.npmmirror.com/debug/4.3.4 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -684,44 +614,6 @@ packages: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@jridgewell/gen-mapping/0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - - /@jridgewell/gen-mapping/0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.14 - '@jridgewell/trace-mapping': 0.3.17 - dev: true - - /@jridgewell/resolve-uri/3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/set-array/1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec/1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} - dev: true - - /@jridgewell/trace-mapping/0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - dev: true - /@nodelib/fs.scandir/2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -876,7 +768,7 @@ packages: dependencies: '@typescript-eslint/typescript-estree': 5.40.1_typescript@4.8.4 '@typescript-eslint/utils': 5.40.1_z4bbprzjrhnsfa24uvmcbu7f5q - debug: 4.3.4 + debug: registry.npmmirror.com/debug/4.3.4 eslint: 8.25.0 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 @@ -900,10 +792,10 @@ packages: dependencies: '@typescript-eslint/types': 5.40.1 '@typescript-eslint/visitor-keys': 5.40.1 - debug: 4.3.4 + debug: registry.npmmirror.com/debug/4.3.4 globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.8 + semver: registry.npmmirror.com/semver/7.3.8 tsutils: 3.21.0_typescript@4.8.4 typescript: 4.8.4 transitivePeerDependencies: @@ -924,7 +816,7 @@ packages: eslint: 8.25.0 eslint-scope: 5.1.1 eslint-utils: 3.0.0_eslint@8.25.0 - semver: 7.3.8 + semver: registry.npmmirror.com/semver/7.3.8 transitivePeerDependencies: - supports-color - typescript @@ -980,7 +872,7 @@ packages: /@volar/typescript-faster/0.40.13: resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==} dependencies: - semver: 7.3.8 + semver: registry.npmmirror.com/semver/7.3.8 dev: true /@volar/vue-language-core/0.40.13: @@ -1006,10 +898,10 @@ packages: /@vue/compiler-core/3.2.41: resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} dependencies: - '@babel/parser': 7.19.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 '@vue/shared': 3.2.41 - estree-walker: 2.0.2 - source-map: 0.6.1 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + source-map: registry.npmmirror.com/source-map/0.6.1 /@vue/compiler-dom/3.2.41: resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} @@ -1044,10 +936,10 @@ packages: /@vue/reactivity-transform/3.2.41: resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} dependencies: - '@babel/parser': 7.19.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 '@vue/compiler-core': 3.2.41 '@vue/shared': 3.2.41 - estree-walker: 2.0.2 + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 magic-string: 0.25.9 /@vue/reactivity/3.2.38: @@ -1072,7 +964,7 @@ packages: dependencies: '@vue/runtime-core': 3.2.41 '@vue/shared': 3.2.41 - csstype: 2.6.21 + csstype: registry.npmmirror.com/csstype/2.6.21 /@vue/server-renderer/3.2.41_vue@3.2.41: resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} @@ -1142,23 +1034,11 @@ packages: engines: {node: '>=12'} dev: true - /ansi-styles/3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - dev: true - /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles/6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + color-convert: registry.npmmirror.com/color-convert/2.0.1 dev: true /ant-design-vue/3.2.15_vue@3.2.41: @@ -1196,7 +1076,7 @@ packages: engines: {node: '>= 8'} dependencies: normalize-path: 3.0.0 - picomatch: 2.3.1 + picomatch: registry.npmmirror.com/picomatch/2.3.1 /argparse/2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} @@ -1226,9 +1106,9 @@ packages: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.19.6 - '@babel/helper-module-imports': 7.16.0 - '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.6 - '@babel/types': 7.19.4 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.16.0 + '@babel/plugin-syntax-jsx': registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 html-entities: 2.3.2 dev: true @@ -1268,17 +1148,6 @@ packages: dependencies: fill-range: 7.0.1 - /browserslist/4.21.4: - resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001425 - electron-to-chromium: 1.4.284 - node-releases: 2.0.6 - update-browserslist-db: 1.0.10_browserslist@4.21.4 - dev: true - /bundle-require/3.1.0_esbuild@0.15.11: resolution: {integrity: sha512-IIXtAO7fKcwPHNPt9kY/WNVJqy7NDy6YqJvv6ENH0TOZoJ+yjpEsn1w40WKZbR2ibfu5g1rfgJTvmFHpm5aOMA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1299,19 +1168,6 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite/1.0.30001425: - resolution: {integrity: sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==} - dev: true - - /chalk/2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - dev: true - /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} @@ -1332,7 +1188,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 /clean-stack/2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -1362,27 +1218,6 @@ packages: string-width: 5.1.2 dev: true - /color-convert/1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - dev: true - - /color-convert/2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name/1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - dev: true - - /color-name/1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - /colorette/2.0.19: resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} dev: true @@ -1428,9 +1263,6 @@ packages: which: 2.0.2 dev: true - /csstype/2.6.21: - resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} - /csstype/3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} @@ -1446,7 +1278,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.3 + ms: registry.npmmirror.com/ms/2.1.3 optional: true /debug/3.2.7_supports-color@5.5.0: @@ -1457,7 +1289,7 @@ packages: supports-color: optional: true dependencies: - ms: 2.1.3 + ms: registry.npmmirror.com/ms/2.1.3 supports-color: 5.5.0 dev: true @@ -1503,10 +1335,6 @@ packages: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true - /electron-to-chromium/1.4.284: - resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} - dev: true - /emoji-regex/8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true @@ -1515,289 +1343,91 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /errno/0.1.8: - resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + /esbuild/0.15.11: + resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} + engines: {node: '>=12'} hasBin: true requiresBuild: true - dependencies: - prr: 1.0.1 - optional: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm/0.15.11 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64/0.15.11 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.15.11 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.15.11 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.15.11 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.15.11 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.15.11 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.15.11 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.15.11 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.15.11 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.15.11 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.15.11 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.15.11 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.15.11 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.15.11 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.15.11 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.15.11 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.15.11 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.15.11 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.15.11 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.15.11 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.15.11 + dev: true - /esbuild-android-64/0.15.11: - resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} dev: true - optional: true - /esbuild-android-arm64/0.15.11: - resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true + /eslint-config-prettier/8.5.0_eslint@8.25.0: + resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.25.0 dev: true - optional: true - /esbuild-darwin-64/0.15.11: - resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true + /eslint-plugin-es/3.0.1_eslint@8.25.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 8.25.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 dev: true - optional: true - /esbuild-darwin-arm64/0.15.11: - resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + /eslint-plugin-node/11.1.0_eslint@8.25.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 8.25.0 + eslint-plugin-es: 3.0.1_eslint@8.25.0 + eslint-utils: 2.1.0 + ignore: 5.2.0 + minimatch: 3.1.2 + resolve: 1.22.1 + semver: 6.3.0 dev: true - optional: true - /esbuild-freebsd-64/0.15.11: - resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-freebsd-arm64/0.15.11: - resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-32/0.15.11: - resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-64/0.15.11: - resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm/0.15.11: - resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.15.11: - resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-mips64le/0.15.11: - resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-ppc64le/0.15.11: - resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-riscv64/0.15.11: - resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-s390x/0.15.11: - resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-netbsd-64/0.15.11: - resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-openbsd-64/0.15.11: - resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /esbuild-sunos-64/0.15.11: - resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-32/0.15.11: - resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-64/0.15.11: - resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild-windows-arm64/0.15.11: - resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /esbuild/0.15.11: - resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.11 - '@esbuild/linux-loong64': 0.15.11 - esbuild-android-64: 0.15.11 - esbuild-android-arm64: 0.15.11 - esbuild-darwin-64: 0.15.11 - esbuild-darwin-arm64: 0.15.11 - esbuild-freebsd-64: 0.15.11 - esbuild-freebsd-arm64: 0.15.11 - esbuild-linux-32: 0.15.11 - esbuild-linux-64: 0.15.11 - esbuild-linux-arm: 0.15.11 - esbuild-linux-arm64: 0.15.11 - esbuild-linux-mips64le: 0.15.11 - esbuild-linux-ppc64le: 0.15.11 - esbuild-linux-riscv64: 0.15.11 - esbuild-linux-s390x: 0.15.11 - esbuild-netbsd-64: 0.15.11 - esbuild-openbsd-64: 0.15.11 - esbuild-sunos-64: 0.15.11 - esbuild-windows-32: 0.15.11 - esbuild-windows-64: 0.15.11 - esbuild-windows-arm64: 0.15.11 - dev: true - - /escalade/3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp/1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - dev: true - - /escape-string-regexp/4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-config-prettier/8.5.0_eslint@8.25.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.25.0 - dev: true - - /eslint-plugin-es/3.0.1_eslint@8.25.0: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - dependencies: - eslint: 8.25.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - dev: true - - /eslint-plugin-node/11.1.0_eslint@8.25.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - dependencies: - eslint: 8.25.0 - eslint-plugin-es: 3.0.1_eslint@8.25.0 - eslint-utils: 2.1.0 - ignore: 5.2.0 - minimatch: 3.1.2 - resolve: 1.22.1 - semver: 6.3.0 - dev: true - - /eslint-plugin-prettier/4.2.1_hvbqyfstm4urdpm6ffpwfka4e4: - resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.28.0' - eslint-config-prettier: '*' - prettier: '>=2.0.0' - peerDependenciesMeta: - eslint-config-prettier: - optional: true - dependencies: - eslint: 8.25.0 - eslint-config-prettier: 8.5.0_eslint@8.25.0 - prettier: 2.7.1 - prettier-linter-helpers: 1.0.0 + /eslint-plugin-prettier/4.2.1_hvbqyfstm4urdpm6ffpwfka4e4: + resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + eslint: '>=7.28.0' + eslint-config-prettier: '*' + prettier: '>=2.0.0' + peerDependenciesMeta: + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.25.0 + eslint-config-prettier: 8.5.0_eslint@8.25.0 + prettier: 2.7.1 + prettier-linter-helpers: 1.0.0 dev: true /eslint-scope/5.1.1: @@ -2036,17 +1666,6 @@ packages: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /fsevents/2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - optional: true - - /function-bind/1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - /gensync/1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2092,11 +1711,6 @@ packages: path-is-absolute: 1.0.1 dev: true - /globals/11.12.0: - resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} - engines: {node: '>=4'} - dev: true - /globals/13.17.0: resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==} engines: {node: '>=8'} @@ -2116,11 +1730,6 @@ packages: slash: 3.0.0 dev: true - /graceful-fs/4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - requiresBuild: true - optional: true - /grapheme-splitter/1.0.4: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true @@ -2130,18 +1739,6 @@ packages: engines: {node: '>=4'} dev: true - /has-flag/4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /has/1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - /html-entities/2.3.2: resolution: {integrity: sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==} dev: true @@ -2178,13 +1775,6 @@ packages: engines: {node: '>= 4'} dev: true - /image-size/0.5.5: - resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} - engines: {node: '>=0.10.0'} - hasBin: true - requiresBuild: true - optional: true - /immutable/4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} @@ -2226,7 +1816,7 @@ packages: /is-core-module/2.10.0: resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} dependencies: - has: 1.0.3 + has: registry.npmmirror.com/has/1.0.3 dev: true /is-extglob/2.1.1: @@ -2285,16 +1875,13 @@ packages: engines: {node: '>=10'} dev: true - /jquery/3.6.1: - resolution: {integrity: sha512-opJeO4nCucVnsjiXOE+/PcCgYw9Gwpvs/a6B1LL/lQhwWwpbVEVYDZ1FokFr8PRc7ghYlrFPuyHuiiDNTQxmcw==} - dev: false - /js-sdsl/4.1.5: resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==} dev: true /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: false /js-yaml/4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} @@ -2303,12 +1890,6 @@ packages: argparse: 2.0.1 dev: true - /jsesc/2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - dev: true - /json-schema-traverse/0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -2332,13 +1913,13 @@ packages: parse-node-version: 1.0.1 tslib: 2.4.0 optionalDependencies: - errno: 0.1.8 - graceful-fs: 4.2.10 - image-size: 0.5.5 - make-dir: 2.1.0 - mime: 1.6.0 - needle: 3.1.0 - source-map: 0.6.1 + errno: registry.npmmirror.com/errno/0.1.8 + graceful-fs: registry.npmmirror.com/graceful-fs/4.2.10 + image-size: registry.npmmirror.com/image-size/0.5.5 + make-dir: registry.npmmirror.com/make-dir/2.1.0 + mime: registry.npmmirror.com/mime/1.6.0 + needle: registry.npmmirror.com/needle/3.1.0 + source-map: registry.npmmirror.com/source-map/0.6.1 transitivePeerDependencies: - supports-color @@ -2475,15 +2056,6 @@ packages: sourcemap-codec: 1.4.8 dev: true - /make-dir/2.1.0: - resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} - engines: {node: '>=6'} - requiresBuild: true - dependencies: - pify: 4.0.1 - semver: 5.7.1 - optional: true - /merge-anything/5.0.4: resolution: {integrity: sha512-YFsDeY5A9SLXhL21Qn15wCWewRUW6wMTxQF4SuPe9bNdr1wsjiE44Rp8FQUTCtwO0WLdlKiFzhAVE5tlf857Tg==} engines: {node: '>=12.13'} @@ -2506,16 +2078,9 @@ packages: engines: {node: '>=8.6'} dependencies: braces: 3.0.2 - picomatch: 2.3.1 + picomatch: registry.npmmirror.com/picomatch/2.3.1 dev: true - /mime/1.6.0: - resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} - engines: {node: '>=4'} - hasBin: true - requiresBuild: true - optional: true - /mimic-fn/2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -2543,14 +2108,11 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: true - /ms/2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /mz/2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} dependencies: any-promise: 1.3.0 - object-assign: 4.1.1 + object-assign: registry.npmmirror.com/object-assign/4.1.1 thenify-all: 1.6.0 dev: true @@ -2567,23 +2129,6 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /needle/3.1.0: - resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==} - engines: {node: '>= 4.4.x'} - hasBin: true - requiresBuild: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.6.3 - sax: 1.2.4 - transitivePeerDependencies: - - supports-color - optional: true - - /node-releases/2.0.6: - resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} - dev: true - /nodemon/2.0.20: resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==} engines: {node: '>=8.10.0'} @@ -2629,6 +2174,7 @@ packages: /object-assign/4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + dev: false /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} @@ -2733,6 +2279,7 @@ packages: /picomatch/2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + dev: true /pidtree/0.6.0: resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} @@ -2837,7 +2384,7 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: - picomatch: 2.3.1 + picomatch: registry.npmmirror.com/picomatch/2.3.1 /regenerator-runtime/0.13.11: resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} @@ -2900,7 +2447,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /rollup/2.79.1: @@ -2908,7 +2455,7 @@ packages: engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /rollup/3.2.3: @@ -2916,7 +2463,7 @@ packages: engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: false /run-parallel/1.2.0: @@ -2970,11 +2517,6 @@ packages: hasBin: true dev: true - /semver/7.0.0: - resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==} - hasBin: true - dev: true - /semver/7.3.8: resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} engines: {node: '>=10'} @@ -3007,7 +2549,7 @@ packages: resolution: {integrity: sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==} engines: {node: '>=8.10.0'} dependencies: - semver: 7.0.0 + semver: registry.npmmirror.com/semver/7.0.0 dev: true /slash/3.0.0: @@ -3019,7 +2561,7 @@ packages: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} dependencies: - ansi-styles: 4.3.0 + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 dev: true @@ -3028,7 +2570,7 @@ packages: resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} engines: {node: '>=10'} dependencies: - ansi-styles: 4.3.0 + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 astral-regex: 2.0.0 is-fullwidth-code-point: 3.0.0 dev: true @@ -3037,7 +2579,7 @@ packages: resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} engines: {node: '>=12'} dependencies: - ansi-styles: 6.2.1 + ansi-styles: registry.npmmirror.com/ansi-styles/6.2.1 is-fullwidth-code-point: 4.0.0 dev: true @@ -3153,7 +2695,7 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: - has-flag: 4.0.0 + has-flag: registry.npmmirror.com/has-flag/4.0.0 dev: true /supports-preserve-symlinks-flag/1.0.0: @@ -3182,10 +2724,6 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /to-fast-properties/2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3333,17 +2871,6 @@ packages: webpack-virtual-modules: 0.4.6 dev: true - /update-browserslist-db/1.0.10_browserslist@4.21.4: - resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.21.4 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: true - /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -3391,7 +2918,7 @@ packages: resolve: 1.22.1 rollup: 2.78.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /vite/3.1.8_less@4.1.3: @@ -3419,7 +2946,7 @@ packages: resolve: 1.22.1 rollup: 2.78.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /vite/3.1.8_less@4.1.3+sass@1.56.1: @@ -3448,7 +2975,7 @@ packages: rollup: 2.78.1 sass: 1.56.1 optionalDependencies: - fsevents: 2.3.2 + fsevents: registry.npmmirror.com/fsevents/2.3.2 dev: true /vue-router/4.1.6_vue@3.2.41: @@ -3493,7 +3020,7 @@ packages: /warning/4.0.3: resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} dependencies: - loose-envify: 1.4.0 + loose-envify: registry.npmmirror.com/loose-envify/1.4.0 dev: false /webidl-conversions/4.0.2: @@ -3534,7 +3061,7 @@ packages: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} engines: {node: '>=8'} dependencies: - ansi-styles: 4.3.0 + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 dev: true @@ -3543,7 +3070,7 @@ packages: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: - ansi-styles: 4.3.0 + ansi-styles: registry.npmmirror.com/ansi-styles/4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 dev: true @@ -3583,3 +3110,1253 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + registry.npmmirror.com/@ampproject/remapping/2.2.0: + resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@ampproject/remapping/-/remapping-2.2.0.tgz} + name: '@ampproject/remapping' + version: 2.2.0 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + dev: true + + registry.npmmirror.com/@babel/code-frame/7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.18.6.tgz} + name: '@babel/code-frame' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': registry.npmmirror.com/@babel/highlight/7.18.6 + dev: true + + registry.npmmirror.com/@babel/compat-data/7.19.4: + resolution: {integrity: sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/compat-data/-/compat-data-7.19.4.tgz} + name: '@babel/compat-data' + version: 7.19.4 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/core/7.19.6: + resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/core/-/core-7.19.6.tgz} + name: '@babel/core' + version: 7.19.6 + engines: {node: '>=6.9.0'} + dependencies: + '@ampproject/remapping': registry.npmmirror.com/@ampproject/remapping/2.2.0 + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.19.6 + '@babel/helper-compilation-targets': registry.npmmirror.com/@babel/helper-compilation-targets/7.19.3_@babel+core@7.19.6 + '@babel/helper-module-transforms': registry.npmmirror.com/@babel/helper-module-transforms/7.19.6 + '@babel/helpers': registry.npmmirror.com/@babel/helpers/7.19.4 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + convert-source-map: registry.npmmirror.com/convert-source-map/1.9.0 + debug: registry.npmmirror.com/debug/4.3.4 + gensync: registry.npmmirror.com/gensync/1.0.0-beta.2 + json5: registry.npmmirror.com/json5/2.2.1 + semver: registry.npmmirror.com/semver/6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/generator/7.19.6: + resolution: {integrity: sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/generator/-/generator-7.19.6.tgz} + name: '@babel/generator' + version: 7.19.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + '@jridgewell/gen-mapping': registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2 + jsesc: registry.npmmirror.com/jsesc/2.5.2 + dev: true + + registry.npmmirror.com/@babel/helper-annotate-as-pure/7.18.6: + resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz} + name: '@babel/helper-annotate-as-pure' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-compilation-targets/7.19.3_@babel+core@7.19.6: + resolution: {integrity: sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz} + id: registry.npmmirror.com/@babel/helper-compilation-targets/7.19.3 + name: '@babel/helper-compilation-targets' + version: 7.19.3 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': registry.npmmirror.com/@babel/compat-data/7.19.4 + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/helper-validator-option': registry.npmmirror.com/@babel/helper-validator-option/7.18.6 + browserslist: registry.npmmirror.com/browserslist/4.21.4 + semver: registry.npmmirror.com/semver/6.3.0 + dev: true + + registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9: + resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz} + name: '@babel/helper-environment-visitor' + version: 7.18.9 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-function-name/7.19.0: + resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz} + name: '@babel/helper-function-name' + version: 7.19.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6: + resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz} + name: '@babel/helper-hoist-variables' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-module-imports/7.16.0: + resolution: {integrity: sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz} + name: '@babel/helper-module-imports' + version: 7.16.0 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-module-imports/7.18.6: + resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz} + name: '@babel/helper-module-imports' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-module-transforms/7.19.6: + resolution: {integrity: sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz} + name: '@babel/helper-module-transforms' + version: 7.19.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 + '@babel/helper-simple-access': registry.npmmirror.com/@babel/helper-simple-access/7.19.4 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0: + resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz} + name: '@babel/helper-plugin-utils' + version: 7.19.0 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helper-simple-access/7.19.4: + resolution: {integrity: sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz} + name: '@babel/helper-simple-access' + version: 7.19.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6: + resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz} + name: '@babel/helper-split-export-declaration' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/helper-string-parser/7.19.4: + resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz} + name: '@babel/helper-string-parser' + version: 7.19.4 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz} + name: '@babel/helper-validator-identifier' + version: 7.19.1 + engines: {node: '>=6.9.0'} + + registry.npmmirror.com/@babel/helper-validator-option/7.18.6: + resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz} + name: '@babel/helper-validator-option' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/@babel/helpers/7.19.4: + resolution: {integrity: sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/helpers/-/helpers-7.19.4.tgz} + name: '@babel/helpers' + version: 7.19.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': registry.npmmirror.com/@babel/template/7.18.10 + '@babel/traverse': registry.npmmirror.com/@babel/traverse/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/highlight/7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/highlight/-/highlight-7.18.6.tgz} + name: '@babel/highlight' + version: 7.18.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + chalk: registry.npmmirror.com/chalk/2.4.2 + js-tokens: registry.npmmirror.com/js-tokens/4.0.0 + dev: true + + registry.npmmirror.com/@babel/parser/7.19.6: + resolution: {integrity: sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/parser/-/parser-7.19.6.tgz} + name: '@babel/parser' + version: 7.19.6 + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + + registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6: + resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6 + name: '@babel/plugin-syntax-jsx' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.6: + resolution: {integrity: sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/7.18.6 + name: '@babel/plugin-transform-react-jsx-development' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/plugin-transform-react-jsx': registry.npmmirror.com/@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.6 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.19.6: + resolution: {integrity: sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.18.6 + name: '@babel/plugin-transform-react-jsx-self' + version: 7.18.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.19.6: + resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.19.6 + name: '@babel/plugin-transform-react-jsx-source' + version: 7.19.6 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 + dev: true + + registry.npmmirror.com/@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.6: + resolution: {integrity: sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz} + id: registry.npmmirror.com/@babel/plugin-transform-react-jsx/7.19.0 + name: '@babel/plugin-transform-react-jsx' + version: 7.19.0 + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/helper-annotate-as-pure': registry.npmmirror.com/@babel/helper-annotate-as-pure/7.18.6 + '@babel/helper-module-imports': registry.npmmirror.com/@babel/helper-module-imports/7.18.6 + '@babel/helper-plugin-utils': registry.npmmirror.com/@babel/helper-plugin-utils/7.19.0 + '@babel/plugin-syntax-jsx': registry.npmmirror.com/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/template/7.18.10: + resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/template/-/template-7.18.10.tgz} + name: '@babel/template' + version: 7.18.10 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + dev: true + + registry.npmmirror.com/@babel/traverse/7.19.6: + resolution: {integrity: sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/traverse/-/traverse-7.19.6.tgz} + name: '@babel/traverse' + version: 7.19.6 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': registry.npmmirror.com/@babel/code-frame/7.18.6 + '@babel/generator': registry.npmmirror.com/@babel/generator/7.19.6 + '@babel/helper-environment-visitor': registry.npmmirror.com/@babel/helper-environment-visitor/7.18.9 + '@babel/helper-function-name': registry.npmmirror.com/@babel/helper-function-name/7.19.0 + '@babel/helper-hoist-variables': registry.npmmirror.com/@babel/helper-hoist-variables/7.18.6 + '@babel/helper-split-export-declaration': registry.npmmirror.com/@babel/helper-split-export-declaration/7.18.6 + '@babel/parser': registry.npmmirror.com/@babel/parser/7.19.6 + '@babel/types': registry.npmmirror.com/@babel/types/7.19.4 + debug: registry.npmmirror.com/debug/4.3.4 + globals: registry.npmmirror.com/globals/11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/@babel/types/7.19.4: + resolution: {integrity: sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@babel/types/-/types-7.19.4.tgz} + name: '@babel/types' + version: 7.19.4 + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': registry.npmmirror.com/@babel/helper-string-parser/7.19.4 + '@babel/helper-validator-identifier': registry.npmmirror.com/@babel/helper-validator-identifier/7.19.1 + to-fast-properties: registry.npmmirror.com/to-fast-properties/2.0.0 + + registry.npmmirror.com/@esbuild/android-arm/0.15.11: + resolution: {integrity: sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/android-arm/-/android-arm-0.15.11.tgz} + name: '@esbuild/android-arm' + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@esbuild/linux-loong64/0.15.11: + resolution: {integrity: sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@esbuild/linux-loong64/-/linux-loong64-0.15.11.tgz} + name: '@esbuild/linux-loong64' + version: 0.15.11 + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/@jridgewell/gen-mapping/0.1.1: + resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz} + name: '@jridgewell/gen-mapping' + version: 0.1.1 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/gen-mapping/0.3.2: + resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz} + name: '@jridgewell/gen-mapping' + version: 0.3.2 + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': registry.npmmirror.com/@jridgewell/set-array/1.1.2 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + '@jridgewell/trace-mapping': registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17 + dev: true + + registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz} + name: '@jridgewell/resolve-uri' + version: 3.1.0 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmmirror.com/@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/set-array/-/set-array-1.1.2.tgz} + name: '@jridgewell/set-array' + version: 1.1.2 + engines: {node: '>=6.0.0'} + dev: true + + registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz} + name: '@jridgewell/sourcemap-codec' + version: 1.4.14 + dev: true + + registry.npmmirror.com/@jridgewell/trace-mapping/0.3.17: + resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz} + name: '@jridgewell/trace-mapping' + version: 0.3.17 + dependencies: + '@jridgewell/resolve-uri': registry.npmmirror.com/@jridgewell/resolve-uri/3.1.0 + '@jridgewell/sourcemap-codec': registry.npmmirror.com/@jridgewell/sourcemap-codec/1.4.14 + dev: true + + registry.npmmirror.com/@rollup/pluginutils/4.2.1: + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz} + name: '@rollup/pluginutils' + version: 4.2.1 + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: registry.npmmirror.com/estree-walker/2.0.2 + picomatch: registry.npmmirror.com/picomatch/2.3.1 + dev: true + + registry.npmmirror.com/@types/prop-types/15.7.5: + resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz} + name: '@types/prop-types' + version: 15.7.5 + dev: true + + registry.npmmirror.com/@types/react-dom/17.0.17: + resolution: {integrity: sha512-VjnqEmqGnasQKV0CWLevqMTXBYG9GbwuE6x3VetERLh0cq2LTptFE73MrQi2S7GkKXCf2GgwItB/melLnxfnsg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react-dom/-/react-dom-17.0.17.tgz} + name: '@types/react-dom' + version: 17.0.17 + dependencies: + '@types/react': registry.npmmirror.com/@types/react/17.0.50 + dev: true + + registry.npmmirror.com/@types/react/17.0.50: + resolution: {integrity: sha512-ZCBHzpDb5skMnc1zFXAXnL3l1FAdi+xZvwxK+PkglMmBrwjpp9nKaWuEvrGnSifCJmBFGxZOOFuwC6KH/s0NuA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/react/-/react-17.0.50.tgz} + name: '@types/react' + version: 17.0.50 + dependencies: + '@types/prop-types': registry.npmmirror.com/@types/prop-types/15.7.5 + '@types/scheduler': registry.npmmirror.com/@types/scheduler/0.16.2 + csstype: registry.npmmirror.com/csstype/3.1.1 + dev: true + + registry.npmmirror.com/@types/scheduler/0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz} + name: '@types/scheduler' + version: 0.16.2 + dev: true + + registry.npmmirror.com/@vitejs/plugin-react/1.3.2: + resolution: {integrity: sha512-aurBNmMo0kz1O4qRoY+FM4epSA39y3ShWGuqfLRA/3z0oEJAdtoSfgA3aO98/PCCHAqMaduLxIxErWrVKIFzXA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@vitejs/plugin-react/-/plugin-react-1.3.2.tgz} + name: '@vitejs/plugin-react' + version: 1.3.2 + engines: {node: '>=12.0.0'} + dependencies: + '@babel/core': registry.npmmirror.com/@babel/core/7.19.6 + '@babel/plugin-transform-react-jsx': registry.npmmirror.com/@babel/plugin-transform-react-jsx/7.19.0_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-development': registry.npmmirror.com/@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-self': registry.npmmirror.com/@babel/plugin-transform-react-jsx-self/7.18.6_@babel+core@7.19.6 + '@babel/plugin-transform-react-jsx-source': registry.npmmirror.com/@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.19.6 + '@rollup/pluginutils': registry.npmmirror.com/@rollup/pluginutils/4.2.1 + react-refresh: registry.npmmirror.com/react-refresh/0.13.0 + resolve: registry.npmmirror.com/resolve/1.22.1 + transitivePeerDependencies: + - supports-color + dev: true + + registry.npmmirror.com/ansi-styles/3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz} + name: ansi-styles + version: 3.2.1 + engines: {node: '>=4'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/1.9.3 + dev: true + + registry.npmmirror.com/ansi-styles/4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz} + name: ansi-styles + version: 4.3.0 + engines: {node: '>=8'} + dependencies: + color-convert: registry.npmmirror.com/color-convert/2.0.1 + dev: true + + registry.npmmirror.com/ansi-styles/6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz} + name: ansi-styles + version: 6.2.1 + engines: {node: '>=12'} + dev: true + + registry.npmmirror.com/browserslist/4.21.4: + resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/browserslist/-/browserslist-4.21.4.tgz} + name: browserslist + version: 4.21.4 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: registry.npmmirror.com/caniuse-lite/1.0.30001425 + electron-to-chromium: registry.npmmirror.com/electron-to-chromium/1.4.284 + node-releases: registry.npmmirror.com/node-releases/2.0.6 + update-browserslist-db: registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.4 + dev: true + + registry.npmmirror.com/caniuse-lite/1.0.30001425: + resolution: {integrity: sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz} + name: caniuse-lite + version: 1.0.30001425 + dev: true + + registry.npmmirror.com/chalk/2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz} + name: chalk + version: 2.4.2 + engines: {node: '>=4'} + dependencies: + ansi-styles: registry.npmmirror.com/ansi-styles/3.2.1 + escape-string-regexp: registry.npmmirror.com/escape-string-regexp/1.0.5 + supports-color: registry.npmmirror.com/supports-color/5.5.0 + dev: true + + registry.npmmirror.com/color-convert/1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz} + name: color-convert + version: 1.9.3 + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.3 + dev: true + + registry.npmmirror.com/color-convert/2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz} + name: color-convert + version: 2.0.1 + engines: {node: '>=7.0.0'} + dependencies: + color-name: registry.npmmirror.com/color-name/1.1.4 + dev: true + + registry.npmmirror.com/color-name/1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz} + name: color-name + version: 1.1.3 + dev: true + + registry.npmmirror.com/color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz} + name: color-name + version: 1.1.4 + dev: true + + registry.npmmirror.com/convert-source-map/1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/convert-source-map/-/convert-source-map-1.9.0.tgz} + name: convert-source-map + version: 1.9.0 + dev: true + + registry.npmmirror.com/csstype/2.6.21: + resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-2.6.21.tgz} + name: csstype + version: 2.6.21 + + registry.npmmirror.com/csstype/3.1.1: + resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/csstype/-/csstype-3.1.1.tgz} + name: csstype + version: 3.1.1 + dev: true + + registry.npmmirror.com/debug/4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz} + name: debug + version: 4.3.4 + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: registry.npmmirror.com/ms/2.1.2 + dev: true + + registry.npmmirror.com/electron-to-chromium/1.4.284: + resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz} + name: electron-to-chromium + version: 1.4.284 + dev: true + + registry.npmmirror.com/errno/0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/errno/-/errno-0.1.8.tgz} + name: errno + version: 0.1.8 + hasBin: true + requiresBuild: true + dependencies: + prr: 1.0.1 + optional: true + + registry.npmmirror.com/esbuild-android-64/0.15.11: + resolution: {integrity: sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.15.11.tgz} + name: esbuild-android-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-android-arm64/0.15.11: + resolution: {integrity: sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.11.tgz} + name: esbuild-android-arm64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-64/0.15.11: + resolution: {integrity: sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.11.tgz} + name: esbuild-darwin-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-darwin-arm64/0.15.11: + resolution: {integrity: sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.11.tgz} + name: esbuild-darwin-arm64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-64/0.15.11: + resolution: {integrity: sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.11.tgz} + name: esbuild-freebsd-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-freebsd-arm64/0.15.11: + resolution: {integrity: sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.11.tgz} + name: esbuild-freebsd-arm64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-32/0.15.11: + resolution: {integrity: sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.15.11.tgz} + name: esbuild-linux-32 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-64/0.15.11: + resolution: {integrity: sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.15.11.tgz} + name: esbuild-linux-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm/0.15.11: + resolution: {integrity: sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.11.tgz} + name: esbuild-linux-arm + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-arm64/0.15.11: + resolution: {integrity: sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.11.tgz} + name: esbuild-linux-arm64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-mips64le/0.15.11: + resolution: {integrity: sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.11.tgz} + name: esbuild-linux-mips64le + version: 0.15.11 + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-ppc64le/0.15.11: + resolution: {integrity: sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.11.tgz} + name: esbuild-linux-ppc64le + version: 0.15.11 + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-riscv64/0.15.11: + resolution: {integrity: sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.11.tgz} + name: esbuild-linux-riscv64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-linux-s390x/0.15.11: + resolution: {integrity: sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.11.tgz} + name: esbuild-linux-s390x + version: 0.15.11 + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-netbsd-64/0.15.11: + resolution: {integrity: sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.11.tgz} + name: esbuild-netbsd-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-openbsd-64/0.15.11: + resolution: {integrity: sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.11.tgz} + name: esbuild-openbsd-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-sunos-64/0.15.11: + resolution: {integrity: sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.11.tgz} + name: esbuild-sunos-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-32/0.15.11: + resolution: {integrity: sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.15.11.tgz} + name: esbuild-windows-32 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-64/0.15.11: + resolution: {integrity: sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.15.11.tgz} + name: esbuild-windows-64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild-windows-arm64/0.15.11: + resolution: {integrity: sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.11.tgz} + name: esbuild-windows-arm64 + version: 0.15.11 + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + registry.npmmirror.com/esbuild/0.15.11: + resolution: {integrity: sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.15.11.tgz} + name: esbuild + version: 0.15.11 + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + optionalDependencies: + '@esbuild/android-arm': registry.npmmirror.com/@esbuild/android-arm/0.15.11 + '@esbuild/linux-loong64': registry.npmmirror.com/@esbuild/linux-loong64/0.15.11 + esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.15.11 + esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.15.11 + esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.15.11 + esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.15.11 + esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.15.11 + esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.15.11 + esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.15.11 + esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.15.11 + esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.15.11 + esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.15.11 + esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.15.11 + esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.15.11 + esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.15.11 + esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.15.11 + esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.15.11 + esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.15.11 + esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.15.11 + esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.15.11 + esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.15.11 + esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.15.11 + dev: true + + registry.npmmirror.com/escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escalade/-/escalade-3.1.1.tgz} + name: escalade + version: 3.1.1 + engines: {node: '>=6'} + dev: true + + registry.npmmirror.com/escape-string-regexp/1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz} + name: escape-string-regexp + version: 1.0.5 + engines: {node: '>=0.8.0'} + dev: true + + registry.npmmirror.com/estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz} + name: estree-walker + version: 2.0.2 + + registry.npmmirror.com/fsevents/2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz} + name: fsevents + version: 2.3.2 + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + requiresBuild: true + optional: true + + registry.npmmirror.com/function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz} + name: function-bind + version: 1.1.1 + dev: true + + registry.npmmirror.com/gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/gensync/-/gensync-1.0.0-beta.2.tgz} + name: gensync + version: 1.0.0-beta.2 + engines: {node: '>=6.9.0'} + dev: true + + registry.npmmirror.com/globals/11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz} + name: globals + version: 11.12.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/globals/13.17.0: + resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/globals/-/globals-13.17.0.tgz} + name: globals + version: 13.17.0 + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + registry.npmmirror.com/graceful-fs/4.2.10: + resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz} + name: graceful-fs + version: 4.2.10 + requiresBuild: true + optional: true + + registry.npmmirror.com/has-flag/3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz} + name: has-flag + version: 3.0.0 + engines: {node: '>=4'} + dev: true + + registry.npmmirror.com/has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz} + name: has-flag + version: 4.0.0 + engines: {node: '>=8'} + dev: true + + registry.npmmirror.com/has/1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz} + name: has + version: 1.0.3 + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: registry.npmmirror.com/function-bind/1.1.1 + dev: true + + registry.npmmirror.com/image-size/0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz} + name: image-size + version: 0.5.5 + engines: {node: '>=0.10.0'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/is-core-module/2.10.0: + resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.10.0.tgz} + name: is-core-module + version: 2.10.0 + dependencies: + has: registry.npmmirror.com/has/1.0.3 + dev: true + + registry.npmmirror.com/js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz} + name: js-tokens + version: 4.0.0 + + registry.npmmirror.com/jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/jsesc/-/jsesc-2.5.2.tgz} + name: jsesc + version: 2.5.2 + engines: {node: '>=4'} + hasBin: true + dev: true + + registry.npmmirror.com/json5/2.2.1: + resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/json5/-/json5-2.2.1.tgz} + name: json5 + version: 2.2.1 + engines: {node: '>=6'} + hasBin: true + dev: true + + registry.npmmirror.com/loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/loose-envify/-/loose-envify-1.4.0.tgz} + name: loose-envify + version: 1.4.0 + hasBin: true + dependencies: + js-tokens: registry.npmmirror.com/js-tokens/4.0.0 + dev: false + + registry.npmmirror.com/make-dir/2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/make-dir/-/make-dir-2.1.0.tgz} + name: make-dir + version: 2.1.0 + engines: {node: '>=6'} + requiresBuild: true + dependencies: + pify: 4.0.1 + semver: 5.7.1 + optional: true + + registry.npmmirror.com/mime/1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mime/-/mime-1.6.0.tgz} + name: mime + version: 1.6.0 + engines: {node: '>=4'} + hasBin: true + requiresBuild: true + optional: true + + registry.npmmirror.com/ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz} + name: ms + version: 2.1.2 + dev: true + + registry.npmmirror.com/ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz} + name: ms + version: 2.1.3 + + registry.npmmirror.com/nanoid/3.3.4: + resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz} + name: nanoid + version: 3.3.4 + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + registry.npmmirror.com/needle/3.1.0: + resolution: {integrity: sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/needle/-/needle-3.1.0.tgz} + name: needle + version: 3.1.0 + engines: {node: '>= 4.4.x'} + hasBin: true + requiresBuild: true + dependencies: + debug: 3.2.7 + iconv-lite: 0.6.3 + sax: 1.2.4 + transitivePeerDependencies: + - supports-color + optional: true + + registry.npmmirror.com/node-releases/2.0.6: + resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/node-releases/-/node-releases-2.0.6.tgz} + name: node-releases + version: 2.0.6 + dev: true + + registry.npmmirror.com/object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/object-assign/-/object-assign-4.1.1.tgz} + name: object-assign + version: 4.1.1 + engines: {node: '>=0.10.0'} + + registry.npmmirror.com/path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz} + name: path-parse + version: 1.0.7 + dev: true + + registry.npmmirror.com/picocolors/1.0.0: + resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz} + name: picocolors + version: 1.0.0 + dev: true + + registry.npmmirror.com/picomatch/2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz} + name: picomatch + version: 2.3.1 + engines: {node: '>=8.6'} + + registry.npmmirror.com/postcss/8.4.18: + resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.18.tgz} + name: postcss + version: 8.4.18 + engines: {node: ^10 || ^12 || >=14} + dependencies: + nanoid: registry.npmmirror.com/nanoid/3.3.4 + picocolors: registry.npmmirror.com/picocolors/1.0.0 + source-map-js: registry.npmmirror.com/source-map-js/1.0.2 + dev: true + + registry.npmmirror.com/react-dom/17.0.2_react@17.0.2: + resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-dom/-/react-dom-17.0.2.tgz} + id: registry.npmmirror.com/react-dom/17.0.2 + name: react-dom + version: 17.0.2 + peerDependencies: + react: 17.0.2 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify/1.4.0 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + react: registry.npmmirror.com/react/17.0.2 + scheduler: registry.npmmirror.com/scheduler/0.20.2 + dev: false + + registry.npmmirror.com/react-refresh/0.13.0: + resolution: {integrity: sha512-XP8A9BT0CpRBD+NYLLeIhld/RqG9+gktUjW1FkE+Vm7OCinbG1SshcK5tb9ls4kzvjZr9mOQc7HYgBngEyPAXg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react-refresh/-/react-refresh-0.13.0.tgz} + name: react-refresh + version: 0.13.0 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/react/17.0.2: + resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/react/-/react-17.0.2.tgz} + name: react + version: 17.0.2 + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: registry.npmmirror.com/loose-envify/1.4.0 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + dev: false + + registry.npmmirror.com/resolve/1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz} + name: resolve + version: 1.22.1 + hasBin: true + dependencies: + is-core-module: registry.npmmirror.com/is-core-module/2.10.0 + path-parse: registry.npmmirror.com/path-parse/1.0.7 + supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0 + dev: true + + registry.npmmirror.com/rollup/2.78.1: + resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.78.1.tgz} + name: rollup + version: 2.78.1 + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true + + registry.npmmirror.com/scheduler/0.20.2: + resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/scheduler/-/scheduler-0.20.2.tgz} + name: scheduler + version: 0.20.2 + dependencies: + loose-envify: registry.npmmirror.com/loose-envify/1.4.0 + object-assign: registry.npmmirror.com/object-assign/4.1.1 + dev: false + + registry.npmmirror.com/semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-6.3.0.tgz} + name: semver + version: 6.3.0 + hasBin: true + dev: true + + registry.npmmirror.com/semver/7.0.0: + resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.0.0.tgz} + name: semver + version: 7.0.0 + hasBin: true + dev: true + + registry.npmmirror.com/semver/7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz} + name: semver + version: 7.3.8 + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + registry.npmmirror.com/source-map-js/1.0.2: + resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz} + name: source-map-js + version: 1.0.2 + engines: {node: '>=0.10.0'} + dev: true + + registry.npmmirror.com/source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz} + name: source-map + version: 0.6.1 + engines: {node: '>=0.10.0'} + requiresBuild: true + + registry.npmmirror.com/supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz} + name: supports-color + version: 5.5.0 + engines: {node: '>=4'} + dependencies: + has-flag: registry.npmmirror.com/has-flag/3.0.0 + dev: true + + registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz} + name: supports-preserve-symlinks-flag + version: 1.0.0 + engines: {node: '>= 0.4'} + dev: true + + registry.npmmirror.com/to-fast-properties/2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz} + name: to-fast-properties + version: 2.0.0 + engines: {node: '>=4'} + + registry.npmmirror.com/typescript/4.8.4: + resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/typescript/-/typescript-4.8.4.tgz} + name: typescript + version: 4.8.4 + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + registry.npmmirror.com/update-browserslist-db/1.0.10_browserslist@4.21.4: + resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz} + id: registry.npmmirror.com/update-browserslist-db/1.0.10 + name: update-browserslist-db + version: 1.0.10 + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: registry.npmmirror.com/browserslist/4.21.4 + escalade: registry.npmmirror.com/escalade/3.1.1 + picocolors: registry.npmmirror.com/picocolors/1.0.0 + dev: true + + registry.npmmirror.com/vite/3.1.8: + resolution: {integrity: sha512-m7jJe3nufUbuOfotkntGFupinL/fmuTNuQmiVE7cH2IZMuf4UbfbGYMUT3jVWgGYuRVLY9j8NnrRqgw5rr5QTg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/vite/-/vite-3.1.8.tgz} + name: vite + version: 3.1.8 + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + less: '*' + sass: '*' + stylus: '*' + terser: ^5.4.0 + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + dependencies: + esbuild: registry.npmmirror.com/esbuild/0.15.11 + postcss: registry.npmmirror.com/postcss/8.4.18 + resolve: registry.npmmirror.com/resolve/1.22.1 + rollup: registry.npmmirror.com/rollup/2.78.1 + optionalDependencies: + fsevents: registry.npmmirror.com/fsevents/2.3.2 + dev: true diff --git a/src/constants.ts b/src/constants.ts index 76d5539..49d0076 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -4,3 +4,4 @@ export const UPDATE_CONTENT = 'UPDATE_CONTENT' export const RELOAD = 'RELOAD' export const CONTENT_SCRIPT_DEV_PATH = 'content-dev.js' export const SERVICE_WORK_DEV_PATH = 'background-dev.js' +export const stubId = '/@crx/stub' diff --git a/src/http.ts b/src/http.ts index 54baa38..9702d56 100644 --- a/src/http.ts +++ b/src/http.ts @@ -20,7 +20,7 @@ export async function httpServerStart(port: number): Promise { } server.on('error', onError) server.listen(port, () => { - console.log('WebSocketServer started at port: ', port) + console.log('WebSocket server started on port: ', port) server.removeListener('error', onError) resolve({ port, server }) }) diff --git a/src/index.ts b/src/index.ts index 25799c3..e05173b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,8 +5,9 @@ import { resolve, dirname, extname, basename } from 'path' import { normalizePath, normalizePathResolve, isObject } from './utils' import { loadManifest, ManifestProcessor } from './processors/manifest' import { httpServerStart } from './http' -import { VITE_PLUGIN_CRX_MV3, UPDATE_CONTENT } from './constants' +import { VITE_PLUGIN_CRX_MV3, UPDATE_CONTENT, stubId } from './constants' import type { ChromeExtensionManifest } from './manifest' + interface Options { port?: number manifest: string @@ -26,68 +27,17 @@ export default function crxMV3(options: Partial = {}): Plugin { } let socket - let changedFilePath: string - let manifestPath: string + let changedFilePath = '' + let manifestAbsolutPath: string let manifestProcessor: Processor let srcDir = dirname(manifest) + let config: ResolvedConfig - function setRollupInput(config: ResolvedConfig, entries: string[]) { - let buildInput = config.build.rollupOptions?.input - if (Array.isArray(buildInput)) { - config.build.rollupOptions.input = [...buildInput, ...entries] - } else if (isObject(buildInput)) { - const entryObj = {} - entries.forEach((item) => { - const name = basename(item, extname(item)) - entryObj[name] = resolve(srcDir, item) - }) - config.build.rollupOptions.input = { - ...buildInput, - ...entryObj - } - } else { - config.build.rollupOptions.input = [ - ...(buildInput && typeof buildInput === 'string' ? [buildInput] : []), - ...entries - ] - } - } - - function handleBuildPath(config: ResolvedConfig) { - if (!config.build.rollupOptions.output) { - config.build.rollupOptions.output = {} - } - const entryFileNames = config.build.rollupOptions.output.entryFileNames - config.build.rollupOptions.output.entryFileNames = (assetInfo) => { - if ( - assetInfo.facadeModuleId && - /.(j|t)s$/.test(assetInfo.facadeModuleId) - ) { - const assetPath = dirname(assetInfo.facadeModuleId).replace( - normalizePath(resolve(srcDir)), - '' - ) - return `${assetPath ? assetPath.slice(1) + '/' : ''}[name].js` - } - if (entryFileNames) { - if (typeof entryFileNames == 'string') { - return entryFileNames - } else if (typeof entryFileNames == 'function') { - return entryFileNames(assetInfo) - } - } - return 'assets/[name]-[hash].js' - } - } - - async function websocketServerStart( - config: ResolvedConfig, - manifestContent: ChromeExtensionManifest - ) { + async function websocketServerStart(manifest: ChromeExtensionManifest) { if ( config.mode === 'production' || - (!manifestContent?.background?.service_worker && - !manifestContent.content_scripts) + (!manifest?.background?.service_worker && + !manifest?.content_scripts?.length) ) { return } @@ -96,19 +46,19 @@ export default function crxMV3(options: Partial = {}): Plugin { port = serverOptions.port const wss = new WebSocketServer({ noServer: true }) wss.on('connection', function connection(ws) { - console.log(`\x1B[33m[${VITE_PLUGIN_CRX_MV3}]\x1B[0m client connected.`) + console.log(`\x1B[32m[${VITE_PLUGIN_CRX_MV3}]\x1B[0m client connected.`) ws.on('message', () => { ws.send('keep websocket alive.') }) ws.on('close', () => { console.log( - `\x1B[33m[${VITE_PLUGIN_CRX_MV3}]\x1B[0m client disconnected.` + `\x1B[32m[${VITE_PLUGIN_CRX_MV3}]\x1B[0m client disconnected.` ) }) socket = ws }) server.on('upgrade', function upgrade(request, socket, head) { - if (request.url === `/${manifestContent.name}/crx`) { + if (request.url === `/${manifest.name}/crx`) { wss.handleUpgrade(request, socket, head, function done(ws) { wss.emit('connection', ws, request) }) @@ -121,51 +71,75 @@ export default function crxMV3(options: Partial = {}): Plugin { return { name: VITE_PLUGIN_CRX_MV3, apply: 'build', - async configResolved(config: ResolvedConfig) { - manifestPath = normalizePathResolve(config.root, manifest) + async configResolved(_config: ResolvedConfig) { + config = _config + manifestAbsolutPath = normalizePathResolve(config.root, manifest) + let manifestContent: ChromeExtensionManifest = + loadManifest(manifestAbsolutPath) + // websocket service + await websocketServerStart(manifestContent) - const manifestContent: ChromeExtensionManifest = - loadManifest(manifestPath) - // Open socket service - await websocketServerStart(config, manifestContent) manifestProcessor = new ManifestProcessor({ port, - manifestPath, - manifestContent, + srcDir, + manifest: manifestContent, viteConfig: config }) + }, + options({ input, ...options }) { + manifestProcessor.reloadManifest(manifestAbsolutPath) + let htmlPaths = manifestProcessor.getHtmlPaths() + let finalInput = input + let buildInput = config.build.rollupOptions.input - const entries = [ - manifestProcessor.defaultPopupPath, - manifestProcessor.optionsPagePath, - manifestProcessor.devtoolsPagePath, - manifestProcessor.serviceWorkerPath, - manifestProcessor.overridePagePath, - manifestProcessor.historyPagePath, - manifestProcessor.bookmarksPagePath, - ] - .filter((x) => !!x) - .map((path) => resolve(srcDir, path!)) + if (!buildInput && !htmlPaths.length) { + finalInput = stubId + } else { + if (Array.isArray(buildInput)) { + finalInput = [...buildInput, ...htmlPaths] + } else if (isObject(buildInput)) { + const entryObj = {} + for (const item of htmlPaths) { + const name = basename(item, extname(item)) + entryObj[name] = resolve(srcDir, item) + } + finalInput = { ...buildInput, ...entryObj } + } else { + finalInput = [ + buildInput && typeof buildInput === 'string' ? buildInput: stubId, + ...htmlPaths + ] + } + } - // input - setRollupInput(config, entries) - // Rewrite output.entryFileNames to modify build path of assets. - handleBuildPath(config) + return { input: finalInput, ...options } }, watchChange(id) { changedFilePath = normalizePath(id) console.log(`\x1B[35mFile change detected :\x1B[0m ${changedFilePath}`) }, async buildStart() { - await manifestProcessor.getAssetPaths() - await manifestProcessor.generateBundle(this) - await manifestProcessor.generateAssets(this) + this.addWatchFile(manifestAbsolutPath) + await manifestProcessor.generateServiceWorkScript(this) + await manifestProcessor.generateAsset(this) + await manifestProcessor.generateContentScript(this) + manifestProcessor.generateManifest(this) }, - transform(code, id) { - return manifestProcessor.transform(code, id, this) + resolveId(source) { + if (source === stubId) return stubId + return null }, - generateBundle() { - manifestProcessor.generateManifest(this) + load(id) { + if (id === stubId) return `console.log('stub')` + return null + }, + generateBundle(options, bundle) { + for (const [key, chunk] of Object.entries(bundle)) { + if (chunk.type === 'chunk' && chunk.facadeModuleId === stubId) { + delete bundle[key] + break + } + } }, writeBundle() { if (socket) { @@ -175,8 +149,8 @@ export default function crxMV3(options: Partial = {}): Plugin { if ( manifestProcessor.contentScriptPaths.includes(changedFilePath) || assetPaths.includes(changedFilePath) || - changedFilePath === manifestProcessor.serviceWorkerFullPath || - changedFilePath === manifestPath + changedFilePath === manifestProcessor.serviceWorkerAbsolutePath || + changedFilePath === manifestAbsolutPath ) { socket.send(UPDATE_CONTENT) } diff --git a/src/manifest.d.ts b/src/manifest.d.ts index 3b6b41f..237fac4 100644 --- a/src/manifest.d.ts +++ b/src/manifest.d.ts @@ -270,7 +270,7 @@ export interface ChromeExtensionManifest { * Defines an collection of app or extension pages that are to be served in a sandboxed unique origin, and optionally a Content Security Policy to use with them. */ sandbox?: { - pages: [Icon, ...Icon[]] + pages: string[] /** * This introduces some fairly strict policies that will make extensions more secure by default, and provides you with the ability to create and enforce rules governing the types of content that can be loaded and executed by your extensions and applications. */ @@ -423,31 +423,25 @@ export interface WebAccessibleResource { } export interface ProcessorOptions { - manifestPath: string + srcDir: string port: number + manifest: ChromeExtensionManifest, viteConfig: ResolvedConfig - manifestContent: Partial } export interface Processor { options: ProcessorOptions plugins: Plugin[] - serviceWorkerPath?: string | undefined - serviceWorkerFullPath?: string | undefined - defaultPopupPath?: string | undefined - optionsPagePath?: string | undefined - devtoolsPagePath?: string | undefined - overridePagePath?: string | undefined - historyPagePath?: string | undefined - bookmarksPagePath?: string | undefined assetPaths: string[] contentScriptPaths: string[] + serviceWorkerAbsolutePath: string | undefined srcDir: string - manifestContent: Partial - originalManifestContent: Partial - getAssetPaths: () => Promise - generateBundle: (context) => Promise - generateAssets: (context) => Promise - transform: (code: string, id: string, context) => Promise + manifest: Partial + generateServiceWorkScript: (context) => void + getHtmlPaths: () => string[] + reloadManifest: (path) => void + getAssetPaths: () => void + generateContentScript: (context) => Promise + generateAsset: (context) => Promise generateManifest: (context) => void } diff --git a/src/processors/background.ts b/src/processors/background.ts index f519927..16d9025 100644 --- a/src/processors/background.ts +++ b/src/processors/background.ts @@ -3,6 +3,7 @@ import { createRequire } from 'module' import { normalizeJsFilename, normalizeCssFilename } from '../utils' import { emitAsset } from './asset' import { resolve } from 'path' +import { readFileSync } from 'fs' const require = createRequire(import.meta.url) @@ -11,7 +12,7 @@ const dynamicImportAssetRex = const dynamicImportScriptRex = /(?<=chrome.scripting.executeScript\()[\s\S]*?(?=\))/gm -export async function generageDynamicImportScript( +async function generageDynamicImportScript( context: PluginContext, manifestContext, code: string @@ -25,6 +26,7 @@ export async function generageDynamicImportScript( const normalizePath = normalizeJsFilename(filePath) context.addWatchFile(fileFullPath) rollup({ + context: 'globalThis', input: fileFullPath, plugins: manifestContext.plugins }).then(async (bundle) => { @@ -37,9 +39,9 @@ export async function generageDynamicImportScript( ) } -export async function generageDynamicImportAsset( +async function generageDynamicImportAsset( context: PluginContext, - srcDir: string, + manifestContext, code: string ): Promise { let filePath = '' @@ -50,8 +52,33 @@ export async function generageDynamicImportAsset( }) ) if (filePath) { - emitAsset(context, srcDir, filePath) + emitAsset(context, manifestContext.srcDir, filePath) } return content } + +export async function emitServiceWorkScript( + context: PluginContext, + manifestContext, +) { + const { rollup } = await import('rollup') + const bundle = await rollup({ + input: manifestContext.serviceWorkerAbsolutePath, + plugins: manifestContext.plugins + }) + try { + const { output } = await bundle.generate({}) + let code = output[0].code + readFileSync(resolve(__dirname, 'client/background.js'), 'utf8') + let source = await generageDynamicImportScript(context, manifestContext, code) + source = await generageDynamicImportAsset(context, manifestContext, source) + context.emitFile({ + type: 'asset', + source, + fileName: output[0].fileName + }) + + } finally { + await bundle.close() + } +} diff --git a/src/processors/content_scripts.ts b/src/processors/content_scripts.ts index 4af75e7..70818da 100644 --- a/src/processors/content_scripts.ts +++ b/src/processors/content_scripts.ts @@ -1,12 +1,14 @@ -import { PluginContext } from 'rollup' +import { PluginContext, OutputAsset } from 'rollup' import { ChunkMetadata } from 'vite' import { resolve } from 'path' import { readFileSync } from 'fs' import { normalizeJsFilename, + normalizeCssFilename, relaceCssUrlPrefix, relaceResourcePathPrefix, - convertIntoIIFE + convertIntoIIFE, + isString } from '../utils' import { CONTENT_SCRIPT_DEV_PATH, SERVICE_WORK_DEV_PATH } from '../constants' @@ -17,19 +19,23 @@ declare module 'rollup' { } // generate content_scripts -export async function generageContentScripts( +export async function emitContentScripts( context: PluginContext, manifestContext ): Promise> { const { rollup } = await import('rollup') let contentScriptPaths: string[] = [] - for (const script of manifestContext.manifestContent.content_scripts || []) { - for (const js of script.js || []) { - const input = resolve(manifestContext.srcDir, js) + for (const script of manifestContext.manifest.content_scripts ?? []) { + for (const [index, css] of (script.css ?? []).entries()) { + script.css[index] = normalizeCssFilename(css) + } + for (const [index, js] of (script.js ?? []).entries()) { const bundle = await rollup({ - input, + context: 'globalThis', + input: resolve(manifestContext.srcDir, js), plugins: manifestContext.plugins }) + script.js[index] = normalizeJsFilename(js) try { const { output } = await bundle.generate({ entryFileNames: normalizeJsFilename(js) @@ -42,7 +48,9 @@ export async function generageContentScripts( ] bundle.watchFiles.forEach((path) => { - context.addWatchFile(path) + if(!context.getWatchFiles().includes(path)){ + context.addWatchFile(path) + } }) const outputChunk = output[0] if (outputChunk.type === 'chunk') { @@ -55,19 +63,23 @@ export async function generageContentScripts( const assetsSource = output.filter((x) => importedAssets.includes(x.fileName) ) + if (cssSource.length) { script.css = [ ...(script.css ?? []), ...cssSource.map((x) => x.fileName) ] } - [outputChunk, ...cssSource, ...assetsSource].map((x) => { - let content = x.code - ? convertIntoIIFE(relaceResourcePathPrefix(x.code)) - : relaceCssUrlPrefix(x.source) + context.emitFile({ + type: 'asset', + source: convertIntoIIFE(relaceResourcePathPrefix(outputChunk.code)), + fileName: outputChunk.fileName + }) + ;[...cssSource, ...assetsSource].map((x) => { + let source = (x as OutputAsset).source context.emitFile({ type: 'asset', - source: content, + source: isString(source) ? relaceCssUrlPrefix(source): source, fileName: x.fileName }) }) @@ -78,28 +90,28 @@ export async function generageContentScripts( } } return { - manifestContent: manifestContext.manifestContent, + manifest: manifestContext.manifest, contentScriptPaths } } -// generate scripts for dev -export async function generateScriptForDev( +// scripts for dev +export async function emitDevScript( context: PluginContext, manifestContext ): Promise> { let { viteConfig, port } = manifestContext.options - let manifestContent = manifestContext.manifestContent - let serviceWorkerPath = manifestContext.serviceWorkerPath - let contentScripts = manifestContent?.content_scripts + let manifest = manifestContext.manifest + let serviceWorkerPath = manifestContext.serviceWorkerAbsolutePath + let contentScripts = manifest?.content_scripts - if (viteConfig.mode === 'production') return manifestContent + if (viteConfig.mode === 'production') return manifest if (!serviceWorkerPath && contentScripts?.length) { let content = readFileSync( resolve(__dirname, 'client/background.js'), 'utf8' ) - manifestContext.manifestContent.background = { + manifest.background = { service_worker: SERVICE_WORK_DEV_PATH } context.emitFile({ @@ -108,19 +120,19 @@ export async function generateScriptForDev( fileName: SERVICE_WORK_DEV_PATH }) } - if (!manifestContext.manifestContent.content_scripts) { - manifestContext.manifestContent.content_scripts = [] + if (!manifestContext.manifest.content_scripts) { + manifest.content_scripts = [] } if (serviceWorkerPath || contentScripts?.length) { - let code = `var PORT=${port},MENIFEST_NAME='${manifestContent.name}';` + let code = `var PORT=${port},MENIFEST_NAME='${manifest.name}';` let content = readFileSync(resolve(__dirname, 'client/content.js'), 'utf8') context.emitFile({ type: 'asset', source: code + content, fileName: CONTENT_SCRIPT_DEV_PATH }) - manifestContext.manifestContent.content_scripts = [ - ...manifestContext.manifestContent.content_scripts, + manifest.content_scripts = [ + ...manifest.content_scripts, { matches: [''], js: [CONTENT_SCRIPT_DEV_PATH] @@ -128,5 +140,5 @@ export async function generateScriptForDev( ] } - return manifestContext.manifestContent + return manifest } diff --git a/src/processors/manifest.ts b/src/processors/manifest.ts index 951a2fe..7cc438d 100644 --- a/src/processors/manifest.ts +++ b/src/processors/manifest.ts @@ -1,197 +1,152 @@ -import rollup, { PluginContext } from 'rollup' +import { PluginContext } from 'rollup' import type { Plugin } from 'vite' import type { ChromeExtensionManifest, ContentScript, ProcessorOptions } from '../manifest' -import { resolve, dirname, basename } from 'path' +import { basename, resolve } from 'path' import { readFileSync } from 'fs' import { isJsonString, - normalizeCssFilename, normalizePathResolve, - normalizeJsFilename, - isObject + isObject, + isString, + normalizeJsFilename } from '../utils' import { VITE_PLUGIN_CRX_MV3 } from '../constants' -import { generageContentScripts, generateScriptForDev } from './content_scripts' -import { - generageDynamicImportScript, - generageDynamicImportAsset -} from './background' +import { emitContentScripts, emitDevScript } from './content_scripts' +import { emitServiceWorkScript } from './background' import { emitAsset } from './asset' -export function loadManifest(manifestPath) { +export function loadManifest(manifestPath:string){ const manifestRaw = readFileSync(manifestPath, 'utf8') if (!isJsonString(manifestRaw)) { throw new Error('The manifest.json is not valid.') } - const manifestContent = JSON.parse(manifestRaw) - if (!manifestContent.name) { + const manifest = JSON.parse(manifestRaw) + if (!manifest.name) { throw new Error('The name field of manifest.json is required.') } - if (!manifestContent.version) { + if (!manifest.version) { throw new Error('The version field of manifest.json is required.') } - if (!manifestContent.manifest_version) { + if (!manifest.manifest_version) { throw new Error('The manifest_version field of manifest.json is required.') } - return manifestContent + return manifest } export class ManifestProcessor { - plugins: Plugin[] - serviceWorkerPath: string | undefined - serviceWorkerFullPath: string | undefined - defaultPopupPath: string | undefined - optionsPagePath: string | undefined - devtoolsPagePath: string | undefined - overridePagePath: string | undefined - historyPagePath: string | undefined - bookmarksPagePath: string | undefined + plugins: Plugin[] = [] assetPaths: string[] = [] // css & icons contentScriptPaths: string[] = [] srcDir: string - manifestContent: Partial = {} - originalManifestContent: Partial = {} + serviceWorkerAbsolutePath: string | undefined + manifest: Partial = {} options: ProcessorOptions constructor(options: ProcessorOptions) { - let manifestPath = options.manifestPath this.options = options - this.srcDir = dirname(manifestPath) + this.srcDir = options.srcDir + this.manifest = options.manifest this.plugins = options.viteConfig.plugins.filter( (p) => p.name !== VITE_PLUGIN_CRX_MV3 ) - this.originalManifestContent = options.manifestContent - this.getPagePath() + let serviceworkerPath = this.manifest.background?.service_worker + if(serviceworkerPath){ + this.serviceWorkerAbsolutePath = normalizePathResolve(options.srcDir, serviceworkerPath) + } + } - const manifestWatcher = rollup.watch({ input: manifestPath }) - manifestWatcher.on('event', (event) => { - if (event.code === 'START') { - this.originalManifestContent = loadManifest(manifestPath) - this.getPagePath() - } - }) + public reloadManifest(manifestPath:string){ + this.manifest = loadManifest(manifestPath) } - private getPagePath() { - const originalManifestContent = this.originalManifestContent - this.serviceWorkerPath = originalManifestContent?.background?.service_worker - if (this.serviceWorkerPath) { - this.serviceWorkerFullPath = normalizePathResolve( - this.srcDir, - this.serviceWorkerPath - ) - } - this.defaultPopupPath = originalManifestContent?.action?.default_popup - this.optionsPagePath = originalManifestContent.options_page || originalManifestContent?.options_ui?.page - this.devtoolsPagePath = originalManifestContent.devtools_page - const chrome_url_overrides = originalManifestContent.chrome_url_overrides - if (chrome_url_overrides) { - this.overridePagePath = chrome_url_overrides?.newtab - this.bookmarksPagePath = chrome_url_overrides?.bookmarks - this.historyPagePath = chrome_url_overrides?.history - } + public getHtmlPaths(){ + const manifest = this.manifest + return [ + manifest.action?.default_popup, + Object.values(manifest.chrome_url_overrides ?? {}), + manifest.devtools_page, + manifest.options_page, + manifest.options_ui?.page, + manifest.sandbox?.pages, + ].flat().filter((x)=>isString(x)).map((p)=>resolve(this.srcDir, p!)) } //generate manifest.json public generateManifest(context: PluginContext) { - let manifestContent: ChromeExtensionManifest | Record = - this.manifestContent - - if (this.serviceWorkerPath) { - manifestContent.background.service_worker = normalizeJsFilename( - this.serviceWorkerPath - ) - } - if (this.defaultPopupPath) { - manifestContent.action.default_popup = basename(this.defaultPopupPath) + let manifest = this.manifest + if (manifest.action?.default_popup) { + manifest.action.default_popup = basename(manifest.action.default_popup) } - if (this.devtoolsPagePath) { - manifestContent.devtools_page = basename(this.devtoolsPagePath) + if (manifest.devtools_page) { + manifest.devtools_page = basename(manifest.devtools_page) } - if (manifestContent.options_page && this.optionsPagePath) { - manifestContent.options_page = basename(this.optionsPagePath) + if (manifest.options_page) { + manifest.options_page = basename(manifest.options_page) } - if (manifestContent?.options_ui?.page && this.optionsPagePath) { - manifestContent.options_ui.page = basename(this.optionsPagePath) + if (manifest.options_ui?.page) { + manifest.options_page = basename(manifest.options_ui?.page) } - if (manifestContent.chrome_url_overrides) { - if (this.overridePagePath) { - manifestContent.chrome_url_overrides.newtab = basename(this.overridePagePath) - } - if (this.historyPagePath) { - manifestContent.chrome_url_overrides.history = basename(this.historyPagePath) - } - if (this.bookmarksPagePath) { - manifestContent.chrome_url_overrides.bookmarks = basename(this.bookmarksPagePath) - } + if(manifest.sandbox?.pages){ + manifest.sandbox.pages = manifest.sandbox.pages.map((page)=>basename(page)) } - if (Array.isArray(manifestContent.content_scripts)) { - manifestContent.content_scripts.forEach((item: ContentScript) => { - if (Array.isArray(item.js)) { - item.js = item.js.map((item) => normalizeJsFilename(item)) - } - if (Array.isArray(item.css)) { - item.css = item.css.map((item) => normalizeCssFilename(item)) + for (const key of Object.keys(manifest.chrome_url_overrides||{})) { + if(manifest.chrome_url_overrides?.[key]){ + manifest.chrome_url_overrides[key] = basename(manifest.chrome_url_overrides[key]) } - }) } context.emitFile({ type: 'asset', - source: JSON.stringify(this.manifestContent), + source: JSON.stringify(manifest, null , 2), fileName: 'manifest.json' }) } - public async transform(code: string, id: string, context: PluginContext) { - let data = '', - srcDir = this.srcDir - if (this.serviceWorkerFullPath === id) { - data += readFileSync(resolve(__dirname, 'client/background.js'), 'utf8') - } - let source = await generageDynamicImportScript(context, this, code) - source = await generageDynamicImportAsset(context, srcDir, source) + // public async transform(code: string, id: string, context: PluginContext) { + // let data = '' + // if (this.serviceWorkerAbsolutePath === id) { + // data += readFileSync(resolve(__dirname, 'client/background.js'), 'utf8') + // } + // let source = await generageDynamicImportScript(context, this, code) + // source = await generageDynamicImportAsset(context, this, source) - return data + source + // return data + source + // } + + public async generateServiceWorkScript(context: PluginContext){ + if(this.manifest.background?.service_worker){ + context.addWatchFile(this.serviceWorkerAbsolutePath!) + await emitServiceWorkScript(context, this) + this.manifest.background.service_worker = normalizeJsFilename(this.manifest.background.service_worker) + } } - public async generateBundle(context: PluginContext) { - const { contentScriptPaths, manifestContent } = - await generageContentScripts(context, this) + public async generateContentScript(context: PluginContext) { + const { contentScriptPaths, manifest } = + await emitContentScripts(context, this) this.contentScriptPaths = contentScriptPaths - this.manifestContent = manifestContent - this.manifestContent = await generateScriptForDev(context, this) - //watch manifest.json - if (this.options.manifestPath) { - context.addWatchFile(this.options.manifestPath) - } + this.manifest = manifest + this.manifest = await emitDevScript(context, this) } - public async getAssetPaths() { - this.manifestContent = JSON.parse( - JSON.stringify(this.originalManifestContent) - ) + public getAssetPaths() { this.assetPaths = [] - const defaultIcon = this.manifestContent?.action?.default_icon - if (defaultIcon && typeof defaultIcon === 'string') { + const defaultIcon = this.manifest?.action?.default_icon + if (defaultIcon && isString(defaultIcon)) { this.assetPaths = [defaultIcon] } else if (isObject(defaultIcon)) { - let defaultIconPaths = Object.keys(defaultIcon).map((key) => { - return defaultIcon[key] - }) + let defaultIconPaths = Object.values(defaultIcon) this.assetPaths = [...this.assetPaths, ...defaultIconPaths] } - if (isObject(this.manifestContent.icons)) { - let iconPaths = Object.keys(this.manifestContent.icons).map((key) => { - return this.manifestContent.icons?.[key] - }) + if (isObject(this.manifest.icons)) { + let iconPaths = Object.values(this.manifest.icons) this.assetPaths = [...this.assetPaths, ...iconPaths] } - if (Array.isArray(this.manifestContent.content_scripts)) { - this.manifestContent.content_scripts.forEach((item: ContentScript) => { + if (Array.isArray(this.manifest.content_scripts)) { + this.manifest.content_scripts.forEach((item: ContentScript) => { if (Array.isArray(item.css)) { this.assetPaths = [...this.assetPaths, ...item.css] } @@ -199,8 +154,9 @@ export class ManifestProcessor { } } - // icon & css - public async generateAssets(context: PluginContext) { + // icon & content_scripts.css + public async generateAsset(context: PluginContext) { + this.getAssetPaths() for (const path of this.assetPaths) { emitAsset(context, this.srcDir, path) } diff --git a/src/utils.ts b/src/utils.ts index 6cab931..fd25c74 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -17,7 +17,7 @@ export function normalizePath(id: string): string { return path.posix.normalize(os.platform() === 'win32' ? slash(id) : id) } -export function normalizePathResolve(p1, p2) { +export function normalizePathResolve(p1: string, p2: string) { return normalizePath(path.resolve(p1, p2)) } @@ -27,20 +27,17 @@ export const normalizeCssFilename = (p: string) => p.replace(/\.(less|scss)/, '.css') export function relaceCssUrlPrefix(code: string) { - if (typeof code === 'string') { - return code.replace(/(?<=url\()[\s\S]*?(?=\))/gm, function (str) { - return ( - 'chrome-extension://' + - slash(path.join('__MSG_@@extension_id__', str.trim())) - ) - }) - } - return code + return code.replace(/(?<=url\()[\s\S]*?(?=\))/gm, function (str) { + return ( + 'chrome-extension://' + + slash(path.join('__MSG_@@extension_id__', str.trim())) + ) + }) } export function relaceResourcePathPrefix(code: string) { return code.replace( - /(?<=(=))"[^(?!")]+(\.png|jpg|jpeg|svg|webp|gif|mp3|mp4|avi|rmvb|mpeg|ra|ram|mov|wmv)"(?=,|;)/gm, + /(?<=(=))"[^(?!")]+(\.png|jpg|jpeg|svg|webp|gif|mp3|mp4|avi|rmvb|mpeg|ra|ram|mov|wmv|pdf)"(?=,|;)/gm, function (str) { return str.startsWith('http') ? str : `chrome.runtime.getURL(${str})` } @@ -54,3 +51,5 @@ export function convertIntoIIFE(code: string) { export function isObject(value: unknown): value is Record { return Object.prototype.toString.call(value) === '[object Object]' } + +export const isString = (value: unknown): value is string => typeof value === 'string'