From 390abc60eceb2da4f00bd91d830cfffd4a083a12 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 23 Jul 2021 10:55:41 +0800 Subject: [PATCH 001/105] chore: init --- .eslintignore | 3 + .eslintrc | 3 + .github/FUNDING.yml | 1 + .github/ISSUE_TEMPLATE/general.md | 12 + .gitignore | 11 + .npmrc | 1 + .vscode/extensions.json | 10 + .vscode/settings.json | 13 + LICENSE | 21 + README.md | 0 components.d.ts | 15 + index.html | 22 + package.json | 34 + pnpm-lock.yaml | 3089 +++++++++++++++++++++++++++++ public/favicon.svg | 9 + public/pwa-192x192.png | Bin 0 -> 3914 bytes public/pwa-512x512.png | Bin 0 -> 10261 bytes public/robots.txt | 2 + src/background.ts | 0 src/components/Footer.vue | 16 + src/components/README.md | 10 + src/content.ts | 0 src/manifest.json | 64 + src/options/App.vue | 6 + src/options/index.html | 12 + src/options/main.ts | 8 + src/popup/App.vue | 6 + src/popup/index.html | 12 + src/popup/main.ts | 8 + src/shared/logic/dark.ts | 4 + src/shared/logic/index.ts | 1 + src/shared/styles/index.ts | 2 + src/shared/styles/main.css | 41 + tsconfig.json | 25 + vite.config.ts | 54 + windi.config.ts | 7 + 36 files changed, 3522 insertions(+) create mode 100644 .eslintignore create mode 100644 .eslintrc create mode 100644 .github/FUNDING.yml create mode 100644 .github/ISSUE_TEMPLATE/general.md create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 components.d.ts create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/favicon.svg create mode 100644 public/pwa-192x192.png create mode 100644 public/pwa-512x512.png create mode 100644 public/robots.txt create mode 100644 src/background.ts create mode 100644 src/components/Footer.vue create mode 100644 src/components/README.md create mode 100644 src/content.ts create mode 100644 src/manifest.json create mode 100644 src/options/App.vue create mode 100644 src/options/index.html create mode 100644 src/options/main.ts create mode 100644 src/popup/App.vue create mode 100644 src/popup/index.html create mode 100644 src/popup/main.ts create mode 100644 src/shared/logic/dark.ts create mode 100644 src/shared/logic/index.ts create mode 100644 src/shared/styles/index.ts create mode 100755 src/shared/styles/main.css create mode 100644 tsconfig.json create mode 100644 vite.config.ts create mode 100644 windi.config.ts diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..e6a8276 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +dist +node_modules +public diff --git a/.eslintrc b/.eslintrc new file mode 100644 index 0000000..09c2e42 --- /dev/null +++ b/.eslintrc @@ -0,0 +1,3 @@ +{ + "extends": "@antfu" +} diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..7246382 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: antfu diff --git a/.github/ISSUE_TEMPLATE/general.md b/.github/ISSUE_TEMPLATE/general.md new file mode 100644 index 0000000..91a5b38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/general.md @@ -0,0 +1,12 @@ +--- +name: General +about: General issue +title: '' +labels: '' +assignees: '' + +--- + +PLEASE READ: I originally made this template for myself to mocking up apps quicker. I am glad to see you are willing to give it a try! Before your open the issue, please make sure you are reporting bugs in the template itself. **I am NOT creating this template to solve the problems you faced in your project, please use Vue or Vite's discord server to ask questions.** Thank you. + +**Describe the bug/issue** diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ffe146d --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +.DS_Store +.vite-ssg-dist +.vite-ssg-temp +*.local +dist +dist-ssr +node_modules +# intellij stuff +.idea/ +# logs +*.log diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..bf2e764 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +shamefully-hoist=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..bc9dfb8 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,10 @@ +{ + "recommendations": [ + "antfu.vite", + "johnsoncodehk.volar", + "antfu.iconify", + "dbaeumer.vscode-eslint", + "voorjaar.windicss-intellisense", + "csstools.postcss" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..f15ab7e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,13 @@ +{ + "cSpell.words": ["Vitesse"], + "prettier.enable": false, + "typescript.tsdk": "node_modules/typescript/lib", + "volar.tsPlugin": true, + "volar.tsPluginStatus": false, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + }, + "files.associations": { + "*.css": "postcss", + }, +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..9b031a2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Anthony Fu + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 0000000..d629424 --- /dev/null +++ b/components.d.ts @@ -0,0 +1,15 @@ +// generated by vite-plugin-components +// read more https://github.com/vuejs/vue-next/pull/3399 + +declare module 'vue' { + export interface GlobalComponents { + CarbonCampsite: typeof import('virtual:vite-icons/carbon/campsite')['default'] + CarbonLogoGithub: typeof import('virtual:vite-icons/carbon/logo-github')['default'] + CarbonMoon: typeof import('virtual:vite-icons/carbon/moon')['default'] + CarbonPedestrian: typeof import('virtual:vite-icons/carbon/pedestrian')['default'] + CarbonSun: typeof import('virtual:vite-icons/carbon/sun')['default'] + Footer: typeof import('./src/components/Footer.vue')['default'] + } +} + +export { } diff --git a/index.html b/index.html new file mode 100644 index 0000000..50669c4 --- /dev/null +++ b/index.html @@ -0,0 +1,22 @@ + + + + + + + + + + +
+ + + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..2dc125c --- /dev/null +++ b/package.json @@ -0,0 +1,34 @@ +{ + "private": true, + "scripts": { + "dev": "vite --port 3333 --open", + "build": "cross-env NODE_ENV=production vite build", + "preview": "vite preview" + }, + "dependencies": { + "@vueuse/core": "^5.1.4", + "@vueuse/head": "^0.6.0", + "vue": "^3.1.5", + "vue-demi": "^0.11.2", + "vue-global-api": "^0.2.4", + "vue-router": "^4.0.10" + }, + "devDependencies": { + "@antfu/eslint-config": "^0.7.0", + "@iconify/json": "^1.1.378", + "@types/node": "^16.4.1", + "@typescript-eslint/eslint-plugin": "^4.28.3", + "@vitejs/plugin-vue": "^1.2.5", + "@vue/compiler-sfc": "^3.1.5", + "cross-env": "^7.0.3", + "eslint": "^7.31.0", + "pnpm": "^6.10.3", + "typescript": "^4.3.5", + "vite": "^2.4.2", + "vite-plugin-components": "^0.13.0", + "vite-plugin-icons": "^0.6.5", + "vite-plugin-pages": "^0.15.0", + "vite-plugin-windicss": "^1.2.4", + "webextension-polyfill-ts": "^0.26.0" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..ae8558a --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,3089 @@ +lockfileVersion: 5.3 + +specifiers: + '@antfu/eslint-config': ^0.7.0 + '@iconify/json': ^1.1.378 + '@types/node': ^16.4.1 + '@typescript-eslint/eslint-plugin': ^4.28.3 + '@vitejs/plugin-vue': ^1.2.5 + '@vue/compiler-sfc': ^3.1.5 + '@vueuse/core': ^5.1.4 + '@vueuse/head': ^0.6.0 + cross-env: ^7.0.3 + eslint: ^7.31.0 + pnpm: ^6.10.3 + typescript: ^4.3.5 + vite: ^2.4.2 + vite-plugin-components: ^0.13.0 + vite-plugin-icons: ^0.6.5 + vite-plugin-pages: ^0.15.0 + vite-plugin-windicss: ^1.2.4 + vue: ^3.1.5 + vue-demi: ^0.11.2 + vue-global-api: ^0.2.4 + vue-router: ^4.0.10 + webextension-polyfill-ts: ^0.26.0 + +dependencies: + '@vueuse/core': 5.1.4_vue@3.1.5 + '@vueuse/head': 0.6.0_vue@3.1.5 + vue: 3.1.5 + vue-demi: 0.11.2_vue@3.1.5 + vue-global-api: 0.2.4_vue@3.1.5 + vue-router: 4.0.10_vue@3.1.5 + +devDependencies: + '@antfu/eslint-config': 0.7.0_eslint@7.31.0+typescript@4.3.5 + '@iconify/json': 1.1.379 + '@types/node': 16.4.1 + '@typescript-eslint/eslint-plugin': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@vitejs/plugin-vue': 1.2.5_@vue+compiler-sfc@3.1.5 + '@vue/compiler-sfc': 3.1.5_vue@3.1.5 + cross-env: 7.0.3 + eslint: 7.31.0 + pnpm: 6.10.3 + typescript: 4.3.5 + vite: 2.4.3 + vite-plugin-components: 0.13.2_vite@2.4.3 + vite-plugin-icons: 0.6.5_774edd05d2fe6e67dbc66770415e2b73 + vite-plugin-pages: 0.15.1_2e7abeba2e485b4890a9b09e0985f188 + vite-plugin-windicss: 1.2.5_vite@2.4.3 + webextension-polyfill-ts: 0.26.0 + +packages: + + /@antfu/eslint-config-basic/0.7.0_eslint@7.31.0: + resolution: {integrity: sha512-uvRowyFwO9tS4f0AbTdn0/OhCluV38C145npLFfBjOMbIyujtOM7jvsZ/JJq5eXpBkfuEe8p253uvIJiB1CeNQ==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + eslint: 7.31.0 + eslint-config-standard: 16.0.3_ebdb84fef5122eacd2d98bd9212a56af + eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 + eslint-plugin-html: 6.1.2 + eslint-plugin-import: 2.23.4_eslint@7.31.0 + eslint-plugin-jsonc: 1.4.0_eslint@7.31.0 + eslint-plugin-node: 11.1.0_eslint@7.31.0 + eslint-plugin-promise: 5.1.0_eslint@7.31.0 + eslint-plugin-unicorn: 34.0.1_eslint@7.31.0 + eslint-plugin-yml: 0.9.0_eslint@7.31.0 + jsonc-eslint-parser: 1.1.0_eslint@7.31.0 + yaml-eslint-parser: 0.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@antfu/eslint-config-react/0.7.0_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-wZj2YP7MiJCqPAkxwfTSgLCFqg8SLS9F/4FVh7bc/AqngfvSyE21nVzzYx6OM5fgCBY5acmdj0KttxrUDf5m3w==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-ts': 0.7.0_eslint@7.31.0+typescript@4.3.5 + eslint: 7.31.0 + eslint-plugin-react: 7.24.0_eslint@7.31.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@antfu/eslint-config-ts/0.7.0_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-SsWarj0OCZwT6YoZuUUpMzMagqSz279kyu498UEazP/H4P0nWZg32/hOJnE0F6swAk3jRcqbTybSVRM9GwQElA==} + peerDependencies: + eslint: '>=7.4.0' + typescript: '>=3.9' + dependencies: + '@antfu/eslint-config-basic': 0.7.0_eslint@7.31.0 + '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 + '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + eslint: 7.31.0 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@antfu/eslint-config-vue/0.7.0_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-h5Lx9R/dmrGYED4tGNroDflU6ECBk9Ts+aVb9qH4XBVPNcMSFCfnuvCuORs2I/QlZUL3Vc/UZlZOY3ULN4tuTg==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-ts': 0.7.0_eslint@7.31.0+typescript@4.3.5 + eslint: 7.31.0 + eslint-plugin-vue: 7.12.1_eslint@7.31.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@antfu/eslint-config/0.7.0_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-wVAQhab+Mlg6+/+a/fxdAzS6CVJ+tvH/53UWwNE6VRvWjPWQXhfs4/4v0G59O6IhGsSzbkohgdrT3pvJWMen5w==} + peerDependencies: + eslint: '>=7.4.0' + dependencies: + '@antfu/eslint-config-react': 0.7.0_eslint@7.31.0+typescript@4.3.5 + '@antfu/eslint-config-vue': 0.7.0_eslint@7.31.0+typescript@4.3.5 + eslint: 7.31.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@antfu/utils/0.2.4: + resolution: {integrity: sha512-2bZNkVfL9IZESmvE26UKi8SzyvSoaIsGXDcnbHFMtmGMqUiB1fXpAJ1ijGf+tSqKRQ5yagck2U1Qk0p+705/kw==} + dependencies: + '@types/throttle-debounce': 2.1.0 + dev: true + + /@babel/code-frame/7.12.11: + resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} + dependencies: + '@babel/highlight': 7.14.5 + dev: true + + /@babel/code-frame/7.14.5: + resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.14.5 + dev: true + + /@babel/compat-data/7.14.7: + resolution: {integrity: sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/core/7.14.8: + resolution: {integrity: sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.14.5 + '@babel/generator': 7.14.8 + '@babel/helper-compilation-targets': 7.14.5_@babel+core@7.14.8 + '@babel/helper-module-transforms': 7.14.8 + '@babel/helpers': 7.14.8 + '@babel/parser': 7.14.8 + '@babel/template': 7.14.5 + '@babel/traverse': 7.14.8 + '@babel/types': 7.14.8 + convert-source-map: 1.8.0 + debug: 4.3.2 + gensync: 1.0.0-beta.2 + json5: 2.2.0 + semver: 6.3.0 + source-map: 0.5.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/eslint-parser/7.14.7_@babel+core@7.14.8+eslint@7.31.0: + resolution: {integrity: sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ==} + engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} + peerDependencies: + '@babel/core': '>=7.11.0' + eslint: '>=7.5.0' + dependencies: + '@babel/core': 7.14.8 + eslint: 7.31.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 2.1.0 + semver: 6.3.0 + dev: true + + /@babel/generator/7.14.8: + resolution: {integrity: sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + jsesc: 2.5.2 + source-map: 0.5.7 + dev: true + + /@babel/helper-compilation-targets/7.14.5_@babel+core@7.14.8: + resolution: {integrity: sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + dependencies: + '@babel/compat-data': 7.14.7 + '@babel/core': 7.14.8 + '@babel/helper-validator-option': 7.14.5 + browserslist: 4.16.6 + semver: 6.3.0 + dev: true + + /@babel/helper-function-name/7.14.5: + resolution: {integrity: sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-get-function-arity': 7.14.5 + '@babel/template': 7.14.5 + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-get-function-arity/7.14.5: + resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-hoist-variables/7.14.5: + resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-member-expression-to-functions/7.14.7: + resolution: {integrity: sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-module-imports/7.14.5: + resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-module-transforms/7.14.8: + resolution: {integrity: sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-module-imports': 7.14.5 + '@babel/helper-replace-supers': 7.14.5 + '@babel/helper-simple-access': 7.14.8 + '@babel/helper-split-export-declaration': 7.14.5 + '@babel/helper-validator-identifier': 7.14.8 + '@babel/template': 7.14.5 + '@babel/traverse': 7.14.8 + '@babel/types': 7.14.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.14.5: + resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-replace-supers/7.14.5: + resolution: {integrity: sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-member-expression-to-functions': 7.14.7 + '@babel/helper-optimise-call-expression': 7.14.5 + '@babel/traverse': 7.14.8 + '@babel/types': 7.14.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.14.8: + resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-split-export-declaration/7.14.5: + resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/types': 7.14.8 + dev: true + + /@babel/helper-validator-identifier/7.14.8: + resolution: {integrity: sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==} + engines: {node: '>=6.9.0'} + + /@babel/helper-validator-option/7.14.5: + resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==} + engines: {node: '>=6.9.0'} + dev: true + + /@babel/helpers/7.14.8: + resolution: {integrity: sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/template': 7.14.5 + '@babel/traverse': 7.14.8 + '@babel/types': 7.14.8 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.14.5: + resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.14.8 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.14.8: + resolution: {integrity: sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==} + engines: {node: '>=6.0.0'} + hasBin: true + + /@babel/template/7.14.5: + resolution: {integrity: sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.14.5 + '@babel/parser': 7.14.8 + '@babel/types': 7.14.8 + dev: true + + /@babel/traverse/7.14.8: + resolution: {integrity: sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.14.5 + '@babel/generator': 7.14.8 + '@babel/helper-function-name': 7.14.5 + '@babel/helper-hoist-variables': 7.14.5 + '@babel/helper-split-export-declaration': 7.14.5 + '@babel/parser': 7.14.8 + '@babel/types': 7.14.8 + debug: 4.3.2 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.14.8: + resolution: {integrity: sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.14.8 + to-fast-properties: 2.0.0 + + /@eslint/eslintrc/0.4.3: + resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.2 + espree: 7.3.1 + globals: 13.10.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + js-yaml: 3.14.1 + minimatch: 3.0.4 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/config-array/0.5.0: + resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.0 + debug: 4.3.2 + minimatch: 3.0.4 + transitivePeerDependencies: + - supports-color + dev: true + + /@humanwhocodes/object-schema/1.2.0: + resolution: {integrity: sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==} + dev: true + + /@iconify/json-tools/1.0.10: + resolution: {integrity: sha512-LFelJDOLZ6JHlmlAkgrvmcu4hpNPB91KYcr4f60D/exzU1eNOb4/KCVHIydGHIQFaOacIOD+Xy+B7P1z812cZg==} + dev: true + + /@iconify/json/1.1.379: + resolution: {integrity: sha512-rFvjFTvTiazBq7mBl03KeXGCconZOE9PseNTxC32pZnrKDSe7GCeNBGlmJMerF4vt1OBUE0/iY1+mUIfsHoe8g==} + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.11.1 + dev: true + + /@types/estree/0.0.48: + resolution: {integrity: sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==} + dev: true + + /@types/json-schema/7.0.8: + resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} + dev: true + + /@types/node/16.4.1: + resolution: {integrity: sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==} + dev: true + + /@types/normalize-package-data/2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + + /@types/throttle-debounce/2.1.0: + resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} + dev: true + + /@typescript-eslint/eslint-plugin/4.28.4_b1648df9f9ba40bdeef3710a5a5af353: + resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.28.4 + debug: 4.3.2 + eslint: 7.31.0 + functional-red-black-tree: 1.0.1 + regexpp: 3.2.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.5 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/eslint-plugin/4.28.4_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.28.4 + debug: 4.3.2 + eslint: 7.31.0 + functional-red-black-tree: 1.0.1 + regexpp: 3.2.0 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.5 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/experimental-utils/4.28.4_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.8 + '@typescript-eslint/scope-manager': 4.28.4 + '@typescript-eslint/types': 4.28.4 + '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 + eslint: 7.31.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@7.31.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/4.28.4_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 4.28.4 + '@typescript-eslint/types': 4.28.4 + '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 + debug: 4.3.2 + eslint: 7.31.0 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/scope-manager/4.28.4: + resolution: {integrity: sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.28.4 + '@typescript-eslint/visitor-keys': 4.28.4 + dev: true + + /@typescript-eslint/types/4.28.4: + resolution: {integrity: sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + + /@typescript-eslint/typescript-estree/4.28.4_typescript@4.3.5: + resolution: {integrity: sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.28.4 + '@typescript-eslint/visitor-keys': 4.28.4 + debug: 4.3.2 + globby: 11.0.4 + is-glob: 4.0.1 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.5 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@typescript-eslint/visitor-keys/4.28.4: + resolution: {integrity: sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.28.4 + eslint-visitor-keys: 2.1.0 + dev: true + + /@vitejs/plugin-vue/1.2.5_@vue+compiler-sfc@3.1.5: + resolution: {integrity: sha512-GIR31mdXTEfvElmBUaRhDc5v7lfdkEdawWQqJRiaRL/5qKsH+xusukglkvJz5y7+c6dEpxgmvcATv2BbB7+fzQ==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@vue/compiler-sfc': ^3.0.8 + dependencies: + '@vue/compiler-sfc': 3.1.5_vue@3.1.5 + dev: true + + /@vue/compiler-core/3.1.5: + resolution: {integrity: sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q==} + dependencies: + '@babel/parser': 7.14.8 + '@babel/types': 7.14.8 + '@vue/shared': 3.1.5 + estree-walker: 2.0.2 + source-map: 0.6.1 + + /@vue/compiler-dom/3.1.5: + resolution: {integrity: sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ==} + dependencies: + '@vue/compiler-core': 3.1.5 + '@vue/shared': 3.1.5 + + /@vue/compiler-sfc/3.1.5_vue@3.1.5: + resolution: {integrity: sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA==} + peerDependencies: + vue: 3.1.5 + dependencies: + '@babel/parser': 7.14.8 + '@babel/types': 7.14.8 + '@types/estree': 0.0.48 + '@vue/compiler-core': 3.1.5 + '@vue/compiler-dom': 3.1.5 + '@vue/compiler-ssr': 3.1.5 + '@vue/shared': 3.1.5 + consolidate: 0.16.0 + estree-walker: 2.0.2 + hash-sum: 2.0.0 + lru-cache: 5.1.1 + magic-string: 0.25.7 + merge-source-map: 1.1.0 + postcss: 8.3.6 + postcss-modules: 4.2.0_postcss@8.3.6 + postcss-selector-parser: 6.0.6 + source-map: 0.6.1 + vue: 3.1.5 + dev: true + + /@vue/compiler-ssr/3.1.5: + resolution: {integrity: sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg==} + dependencies: + '@vue/compiler-dom': 3.1.5 + '@vue/shared': 3.1.5 + dev: true + + /@vue/devtools-api/6.0.0-beta.15: + resolution: {integrity: sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA==} + dev: false + + /@vue/reactivity/3.1.5: + resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} + dependencies: + '@vue/shared': 3.1.5 + dev: false + + /@vue/runtime-core/3.1.5: + resolution: {integrity: sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg==} + dependencies: + '@vue/reactivity': 3.1.5 + '@vue/shared': 3.1.5 + dev: false + + /@vue/runtime-dom/3.1.5: + resolution: {integrity: sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg==} + dependencies: + '@vue/runtime-core': 3.1.5 + '@vue/shared': 3.1.5 + csstype: 2.6.17 + dev: false + + /@vue/shared/3.1.5: + resolution: {integrity: sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==} + + /@vueuse/core/5.1.4_vue@3.1.5: + resolution: {integrity: sha512-iuRhSaScI1GJS4N3CFPc1GajOr6F6J1Nng1I6ocNOjLx+evss6egImx9wnuX45fxqQstnh7Vfqe3FF7+0NgoWg==} + dependencies: + '@vueuse/shared': 5.1.4_vue@3.1.5 + vue-demi: 0.11.2_vue@3.1.5 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@vueuse/head/0.6.0_vue@3.1.5: + resolution: {integrity: sha512-fi7ZjkMpEAUtTT6iR5wgL2HkX1+3zbrmbpcwU//RgJIWEr5b42jk8E9yOheaC2dYAAHzelAllVpX0pDmhcTXuw==} + peerDependencies: + vue: '>=3' + dependencies: + vue: 3.1.5 + dev: false + + /@vueuse/shared/5.1.4_vue@3.1.5: + resolution: {integrity: sha512-C0xiMv8+sFI3WhXdlrcLKI4d4dFnouHe4Te51cxWgcmpW7S8eUiM8fXPaQVxUQZ4E9PCx3zEZpNpCLzQa+6Lag==} + dependencies: + vue-demi: 0.11.2_vue@3.1.5 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /@windicss/config/1.2.5: + resolution: {integrity: sha512-XzbvVQ9crDRnzHLA9t0atejAIus0X+P4l9SFPmGhUXycI63Ae0SfNzdw5q56MM5Et3Xbtju0esJ89K8bkRe+xA==} + dependencies: + debug: 4.3.2 + jiti: 1.10.1 + windicss: 3.1.5 + transitivePeerDependencies: + - supports-color + dev: true + + /@windicss/plugin-utils/1.2.5: + resolution: {integrity: sha512-RUFhW5l3YYkuNwYM1u7F/RoIpibULE7qe2N7D/rtiJVDf67lL9S8hjTll1/d7pvvW5XtI+fDuc8GpmGwARg83A==} + dependencies: + '@antfu/utils': 0.2.4 + '@windicss/config': 1.2.5 + debug: 4.3.2 + fast-glob: 3.2.7 + magic-string: 0.25.7 + micromatch: 4.0.4 + windicss: 3.1.5 + transitivePeerDependencies: + - supports-color + dev: true + + /acorn-jsx/5.3.2_acorn@7.4.1: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 7.4.1 + dev: true + + /acorn/7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /ajv/6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + dev: true + + /ajv/8.6.2: + resolution: {integrity: sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==} + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-colors/4.1.1: + resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} + engines: {node: '>=6'} + dev: true + + /ansi-regex/5.0.0: + resolution: {integrity: sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==} + engines: {node: '>=8'} + 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 + + /argparse/1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + dependencies: + sprintf-js: 1.0.3 + dev: true + + /array-includes/3.1.3: + resolution: {integrity: sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + get-intrinsic: 1.1.1 + is-string: 1.0.6 + dev: true + + /array-union/2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: true + + /array.prototype.flat/1.2.4: + resolution: {integrity: sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /array.prototype.flatmap/1.2.4: + resolution: {integrity: sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + function-bind: 1.1.1 + dev: true + + /astral-regex/2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + dev: true + + /available-typed-arrays/1.0.4: + resolution: {integrity: sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==} + engines: {node: '>= 0.4'} + dev: true + + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /big.js/5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + dev: true + + /bluebird/3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + dev: true + + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /braces/3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.16.6: + resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001246 + colorette: 1.2.2 + electron-to-chromium: 1.3.785 + escalade: 3.1.1 + node-releases: 1.1.73 + dev: true + + /builtin-modules/3.2.0: + resolution: {integrity: sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==} + engines: {node: '>=6'} + dev: true + + /call-bind/1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + dev: true + + /callsites/3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + dev: true + + /caniuse-lite/1.0.30001246: + resolution: {integrity: sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==} + 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.1: + resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /ci-info/3.2.0: + resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} + dev: true + + /clean-regexp/1.0.0: + resolution: {integrity: sha1-jffHquUf02h06PjQW5GAvBGj/tc=} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + 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: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} + dev: true + + /color-name/1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /colorette/1.2.2: + resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} + dev: true + + /concat-map/0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + dev: true + + /consolidate/0.16.0: + resolution: {integrity: sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==} + engines: {node: '>= 0.10.0'} + dependencies: + bluebird: 3.7.2 + dev: true + + /convert-source-map/1.8.0: + resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} + dependencies: + safe-buffer: 5.1.2 + dev: true + + /cross-env/7.0.3: + resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} + engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + dev: true + + /cross-spawn/7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + + /cssesc/3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /csstype/2.6.17: + resolution: {integrity: sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A==} + dev: false + + /debug/2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + dependencies: + ms: 2.0.0 + dev: true + + /debug/3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + dependencies: + ms: 2.1.3 + dev: true + + /debug/4.3.2: + resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deep-equal/2.0.5: + resolution: {integrity: sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==} + dependencies: + call-bind: 1.0.2 + es-get-iterator: 1.1.2 + get-intrinsic: 1.1.1 + is-arguments: 1.1.0 + is-date-object: 1.0.4 + is-regex: 1.1.3 + isarray: 2.0.5 + object-is: 1.1.5 + object-keys: 1.1.1 + object.assign: 4.1.2 + regexp.prototype.flags: 1.3.1 + side-channel: 1.0.4 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.1 + which-typed-array: 1.1.4 + dev: true + + /deep-is/0.1.3: + resolution: {integrity: sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=} + dev: true + + /define-properties/1.1.3: + resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + engines: {node: '>= 0.4'} + dependencies: + object-keys: 1.1.1 + dev: true + + /dir-glob/3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: true + + /doctrine/2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /doctrine/3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + dev: true + + /dom-serializer/1.3.2: + resolution: {integrity: sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.2.0 + entities: 2.2.0 + dev: true + + /domelementtype/2.2.0: + resolution: {integrity: sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==} + dev: true + + /domhandler/4.2.0: + resolution: {integrity: sha512-zk7sgt970kzPks2Bf+dwT/PLzghLnsivb9CcxkvR8Mzr66Olr0Ofd8neSbglHJHaHa2MadfoSdNlKYAaafmWfA==} + engines: {node: '>= 4'} + dependencies: + domelementtype: 2.2.0 + dev: true + + /domutils/2.7.0: + resolution: {integrity: sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==} + dependencies: + dom-serializer: 1.3.2 + domelementtype: 2.2.0 + domhandler: 4.2.0 + dev: true + + /electron-to-chromium/1.3.785: + resolution: {integrity: sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==} + dev: true + + /emoji-regex/8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emojis-list/3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + dev: true + + /enquirer/2.3.6: + resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} + engines: {node: '>=8.6'} + dependencies: + ansi-colors: 4.1.1 + dev: true + + /entities/2.2.0: + resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} + dev: true + + /error-ex/1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.18.3: + resolution: {integrity: sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + get-intrinsic: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + is-callable: 1.2.3 + is-negative-zero: 2.0.1 + is-regex: 1.1.3 + is-string: 1.0.6 + object-inspect: 1.11.0 + object-keys: 1.1.1 + object.assign: 4.1.2 + string.prototype.trimend: 1.0.4 + string.prototype.trimstart: 1.0.4 + unbox-primitive: 1.0.1 + dev: true + + /es-get-iterator/1.1.2: + resolution: {integrity: sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + has-symbols: 1.0.2 + is-arguments: 1.1.0 + is-map: 2.0.2 + is-set: 2.0.2 + is-string: 1.0.6 + isarray: 2.0.5 + dev: true + + /es-to-primitive/1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.3 + is-date-object: 1.0.4 + is-symbol: 1.0.4 + dev: true + + /esbuild/0.12.15: + resolution: {integrity: sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==} + hasBin: true + requiresBuild: true + dev: true + + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + + /escape-string-regexp/1.0.5: + resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + engines: {node: '>=0.8.0'} + dev: true + + /escape-string-regexp/4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + dev: true + + /eslint-config-standard/16.0.3_ebdb84fef5122eacd2d98bd9212a56af: + resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} + peerDependencies: + eslint: ^7.12.1 + eslint-plugin-import: ^2.22.1 + eslint-plugin-node: ^11.1.0 + eslint-plugin-promise: ^4.2.1 || ^5.0.0 + dependencies: + eslint: 7.31.0 + eslint-plugin-import: 2.23.4_eslint@7.31.0 + eslint-plugin-node: 11.1.0_eslint@7.31.0 + eslint-plugin-promise: 5.1.0_eslint@7.31.0 + dev: true + + /eslint-import-resolver-node/0.3.4: + resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} + dependencies: + debug: 2.6.9 + resolve: 1.20.0 + dev: true + + /eslint-module-utils/2.6.1: + resolution: {integrity: sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==} + engines: {node: '>=4'} + dependencies: + debug: 3.2.7 + pkg-dir: 2.0.0 + dev: true + + /eslint-plugin-es/3.0.1_eslint@7.31.0: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + eslint: 7.31.0 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + dev: true + + /eslint-plugin-eslint-comments/3.2.0_eslint@7.31.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 7.31.0 + ignore: 5.1.8 + dev: true + + /eslint-plugin-html/6.1.2: + resolution: {integrity: sha512-bhBIRyZFqI4EoF12lGDHAmgfff8eLXx6R52/K3ESQhsxzCzIE6hdebS7Py651f7U3RBotqroUnC3L29bR7qJWQ==} + dependencies: + htmlparser2: 6.1.0 + dev: true + + /eslint-plugin-import/2.23.4_eslint@7.31.0: + resolution: {integrity: sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 + dependencies: + array-includes: 3.1.3 + array.prototype.flat: 1.2.4 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 7.31.0 + eslint-import-resolver-node: 0.3.4 + eslint-module-utils: 2.6.1 + find-up: 2.1.0 + has: 1.0.3 + is-core-module: 2.5.0 + minimatch: 3.0.4 + object.values: 1.1.4 + pkg-up: 2.0.0 + read-pkg-up: 3.0.0 + resolve: 1.20.0 + tsconfig-paths: 3.10.1 + dev: true + + /eslint-plugin-jsonc/1.4.0_eslint@7.31.0: + resolution: {integrity: sha512-SmajEsMUFIIZEnUdng5b2U1MkxB9pOb7IiiGKOsh+W6cFbPljFIH8ET+6vy1eLI0u2YQEzjGZ7xGiWs8ynk4Xw==} + peerDependencies: + eslint: ^5.0.0 || >=6.0.0 + dependencies: + eslint: 7.31.0 + eslint-utils: 3.0.0_eslint@7.31.0 + jsonc-eslint-parser: 1.1.0_eslint@7.31.0 + natural-compare: 1.4.0 + dev: true + + /eslint-plugin-node/11.1.0_eslint@7.31.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + dependencies: + eslint: 7.31.0 + eslint-plugin-es: 3.0.1_eslint@7.31.0 + eslint-utils: 2.1.0 + ignore: 5.1.8 + minimatch: 3.0.4 + resolve: 1.20.0 + semver: 6.3.0 + dev: true + + /eslint-plugin-promise/5.1.0_eslint@7.31.0: + resolution: {integrity: sha512-NGmI6BH5L12pl7ScQHbg7tvtk4wPxxj8yPHH47NvSmMtFneC077PSeY3huFj06ZWZvtbfxSPt3RuOQD5XcR4ng==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: ^7.0.0 + dependencies: + eslint: 7.31.0 + dev: true + + /eslint-plugin-react/7.24.0_eslint@7.31.0: + resolution: {integrity: sha512-KJJIx2SYx7PBx3ONe/mEeMz4YE0Lcr7feJTCMyyKb/341NcjuAgim3Acgan89GfPv7nxXK2+0slu0CWXYM4x+Q==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 + dependencies: + array-includes: 3.1.3 + array.prototype.flatmap: 1.2.4 + doctrine: 2.1.0 + eslint: 7.31.0 + has: 1.0.3 + jsx-ast-utils: 3.2.0 + minimatch: 3.0.4 + object.entries: 1.1.4 + object.fromentries: 2.0.4 + object.values: 1.1.4 + prop-types: 15.7.2 + resolve: 2.0.0-next.3 + string.prototype.matchall: 4.0.5 + dev: true + + /eslint-plugin-unicorn/34.0.1_eslint@7.31.0: + resolution: {integrity: sha512-GUBtRYRhPVOW/GDu6QtOjrneSZxY/MulOT8puJU+47VKCzNmMgS/iHO2gZqoQ7KPMrpNYlebUlvCWy3IR1USVQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=7.28.0' + dependencies: + ci-info: 3.2.0 + clean-regexp: 1.0.0 + eslint: 7.31.0 + eslint-template-visitor: 2.3.2_eslint@7.31.0 + eslint-utils: 3.0.0_eslint@7.31.0 + is-builtin-module: 3.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.23 + reserved-words: 0.1.2 + safe-regex: 2.1.1 + semver: 7.3.5 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-vue/7.12.1_eslint@7.31.0: + resolution: {integrity: sha512-xHf/wCt88qmzqQerjaSteUFGASj7fPreglKD4ijnvoKRkoSJ3/H3kuJE8QFFtc+2wjw6hRDs834HH7vpuTJQzg==} + engines: {node: '>=8.10'} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 + dependencies: + eslint: 7.31.0 + eslint-utils: 2.1.0 + natural-compare: 1.4.0 + semver: 7.3.5 + vue-eslint-parser: 7.9.0_eslint@7.31.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-plugin-yml/0.9.0_eslint@7.31.0: + resolution: {integrity: sha512-0hHBm/aOyaRSQ3y7iEJ5uSIksYf2kdv3riMLEJoyyOBoQ6p1ODxJCBBhWdo/cbnFZRPvGhzDd5RCTqgExsIqMA==} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.2 + eslint: 7.31.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 0.3.2 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-scope/5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: true + + /eslint-template-visitor/2.3.2_eslint@7.31.0: + resolution: {integrity: sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@babel/core': 7.14.8 + '@babel/eslint-parser': 7.14.7_@babel+core@7.14.8+eslint@7.31.0 + eslint: 7.31.0 + eslint-visitor-keys: 2.1.0 + esquery: 1.4.0 + multimap: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-utils/2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + dependencies: + eslint-visitor-keys: 1.3.0 + dev: true + + /eslint-utils/3.0.0_eslint@7.31.0: + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 7.31.0 + eslint-visitor-keys: 2.1.0 + dev: true + + /eslint-visitor-keys/1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + dev: true + + /eslint-visitor-keys/2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + dev: true + + /eslint-visitor-keys/3.0.0: + resolution: {integrity: sha512-mJOZa35trBTb3IyRmo8xmKBZlxf+N7OnUl4+ZhJHs/r+0770Wh/LEACE2pqMGMe27G/4y8P2bYGk4J70IC5k1Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /eslint/7.31.0: + resolution: {integrity: sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==} + engines: {node: ^10.12.0 || >=12.0.0} + hasBin: true + dependencies: + '@babel/code-frame': 7.12.11 + '@eslint/eslintrc': 0.4.3 + '@humanwhocodes/config-array': 0.5.0 + ajv: 6.12.6 + chalk: 4.1.1 + cross-spawn: 7.0.3 + debug: 4.3.2 + doctrine: 3.0.0 + enquirer: 2.3.6 + escape-string-regexp: 4.0.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + eslint-visitor-keys: 2.1.0 + espree: 7.3.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + functional-red-black-tree: 1.0.1 + glob-parent: 5.1.2 + globals: 13.10.0 + ignore: 4.0.6 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.1 + js-yaml: 3.14.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.0.4 + natural-compare: 1.4.0 + optionator: 0.9.1 + progress: 2.0.3 + regexpp: 3.2.0 + semver: 7.3.5 + strip-ansi: 6.0.0 + strip-json-comments: 3.1.1 + table: 6.7.1 + text-table: 0.2.0 + v8-compile-cache: 2.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /espree/6.2.1: + resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} + engines: {node: '>=6.0.0'} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + + /espree/7.3.1: + resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + acorn: 7.4.1 + acorn-jsx: 5.3.2_acorn@7.4.1 + eslint-visitor-keys: 1.3.0 + dev: true + + /esprima/4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /esquery/1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.2.0 + dev: true + + /esrecurse/4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.2.0 + dev: true + + /estraverse/4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: true + + /estraverse/5.2.0: + resolution: {integrity: sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==} + engines: {node: '>=4.0'} + dev: true + + /estree-walker/2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + /esutils/2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + dev: true + + /fast-deep-equal/3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + dev: true + + /fast-glob/3.2.7: + resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} + engines: {node: '>=8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.4 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + dev: true + + /fast-levenshtein/2.0.6: + resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + dev: true + + /fastq/1.11.1: + resolution: {integrity: sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==} + dependencies: + reusify: 1.0.4 + dev: true + + /file-entry-cache/6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + dev: true + + /fill-range/7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-up/2.1.0: + resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} + engines: {node: '>=4'} + dependencies: + locate-path: 2.0.0 + dev: true + + /find-up/4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + dev: true + + /flat-cache/3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.1 + rimraf: 3.0.2 + dev: true + + /flatted/3.2.1: + resolution: {integrity: sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==} + dev: true + + /foreach/2.0.5: + resolution: {integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=} + dev: true + + /fs.realpath/1.0.0: + resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} + 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] + dev: true + optional: true + + /function-bind/1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: true + + /functional-red-black-tree/1.0.1: + resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + dev: true + + /generic-names/2.0.1: + resolution: {integrity: sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==} + dependencies: + loader-utils: 1.4.0 + dev: true + + /gensync/1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + dev: true + + /get-intrinsic/1.1.1: + resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.2 + dev: true + + /glob-parent/5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.1 + dev: true + + /glob/7.1.7: + resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + 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.10.0: + resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + + /globby/11.0.4: + resolution: {integrity: sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.7 + ignore: 5.1.8 + merge2: 1.4.1 + slash: 3.0.0 + dev: true + + /graceful-fs/4.2.6: + resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + dev: true + + /has-bigints/1.0.1: + resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + dev: true + + /has-flag/3.0.0: + resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} + engines: {node: '>=4'} + dev: true + + /has-flag/4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + dev: true + + /has-symbols/1.0.2: + resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==} + engines: {node: '>= 0.4'} + 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 + + /hash-sum/2.0.0: + resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==} + dev: true + + /hosted-git-info/2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + + /htmlparser2/6.1.0: + resolution: {integrity: sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==} + dependencies: + domelementtype: 2.2.0 + domhandler: 4.2.0 + domutils: 2.7.0 + entities: 2.2.0 + dev: true + + /icss-replace-symbols/1.1.0: + resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=} + dev: true + + /icss-utils/5.1.0_postcss@8.3.6: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.3.6 + dev: true + + /ignore/4.0.6: + resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==} + engines: {node: '>= 4'} + dev: true + + /ignore/5.1.8: + resolution: {integrity: sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==} + engines: {node: '>= 4'} + dev: true + + /import-fresh/3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /imurmurhash/0.1.4: + resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + engines: {node: '>=0.8.19'} + dev: true + + /inflight/1.0.6: + resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + + /internal-slot/1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.1 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /is-arguments/1.1.0: + resolution: {integrity: sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-arrayish/0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + dev: true + + /is-bigint/1.0.2: + resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==} + dev: true + + /is-boolean-object/1.1.1: + resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + dev: true + + /is-builtin-module/3.1.0: + resolution: {integrity: sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.2.0 + dev: true + + /is-callable/1.2.3: + resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} + engines: {node: '>= 0.4'} + dev: true + + /is-core-module/2.5.0: + resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==} + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.4: + resolution: {integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==} + engines: {node: '>= 0.4'} + dev: true + + /is-extglob/2.1.1: + resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob/4.0.1: + resolution: {integrity: sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-map/2.0.2: + resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + dev: true + + /is-negative-zero/2.0.1: + resolution: {integrity: sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==} + engines: {node: '>= 0.4'} + dev: true + + /is-number-object/1.0.5: + resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==} + engines: {node: '>= 0.4'} + dev: true + + /is-number/7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /is-regex/1.1.3: + resolution: {integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-symbols: 1.0.2 + dev: true + + /is-set/2.0.2: + resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + dev: true + + /is-string/1.0.6: + resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==} + engines: {node: '>= 0.4'} + dev: true + + /is-symbol/1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + + /is-typed-array/1.1.5: + resolution: {integrity: sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.4 + call-bind: 1.0.2 + es-abstract: 1.18.3 + foreach: 2.0.5 + has-symbols: 1.0.2 + dev: true + + /is-weakmap/2.0.1: + resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + dev: true + + /is-weakset/2.0.1: + resolution: {integrity: sha512-pi4vhbhVHGLxohUw7PhGsueT4vRGFoXhP7+RGN0jKIv9+8PWYCQTqtADngrxOm2g46hoH0+g8uZZBzMrvVGDmw==} + dev: true + + /isarray/2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + dev: true + + /isexe/2.0.0: + resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + dev: true + + /jiti/1.10.1: + resolution: {integrity: sha512-qux9juDtAC8HlZxAk/fku73ak4TWNLigRFTNzFShE/kw4bXVFsVu538vLXAxvNyPszXgpX4YxkXfwTYEi+zf5A==} + hasBin: true + dev: true + + /js-tokens/4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + dev: true + + /js-yaml/3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + dev: true + + /jsesc/2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + dev: true + + /json-parse-better-errors/1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + + /json-schema-traverse/0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + dev: true + + /json-schema-traverse/1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + dev: true + + /json-stable-stringify-without-jsonify/1.0.1: + resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + dev: true + + /json5/1.0.1: + resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /json5/2.2.0: + resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + minimist: 1.2.5 + dev: true + + /jsonc-eslint-parser/1.1.0_eslint@7.31.0: + resolution: {integrity: sha512-FA3oS+8V0Mz4vv19YpY4TuZZi2ecR0RHTua9SjbCYb4+e35MWKIi7jn17zdGi6jxE7Cv7Vk61ml376MmMENieA==} + dependencies: + eslint-utils: 3.0.0_eslint@7.31.0 + eslint-visitor-keys: 3.0.0 + espree: 7.3.1 + semver: 6.3.0 + transitivePeerDependencies: + - eslint + dev: true + + /jsx-ast-utils/3.2.0: + resolution: {integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.3 + object.assign: 4.1.2 + dev: true + + /levn/0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + dev: true + + /lines-and-columns/1.1.6: + resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} + dev: true + + /load-json-file/4.0.0: + resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} + engines: {node: '>=4'} + dependencies: + graceful-fs: 4.2.6 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + dev: true + + /loader-utils/1.4.0: + resolution: {integrity: sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==} + engines: {node: '>=4.0.0'} + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 1.0.1 + dev: true + + /locate-path/2.0.0: + resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} + engines: {node: '>=4'} + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + dev: true + + /locate-path/5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + + /lodash.camelcase/4.3.0: + resolution: {integrity: sha1-soqmKIorn8ZRA1x3EfZathkDMaY=} + dev: true + + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: true + + /lodash.merge/4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + dev: true + + /lodash.truncate/4.4.2: + resolution: {integrity: sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=} + dev: true + + /lodash/4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: true + + /loose-envify/1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /lru-cache/5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + dependencies: + yallist: 3.1.1 + dev: true + + /lru-cache/6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: true + + /magic-string/0.25.7: + resolution: {integrity: sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==} + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /merge-source-map/1.1.0: + resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} + dependencies: + source-map: 0.6.1 + dev: true + + /merge2/1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch/4.0.4: + resolution: {integrity: sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.0 + dev: true + + /minimatch/3.0.4: + resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimist/1.2.5: + resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==} + dev: true + + /ms/2.0.0: + resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + dev: true + + /ms/2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + dev: true + + /ms/2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + dev: true + + /multimap/1.1.0: + resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} + dev: true + + /nanoid/3.1.23: + resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + dev: true + + /natural-compare/1.4.0: + resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + dev: true + + /node-releases/1.1.73: + resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==} + dev: true + + /normalize-package-data/2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.20.0 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: true + + /object-assign/4.1.1: + resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} + engines: {node: '>=0.10.0'} + dev: true + + /object-inspect/1.11.0: + resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} + dev: true + + /object-is/1.1.5: + resolution: {integrity: sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /object-keys/1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: true + + /object.assign/4.1.2: + resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + has-symbols: 1.0.2 + object-keys: 1.1.1 + dev: true + + /object.entries/1.1.4: + resolution: {integrity: sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /object.fromentries/2.0.4: + resolution: {integrity: sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + has: 1.0.3 + dev: true + + /object.values/1.1.4: + resolution: {integrity: sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + + /once/1.4.0: + resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} + dependencies: + wrappy: 1.0.2 + dev: true + + /optionator/0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.3 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + dev: true + + /p-limit/1.3.0: + resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} + engines: {node: '>=4'} + dependencies: + p-try: 1.0.0 + dev: true + + /p-limit/2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + + /p-locate/2.0.0: + resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} + engines: {node: '>=4'} + dependencies: + p-limit: 1.3.0 + dev: true + + /p-locate/4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: true + + /p-try/1.0.0: + resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} + engines: {node: '>=4'} + dev: true + + /p-try/2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + + /parent-module/1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/4.0.0: + resolution: {integrity: sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=} + engines: {node: '>=4'} + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + dev: true + + /parse-json/5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.14.5 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.1.6 + dev: true + + /path-exists/3.0.0: + resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} + engines: {node: '>=4'} + dev: true + + /path-exists/4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + dev: true + + /path-is-absolute/1.0.1: + resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} + engines: {node: '>=0.10.0'} + dev: true + + /path-key/3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse/1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-type/3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + dependencies: + pify: 3.0.0 + dev: true + + /path-type/4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: true + + /picomatch/2.3.0: + resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==} + engines: {node: '>=8.6'} + dev: true + + /pify/3.0.0: + resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} + engines: {node: '>=4'} + dev: true + + /pkg-dir/2.0.0: + resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /pkg-up/2.0.0: + resolution: {integrity: sha1-yBmscoBZpGHKscOImivjxJoATX8=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + dev: true + + /pluralize/8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + + /pnpm/6.10.3: + resolution: {integrity: sha512-GdxerBN3hhe9x9W0mAMmiWoDELy7KekrmHbYdo7WeHC1MthP/gI7MGVYIgcKj9Vy4zWLO9v1hVYOgKUrewkDVg==} + engines: {node: '>=12.17'} + hasBin: true + dev: true + + /postcss-modules-extract-imports/3.0.0_postcss@8.3.6: + resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.3.6 + dev: true + + /postcss-modules-local-by-default/4.0.0_postcss@8.3.6: + resolution: {integrity: sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.3.6 + postcss: 8.3.6 + postcss-selector-parser: 6.0.6 + postcss-value-parser: 4.1.0 + dev: true + + /postcss-modules-scope/3.0.0_postcss@8.3.6: + resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + postcss: 8.3.6 + postcss-selector-parser: 6.0.6 + dev: true + + /postcss-modules-values/4.0.0_postcss@8.3.6: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + dependencies: + icss-utils: 5.1.0_postcss@8.3.6 + postcss: 8.3.6 + dev: true + + /postcss-modules/4.2.0_postcss@8.3.6: + resolution: {integrity: sha512-zyqjOVr7hqIXgi4ADbSd2Tjaq90mDj+H6EWySE1KQFlRwBGKcvCJnD5Yf7Y4XU6HzN9SyXb+TxVGQbLdRwE78w==} + peerDependencies: + postcss: ^8.0.0 + dependencies: + generic-names: 2.0.1 + icss-replace-symbols: 1.1.0 + lodash.camelcase: 4.3.0 + postcss: 8.3.6 + postcss-modules-extract-imports: 3.0.0_postcss@8.3.6 + postcss-modules-local-by-default: 4.0.0_postcss@8.3.6 + postcss-modules-scope: 3.0.0_postcss@8.3.6 + postcss-modules-values: 4.0.0_postcss@8.3.6 + string-hash: 1.1.3 + dev: true + + /postcss-selector-parser/6.0.6: + resolution: {integrity: sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser/4.1.0: + resolution: {integrity: sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==} + dev: true + + /postcss/8.3.6: + resolution: {integrity: sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==} + engines: {node: ^10 || ^12 || >=14} + dependencies: + colorette: 1.2.2 + nanoid: 3.1.23 + source-map-js: 0.6.2 + dev: true + + /prelude-ls/1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + dev: true + + /progress/2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + dev: true + + /prop-types/15.7.2: + resolution: {integrity: sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /punycode/2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + dev: true + + /queue-microtask/1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /react-is/16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: true + + /read-pkg-up/3.0.0: + resolution: {integrity: sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=} + engines: {node: '>=4'} + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + dev: true + + /read-pkg-up/7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg/3.0.0: + resolution: {integrity: sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=} + engines: {node: '>=4'} + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + dev: true + + /read-pkg/5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + + /regexp-tree/0.1.23: + resolution: {integrity: sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==} + hasBin: true + dev: true + + /regexp.prototype.flags/1.3.1: + resolution: {integrity: sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /regexpp/3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + dev: true + + /require-from-string/2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + dev: true + + /reserved-words/0.1.2: + resolution: {integrity: sha1-AKCUD5jNUBrqqsMWQR2a3FKzGrE=} + dev: true + + /resolve-from/4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + dev: true + + /resolve/1.20.0: + resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} + dependencies: + is-core-module: 2.5.0 + path-parse: 1.0.7 + dev: true + + /resolve/2.0.0-next.3: + resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} + dependencies: + is-core-module: 2.5.0 + path-parse: 1.0.7 + dev: true + + /reusify/1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + + /rimraf/3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.1.7 + dev: true + + /rollup/2.53.3: + resolution: {integrity: sha512-79QIGP5DXz5ZHYnCPi3tLz+elOQi6gudp9YINdaJdjG0Yddubo6JRFUM//qCZ0Bap/GJrsUoEBVdSOc4AkMlRA==} + engines: {node: '>=10.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + + /safe-buffer/5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + + /safe-regex/2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.23 + dev: true + + /semver/5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: true + + /semver/6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: true + + /semver/7.3.5: + resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + + /shebang-command/2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex/3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + + /side-channel/1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.1 + object-inspect: 1.11.0 + dev: true + + /slash/3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: true + + /slice-ansi/4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + dev: true + + /source-map-js/0.6.2: + resolution: {integrity: sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.5.7: + resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} + engines: {node: '>=0.10.0'} + dev: true + + /source-map/0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + /sourcemap-codec/1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + dev: true + + /spdx-correct/3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-exceptions/2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse/3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.9 + dev: true + + /spdx-license-ids/3.0.9: + resolution: {integrity: sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==} + dev: true + + /sprintf-js/1.0.3: + resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} + dev: true + + /string-hash/1.1.3: + resolution: {integrity: sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=} + dev: true + + /string-width/4.2.2: + resolution: {integrity: sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.0 + dev: true + + /string.prototype.matchall/4.0.5: + resolution: {integrity: sha512-Z5ZaXO0svs0M2xd/6By3qpeKpLKd9mO4v4q3oMEQrk8Ck4xOD5d5XeBOOjGrmVZZ/AHB1S0CgG4N5r1G9N3E2Q==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + get-intrinsic: 1.1.1 + has-symbols: 1.0.2 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.3.1 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.4: + resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /string.prototype.trimstart/1.0.4: + resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + dev: true + + /strip-ansi/6.0.0: + resolution: {integrity: sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.0 + dev: true + + /strip-bom/3.0.0: + resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + engines: {node: '>=4'} + dev: true + + /strip-json-comments/3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + dev: true + + /supports-color/5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + dev: true + + /table/6.7.1: + resolution: {integrity: sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==} + engines: {node: '>=10.0.0'} + dependencies: + ajv: 8.6.2 + lodash.clonedeep: 4.5.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.2 + strip-ansi: 6.0.0 + dev: true + + /text-table/0.2.0: + resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + dev: true + + /to-fast-properties/2.0.0: + resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} + engines: {node: '>=4'} + + /to-regex-range/5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /tsconfig-paths/3.10.1: + resolution: {integrity: sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==} + dependencies: + json5: 2.2.0 + minimist: 1.2.5 + strip-bom: 3.0.0 + dev: true + + /tslib/1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: true + + /tsutils/3.21.0_typescript@4.3.5: + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.3.5 + dev: true + + /type-check/0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + dev: true + + /type-fest/0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + dev: true + + /type-fest/0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + + /type-fest/0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + + /typescript/4.3.5: + resolution: {integrity: sha512-DqQgihaQ9cUrskJo9kIyW/+g0Vxsk8cDtZ52a3NGh0YNTfpUSArXSohyUGnvbPazEPLu398C0UxmKSOrPumUzA==} + engines: {node: '>=4.2.0'} + hasBin: true + dev: true + + /unbox-primitive/1.0.1: + resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + dependencies: + function-bind: 1.1.1 + has-bigints: 1.0.1 + has-symbols: 1.0.2 + which-boxed-primitive: 1.0.2 + dev: true + + /uri-js/4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + dev: true + + /util-deprecate/1.0.2: + resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} + dev: true + + /v8-compile-cache/2.3.0: + resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + dev: true + + /validate-npm-package-license/3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + + /vite-plugin-components/0.13.2_vite@2.4.3: + resolution: {integrity: sha512-Fv5iTlZUvqUUjODdAkTadijobcys+SvrtYclj27/SCE7b4LtwNySd+nHvJcGI/GsL8npTdccj2IRwGsWLrTcvQ==} + peerDependencies: + vite: ^2.0.0 + dependencies: + debug: 4.3.2 + fast-glob: 3.2.7 + magic-string: 0.25.7 + minimatch: 3.0.4 + vite: 2.4.3 + transitivePeerDependencies: + - supports-color + dev: true + + /vite-plugin-icons/0.6.5_774edd05d2fe6e67dbc66770415e2b73: + resolution: {integrity: sha512-lfePr8juO2ajp0571iLL+9zIoyBD9nSSSHlC4JYXbAeMOJB6WTP+Vdc2gze8yI8JRO+Z0TXCCvvL9bPgvkI4Cg==} + peerDependencies: + '@iconify/json': '*' + '@vue/compiler-sfc': ^3.0.2 + vue-template-compiler: ^2.6.12 + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + vue-template-compiler: + optional: true + dependencies: + '@iconify/json': 1.1.379 + '@iconify/json-tools': 1.0.10 + '@vue/compiler-sfc': 3.1.5_vue@3.1.5 + vue-template-es2015-compiler: 1.9.1 + dev: true + + /vite-plugin-pages/0.15.1_2e7abeba2e485b4890a9b09e0985f188: + resolution: {integrity: sha512-So6QJtTeecuE2PU50Qhcbpj9dDraoDS1Qrl9eOE6kKTlqHHLTH/eH0DdI4GTSAZHa2Ucq8zTwIZlkEnMvKu1eA==} + peerDependencies: + '@vue/compiler-sfc': '>=3' + vite: '>=2' + peerDependenciesMeta: + '@vue/compiler-sfc': + optional: true + dependencies: + '@antfu/utils': 0.2.4 + '@vue/compiler-sfc': 3.1.5_vue@3.1.5 + deep-equal: 2.0.5 + fast-glob: 3.2.7 + json5: 2.2.0 + vite: 2.4.3 + yaml: 2.0.0-7 + dev: true + + /vite-plugin-windicss/1.2.5_vite@2.4.3: + resolution: {integrity: sha512-6z2XXQpV0WhSEoyWim4gaWyxrBhszhbufjQ3oiyJbtENoft90trJtnWYvPHXaTB0sspy1LIfSSQquru8N7KZJQ==} + peerDependencies: + vite: ^2.0.1 + dependencies: + '@windicss/plugin-utils': 1.2.5 + chalk: 4.1.1 + debug: 4.3.2 + vite: 2.4.3 + windicss: 3.1.5 + transitivePeerDependencies: + - supports-color + dev: true + + /vite/2.4.3: + resolution: {integrity: sha512-iT6NPeiUUZ2FkzC3eazytOEMRaM4J+xgRQcNcpRcbmfYjakCFP4WKPJpeEz1U5JEKHAtwv3ZBQketQUFhFU3ng==} + engines: {node: '>=12.0.0'} + hasBin: true + dependencies: + esbuild: 0.12.15 + postcss: 8.3.6 + resolve: 1.20.0 + rollup: 2.53.3 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /vue-demi/0.11.2_vue@3.1.5: + resolution: {integrity: sha512-J+X8Au6BhQdcej6LY4O986634hZLu55L0ewU2j8my7WIKlu8cK0dqmdUxqVHHMd/cMrKKZ9SywB/id6aLhwCtA==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.1.5 + dev: false + + /vue-eslint-parser/7.9.0_eslint@7.31.0: + resolution: {integrity: sha512-QBlhZ5LteDRVy2dISfQhNEmmcqph+GTaD4SH41bYzXcVHFPJ9p34zCG6QAqOZVa8PKaVgbomFnoZpGJRZi14vg==} + engines: {node: '>=8.10'} + peerDependencies: + eslint: '>=5.0.0' + dependencies: + debug: 4.3.2 + eslint: 7.31.0 + eslint-scope: 5.1.1 + eslint-visitor-keys: 1.3.0 + espree: 6.2.1 + esquery: 1.4.0 + lodash: 4.17.21 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /vue-global-api/0.2.4_vue@3.1.5: + resolution: {integrity: sha512-Cm84AZiALt8f4CJZzPvbForTzAUYe41msnzUnRK6B7YkaDaN8g87ap8CpHWvTU0+XtyDeLLAeQoRr+uwamxfpQ==} + dependencies: + vue-demi: 0.11.2_vue@3.1.5 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: false + + /vue-router/4.0.10_vue@3.1.5: + resolution: {integrity: sha512-YbPf6QnZpyyWfnk7CUt2Bme+vo7TLfg1nGZNkvYqKYh4vLaFw6Gn8bPGdmt5m4qrGnKoXLqc4htAsd3dIukICA==} + peerDependencies: + vue: ^3.0.0 + dependencies: + '@vue/devtools-api': 6.0.0-beta.15 + vue: 3.1.5 + dev: false + + /vue-template-es2015-compiler/1.9.1: + resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} + dev: true + + /vue/3.1.5: + resolution: {integrity: sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ==} + dependencies: + '@vue/compiler-dom': 3.1.5 + '@vue/runtime-dom': 3.1.5 + '@vue/shared': 3.1.5 + dev: false + + /webextension-polyfill-ts/0.26.0: + resolution: {integrity: sha512-XEFL+aYVEsm/d4RajVwP75g56c/w2aSHnPwgtUv8/nCzbLNSzRQIix6aj1xqFkA5yr7OIDkk3OD/QTnPp8ThYA==} + dependencies: + webextension-polyfill: 0.8.0 + dev: true + + /webextension-polyfill/0.8.0: + resolution: {integrity: sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ==} + dev: true + + /which-boxed-primitive/1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.2 + is-boolean-object: 1.1.1 + is-number-object: 1.0.5 + is-string: 1.0.6 + is-symbol: 1.0.4 + dev: true + + /which-collection/1.0.1: + resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + dependencies: + is-map: 2.0.2 + is-set: 2.0.2 + is-weakmap: 2.0.1 + is-weakset: 2.0.1 + dev: true + + /which-typed-array/1.1.4: + resolution: {integrity: sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==} + engines: {node: '>= 0.4'} + dependencies: + available-typed-arrays: 1.0.4 + call-bind: 1.0.2 + es-abstract: 1.18.3 + foreach: 2.0.5 + function-bind: 1.1.1 + has-symbols: 1.0.2 + is-typed-array: 1.1.5 + dev: true + + /which/2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /windicss/3.1.5: + resolution: {integrity: sha512-sGi2YiN6Bp/vWJS0jlpJhMmh7O2TBQ+yTbL6oqoRXz32q1VKELOUMfF+5pdtVL5uoVnfKf4gOUQs2XKNgU30Lw==} + engines: {node: '>= 12'} + hasBin: true + dev: true + + /word-wrap/1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + dev: true + + /wrappy/1.0.2: + resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} + dev: true + + /yallist/3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + dev: true + + /yallist/4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: true + + /yaml-eslint-parser/0.3.2: + resolution: {integrity: sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==} + dependencies: + eslint-visitor-keys: 1.3.0 + lodash: 4.17.21 + yaml: 1.10.2 + dev: true + + /yaml/1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + dev: true + + /yaml/2.0.0-7: + resolution: {integrity: sha512-RbI2Tm3hl9AoHY4wWyWvGvJfFIbHOzuzaxum6ez1A0vve+uXgNor03Wys4t+2sgjJSVSe+B2xerd1/dnvqHlOA==} + engines: {node: '>= 12'} + dev: true diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..12d3b56 --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,9 @@ + + + + diff --git a/public/pwa-192x192.png b/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..a8aae8daf9d693e6660a05afb8a4a78bf37120f2 GIT binary patch literal 3914 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 +import { isDark, toggleDark } from '~/logic' + + + diff --git a/src/components/README.md b/src/components/README.md new file mode 100644 index 0000000..5f8b819 --- /dev/null +++ b/src/components/README.md @@ -0,0 +1,10 @@ +## Components + +Components in this dir will be auto-registered and on-demand, powered by [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components). + + +### Icons + +You can use icons from almost any icon sets by the power of [Iconify](https://iconify.design/). + +It will only bundle the icons you use. Check out [vite-plugin-icons](https://github.com/antfu/vite-plugin-icons) for more details. diff --git a/src/content.ts b/src/content.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/manifest.json b/src/manifest.json new file mode 100644 index 0000000..205a598 --- /dev/null +++ b/src/manifest.json @@ -0,0 +1,64 @@ +{ + "manifest_version":2, + "name":"Sample WebExtension", + "version":"0.0.0", + "icons":{ + "16":"assets/icons/favicon-16.png", + "32":"assets/icons/favicon-32.png", + "48":"assets/icons/favicon-48.png", + "128":"assets/icons/favicon-128.png" + }, + "description":"Sample description", + "homepage_url":"https://github.com/antfu/webext-vite-starter", + "short_name":"Sample Name", + "permissions":[ + "activeTab", + "storage", + "http://*/*", + "https://*/*" + ], + "content_security_policy":"script-src 'self'; object-src 'self'", + "author":"Anthony Fu", + "__firefox__applications":{ + "gecko":{ + "id":"{754FB1AD-CC3B-4856-B6A0-7786F8CA9D17}" + } + }, + "__chrome__minimum_chrome_version":"49", + "__opera__minimum_opera_version":"36", + "browser_action":{ + "default_popup":"popup.html", + "default_icon":{ + "16":"assets/icons/favicon-16.png", + "32":"assets/icons/favicon-32.png", + "48":"assets/icons/favicon-48.png", + "128":"assets/icons/favicon-128.png" + }, + "default_title":"tiny title", + "__chrome|opera__chrome_style":false, + "__firefox__browser_style":false + }, + "__chrome|opera__options_page":"options.html", + "options_ui":{ + "page":"options.html", + "open_in_tab":true, + "__chrome__chrome_style":false + }, + "background":{ + "scripts":[ + "js/background.bundle.js" + ], + "persistent":false + }, + "content_scripts":[ + { + "matches":[ + "http://*/*", + "https://*/*" + ], + "js":[ + "js/contentScript.bundle.js" + ] + } + ] +} diff --git a/src/options/App.vue b/src/options/App.vue new file mode 100644 index 0000000..9e06963 --- /dev/null +++ b/src/options/App.vue @@ -0,0 +1,6 @@ + diff --git a/src/options/index.html b/src/options/index.html new file mode 100644 index 0000000..03ad7ba --- /dev/null +++ b/src/options/index.html @@ -0,0 +1,12 @@ + + + + + + Options + + +
+ + + diff --git a/src/options/main.ts b/src/options/main.ts new file mode 100644 index 0000000..6130172 --- /dev/null +++ b/src/options/main.ts @@ -0,0 +1,8 @@ +// register vue composition api globally +import 'vue-global-api' +import { createApp } from 'vue' +import App from './App.vue' +import '../shared/styles' + +const app = createApp(App) +app.mount('#app') diff --git a/src/popup/App.vue b/src/popup/App.vue new file mode 100644 index 0000000..e1102db --- /dev/null +++ b/src/popup/App.vue @@ -0,0 +1,6 @@ + diff --git a/src/popup/index.html b/src/popup/index.html new file mode 100644 index 0000000..656557e --- /dev/null +++ b/src/popup/index.html @@ -0,0 +1,12 @@ + + + + + + Popup + + +
+ + + diff --git a/src/popup/main.ts b/src/popup/main.ts new file mode 100644 index 0000000..6130172 --- /dev/null +++ b/src/popup/main.ts @@ -0,0 +1,8 @@ +// register vue composition api globally +import 'vue-global-api' +import { createApp } from 'vue' +import App from './App.vue' +import '../shared/styles' + +const app = createApp(App) +app.mount('#app') diff --git a/src/shared/logic/dark.ts b/src/shared/logic/dark.ts new file mode 100644 index 0000000..5467599 --- /dev/null +++ b/src/shared/logic/dark.ts @@ -0,0 +1,4 @@ +import { useDark, useToggle } from '@vueuse/core' + +export const isDark = useDark() +export const toggleDark = useToggle(isDark) diff --git a/src/shared/logic/index.ts b/src/shared/logic/index.ts new file mode 100644 index 0000000..e8d1566 --- /dev/null +++ b/src/shared/logic/index.ts @@ -0,0 +1 @@ +export * from './dark' diff --git a/src/shared/styles/index.ts b/src/shared/styles/index.ts new file mode 100644 index 0000000..8200a64 --- /dev/null +++ b/src/shared/styles/index.ts @@ -0,0 +1,2 @@ +import './main.css' +import 'virtual:windi.css' diff --git a/src/shared/styles/main.css b/src/shared/styles/main.css new file mode 100755 index 0000000..cb0fd87 --- /dev/null +++ b/src/shared/styles/main.css @@ -0,0 +1,41 @@ +html, +body, +#app { + height: 100%; + margin: 0; + padding: 0; +} + +html.dark { + background: #121212; +} + +#nprogress { + pointer-events: none; +} + +#nprogress .bar { + @apply bg-teal-600 opacity-75; + + position: fixed; + z-index: 1031; + top: 0; + left: 0; + + width: 100%; + height: 2px; +} + +.btn { + @apply px-4 py-1 rounded inline-block + bg-teal-600 text-white cursor-pointer + hover:bg-teal-700 + disabled:cursor-default disabled:bg-gray-600 disabled:opacity-50; +} + +.icon-btn { + @apply inline-block cursor-pointer select-none + opacity-75 transition duration-200 ease-in-out + hover:opacity-100 hover:text-teal-600; + font-size: 0.9em; +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1aec677 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "baseUrl": ".", + "module": "ESNext", + "target": "es2016", + "lib": ["DOM", "ESNext"], + "strict": true, + "esModuleInterop": true, + "incremental": false, + "skipLibCheck": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "noUnusedLocals": true, + "strictNullChecks": true, + "forceConsistentCasingInFileNames": true, + "types": [ + "vite/client", + "vite-plugin-pages/client" + ], + "paths": { + "~/*": ["src/*"] + } + }, + "exclude": ["dist", "node_modules"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..03296a6 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,54 @@ +import { resolve } from 'path' +import { defineConfig } from 'vite' +import Vue from '@vitejs/plugin-vue' +import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' +import ViteComponents from 'vite-plugin-components' +import WindiCSS from 'vite-plugin-windicss' + +export default defineConfig({ + resolve: { + alias: { + '~/': `${resolve(__dirname, 'src')}/`, + }, + }, + build: { + rollupOptions: { + input: { + popup: resolve(__dirname, 'src/popup/index.html'), + options: resolve(__dirname, 'src/options/index.html'), + }, + }, + }, + plugins: [ + Vue(), + ViteComponents({ + // generate `components.d.ts` for ts support with Volar + globalComponentsDeclaration: true, + + // auto import icons + customComponentResolvers: [ + // https://github.com/antfu/vite-plugin-icons + ViteIconsResolver({ + componentPrefix: '', + // enabledCollections: ['carbon'] + }), + ], + }), + + // https://github.com/antfu/vite-plugin-icons + ViteIcons(), + + // https://github.com/antfu/vite-plugin-windicss + WindiCSS(), + ], + + optimizeDeps: { + include: [ + 'vue', + '@vueuse/core', + ], + exclude: [ + 'vue-demi', + ], + }, +}) diff --git a/windi.config.ts b/windi.config.ts new file mode 100644 index 0000000..9b93a3c --- /dev/null +++ b/windi.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'windicss/helpers' + +export default defineConfig({ + darkMode: 'class', + // https://windicss.org/posts/v30.html#attributify-mode + attributify: true, +}) From 687c85476f6b69762543d84e4d7241954664c076 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 23 Jul 2021 11:58:37 +0800 Subject: [PATCH 002/105] chore: mvp --- .gitignore | 3 +- components.d.ts | 15 - {public => extension/assets}/favicon.svg | 0 .../assets/icon-512.png | Bin extension/manifest.json | 42 ++ package.json | 16 +- pnpm-lock.yaml | 368 ++++++++++++++++-- public/pwa-192x192.png | Bin 3914 -> 0 bytes public/robots.txt | 2 - scripts/background/index.ts | 5 + scripts/content/index.ts | 1 + src/background.ts | 0 src/components/Footer.vue | 16 - src/content.ts | 0 src/manifest.json | 64 --- src/popup/App.vue | 6 - src/shared/logic/dark.ts | 4 - src/shared/logic/index.ts | 1 - views/components/Footer.vue | 7 + {src => views}/components/README.md | 0 {src => views}/options/App.vue | 0 {src => views}/options/index.html | 0 {src => views}/options/main.ts | 2 +- views/popup/App.vue | 6 + {src => views}/popup/index.html | 0 {src => views}/popup/main.ts | 2 +- {src/shared => views}/styles/index.ts | 0 {src/shared => views}/styles/main.css | 0 vite.config.ts | 28 +- windi.config.ts | 5 + 30 files changed, 444 insertions(+), 149 deletions(-) delete mode 100644 components.d.ts rename {public => extension/assets}/favicon.svg (100%) rename public/pwa-512x512.png => extension/assets/icon-512.png (100%) create mode 100644 extension/manifest.json delete mode 100644 public/pwa-192x192.png delete mode 100644 public/robots.txt create mode 100644 scripts/background/index.ts create mode 100644 scripts/content/index.ts delete mode 100644 src/background.ts delete mode 100644 src/components/Footer.vue delete mode 100644 src/content.ts delete mode 100644 src/manifest.json delete mode 100644 src/popup/App.vue delete mode 100644 src/shared/logic/dark.ts delete mode 100644 src/shared/logic/index.ts create mode 100644 views/components/Footer.vue rename {src => views}/components/README.md (100%) rename {src => views}/options/App.vue (100%) rename {src => views}/options/index.html (100%) rename {src => views}/options/main.ts (86%) create mode 100644 views/popup/App.vue rename {src => views}/popup/index.html (100%) rename {src => views}/popup/main.ts (86%) rename {src/shared => views}/styles/index.ts (100%) rename {src/shared => views}/styles/main.css (100%) diff --git a/.gitignore b/.gitignore index ffe146d..de8f84d 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ dist dist-ssr node_modules -# intellij stuff +components.d.ts .idea/ -# logs *.log diff --git a/components.d.ts b/components.d.ts deleted file mode 100644 index d629424..0000000 --- a/components.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -// generated by vite-plugin-components -// read more https://github.com/vuejs/vue-next/pull/3399 - -declare module 'vue' { - export interface GlobalComponents { - CarbonCampsite: typeof import('virtual:vite-icons/carbon/campsite')['default'] - CarbonLogoGithub: typeof import('virtual:vite-icons/carbon/logo-github')['default'] - CarbonMoon: typeof import('virtual:vite-icons/carbon/moon')['default'] - CarbonPedestrian: typeof import('virtual:vite-icons/carbon/pedestrian')['default'] - CarbonSun: typeof import('virtual:vite-icons/carbon/sun')['default'] - Footer: typeof import('./src/components/Footer.vue')['default'] - } -} - -export { } diff --git a/public/favicon.svg b/extension/assets/favicon.svg similarity index 100% rename from public/favicon.svg rename to extension/assets/favicon.svg diff --git a/public/pwa-512x512.png b/extension/assets/icon-512.png similarity index 100% rename from public/pwa-512x512.png rename to extension/assets/icon-512.png diff --git a/extension/manifest.json b/extension/manifest.json new file mode 100644 index 0000000..6cac329 --- /dev/null +++ b/extension/manifest.json @@ -0,0 +1,42 @@ +{ + "manifest_version": 2, + "name": "[name]", + "description": "[description]", + "version": "0.0.1", + "browser_action": { + "default_icon": "./assets/icon-512.png", + "default_popup": "./dist/popup/index.html" + }, + "options_ui": { + "page": "./dist/options/index.html", + "open_in_tab": true, + "chrome_style": false + }, + "background": { + "scripts": ["./dist/background/index.global.js"], + "persistent": false + }, + "content_scripts": [{ + "matches": [ + "http://*/*", + "https://*/*" + ], + "js": [ + "./dist/content/index.global.js" + ] + } + ], + "icons": { + "16": "./assets/icon-512.png", + "48": "./assets/icon-512.png", + "128": "./assets/icon-512.png" + }, + "permissions": [ + "tabs", + "storage", + "activeTab", + "notifications", + "http://*/", + "https://*/" + ] +} diff --git a/package.json b/package.json index 2dc125c..427f649 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,19 @@ { "private": true, "scripts": { - "dev": "vite --port 3333 --open", - "build": "cross-env NODE_ENV=production vite build", - "preview": "vite preview" + "dev": "run-p dev:*", + "dev:web": "vite build --watch", + "dev:js": "npm run build:js -- --watch", + "build": "run-s clear build:web build:js", + "build:web": "vite build", + "build:js": "tsup scripts/background scripts/content --format iife --out-dir extension/dist", + "clear": "rimraf extension/dist" }, "dependencies": { "@vueuse/core": "^5.1.4", - "@vueuse/head": "^0.6.0", "vue": "^3.1.5", "vue-demi": "^0.11.2", - "vue-global-api": "^0.2.4", - "vue-router": "^4.0.10" + "vue-global-api": "^0.2.4" }, "devDependencies": { "@antfu/eslint-config": "^0.7.0", @@ -22,7 +24,9 @@ "@vue/compiler-sfc": "^3.1.5", "cross-env": "^7.0.3", "eslint": "^7.31.0", + "npm-run-all": "^4.1.5", "pnpm": "^6.10.3", + "tsup": "^4.12.5", "typescript": "^4.3.5", "vite": "^2.4.2", "vite-plugin-components": "^0.13.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ae8558a..31c5781 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,10 +8,11 @@ specifiers: '@vitejs/plugin-vue': ^1.2.5 '@vue/compiler-sfc': ^3.1.5 '@vueuse/core': ^5.1.4 - '@vueuse/head': ^0.6.0 cross-env: ^7.0.3 eslint: ^7.31.0 + npm-run-all: ^4.1.5 pnpm: ^6.10.3 + tsup: ^4.12.5 typescript: ^4.3.5 vite: ^2.4.2 vite-plugin-components: ^0.13.0 @@ -21,16 +22,13 @@ specifiers: vue: ^3.1.5 vue-demi: ^0.11.2 vue-global-api: ^0.2.4 - vue-router: ^4.0.10 webextension-polyfill-ts: ^0.26.0 dependencies: '@vueuse/core': 5.1.4_vue@3.1.5 - '@vueuse/head': 0.6.0_vue@3.1.5 vue: 3.1.5 vue-demi: 0.11.2_vue@3.1.5 vue-global-api: 0.2.4_vue@3.1.5 - vue-router: 4.0.10_vue@3.1.5 devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.31.0+typescript@4.3.5 @@ -41,7 +39,9 @@ devDependencies: '@vue/compiler-sfc': 3.1.5_vue@3.1.5 cross-env: 7.0.3 eslint: 7.31.0 + npm-run-all: 4.1.5 pnpm: 6.10.3 + tsup: 4.12.5_typescript@4.3.5 typescript: 4.3.5 vite: 2.4.3 vite-plugin-components: 0.13.2_vite@2.4.3 @@ -629,10 +629,6 @@ packages: '@vue/shared': 3.1.5 dev: true - /@vue/devtools-api/6.0.0-beta.15: - resolution: {integrity: sha512-quBx4Jjpexo6KDiNUGFr/zF/2A4srKM9S9v2uHgMXSU//hjgq1eGzqkIFql8T9gfX5ZaVOUzYBP3jIdIR3PKIA==} - dev: false - /@vue/reactivity/3.1.5: resolution: {integrity: sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg==} dependencies: @@ -667,14 +663,6 @@ packages: - vue dev: false - /@vueuse/head/0.6.0_vue@3.1.5: - resolution: {integrity: sha512-fi7ZjkMpEAUtTT6iR5wgL2HkX1+3zbrmbpcwU//RgJIWEr5b42jk8E9yOheaC2dYAAHzelAllVpX0pDmhcTXuw==} - peerDependencies: - vue: '>=3' - dependencies: - vue: 3.1.5 - dev: false - /@vueuse/shared/5.1.4_vue@3.1.5: resolution: {integrity: sha512-C0xiMv8+sFI3WhXdlrcLKI4d4dFnouHe4Te51cxWgcmpW7S8eUiM8fXPaQVxUQZ4E9PCx3zEZpNpCLzQa+6Lag==} dependencies: @@ -764,6 +752,18 @@ packages: color-convert: 2.0.1 dev: true + /any-promise/1.3.0: + resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} + dev: true + + /anymatch/3.1.2: + resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.0 + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -823,6 +823,11 @@ packages: resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} dev: true + /binary-extensions/2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + /bluebird/3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true @@ -858,6 +863,11 @@ packages: engines: {node: '>=6'} dev: true + /cac/6.7.3: + resolution: {integrity: sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==} + engines: {node: '>=8'} + dev: true + /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -891,6 +901,21 @@ packages: supports-color: 7.2.0 dev: true + /chokidar/3.5.2: + resolution: {integrity: sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.2 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.1 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.2 + dev: true + /ci-info/3.2.0: resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} dev: true @@ -927,6 +952,11 @@ packages: resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} dev: true + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true @@ -952,6 +982,17 @@ packages: cross-spawn: 7.0.3 dev: true + /cross-spawn/6.0.5: + resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} + engines: {node: '>=4.8'} + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.1 + shebang-command: 1.2.0 + which: 1.3.1 + dev: true + /cross-spawn/7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -1518,6 +1559,21 @@ packages: engines: {node: '>=0.10.0'} dev: true + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.0 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: 2.0.0 + dev: true + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1630,6 +1686,11 @@ packages: has-symbols: 1.0.2 dev: true + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1637,6 +1698,17 @@ packages: is-glob: 4.0.1 dev: true + /glob/7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -1719,6 +1791,11 @@ packages: entities: 2.2.0 dev: true + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + /icss-replace-symbols/1.1.0: resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=} dev: true @@ -1742,6 +1819,13 @@ packages: engines: {node: '>= 4'} dev: true + /import-cwd/3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + dependencies: + import-from: 3.0.0 + dev: true + /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -1750,6 +1834,13 @@ packages: resolve-from: 4.0.0 dev: true + /import-from/3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /imurmurhash/0.1.4: resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} engines: {node: '>=0.8.19'} @@ -1790,6 +1881,13 @@ packages: resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==} dev: true + /is-binary-path/2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + /is-boolean-object/1.1.1: resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==} engines: {node: '>= 0.4'} @@ -1868,6 +1966,11 @@ packages: resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} dev: true + /is-stream/2.0.0: + resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + engines: {node: '>=8'} + dev: true + /is-string/1.0.6: resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==} engines: {node: '>= 0.4'} @@ -1912,6 +2015,11 @@ packages: hasBin: true dev: true + /joycon/3.0.1: + resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} + engines: {node: '>=10'} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -1992,6 +2100,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig/2.0.3: + resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==} + engines: {node: '>=10'} + dev: true + /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} dev: true @@ -2076,12 +2189,21 @@ packages: sourcemap-codec: 1.4.8 dev: true + /memorystream/0.3.1: + resolution: {integrity: sha1-htcJCzDORV1j+64S3aUaR93K+bI=} + engines: {node: '>= 0.10.0'} + dev: true + /merge-source-map/1.1.0: resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==} dependencies: source-map: 0.6.1 dev: true + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2095,6 +2217,11 @@ packages: picomatch: 2.3.0 dev: true + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -2121,6 +2248,14 @@ packages: resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} dev: true + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nanoid/3.1.23: resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2131,6 +2266,15 @@ packages: resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} dev: true + /nice-try/1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + dev: true + + /node-modules-regexp/1.0.0: + resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} + engines: {node: '>=0.10.0'} + dev: true + /node-releases/1.1.73: resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==} dev: true @@ -2144,6 +2288,34 @@ packages: validate-npm-package-license: 3.0.4 dev: true + /normalize-path/3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /npm-run-all/4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.5 + memorystream: 0.3.1 + minimatch: 3.0.4 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.7.2 + string.prototype.padend: 3.1.2 + dev: true + + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} @@ -2210,6 +2382,13 @@ packages: wrappy: 1.0.2 dev: true + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -2300,6 +2479,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /path-key/2.0.1: + resolution: {integrity: sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=} + engines: {node: '>=4'} + dev: true + /path-key/3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -2326,11 +2510,24 @@ packages: engines: {node: '>=8.6'} dev: true + /pidtree/0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + dev: true + /pify/3.0.0: resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} engines: {node: '>=4'} dev: true + /pirates/4.0.1: + resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} + engines: {node: '>= 6'} + dependencies: + node-modules-regexp: 1.0.0 + dev: true + /pkg-dir/2.0.0: resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} engines: {node: '>=4'} @@ -2356,6 +2553,20 @@ packages: hasBin: true dev: true + /postcss-load-config/3.1.0: + resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==} + engines: {node: '>= 10'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + import-cwd: 3.0.0 + lilconfig: 2.0.3 + yaml: 1.10.2 + dev: true + /postcss-modules-extract-imports/3.0.0_postcss@8.3.6: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -2501,6 +2712,13 @@ packages: type-fest: 0.6.0 dev: true + /readdirp/3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.0 + dev: true + /regexp-tree/0.1.23: resolution: {integrity: sha512-+7HWfb4Bvu8Rs2eQTUIpX9I/PlQkYOuTNbRpKLJlQpSgwSkzFYh+pUj0gtvglnOZLKB6YgnIgRuJ2/IlpL48qw==} hasBin: true @@ -2533,6 +2751,11 @@ packages: engines: {node: '>=4'} dev: true + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: @@ -2601,6 +2824,13 @@ packages: lru-cache: 6.0.0 dev: true + /shebang-command/1.2.0: + resolution: {integrity: sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=} + engines: {node: '>=0.10.0'} + dependencies: + shebang-regex: 1.0.0 + dev: true + /shebang-command/2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2608,11 +2838,20 @@ packages: shebang-regex: 3.0.0 dev: true + /shebang-regex/1.0.0: + resolution: {integrity: sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=} + engines: {node: '>=0.10.0'} + dev: true + /shebang-regex/3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true + /shell-quote/1.7.2: + resolution: {integrity: sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==} + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -2621,6 +2860,10 @@ packages: object-inspect: 1.11.0 dev: true + /signal-exit/3.0.3: + resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + dev: true + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -2705,6 +2948,15 @@ packages: side-channel: 1.0.4 dev: true + /string.prototype.padend/3.1.2: + resolution: {integrity: sha512-/AQFLdYvePENU3W5rgurfWSMU6n+Ww8n/3cUt7E+vPBB/D7YDG8x+qjoFs4M/alR2bW7Qg6xMjVwWUOvuQ0XpQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.3 + es-abstract: 1.18.3 + dev: true + /string.prototype.trimend/1.0.4: resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} dependencies: @@ -2731,11 +2983,29 @@ packages: engines: {node: '>=4'} dev: true + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true + /sucrase/3.20.0: + resolution: {integrity: sha512-Rsp+BX7DRuCleJvBAHN7gQ3ddk7U0rJev19XlIBF6dAq9vX4Tr5mHk4E7+ig/I7BM3DLYotCmm20lfBElT2XtQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.1.6 + mz: 2.7.0 + pirates: 4.0.1 + ts-interface-checker: 0.1.13 + dev: true + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -2766,6 +3036,19 @@ packages: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true + /thenify-all/1.6.0: + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /to-fast-properties/2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} @@ -2777,6 +3060,15 @@ packages: is-number: 7.0.0 dev: true + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /ts-interface-checker/0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tsconfig-paths/3.10.1: resolution: {integrity: sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==} dependencies: @@ -2789,6 +3081,34 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true + /tsup/4.12.5_typescript@4.3.5: + resolution: {integrity: sha512-3f0StcX+trOZvgaY/iU11U8HvvQ4v/LLgoP9OmxtOQVXP8e/Q8FSk69d0bXFb2pHB77CmVxvqiWdwybELQfx1A==} + hasBin: true + peerDependencies: + typescript: ^4.2.3 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + cac: 6.7.3 + chalk: 4.1.1 + chokidar: 3.5.2 + debug: 4.3.2 + esbuild: 0.12.15 + execa: 5.1.1 + globby: 11.0.4 + joycon: 3.0.1 + postcss-load-config: 3.1.0 + resolve-from: 5.0.0 + rollup: 2.53.3 + sucrase: 3.20.0 + tree-kill: 1.2.2 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils/3.21.0_typescript@4.3.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -2976,15 +3296,6 @@ packages: - vue dev: false - /vue-router/4.0.10_vue@3.1.5: - resolution: {integrity: sha512-YbPf6QnZpyyWfnk7CUt2Bme+vo7TLfg1nGZNkvYqKYh4vLaFw6Gn8bPGdmt5m4qrGnKoXLqc4htAsd3dIukICA==} - peerDependencies: - vue: ^3.0.0 - dependencies: - '@vue/devtools-api': 6.0.0-beta.15 - vue: 3.1.5 - dev: false - /vue-template-es2015-compiler/1.9.1: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} dev: true @@ -3039,6 +3350,13 @@ packages: is-typed-array: 1.1.5 dev: true + /which/1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + /which/2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/public/pwa-192x192.png b/public/pwa-192x192.png deleted file mode 100644 index a8aae8daf9d693e6660a05afb8a4a78bf37120f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3914 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 Y1LqTh46JC(QUCw|07*qoM6N<$f { + console.log('Extension installed') +}) diff --git a/scripts/content/index.ts b/scripts/content/index.ts new file mode 100644 index 0000000..24712eb --- /dev/null +++ b/scripts/content/index.ts @@ -0,0 +1 @@ +console.info('Hello world from content script') diff --git a/src/background.ts b/src/background.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/components/Footer.vue b/src/components/Footer.vue deleted file mode 100644 index 61db7f2..0000000 --- a/src/components/Footer.vue +++ /dev/null @@ -1,16 +0,0 @@ - - - diff --git a/src/content.ts b/src/content.ts deleted file mode 100644 index e69de29..0000000 diff --git a/src/manifest.json b/src/manifest.json deleted file mode 100644 index 205a598..0000000 --- a/src/manifest.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "manifest_version":2, - "name":"Sample WebExtension", - "version":"0.0.0", - "icons":{ - "16":"assets/icons/favicon-16.png", - "32":"assets/icons/favicon-32.png", - "48":"assets/icons/favicon-48.png", - "128":"assets/icons/favicon-128.png" - }, - "description":"Sample description", - "homepage_url":"https://github.com/antfu/webext-vite-starter", - "short_name":"Sample Name", - "permissions":[ - "activeTab", - "storage", - "http://*/*", - "https://*/*" - ], - "content_security_policy":"script-src 'self'; object-src 'self'", - "author":"Anthony Fu", - "__firefox__applications":{ - "gecko":{ - "id":"{754FB1AD-CC3B-4856-B6A0-7786F8CA9D17}" - } - }, - "__chrome__minimum_chrome_version":"49", - "__opera__minimum_opera_version":"36", - "browser_action":{ - "default_popup":"popup.html", - "default_icon":{ - "16":"assets/icons/favicon-16.png", - "32":"assets/icons/favicon-32.png", - "48":"assets/icons/favicon-48.png", - "128":"assets/icons/favicon-128.png" - }, - "default_title":"tiny title", - "__chrome|opera__chrome_style":false, - "__firefox__browser_style":false - }, - "__chrome|opera__options_page":"options.html", - "options_ui":{ - "page":"options.html", - "open_in_tab":true, - "__chrome__chrome_style":false - }, - "background":{ - "scripts":[ - "js/background.bundle.js" - ], - "persistent":false - }, - "content_scripts":[ - { - "matches":[ - "http://*/*", - "https://*/*" - ], - "js":[ - "js/contentScript.bundle.js" - ] - } - ] -} diff --git a/src/popup/App.vue b/src/popup/App.vue deleted file mode 100644 index e1102db..0000000 --- a/src/popup/App.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/shared/logic/dark.ts b/src/shared/logic/dark.ts deleted file mode 100644 index 5467599..0000000 --- a/src/shared/logic/dark.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { useDark, useToggle } from '@vueuse/core' - -export const isDark = useDark() -export const toggleDark = useToggle(isDark) diff --git a/src/shared/logic/index.ts b/src/shared/logic/index.ts deleted file mode 100644 index e8d1566..0000000 --- a/src/shared/logic/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './dark' diff --git a/views/components/Footer.vue b/views/components/Footer.vue new file mode 100644 index 0000000..df72f83 --- /dev/null +++ b/views/components/Footer.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/README.md b/views/components/README.md similarity index 100% rename from src/components/README.md rename to views/components/README.md diff --git a/src/options/App.vue b/views/options/App.vue similarity index 100% rename from src/options/App.vue rename to views/options/App.vue diff --git a/src/options/index.html b/views/options/index.html similarity index 100% rename from src/options/index.html rename to views/options/index.html diff --git a/src/options/main.ts b/views/options/main.ts similarity index 86% rename from src/options/main.ts rename to views/options/main.ts index 6130172..456cc33 100644 --- a/src/options/main.ts +++ b/views/options/main.ts @@ -2,7 +2,7 @@ import 'vue-global-api' import { createApp } from 'vue' import App from './App.vue' -import '../shared/styles' +import '../styles' const app = createApp(App) app.mount('#app') diff --git a/views/popup/App.vue b/views/popup/App.vue new file mode 100644 index 0000000..e1ed230 --- /dev/null +++ b/views/popup/App.vue @@ -0,0 +1,6 @@ + diff --git a/src/popup/index.html b/views/popup/index.html similarity index 100% rename from src/popup/index.html rename to views/popup/index.html diff --git a/src/popup/main.ts b/views/popup/main.ts similarity index 86% rename from src/popup/main.ts rename to views/popup/main.ts index 6130172..456cc33 100644 --- a/src/popup/main.ts +++ b/views/popup/main.ts @@ -2,7 +2,7 @@ import 'vue-global-api' import { createApp } from 'vue' import App from './App.vue' -import '../shared/styles' +import '../styles' const app = createApp(App) app.mount('#app') diff --git a/src/shared/styles/index.ts b/views/styles/index.ts similarity index 100% rename from src/shared/styles/index.ts rename to views/styles/index.ts diff --git a/src/shared/styles/main.css b/views/styles/main.css similarity index 100% rename from src/shared/styles/main.css rename to views/styles/main.css diff --git a/vite.config.ts b/vite.config.ts index 03296a6..14f39cb 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,32 +5,36 @@ import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' import ViteComponents from 'vite-plugin-components' import WindiCSS from 'vite-plugin-windicss' +const r = (...args: string[]) => resolve(__dirname, ...args) + export default defineConfig({ + root: r('views'), resolve: { alias: { - '~/': `${resolve(__dirname, 'src')}/`, + '~/': `${r('views')}/`, }, }, build: { + outDir: r('extension/dist'), + emptyOutDir: false, rollupOptions: { input: { - popup: resolve(__dirname, 'src/popup/index.html'), - options: resolve(__dirname, 'src/options/index.html'), + popup: r('views/popup/index.html'), + options: r('views/options/index.html'), }, }, }, plugins: [ Vue(), ViteComponents({ + dirs: [r('views/components')], // generate `components.d.ts` for ts support with Volar globalComponentsDeclaration: true, - // auto import icons customComponentResolvers: [ // https://github.com/antfu/vite-plugin-icons ViteIconsResolver({ componentPrefix: '', - // enabledCollections: ['carbon'] }), ], }), @@ -39,7 +43,19 @@ export default defineConfig({ ViteIcons(), // https://github.com/antfu/vite-plugin-windicss - WindiCSS(), + WindiCSS({ + root: __dirname, + }), + + // rewrite assets to use relative path + { + name: 'assets-rewrite', + enforce: 'post', + apply: 'build', + transformIndexHtml(html) { + return html.replace(/"\/assets\//g, '"../assets/') + }, + }, ], optimizeDeps: { diff --git a/windi.config.ts b/windi.config.ts index 9b93a3c..4eec828 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -4,4 +4,9 @@ export default defineConfig({ darkMode: 'class', // https://windicss.org/posts/v30.html#attributify-mode attributify: true, + extract: { + include: [ + 'views/**/*.{vue,html}', + ], + }, }) From 310373aba63ddb799dfbcb9f4b830be453d58150 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 23 Jul 2021 12:21:17 +0800 Subject: [PATCH 003/105] wip: dev stub --- extension/manifest.json | 3 +- index.html | 22 ------ package.json | 7 +- pnpm-lock.yaml | 32 ++++++++ scripts/stub.ts | 22 ++++++ {scripts => src}/background/index.ts | 0 {scripts => src}/content/index.ts | 0 tsconfig.json | 2 +- views/styles/main.css | 16 ---- vite.config.ts | 109 ++++++++++++++------------- windi.config.ts | 2 +- 11 files changed, 121 insertions(+), 94 deletions(-) delete mode 100644 index.html create mode 100644 scripts/stub.ts rename {scripts => src}/background/index.ts (100%) rename {scripts => src}/content/index.ts (100%) diff --git a/extension/manifest.json b/extension/manifest.json index 6cac329..3707e77 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -38,5 +38,6 @@ "notifications", "http://*/", "https://*/" - ] + ], + "content_security_policy": "script-src 'self' http://localhost:3303; object-src 'self'" } diff --git a/index.html b/index.html deleted file mode 100644 index 50669c4..0000000 --- a/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - -
- - - - diff --git a/package.json b/package.json index 427f649..fd3b24c 100644 --- a/package.json +++ b/package.json @@ -2,11 +2,12 @@ "private": true, "scripts": { "dev": "run-p dev:*", - "dev:web": "vite build --watch", + "dev:stub": "esno scripts/stub.ts", + "dev:web": "vite", "dev:js": "npm run build:js -- --watch", "build": "run-s clear build:web build:js", "build:web": "vite build", - "build:js": "tsup scripts/background scripts/content --format iife --out-dir extension/dist", + "build:js": "tsup src/background src/content --format iife --out-dir extension/dist", "clear": "rimraf extension/dist" }, "dependencies": { @@ -18,12 +19,14 @@ "devDependencies": { "@antfu/eslint-config": "^0.7.0", "@iconify/json": "^1.1.378", + "@types/fs-extra": "^9.0.12", "@types/node": "^16.4.1", "@typescript-eslint/eslint-plugin": "^4.28.3", "@vitejs/plugin-vue": "^1.2.5", "@vue/compiler-sfc": "^3.1.5", "cross-env": "^7.0.3", "eslint": "^7.31.0", + "fs-extra": "^10.0.0", "npm-run-all": "^4.1.5", "pnpm": "^6.10.3", "tsup": "^4.12.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31c5781..f144a9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3,6 +3,7 @@ lockfileVersion: 5.3 specifiers: '@antfu/eslint-config': ^0.7.0 '@iconify/json': ^1.1.378 + '@types/fs-extra': ^9.0.12 '@types/node': ^16.4.1 '@typescript-eslint/eslint-plugin': ^4.28.3 '@vitejs/plugin-vue': ^1.2.5 @@ -10,6 +11,7 @@ specifiers: '@vueuse/core': ^5.1.4 cross-env: ^7.0.3 eslint: ^7.31.0 + fs-extra: ^10.0.0 npm-run-all: ^4.1.5 pnpm: ^6.10.3 tsup: ^4.12.5 @@ -33,12 +35,14 @@ dependencies: devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.31.0+typescript@4.3.5 '@iconify/json': 1.1.379 + '@types/fs-extra': 9.0.12 '@types/node': 16.4.1 '@typescript-eslint/eslint-plugin': 4.28.4_eslint@7.31.0+typescript@4.3.5 '@vitejs/plugin-vue': 1.2.5_@vue+compiler-sfc@3.1.5 '@vue/compiler-sfc': 3.1.5_vue@3.1.5 cross-env: 7.0.3 eslint: 7.31.0 + fs-extra: 10.0.0 npm-run-all: 4.1.5 pnpm: 6.10.3 tsup: 4.12.5_typescript@4.3.5 @@ -428,6 +432,12 @@ packages: resolution: {integrity: sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==} dev: true + /@types/fs-extra/9.0.12: + resolution: {integrity: sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==} + dependencies: + '@types/node': 16.4.1 + dev: true + /@types/json-schema/7.0.8: resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} dev: true @@ -1648,6 +1658,15 @@ packages: resolution: {integrity: sha1-C+4AUBiusmDQo6865ljdATbsG5k=} dev: true + /fs-extra/10.0.0: + resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} + engines: {node: '>=12'} + dependencies: + graceful-fs: 4.2.6 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + /fs.realpath/1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} dev: true @@ -2084,6 +2103,14 @@ packages: - eslint dev: true + /jsonfile/6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.6 + dev: true + /jsx-ast-utils/3.2.0: resolution: {integrity: sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q==} engines: {node: '>=4.0'} @@ -3156,6 +3183,11 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /universalify/2.0.0: + resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + engines: {node: '>= 10.0.0'} + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: diff --git a/scripts/stub.ts b/scripts/stub.ts new file mode 100644 index 0000000..32571b7 --- /dev/null +++ b/scripts/stub.ts @@ -0,0 +1,22 @@ +import { resolve } from 'path' +import fs from 'fs-extra' + +const port = 3303 +const r = (...args: string[]) => resolve(__dirname, '..', ...args) + +const views = [ + 'options', + 'popup', +] + +async function run() { + for (const view of views) { + await fs.ensureDir(r(`extension/dist/${view}`)) + let data = await fs.readFile(r(`views/${view}/index.html`), 'utf-8') + data = data.replace('"./main.ts"', `"http://localhost:${port}/${view}/main.ts"`) + await fs.writeFile(r(`extension/dist/${view}/index.html`), data, 'utf-8') + console.log(`stub ${view}`) + } +} + +run() diff --git a/scripts/background/index.ts b/src/background/index.ts similarity index 100% rename from scripts/background/index.ts rename to src/background/index.ts diff --git a/scripts/content/index.ts b/src/content/index.ts similarity index 100% rename from scripts/content/index.ts rename to src/content/index.ts diff --git a/tsconfig.json b/tsconfig.json index 1aec677..5a65d9d 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,7 @@ "vite-plugin-pages/client" ], "paths": { - "~/*": ["src/*"] + "~/*": ["views/*"] } }, "exclude": ["dist", "node_modules"] diff --git a/views/styles/main.css b/views/styles/main.css index cb0fd87..6829bd1 100755 --- a/views/styles/main.css +++ b/views/styles/main.css @@ -10,22 +10,6 @@ html.dark { background: #121212; } -#nprogress { - pointer-events: none; -} - -#nprogress .bar { - @apply bg-teal-600 opacity-75; - - position: fixed; - z-index: 1031; - top: 0; - left: 0; - - width: 100%; - height: 2px; -} - .btn { @apply px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer diff --git a/vite.config.ts b/vite.config.ts index 14f39cb..3158d08 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -4,67 +4,74 @@ import Vue from '@vitejs/plugin-vue' import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' import ViteComponents from 'vite-plugin-components' import WindiCSS from 'vite-plugin-windicss' +import windiConfig from './windi.config' const r = (...args: string[]) => resolve(__dirname, ...args) -export default defineConfig({ - root: r('views'), - resolve: { - alias: { - '~/': `${r('views')}/`, +export default defineConfig(({ command }) => { + return { + root: r('views'), + base: command === 'serve' ? 'http://localhost:3033' : undefined, + resolve: { + alias: { + '~/': `${r('views')}/`, + }, + }, + server: { + port: 3303, }, - }, - build: { - outDir: r('extension/dist'), - emptyOutDir: false, - rollupOptions: { - input: { - popup: r('views/popup/index.html'), - options: r('views/options/index.html'), + build: { + outDir: r('extension/dist'), + emptyOutDir: false, + rollupOptions: { + input: { + popup: r('views/popup/index.html'), + options: r('views/options/index.html'), + }, }, }, - }, - plugins: [ - Vue(), - ViteComponents({ - dirs: [r('views/components')], - // generate `components.d.ts` for ts support with Volar - globalComponentsDeclaration: true, - // auto import icons - customComponentResolvers: [ + plugins: [ + Vue(), + ViteComponents({ + dirs: [r('views/components')], + // generate `components.d.ts` for ts support with Volar + globalComponentsDeclaration: true, + // auto import icons + customComponentResolvers: [ // https://github.com/antfu/vite-plugin-icons - ViteIconsResolver({ - componentPrefix: '', - }), - ], - }), + ViteIconsResolver({ + componentPrefix: '', + }), + ], + }), - // https://github.com/antfu/vite-plugin-icons - ViteIcons(), + // https://github.com/antfu/vite-plugin-icons + ViteIcons(), - // https://github.com/antfu/vite-plugin-windicss - WindiCSS({ - root: __dirname, - }), + // https://github.com/antfu/vite-plugin-windicss + WindiCSS({ + config: windiConfig, + }), - // rewrite assets to use relative path - { - name: 'assets-rewrite', - enforce: 'post', - apply: 'build', - transformIndexHtml(html) { - return html.replace(/"\/assets\//g, '"../assets/') + // rewrite assets to use relative path + { + name: 'assets-rewrite', + enforce: 'post', + apply: 'build', + transformIndexHtml(html) { + return html.replace(/"\/assets\//g, '"../assets/') + }, }, - }, - ], - - optimizeDeps: { - include: [ - 'vue', - '@vueuse/core', ], - exclude: [ - 'vue-demi', - ], - }, + + optimizeDeps: { + include: [ + 'vue', + '@vueuse/core', + ], + exclude: [ + 'vue-demi', + ], + }, + } }) diff --git a/windi.config.ts b/windi.config.ts index 4eec828..65d6d54 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ attributify: true, extract: { include: [ - 'views/**/*.{vue,html}', + '**/*.{vue,html}', ], }, }) From c4ef854ec52fb17862c2bb498714b4774db392e4 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 23 Jul 2021 13:39:48 +0800 Subject: [PATCH 004/105] feat: use vite server with HMR on dev --- extension/assets/favicon.svg | 9 --------- extension/assets/icon-512.png | Bin 10261 -> 2338 bytes extension/assets/icon.svg | 3 +++ package.json | 2 ++ pnpm-lock.yaml | 31 +++++++++++++++++++++++++++++++ scripts/stub.ts | 2 +- views/components/Footer.vue | 7 ------- views/components/Logo.vue | 5 +++++ views/components/README.md | 1 - views/options/App.vue | 6 ------ views/options/Options.vue | 9 +++++++++ views/options/index.html | 1 - views/options/main.ts | 3 +-- views/popup/App.vue | 6 ------ views/popup/Popup.vue | 16 ++++++++++++++++ views/popup/index.html | 1 - views/popup/main.ts | 3 +-- views/styles/main.css | 5 ----- vite.config.ts | 5 ++++- 19 files changed, 73 insertions(+), 42 deletions(-) delete mode 100644 extension/assets/favicon.svg create mode 100644 extension/assets/icon.svg delete mode 100644 views/components/Footer.vue create mode 100644 views/components/Logo.vue delete mode 100644 views/options/App.vue create mode 100644 views/options/Options.vue delete mode 100644 views/popup/App.vue create mode 100644 views/popup/Popup.vue diff --git a/extension/assets/favicon.svg b/extension/assets/favicon.svg deleted file mode 100644 index 12d3b56..0000000 --- a/extension/assets/favicon.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - diff --git a/extension/assets/icon-512.png b/extension/assets/icon-512.png index 9bdb895f28ab8a9c22caeaadfc8e74af45a47acc..ed3fc20ceef99c72e965c716e078ad0d3847b87f 100644 GIT binary patch literal 2338 zcmeAS@N?(olHy`uVBq!ia0y~yU;;9k7&zE~)R&4Yzkn2Hfk$L90|U1(2s1Lwnj--e zWGoJHcVbv~PUa<$!;&U>cv7h@-A}a#}$97K_$B+ufw>K~5KK2k`xcJPmF-PsS zkKb%oQO2pQqFpj4t%T>zVeT~!e9y@Im+R7m*cme!f##418vb84Vo=GwT{gG)$DX@+ z=N|@4XH>|Hoc7(a{dl%*yYpXT28TWdh6V+o*^WSeHL(Dl$_aFz5CemN3Il_J2Lpq{ zgi!@#gu^t&w{`p9Gpnq9oyFE-$v8y9c){s{9l5vf#mVn~CL_lTOdCJsuBS%+n=2e~ zy;PE+D28z~InXFu=rOBr$h}<(%$tq!dH28DZ@>N4@WbIDlyDf@Z+-up964?O;fZy7 zuic(=;Pw9hdvk9WtT=!B?Kc@dRfY!@{iU(;hZEzNzy6Y1lV8jifB&nM%*&5az+!3L zP$_F(7}c~N-}nB!W#jL^|LmTB$bKNRZ{Gj@haU3}KV&&zz5`guT6PMvGR!%2{X_j; zW;tg2Iod;|Jl(~U`FfXLG1KjBvC~s4<$pZf_wD81y6xfpUn};m{>Rf^1gs&3MlCU& zk#DQc>G!#}+no2F^?dXD-^W|b_3eji{w@Q?5`)b9Us4R$7rxrK?sf8m_F`atJVboe sSX}Y$_rLT9&#U=JYzR<8c|pT}2K&Wv#^&2^Yy_F->FVdQ&MBb@0C&rF^8f$< literal 10261 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 + + diff --git a/package.json b/package.json index fd3b24c..a4e35fd 100644 --- a/package.json +++ b/package.json @@ -26,9 +26,11 @@ "@vue/compiler-sfc": "^3.1.5", "cross-env": "^7.0.3", "eslint": "^7.31.0", + "esno": "^0.8.0", "fs-extra": "^10.0.0", "npm-run-all": "^4.1.5", "pnpm": "^6.10.3", + "rimraf": "^3.0.2", "tsup": "^4.12.5", "typescript": "^4.3.5", "vite": "^2.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f144a9f..b84e7bd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,9 +11,11 @@ specifiers: '@vueuse/core': ^5.1.4 cross-env: ^7.0.3 eslint: ^7.31.0 + esno: ^0.8.0 fs-extra: ^10.0.0 npm-run-all: ^4.1.5 pnpm: ^6.10.3 + rimraf: ^3.0.2 tsup: ^4.12.5 typescript: ^4.3.5 vite: ^2.4.2 @@ -42,9 +44,11 @@ devDependencies: '@vue/compiler-sfc': 3.1.5_vue@3.1.5 cross-env: 7.0.3 eslint: 7.31.0 + esno: 0.8.0 fs-extra: 10.0.0 npm-run-all: 4.1.5 pnpm: 6.10.3 + rimraf: 3.0.2 tsup: 4.12.5_typescript@4.3.5 typescript: 4.3.5 vite: 2.4.3 @@ -1199,6 +1203,19 @@ packages: is-symbol: 1.0.4 dev: true + /esbuild-node-loader/0.1.1: + resolution: {integrity: sha512-n24xYzMfKmPupUZgs0QYBr52HUSh1M1vDtBfkEVa6pdENqo5+U5WP+zaj4Iw2MinuYk1axLW8+NVutrBCkrdmA==} + dependencies: + esbuild: 0.12.15 + dev: true + + /esbuild-register/2.6.0: + resolution: {integrity: sha512-2u4AtnCXP5nivtIxZryiZOUcEQkOzFS7UhAqibUEmaTAThJ48gDLYTBF/Fsz+5r0hbV1jrFE6PQvPDUrKZNt/Q==} + dependencies: + esbuild: 0.12.15 + jsonc-parser: 3.0.0 + dev: true + /esbuild/0.12.15: resolution: {integrity: sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==} hasBin: true @@ -1513,6 +1530,16 @@ packages: - supports-color dev: true + /esno/0.8.0: + resolution: {integrity: sha512-zbvu/Kmv+/MznS1J3/U9fXBpnpl7N2dVkwihq1YzR4JzYfJMuwFxDQ0WcTSUX+rBXmKxbYlgj9dwbog+mJXo1Q==} + hasBin: true + dependencies: + cross-spawn: 7.0.3 + esbuild: 0.12.15 + esbuild-node-loader: 0.1.1 + esbuild-register: 2.6.0 + dev: true + /espree/6.2.1: resolution: {integrity: sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==} engines: {node: '>=6.0.0'} @@ -2103,6 +2130,10 @@ packages: - eslint dev: true + /jsonc-parser/3.0.0: + resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + dev: true + /jsonfile/6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: diff --git a/scripts/stub.ts b/scripts/stub.ts index 32571b7..d6a788d 100644 --- a/scripts/stub.ts +++ b/scripts/stub.ts @@ -15,7 +15,7 @@ async function run() { let data = await fs.readFile(r(`views/${view}/index.html`), 'utf-8') data = data.replace('"./main.ts"', `"http://localhost:${port}/${view}/main.ts"`) await fs.writeFile(r(`extension/dist/${view}/index.html`), data, 'utf-8') - console.log(`stub ${view}`) + console.log(`✅ stub ${view}`) } } diff --git a/views/components/Footer.vue b/views/components/Footer.vue deleted file mode 100644 index df72f83..0000000 --- a/views/components/Footer.vue +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/views/components/Logo.vue b/views/components/Logo.vue new file mode 100644 index 0000000..9a0f44a --- /dev/null +++ b/views/components/Logo.vue @@ -0,0 +1,5 @@ + diff --git a/views/components/README.md b/views/components/README.md index 5f8b819..82339a2 100644 --- a/views/components/README.md +++ b/views/components/README.md @@ -2,7 +2,6 @@ Components in this dir will be auto-registered and on-demand, powered by [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components). - ### Icons You can use icons from almost any icon sets by the power of [Iconify](https://iconify.design/). diff --git a/views/options/App.vue b/views/options/App.vue deleted file mode 100644 index 9e06963..0000000 --- a/views/options/App.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/views/options/Options.vue b/views/options/Options.vue new file mode 100644 index 0000000..b12f572 --- /dev/null +++ b/views/options/Options.vue @@ -0,0 +1,9 @@ + diff --git a/views/options/index.html b/views/options/index.html index 03ad7ba..0508ea7 100644 --- a/views/options/index.html +++ b/views/options/index.html @@ -2,7 +2,6 @@ - Options diff --git a/views/options/main.ts b/views/options/main.ts index 456cc33..53dde3e 100644 --- a/views/options/main.ts +++ b/views/options/main.ts @@ -1,7 +1,6 @@ -// register vue composition api globally import 'vue-global-api' import { createApp } from 'vue' -import App from './App.vue' +import App from './Options.vue' import '../styles' const app = createApp(App) diff --git a/views/popup/App.vue b/views/popup/App.vue deleted file mode 100644 index e1ed230..0000000 --- a/views/popup/App.vue +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/views/popup/Popup.vue b/views/popup/Popup.vue new file mode 100644 index 0000000..70ca1c1 --- /dev/null +++ b/views/popup/Popup.vue @@ -0,0 +1,16 @@ + + + diff --git a/views/popup/index.html b/views/popup/index.html index 656557e..d369c49 100644 --- a/views/popup/index.html +++ b/views/popup/index.html @@ -2,7 +2,6 @@ - Popup diff --git a/views/popup/main.ts b/views/popup/main.ts index 456cc33..5c36e4b 100644 --- a/views/popup/main.ts +++ b/views/popup/main.ts @@ -1,7 +1,6 @@ -// register vue composition api globally import 'vue-global-api' import { createApp } from 'vue' -import App from './App.vue' +import App from './Popup.vue' import '../styles' const app = createApp(App) diff --git a/views/styles/main.css b/views/styles/main.css index 6829bd1..716ffbb 100755 --- a/views/styles/main.css +++ b/views/styles/main.css @@ -1,15 +1,10 @@ html, body, #app { - height: 100%; margin: 0; padding: 0; } -html.dark { - background: #121212; -} - .btn { @apply px-4 py-1 rounded inline-block bg-teal-600 text-white cursor-pointer diff --git a/vite.config.ts b/vite.config.ts index 3158d08..9562577 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -11,7 +11,7 @@ const r = (...args: string[]) => resolve(__dirname, ...args) export default defineConfig(({ command }) => { return { root: r('views'), - base: command === 'serve' ? 'http://localhost:3033' : undefined, + base: command === 'serve' ? 'http://localhost:3033/' : undefined, resolve: { alias: { '~/': `${r('views')}/`, @@ -19,6 +19,9 @@ export default defineConfig(({ command }) => { }, server: { port: 3303, + hmr: { + host: 'localhost', + }, }, build: { outDir: r('extension/dist'), From 315ed2c7cb77f6114d50a0d1438fab3f3e7ce6da Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 23 Jul 2021 14:01:41 +0800 Subject: [PATCH 005/105] docs: add readme --- README.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/README.md b/README.md index e69de29..68f030a 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,86 @@ +# Web Extensions Vite Starter + +A [Vite](https://vitejs.dev/)-powered web extension ([Chrome](https://developer.chrome.com/docs/extensions/reference/), [FireFox](https://addons.mozilla.org/en-US/developers/), etc.) starter template. + + + + +## Features + +- ⚡️ **Instant HMR** - use **Vite** on dev (no more refresh!). +- 💚 Vue 3 - Composition API, [` diff --git a/views/popup/Popup.vue b/views/popup/Popup.vue index 70ca1c1..08d9cc5 100644 --- a/views/popup/Popup.vue +++ b/views/popup/Popup.vue @@ -2,13 +2,21 @@
Popup
-

This is the popup page

- +

+ This is the popup page +

+ +
+ Storage: {{ storageDemo }} +
From c2fd6bb2f771439ce15e65ed5f2962dde27d0164 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sun, 25 Jul 2021 03:36:51 +0800 Subject: [PATCH 024/105] fix: build --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a8b9565..d0fd97a 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ "dev": "run-p dev:*", "dev:prepare": "esno scripts/prepare.ts dev", "dev:web": "vite", - "dev:js": "npm run build:js -- --watch", + "dev:js": "npm run build:js -- --watch src", "build": "run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts build", "build:web": "vite build", - "build:js": "tsup src/background src/content --format iife --out-dir extension/dist --watch src --no-splitting", + "build:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting", "clear": "rimraf extension/dist" }, "devDependencies": { From d9e71093f9bc9ed4bec7aabe823733eb31499551 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 26 Jul 2021 17:06:54 +0800 Subject: [PATCH 025/105] docs: add credits --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 21cd4c1..7a4eca7 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,10 @@ pnpm build And then pack files under `extension`. +## Credits + +The original idea came from the [volta.net](https://volta.net) browser extension. + ## Variations This is a variant of [Vitesse](https://github.com/antfu/vitesse), check out the [full variations list](https://github.com/antfu/vitesse#variations). From d86aa20a4a56edd3e4ce7bc83fdd4ac74b4ac172 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 27 Jul 2021 01:03:11 +0800 Subject: [PATCH 026/105] docs: update --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a4eca7..5088a83 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,9 @@ And then pack files under `extension`. ## Credits -The original idea came from the [volta.net](https://volta.net) browser extension. +![](https://user-images.githubusercontent.com/11247099/127029137-6b5ad5db-76c4-4061-86ff-489911a8adfb.png) + +This template is originally made for the [volta.net](https://volta.net) browser extension. ## Variations From 2a7591ab3f3f6c432cdf32b7a6fdf65d1825e551 Mon Sep 17 00:00:00 2001 From: ntnyq Date: Fri, 6 Aug 2021 16:26:15 +0800 Subject: [PATCH 027/105] feat: minify for production (#7) --- package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d0fd97a..b8c0cdb 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,12 @@ "dev": "run-p dev:*", "dev:prepare": "esno scripts/prepare.ts dev", "dev:web": "vite", - "dev:js": "npm run build:js -- --watch src", + "dev:js": "npm run bundle:js -- --watch src", "build": "run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts build", "build:web": "vite build", - "build:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting", + "build:js": "npm run bundle:js -- --minify", + "bundle:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting", "clear": "rimraf extension/dist" }, "devDependencies": { From e964526b56dea79946a4edb3e35746408b2743a7 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Sat, 7 Aug 2021 21:32:47 +0800 Subject: [PATCH 028/105] Revert "feat: minify for production" (#9) This reverts commit 2a7591ab3f3f6c432cdf32b7a6fdf65d1825e551. --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index b8c0cdb..d0fd97a 100644 --- a/package.json +++ b/package.json @@ -8,12 +8,11 @@ "dev": "run-p dev:*", "dev:prepare": "esno scripts/prepare.ts dev", "dev:web": "vite", - "dev:js": "npm run bundle:js -- --watch src", + "dev:js": "npm run build:js -- --watch src", "build": "run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts build", "build:web": "vite build", - "build:js": "npm run bundle:js -- --minify", - "bundle:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting", + "build:js": "tsup src/background src/content --format iife --out-dir extension/dist --no-splitting", "clear": "rimraf extension/dist" }, "devDependencies": { From 95ee614e675403a38db6d73991cd8f8416277475 Mon Sep 17 00:00:00 2001 From: Tmk Date: Mon, 16 Aug 2021 14:33:42 +0800 Subject: [PATCH 029/105] fix: write manifest with latest config (#11) --- src/manifest.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/manifest.ts b/src/manifest.ts index 8cef749..ecb6b9d 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -1,8 +1,10 @@ +import fs from 'fs-extra' import type { Manifest } from 'webextension-polyfill-ts' -import pkg from '../package.json' -import { isDev, port } from '../scripts/utils' +import type PkgType from '../package.json' +import { isDev, port, r } from '../scripts/utils' export async function getManifest(): Promise { + const pkg: typeof PkgType = await fs.readJSON(r('package.json')) // update this file to update this manifest.json // can also be conditional based on your need return { From c8fedca23e1160a642847a81d3684b05255324b4 Mon Sep 17 00:00:00 2001 From: Tmk Date: Wed, 18 Aug 2021 11:06:12 +0800 Subject: [PATCH 030/105] refactor: migrate to webextension-polyfill (#15) --- README.md | 2 +- package.json | 3 ++- pnpm-lock.yaml | 27 ++++++++++++++++++++++++--- src/background/index.ts | 2 +- src/manifest.ts | 2 +- views/popup/Popup.vue | 2 +- 6 files changed, 30 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5088a83..a39dfb6 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.c ### WebExtension Libraries -- [`webextension-polyfill-ts`](https://github.com/Lusito/webextension-polyfill-ts) - WebExtension browser API Polyfill with types +- [`webextension-polyfill`](https://github.com/mozilla/webextension-polyfill) - WebExtension browser API Polyfill with types - [`webext-bridge`](https://github.com/antfu/webext-bridge) - effortlessly communication between contexts ### Vite Plugins diff --git a/package.json b/package.json index d0fd97a..3020340 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@iconify/json": "^1.1.379", "@types/fs-extra": "^9.0.12", "@types/node": "^16.4.1", + "@types/webextension-polyfill": "^0.8.0", "@typescript-eslint/eslint-plugin": "^4.28.4", "@vitejs/plugin-vue": "^1.2.5", "@vue/compiler-sfc": "^3.1.5", @@ -42,6 +43,6 @@ "vue-demi": "^0.11.2", "vue-global-api": "^0.2.4", "webext-bridge": "^4.0.0", - "webextension-polyfill-ts": "^0.26.0" + "webextension-polyfill": "^0.8.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f2762e6..d6305da 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -5,6 +5,7 @@ specifiers: '@iconify/json': ^1.1.379 '@types/fs-extra': ^9.0.12 '@types/node': ^16.4.1 + '@types/webextension-polyfill': ^0.8.0 '@typescript-eslint/eslint-plugin': ^4.28.4 '@vitejs/plugin-vue': ^1.2.5 '@vue/compiler-sfc': ^3.1.5 @@ -27,13 +28,14 @@ specifiers: vue-demi: ^0.11.2 vue-global-api: ^0.2.4 webext-bridge: ^4.0.0 - webextension-polyfill-ts: ^0.26.0 + webextension-polyfill: ^0.8.0 devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.31.0+typescript@4.3.5 '@iconify/json': 1.1.379 '@types/fs-extra': 9.0.12 '@types/node': 16.4.1 + '@types/webextension-polyfill': 0.8.0 '@typescript-eslint/eslint-plugin': 4.28.4_eslint@7.31.0+typescript@4.3.5 '@vitejs/plugin-vue': 1.2.5_@vue+compiler-sfc@3.1.5 '@vue/compiler-sfc': 3.1.5_vue@3.1.5 @@ -56,7 +58,7 @@ devDependencies: vue-demi: 0.11.2_vue@3.1.5 vue-global-api: 0.2.4_vue@3.1.5 webext-bridge: 4.0.0 - webextension-polyfill-ts: 0.26.0 + webextension-polyfill: 0.8.0 packages: @@ -461,6 +463,10 @@ packages: resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} dev: true + /@types/webextension-polyfill/0.8.0: + resolution: {integrity: sha512-usmQx2snpNkVl2VoOGZCdrPnfHL+CjuSFy84ZdTwQ2b2cvyygF/zGW5YI6Zywk+bfq9zmYpORO9lmdN7DknpRw==} + dev: true + /@typescript-eslint/eslint-plugin/4.28.4_b1648df9f9ba40bdeef3710a5a5af353: resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -3249,6 +3255,21 @@ packages: vue: 3.1.5 dev: true + /vue-demi/0.11.3_vue@3.1.5: + resolution: {integrity: sha512-DpM0TTMpclRZDV6AIacgg837zrim/C9Zn+2ztXBs9hsESJN9vC83ztjTe4KC4HgJuVle8YUjPp7HTwWtwOHfmg==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.1.5 + dev: true + /vue-eslint-parser/7.9.0_eslint@7.31.0: resolution: {integrity: sha512-QBlhZ5LteDRVy2dISfQhNEmmcqph+GTaD4SH41bYzXcVHFPJ9p34zCG6QAqOZVa8PKaVgbomFnoZpGJRZi14vg==} engines: {node: '>=8.10'} @@ -3270,7 +3291,7 @@ packages: /vue-global-api/0.2.4_vue@3.1.5: resolution: {integrity: sha512-Cm84AZiALt8f4CJZzPvbForTzAUYe41msnzUnRK6B7YkaDaN8g87ap8CpHWvTU0+XtyDeLLAeQoRr+uwamxfpQ==} dependencies: - vue-demi: 0.11.2_vue@3.1.5 + vue-demi: 0.11.3_vue@3.1.5 transitivePeerDependencies: - '@vue/composition-api' - vue diff --git a/src/background/index.ts b/src/background/index.ts index e6ef17f..e7e2ec7 100644 --- a/src/background/index.ts +++ b/src/background/index.ts @@ -1,5 +1,5 @@ import { sendMessage, onMessage } from 'webext-bridge' -import { browser } from 'webextension-polyfill-ts' +import browser from 'webextension-polyfill' browser.runtime.onInstalled.addListener((): void => { // eslint-disable-next-line no-console diff --git a/src/manifest.ts b/src/manifest.ts index ecb6b9d..4ecc38c 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -1,5 +1,5 @@ import fs from 'fs-extra' -import type { Manifest } from 'webextension-polyfill-ts' +import type { Manifest } from 'webextension-polyfill' import type PkgType from '../package.json' import { isDev, port, r } from '../scripts/utils' diff --git a/views/popup/Popup.vue b/views/popup/Popup.vue index 08d9cc5..7480dfd 100644 --- a/views/popup/Popup.vue +++ b/views/popup/Popup.vue @@ -15,7 +15,7 @@ + + diff --git a/src/background/index.ts b/views/background/main.ts similarity index 91% rename from src/background/index.ts rename to views/background/main.ts index c644047..67b0e83 100644 --- a/src/background/index.ts +++ b/views/background/main.ts @@ -1,6 +1,10 @@ import { sendMessage, onMessage } from 'webext-bridge' import browser, { Tabs } from 'webextension-polyfill' +if (import.meta.hot) + // @ts-expect-error for background HMR on dev + import('/@vite/client') + browser.runtime.onInstalled.addListener((): void => { // eslint-disable-next-line no-console console.log('Extension installed') diff --git a/vite.config.ts b/vite.config.ts index e31942c..478b8c5 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -35,8 +35,9 @@ export default defineConfig(({ command }) => { }, rollupOptions: { input: { - popup: r('views/popup/index.html'), + background: r('views/background/index.html'), options: r('views/options/index.html'), + popup: r('views/popup/index.html'), }, }, }, From 03331eab2b75097d6d7d448d1adf69569c3e6445 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 20 Aug 2021 12:48:04 +0800 Subject: [PATCH 035/105] refactor: restructure folders --- README.md | 4 +- package.json | 8 +- pnpm-lock.yaml | 525 ++++++++++------------- scripts/prepare.ts | 4 +- {views => src}/background/index.html | 0 {views => src}/background/main.ts | 0 {views => src}/components/Logo.vue | 0 {views => src}/components/README.md | 0 src/{content => contentScripts}/index.ts | 0 {views => src}/logic/index.ts | 0 {views => src}/logic/storage.ts | 0 src/manifest.ts | 2 +- {views => src}/options/Options.vue | 0 {views => src}/options/index.html | 0 {views => src}/options/main.ts | 0 {views => src}/popup/Popup.vue | 0 {views => src}/popup/index.html | 0 {views => src}/popup/main.ts | 0 {views => src}/styles/index.ts | 0 {views => src}/styles/main.css | 0 tsconfig.json | 2 +- tsup.config.ts | 4 +- vite.config.ts | 12 +- 23 files changed, 255 insertions(+), 306 deletions(-) rename {views => src}/background/index.html (100%) rename {views => src}/background/main.ts (100%) rename {views => src}/components/Logo.vue (100%) rename {views => src}/components/README.md (100%) rename src/{content => contentScripts}/index.ts (100%) rename {views => src}/logic/index.ts (100%) rename {views => src}/logic/storage.ts (100%) rename {views => src}/options/Options.vue (100%) rename {views => src}/options/index.html (100%) rename {views => src}/options/main.ts (100%) rename {views => src}/popup/Popup.vue (100%) rename {views => src}/popup/index.html (100%) rename {views => src}/popup/main.ts (100%) rename {views => src}/styles/index.ts (100%) rename {views => src}/styles/main.css (100%) diff --git a/README.md b/README.md index a39dfb6..57e2242 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.c - 💬 Effortless communications - powered by [`webext-bridge`](https://github.com/antfu/webext-bridge) and [VueUse](https://github.com/antfu/vueuse) storage - 🍃 [Windi CSS](https://windicss.org/) - on-demand CSS utilities - 🦾 [TypeScript](https://www.typescriptlang.org/) - type safe -- 📦 [Components auto importing](./views/components) -- 🌟 [Icons](./views/components) - Access to icons from any iconset directly +- 📦 [Components auto importing](./src/components) +- 🌟 [Icons](./src/components) - Access to icons from any iconset directly - 🌍 WebExtension - isomorphic extension for Chrome, Firefox, and others - 📃 Dynamic `manifest.json` with full type support diff --git a/package.json b/package.json index 4b73dca..e446714 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,10 @@ "description": "[description]", "private": true, "scripts": { - "dev": "cross-env NODE_ENV=development run-p dev:*", + "dev": "npm run clear && cross-env NODE_ENV=development run-p dev:*", "dev:prepare": "esno scripts/prepare.ts", "dev:web": "vite", - "dev:js": "npm run build:js --watch src", + "dev:js": "npm run build:js --watch src/contentScripts", "build": "cross-env NODE_ENV=production run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts", "build:web": "vite build", @@ -18,9 +18,9 @@ }, "devDependencies": { "@antfu/eslint-config": "^0.7.0", - "@iconify/json": "^1.1.389", + "@iconify/json": "^1.1.390", "@types/fs-extra": "^9.0.12", - "@types/node": "^16.6.1", + "@types/node": "^16.6.2", "@types/webextension-polyfill": "^0.8.0", "@typescript-eslint/eslint-plugin": "^4.29.2", "@vitejs/plugin-vue": "^1.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c395a69..ec027d4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,9 +2,9 @@ lockfileVersion: 5.3 specifiers: '@antfu/eslint-config': ^0.7.0 - '@iconify/json': ^1.1.389 + '@iconify/json': ^1.1.390 '@types/fs-extra': ^9.0.12 - '@types/node': ^16.6.1 + '@types/node': ^16.6.2 '@types/webextension-polyfill': ^0.8.0 '@typescript-eslint/eslint-plugin': ^4.29.2 '@vitejs/plugin-vue': ^1.4.0 @@ -32,9 +32,9 @@ specifiers: devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.32.0+typescript@4.3.5 - '@iconify/json': 1.1.389 + '@iconify/json': 1.1.390 '@types/fs-extra': 9.0.12 - '@types/node': 16.6.1 + '@types/node': 16.6.2 '@types/webextension-polyfill': 0.8.0 '@typescript-eslint/eslint-plugin': 4.29.2_eslint@7.32.0+typescript@4.3.5 '@vitejs/plugin-vue': 1.4.0_@vue+compiler-sfc@3.2.4 @@ -52,7 +52,7 @@ devDependencies: typescript: 4.3.5 vite: 2.5.0 vite-plugin-components: 0.13.2_vite@2.5.0 - vite-plugin-icons: 0.6.5_9a8e65338168a50b87afaedf7b0287af + vite-plugin-icons: 0.6.5_1621662ed2beacc40076654ac7d0b36f vite-plugin-windicss: 1.2.7_vite@2.5.0 vue: 3.2.4 vue-demi: 0.11.3_vue@3.2.4 @@ -68,16 +68,16 @@ packages: eslint: '>=7.4.0' dependencies: eslint: 7.32.0 - eslint-config-standard: 16.0.3_3062fa9fac81ca2e86f20e6f3c8ea22d + eslint-config-standard: 16.0.3_6831b5ab259a57852ab508175ef50fb9 eslint-plugin-eslint-comments: 3.2.0_eslint@7.32.0 eslint-plugin-html: 6.1.2 - eslint-plugin-import: 2.23.4_eslint@7.32.0 - eslint-plugin-jsonc: 1.4.0_eslint@7.32.0 + eslint-plugin-import: 2.24.1_eslint@7.32.0 + eslint-plugin-jsonc: 1.5.0_eslint@7.32.0 eslint-plugin-node: 11.1.0_eslint@7.32.0 eslint-plugin-promise: 5.1.0_eslint@7.32.0 eslint-plugin-unicorn: 34.0.1_eslint@7.32.0 eslint-plugin-yml: 0.9.0_eslint@7.32.0 - jsonc-eslint-parser: 1.1.0_eslint@7.32.0 + jsonc-eslint-parser: 1.2.0_eslint@7.32.0 yaml-eslint-parser: 0.3.2 transitivePeerDependencies: - supports-color @@ -103,8 +103,8 @@ packages: typescript: '>=3.9' dependencies: '@antfu/eslint-config-basic': 0.7.0_eslint@7.32.0 - '@typescript-eslint/eslint-plugin': 4.28.4_7541f6bc1d899a7e73db4ebff32a94db - '@typescript-eslint/parser': 4.28.4_eslint@7.32.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.29.2_b01b7137116ac50f0745961d9cf72d34 + '@typescript-eslint/parser': 4.29.2_eslint@7.32.0+typescript@4.3.5 eslint: 7.32.0 typescript: 4.3.5 transitivePeerDependencies: @@ -156,24 +156,24 @@ packages: '@babel/highlight': 7.14.5 dev: true - /@babel/compat-data/7.14.7: - resolution: {integrity: sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==} + /@babel/compat-data/7.15.0: + resolution: {integrity: sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==} engines: {node: '>=6.9.0'} dev: true - /@babel/core/7.14.8: - resolution: {integrity: sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==} + /@babel/core/7.15.0: + resolution: {integrity: sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/generator': 7.14.8 - '@babel/helper-compilation-targets': 7.14.5_@babel+core@7.14.8 - '@babel/helper-module-transforms': 7.14.8 - '@babel/helpers': 7.14.8 - '@babel/parser': 7.14.8 + '@babel/generator': 7.15.0 + '@babel/helper-compilation-targets': 7.15.0_@babel+core@7.15.0 + '@babel/helper-module-transforms': 7.15.0 + '@babel/helpers': 7.15.3 + '@babel/parser': 7.15.3 '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 + '@babel/traverse': 7.15.0 + '@babel/types': 7.15.0 convert-source-map: 1.8.0 debug: 4.3.2 gensync: 1.0.0-beta.2 @@ -184,39 +184,39 @@ packages: - supports-color dev: true - /@babel/eslint-parser/7.14.7_@babel+core@7.14.8+eslint@7.32.0: - resolution: {integrity: sha512-6WPwZqO5priAGIwV6msJcdc9TsEPzYeYdS/Xuoap+/ihkgN6dzHp2bcAAwyWZ5bLzk0vvjDmKvRwkqNaiJ8BiQ==} + /@babel/eslint-parser/7.15.0_@babel+core@7.15.0+eslint@7.32.0: + resolution: {integrity: sha512-+gSPtjSBxOZz4Uh8Ggqu7HbfpB8cT1LwW0DnVVLZEJvzXauiD0Di3zszcBkRmfGGrLdYeHUwcflG7i3tr9kQlw==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: '@babel/core': '>=7.11.0' eslint: '>=7.5.0' dependencies: - '@babel/core': 7.14.8 + '@babel/core': 7.15.0 eslint: 7.32.0 eslint-scope: 5.1.1 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true - /@babel/generator/7.14.8: - resolution: {integrity: sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==} + /@babel/generator/7.15.0: + resolution: {integrity: sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 jsesc: 2.5.2 source-map: 0.5.7 dev: true - /@babel/helper-compilation-targets/7.14.5_@babel+core@7.14.8: - resolution: {integrity: sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==} + /@babel/helper-compilation-targets/7.15.0_@babel+core@7.15.0: + resolution: {integrity: sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 dependencies: - '@babel/compat-data': 7.14.7 - '@babel/core': 7.14.8 + '@babel/compat-data': 7.15.0 + '@babel/core': 7.15.0 '@babel/helper-validator-option': 7.14.5 - browserslist: 4.16.6 + browserslist: 4.16.8 semver: 6.3.0 dev: true @@ -226,49 +226,49 @@ packages: dependencies: '@babel/helper-get-function-arity': 7.14.5 '@babel/template': 7.14.5 - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true /@babel/helper-get-function-arity/7.14.5: resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true /@babel/helper-hoist-variables/7.14.5: resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true - /@babel/helper-member-expression-to-functions/7.14.7: - resolution: {integrity: sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==} + /@babel/helper-member-expression-to-functions/7.15.0: + resolution: {integrity: sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true /@babel/helper-module-imports/7.14.5: resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true - /@babel/helper-module-transforms/7.14.8: - resolution: {integrity: sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==} + /@babel/helper-module-transforms/7.15.0: + resolution: {integrity: sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-module-imports': 7.14.5 - '@babel/helper-replace-supers': 7.14.5 + '@babel/helper-replace-supers': 7.15.0 '@babel/helper-simple-access': 7.14.8 '@babel/helper-split-export-declaration': 7.14.5 - '@babel/helper-validator-identifier': 7.14.8 + '@babel/helper-validator-identifier': 7.14.9 '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 + '@babel/traverse': 7.15.0 + '@babel/types': 7.15.0 transitivePeerDependencies: - supports-color dev: true @@ -277,17 +277,17 @@ packages: resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true - /@babel/helper-replace-supers/7.14.5: - resolution: {integrity: sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==} + /@babel/helper-replace-supers/7.15.0: + resolution: {integrity: sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-member-expression-to-functions': 7.14.7 + '@babel/helper-member-expression-to-functions': 7.15.0 '@babel/helper-optimise-call-expression': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 + '@babel/traverse': 7.15.0 + '@babel/types': 7.15.0 transitivePeerDependencies: - supports-color dev: true @@ -296,18 +296,18 @@ packages: resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true /@babel/helper-split-export-declaration/7.14.5: resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.14.8 + '@babel/types': 7.15.0 dev: true - /@babel/helper-validator-identifier/7.14.8: - resolution: {integrity: sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==} + /@babel/helper-validator-identifier/7.14.9: + resolution: {integrity: sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==} engines: {node: '>=6.9.0'} dev: true @@ -316,13 +316,13 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helpers/7.14.8: - resolution: {integrity: sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw==} + /@babel/helpers/7.15.3: + resolution: {integrity: sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==} engines: {node: '>=6.9.0'} dependencies: '@babel/template': 7.14.5 - '@babel/traverse': 7.14.8 - '@babel/types': 7.14.8 + '@babel/traverse': 7.15.0 + '@babel/types': 7.15.0 transitivePeerDependencies: - supports-color dev: true @@ -331,13 +331,13 @@ packages: resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.14.8 + '@babel/helper-validator-identifier': 7.14.9 chalk: 2.4.2 js-tokens: 4.0.0 dev: true - /@babel/parser/7.14.8: - resolution: {integrity: sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==} + /@babel/parser/7.15.3: + resolution: {integrity: sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==} engines: {node: '>=6.0.0'} hasBin: true dev: true @@ -347,32 +347,32 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 + '@babel/parser': 7.15.3 + '@babel/types': 7.15.0 dev: true - /@babel/traverse/7.14.8: - resolution: {integrity: sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==} + /@babel/traverse/7.15.0: + resolution: {integrity: sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.14.5 - '@babel/generator': 7.14.8 + '@babel/generator': 7.15.0 '@babel/helper-function-name': 7.14.5 '@babel/helper-hoist-variables': 7.14.5 '@babel/helper-split-export-declaration': 7.14.5 - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 + '@babel/parser': 7.15.3 + '@babel/types': 7.15.0 debug: 4.3.2 globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types/7.14.8: - resolution: {integrity: sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==} + /@babel/types/7.15.0: + resolution: {integrity: sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-validator-identifier': 7.14.8 + '@babel/helper-validator-identifier': 7.14.9 to-fast-properties: 2.0.0 dev: true @@ -383,7 +383,7 @@ packages: ajv: 6.12.6 debug: 4.3.2 espree: 7.3.1 - globals: 13.10.0 + globals: 13.11.0 ignore: 4.0.6 import-fresh: 3.3.0 js-yaml: 3.14.1 @@ -412,8 +412,8 @@ packages: resolution: {integrity: sha512-LFelJDOLZ6JHlmlAkgrvmcu4hpNPB91KYcr4f60D/exzU1eNOb4/KCVHIydGHIQFaOacIOD+Xy+B7P1z812cZg==} dev: true - /@iconify/json/1.1.389: - resolution: {integrity: sha512-UJMvHF27yG5BoFaMEUH2hNaBklxSAHDj0QJ8ZkGBkctt2HXcHttdysHxRr8/3pBTbZHeBSy6oWCyzjvbpAaDVw==} + /@iconify/json/1.1.390: + resolution: {integrity: sha512-2iLsQLORrET0xc9ldYEZF32WtxokHstQwWzFxhVJtbYrDydbtdqI2veoj3J+gWOscbGGev7FoQRqZ+VjGEYzCg==} dev: true /@nodelib/fs.scandir/2.1.5: @@ -434,7 +434,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.11.1 + fastq: 1.12.0 dev: true /@types/estree/0.0.48: @@ -444,19 +444,15 @@ packages: /@types/fs-extra/9.0.12: resolution: {integrity: sha512-I+bsBr67CurCGnSenZZ7v94gd3tc3+Aj2taxMT4yu4ABLuOgOjeFxX3dokG24ztSRg5tnT00sL8BszO7gSMoIw==} dependencies: - '@types/node': 16.4.1 + '@types/node': 16.6.2 dev: true - /@types/json-schema/7.0.8: - resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} + /@types/json-schema/7.0.9: + resolution: {integrity: sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==} dev: true - /@types/node/16.4.1: - resolution: {integrity: sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==} - dev: true - - /@types/node/16.6.1: - resolution: {integrity: sha512-Sr7BhXEAer9xyGuCN3Ek9eg9xPviCF2gfu9kTfuU2HkTVAMYSDeX40fvpmo72n5nansg3nsBjuQBrsS28r+NUw==} + /@types/node/16.6.2: + resolution: {integrity: sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA==} dev: true /@types/normalize-package-data/2.4.1: @@ -471,8 +467,8 @@ packages: resolution: {integrity: sha512-usmQx2snpNkVl2VoOGZCdrPnfHL+CjuSFy84ZdTwQ2b2cvyygF/zGW5YI6Zywk+bfq9zmYpORO9lmdN7DknpRw==} dev: true - /@typescript-eslint/eslint-plugin/4.28.4_7541f6bc1d899a7e73db4ebff32a94db: - resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} + /@typescript-eslint/eslint-plugin/4.29.2_b01b7137116ac50f0745961d9cf72d34: + resolution: {integrity: sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -482,9 +478,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.32.0+typescript@4.3.5 - '@typescript-eslint/parser': 4.28.4_eslint@7.32.0+typescript@4.3.5 - '@typescript-eslint/scope-manager': 4.28.4 + '@typescript-eslint/experimental-utils': 4.29.2_eslint@7.32.0+typescript@4.3.5 + '@typescript-eslint/parser': 4.29.2_eslint@7.32.0+typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.29.2 debug: 4.3.2 eslint: 7.32.0 functional-red-black-tree: 1.0.1 @@ -520,31 +516,13 @@ packages: - supports-color dev: true - /@typescript-eslint/experimental-utils/4.28.4_eslint@7.32.0+typescript@4.3.5: - resolution: {integrity: sha512-OglKWOQRWTCoqMSy6pm/kpinEIgdcXYceIcH3EKWUl4S8xhFtN34GQRaAvTIZB9DD94rW7d/U7tUg3SYeDFNHA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - dependencies: - '@types/json-schema': 7.0.8 - '@typescript-eslint/scope-manager': 4.28.4 - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 - eslint: 7.32.0 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@7.32.0 - transitivePeerDependencies: - - supports-color - - typescript - dev: true - /@typescript-eslint/experimental-utils/4.29.2_eslint@7.32.0+typescript@4.3.5: resolution: {integrity: sha512-P6mn4pqObhftBBPAv4GQtEK7Yos1fz/MlpT7+YjH9fTxZcALbiiPKuSIfYP/j13CeOjfq8/fr9Thr2glM9ub7A==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: '*' dependencies: - '@types/json-schema': 7.0.8 + '@types/json-schema': 7.0.9 '@typescript-eslint/scope-manager': 4.29.2 '@typescript-eslint/types': 4.29.2 '@typescript-eslint/typescript-estree': 4.29.2_typescript@4.3.5 @@ -556,8 +534,8 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.28.4_eslint@7.32.0+typescript@4.3.5: - resolution: {integrity: sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==} + /@typescript-eslint/parser/4.29.2_eslint@7.32.0+typescript@4.3.5: + resolution: {integrity: sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -566,9 +544,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.28.4 - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.29.2 + '@typescript-eslint/types': 4.29.2 + '@typescript-eslint/typescript-estree': 4.29.2_typescript@4.3.5 debug: 4.3.2 eslint: 7.32.0 typescript: 4.3.5 @@ -576,14 +554,6 @@ packages: - supports-color dev: true - /@typescript-eslint/scope-manager/4.28.4: - resolution: {integrity: sha512-ZJBNs4usViOmlyFMt9X9l+X0WAFcDH7EdSArGqpldXu7aeZxDAuAzHiMAeI+JpSefY2INHrXeqnha39FVqXb8w==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/visitor-keys': 4.28.4 - dev: true - /@typescript-eslint/scope-manager/4.29.2: resolution: {integrity: sha512-mfHmvlQxmfkU8D55CkZO2sQOueTxLqGvzV+mG6S/6fIunDiD2ouwsAoiYCZYDDK73QCibYjIZmGhpvKwAB5BOA==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -592,37 +562,11 @@ packages: '@typescript-eslint/visitor-keys': 4.29.2 dev: true - /@typescript-eslint/types/4.28.4: - resolution: {integrity: sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dev: true - /@typescript-eslint/types/4.29.2: resolution: {integrity: sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true - /@typescript-eslint/typescript-estree/4.28.4_typescript@4.3.5: - resolution: {integrity: sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/visitor-keys': 4.28.4 - debug: 4.3.2 - globby: 11.0.4 - is-glob: 4.0.1 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.3.5 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/typescript-estree/4.29.2_typescript@4.3.5: resolution: {integrity: sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -644,14 +588,6 @@ packages: - supports-color dev: true - /@typescript-eslint/visitor-keys/4.28.4: - resolution: {integrity: sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - dependencies: - '@typescript-eslint/types': 4.28.4 - eslint-visitor-keys: 2.1.0 - dev: true - /@typescript-eslint/visitor-keys/4.29.2: resolution: {integrity: sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -672,8 +608,8 @@ packages: /@vue/compiler-core/3.2.4: resolution: {integrity: sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw==} dependencies: - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 + '@babel/parser': 7.15.3 + '@babel/types': 7.15.0 '@vue/shared': 3.2.4 estree-walker: 2.0.2 source-map: 0.6.1 @@ -689,8 +625,8 @@ packages: /@vue/compiler-sfc/3.2.4: resolution: {integrity: sha512-GM+ouDdDzhqgkLmBH4bgq4kiZxJQArSppJiZHWHIx9XRaefHLmc1LBNPmN8ivm4SVfi2i7M2t9k8ZnjsScgzPQ==} dependencies: - '@babel/parser': 7.14.8 - '@babel/types': 7.14.8 + '@babel/parser': 7.15.3 + '@babel/types': 7.15.0 '@types/estree': 0.0.48 '@vue/compiler-core': 3.2.4 '@vue/compiler-dom': 3.2.4 @@ -703,7 +639,7 @@ packages: magic-string: 0.25.7 merge-source-map: 1.1.0 postcss: 8.3.6 - postcss-modules: 4.2.0_postcss@8.3.6 + postcss-modules: 4.2.2_postcss@8.3.6 postcss-selector-parser: 6.0.6 source-map: 0.6.1 dev: true @@ -875,9 +811,9 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 get-intrinsic: 1.1.1 - is-string: 1.0.6 + is-string: 1.0.7 dev: true /array-union/2.1.0: @@ -891,7 +827,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 dev: true /array.prototype.flatmap/1.2.4: @@ -900,7 +836,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 function-bind: 1.1.1 dev: true @@ -940,16 +876,16 @@ packages: fill-range: 7.0.1 dev: true - /browserslist/4.16.6: - resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==} + /browserslist/4.16.8: + resolution: {integrity: sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true dependencies: - caniuse-lite: 1.0.30001246 - colorette: 1.2.2 - electron-to-chromium: 1.3.785 + caniuse-lite: 1.0.30001251 + colorette: 1.3.0 + electron-to-chromium: 1.3.813 escalade: 3.1.1 - node-releases: 1.1.73 + node-releases: 1.1.75 dev: true /builtin-modules/3.2.0: @@ -974,8 +910,8 @@ packages: engines: {node: '>=6'} dev: true - /caniuse-lite/1.0.30001246: - resolution: {integrity: sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==} + /caniuse-lite/1.0.30001251: + resolution: {integrity: sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A==} dev: true /chalk/2.4.2: @@ -987,8 +923,8 @@ packages: supports-color: 5.5.0 dev: true - /chalk/4.1.1: - resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==} + /chalk/4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: ansi-styles: 4.3.0 @@ -1042,8 +978,8 @@ packages: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colorette/1.2.2: - resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==} + /colorette/1.3.0: + resolution: {integrity: sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==} dev: true /commander/4.1.1: @@ -1189,8 +1125,8 @@ packages: domhandler: 4.2.0 dev: true - /electron-to-chromium/1.3.785: - resolution: {integrity: sha512-WmCgAeURsMFiyoJ646eUaJQ7GNfvMRLXo+GamUyKVNEM4MqTAsXyC0f38JEB4N3BtbD0tlAKozGP5E2T9K3YGg==} + /electron-to-chromium/1.3.813: + resolution: {integrity: sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw==} dev: true /emoji-regex/8.0.0: @@ -1219,8 +1155,8 @@ packages: is-arrayish: 0.2.1 dev: true - /es-abstract/1.18.3: - resolution: {integrity: sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==} + /es-abstract/1.18.5: + resolution: {integrity: sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 @@ -1229,10 +1165,11 @@ packages: get-intrinsic: 1.1.1 has: 1.0.3 has-symbols: 1.0.2 - is-callable: 1.2.3 + internal-slot: 1.0.3 + is-callable: 1.2.4 is-negative-zero: 2.0.1 - is-regex: 1.1.3 - is-string: 1.0.6 + is-regex: 1.1.4 + is-string: 1.0.7 object-inspect: 1.11.0 object-keys: 1.1.1 object.assign: 4.1.2 @@ -1245,34 +1182,28 @@ packages: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - is-callable: 1.2.3 - is-date-object: 1.0.4 + is-callable: 1.2.4 + is-date-object: 1.0.5 is-symbol: 1.0.4 dev: true /esbuild-node-loader/0.3.1: resolution: {integrity: sha512-75xPOySulti9R5LwYOMmKiwHyXGr/f89I7UkHolLxRqeBiUNqcyCmNTjv+fO2WV9G3f7LDKVZJlbWoYh5LBpfQ==} dependencies: - esbuild: 0.12.20 + esbuild: 0.12.21 dev: true - /esbuild-register/3.0.0_esbuild@0.12.20: + /esbuild-register/3.0.0_esbuild@0.12.21: resolution: {integrity: sha512-No7U3ZUd6gPrrC6gqdb3XFcf2lNqzn8nvQXcgcyOl8szMVuN6YUvOplnmakxWyogI9d8SiJMl0uzBzJck+Aoxw==} peerDependencies: esbuild: '>=0.12 <1' dependencies: - esbuild: 0.12.20 + esbuild: 0.12.21 jsonc-parser: 3.0.0 dev: true - /esbuild/0.12.15: - resolution: {integrity: sha512-72V4JNd2+48eOVCXx49xoSWHgC3/cCy96e7mbXKY+WOWghN00cCmlGnwVLRhRHorvv0dgCyuMYBZlM2xDM5OQw==} - hasBin: true - requiresBuild: true - dev: true - - /esbuild/0.12.20: - resolution: {integrity: sha512-u7+0qTo9Z64MD9PhooEngCmzyEYJ6ovFhPp8PLNh3UasR5Ihjv6HWVXqm8uHmasdQlpsAf0IsY4U0YVUfCpt4Q==} + /esbuild/0.12.21: + resolution: {integrity: sha512-7hyXbU3g94aREufI/5nls7Xcc+RGQeZWZApm6hoBaFvt2BPtpT4TjFMQ9Tb1jU8XyBGz00ShmiyflCogphMHFQ==} hasBin: true requiresBuild: true dev: true @@ -1292,7 +1223,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-standard/16.0.3_3062fa9fac81ca2e86f20e6f3c8ea22d: + /eslint-config-standard/16.0.3_6831b5ab259a57852ab508175ef50fb9: resolution: {integrity: sha512-x4fmJL5hGqNJKGHSjnLdgA6U6h1YW/G2dW9fA+cyVur4SK6lyue8+UgNKWlZtUDTXvgKDD/Oa3GQjmB5kjtVvg==} peerDependencies: eslint: ^7.12.1 @@ -1301,7 +1232,7 @@ packages: eslint-plugin-promise: ^4.2.1 || ^5.0.0 dependencies: eslint: 7.32.0 - eslint-plugin-import: 2.23.4_eslint@7.32.0 + eslint-plugin-import: 2.24.1_eslint@7.32.0 eslint-plugin-node: 11.1.0_eslint@7.32.0 eslint-plugin-promise: 5.1.0_eslint@7.32.0 dev: true @@ -1310,15 +1241,15 @@ packages: resolution: {integrity: sha512-mJTiKBGLe1FXmEifYzCQzUTBpFv8OtfYzP6PAOuVRf+3hkGLMeiDh4bVzZEaJfdExtc8mPw9vp35YSLhwTselQ==} dev: true - /eslint-import-resolver-node/0.3.4: - resolution: {integrity: sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==} + /eslint-import-resolver-node/0.3.6: + resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: - debug: 2.6.9 + debug: 3.2.7 resolve: 1.20.0 dev: true - /eslint-module-utils/2.6.1: - resolution: {integrity: sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A==} + /eslint-module-utils/2.6.2: + resolution: {integrity: sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==} engines: {node: '>=4'} dependencies: debug: 3.2.7 @@ -1353,8 +1284,8 @@ packages: htmlparser2: 6.1.0 dev: true - /eslint-plugin-import/2.23.4_eslint@7.32.0: - resolution: {integrity: sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ==} + /eslint-plugin-import/2.24.1_eslint@7.32.0: + resolution: {integrity: sha512-KSFWhNxPH8OGJwpRJJs+Z7I0a13E2iFQZJIvSnCu6KUs4qmgAm3xN9GYBCSoiGWmwA7gERZPXqYQjcoCROnYhQ==} engines: {node: '>=4'} peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 @@ -1364,11 +1295,11 @@ packages: debug: 2.6.9 doctrine: 2.1.0 eslint: 7.32.0 - eslint-import-resolver-node: 0.3.4 - eslint-module-utils: 2.6.1 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.6.2 find-up: 2.1.0 has: 1.0.3 - is-core-module: 2.5.0 + is-core-module: 2.6.0 minimatch: 3.0.4 object.values: 1.1.4 pkg-up: 2.0.0 @@ -1377,14 +1308,15 @@ packages: tsconfig-paths: 3.10.1 dev: true - /eslint-plugin-jsonc/1.4.0_eslint@7.32.0: - resolution: {integrity: sha512-SmajEsMUFIIZEnUdng5b2U1MkxB9pOb7IiiGKOsh+W6cFbPljFIH8ET+6vy1eLI0u2YQEzjGZ7xGiWs8ynk4Xw==} + /eslint-plugin-jsonc/1.5.0_eslint@7.32.0: + resolution: {integrity: sha512-VQoAuoi5QXG0HqNnvy4L2+M0mGrBOcEAL/MJcem8cS43J18l5P5CXkEjq5rYY4HPeqP+ccboc3UrzGu98ifsiQ==} + engines: {node: '>=8.10.0'} peerDependencies: eslint: ^5.0.0 || >=6.0.0 dependencies: eslint: 7.32.0 eslint-utils: 3.0.0_eslint@7.32.0 - jsonc-eslint-parser: 1.1.0_eslint@7.32.0 + jsonc-eslint-parser: 1.2.0_eslint@7.32.0 natural-compare: 1.4.0 dev: true @@ -1466,7 +1398,7 @@ packages: eslint-utils: 2.1.0 natural-compare: 1.4.0 semver: 7.3.5 - vue-eslint-parser: 7.9.0_eslint@7.32.0 + vue-eslint-parser: 7.10.0_eslint@7.32.0 transitivePeerDependencies: - supports-color dev: true @@ -1498,8 +1430,8 @@ packages: peerDependencies: eslint: '>=7.0.0' dependencies: - '@babel/core': 7.14.8 - '@babel/eslint-parser': 7.14.7_@babel+core@7.14.8+eslint@7.32.0 + '@babel/core': 7.15.0 + '@babel/eslint-parser': 7.15.0_@babel+core@7.15.0+eslint@7.32.0 eslint: 7.32.0 eslint-visitor-keys: 2.1.0 esquery: 1.4.0 @@ -1549,7 +1481,7 @@ packages: '@eslint/eslintrc': 0.4.3 '@humanwhocodes/config-array': 0.5.0 ajv: 6.12.6 - chalk: 4.1.1 + chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.2 doctrine: 3.0.0 @@ -1565,7 +1497,7 @@ packages: file-entry-cache: 6.0.1 functional-red-black-tree: 1.0.1 glob-parent: 5.1.2 - globals: 13.10.0 + globals: 13.11.0 ignore: 4.0.6 import-fresh: 3.3.0 imurmurhash: 0.1.4 @@ -1594,9 +1526,9 @@ packages: hasBin: true dependencies: cross-spawn: 7.0.3 - esbuild: 0.12.20 + esbuild: 0.12.21 esbuild-node-loader: 0.3.1 - esbuild-register: 3.0.0_esbuild@0.12.20 + esbuild-register: 3.0.0_esbuild@0.12.21 dev: true /espree/6.2.1: @@ -1663,7 +1595,7 @@ packages: cross-spawn: 7.0.3 get-stream: 6.0.1 human-signals: 2.1.0 - is-stream: 2.0.0 + is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -1694,8 +1626,8 @@ packages: resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} dev: true - /fastq/1.11.1: - resolution: {integrity: sha512-HOnr8Mc60eNYl1gzwp6r5RoUyAn5/glBolUzP/Ez6IFVPMPirxn/9phgL6zhOtaTy7ISwPvQ+wT+hfcRZh/bzw==} + /fastq/1.12.0: + resolution: {integrity: sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==} dependencies: reusify: 1.0.4 dev: true @@ -1733,19 +1665,19 @@ packages: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.1 + flatted: 3.2.2 rimraf: 3.0.2 dev: true - /flatted/3.2.1: - resolution: {integrity: sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg==} + /flatted/3.2.2: + resolution: {integrity: sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==} dev: true /fs-extra/10.0.0: resolution: {integrity: sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==} engines: {node: '>=12'} dependencies: - graceful-fs: 4.2.6 + graceful-fs: 4.2.8 jsonfile: 6.1.0 universalify: 2.0.0 dev: true @@ -1827,8 +1759,8 @@ packages: engines: {node: '>=4'} dev: true - /globals/13.10.0: - resolution: {integrity: sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==} + /globals/13.11.0: + resolution: {integrity: sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1846,8 +1778,8 @@ packages: slash: 3.0.0 dev: true - /graceful-fs/4.2.6: - resolution: {integrity: sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==} + /graceful-fs/4.2.8: + resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} dev: true /has-bigints/1.0.1: @@ -1869,6 +1801,13 @@ packages: engines: {node: '>= 0.4'} dev: true + /has-tostringtag/1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.2 + dev: true + /has/1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} @@ -1972,8 +1911,10 @@ packages: resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} dev: true - /is-bigint/1.0.2: - resolution: {integrity: sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==} + /is-bigint/1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.1 dev: true /is-binary-path/2.1.0: @@ -1983,11 +1924,12 @@ packages: binary-extensions: 2.2.0 dev: true - /is-boolean-object/1.1.1: - resolution: {integrity: sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==} + /is-boolean-object/1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 + has-tostringtag: 1.0.0 dev: true /is-builtin-module/3.1.0: @@ -1997,20 +1939,22 @@ packages: builtin-modules: 3.2.0 dev: true - /is-callable/1.2.3: - resolution: {integrity: sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==} + /is-callable/1.2.4: + resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} engines: {node: '>= 0.4'} dev: true - /is-core-module/2.5.0: - resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==} + /is-core-module/2.6.0: + resolution: {integrity: sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==} dependencies: has: 1.0.3 dev: true - /is-date-object/1.0.4: - resolution: {integrity: sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==} + /is-date-object/1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: true /is-extglob/2.1.1: @@ -2035,9 +1979,11 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-number-object/1.0.5: - resolution: {integrity: sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==} + /is-number-object/1.0.6: + resolution: {integrity: sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==} engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: true /is-number/7.0.0: @@ -2045,22 +1991,24 @@ packages: engines: {node: '>=0.12.0'} dev: true - /is-regex/1.1.3: - resolution: {integrity: sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==} + /is-regex/1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - has-symbols: 1.0.2 + has-tostringtag: 1.0.0 dev: true - /is-stream/2.0.0: - resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} dev: true - /is-string/1.0.6: - resolution: {integrity: sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==} + /is-string/1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 dev: true /is-symbol/1.0.4: @@ -2137,8 +2085,9 @@ packages: minimist: 1.2.5 dev: true - /jsonc-eslint-parser/1.1.0_eslint@7.32.0: - resolution: {integrity: sha512-FA3oS+8V0Mz4vv19YpY4TuZZi2ecR0RHTua9SjbCYb4+e35MWKIi7jn17zdGi6jxE7Cv7Vk61ml376MmMENieA==} + /jsonc-eslint-parser/1.2.0_eslint@7.32.0: + resolution: {integrity: sha512-+vnjPNITAoDX2G9/IWV5vo234gQM3Gz40VuLIr74mc86f8UIKJ9blre+HnX2pHXejxolevV2a+BpaC0nhTq8yA==} + engines: {node: '>=8.10.0'} dependencies: eslint-utils: 3.0.0_eslint@7.32.0 eslint-visitor-keys: 3.0.0 @@ -2157,7 +2106,7 @@ packages: dependencies: universalify: 2.0.0 optionalDependencies: - graceful-fs: 4.2.6 + graceful-fs: 4.2.8 dev: true /jsx-ast-utils/3.2.0: @@ -2193,7 +2142,7 @@ packages: resolution: {integrity: sha1-L19Fq5HjMhYjT9U62rZo607AmTs=} engines: {node: '>=4'} dependencies: - graceful-fs: 4.2.6 + graceful-fs: 4.2.8 parse-json: 4.0.0 pify: 3.0.0 strip-bom: 3.0.0 @@ -2341,8 +2290,8 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /nanoid/3.1.23: - resolution: {integrity: sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==} + /nanoid/3.1.25: + resolution: {integrity: sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true @@ -2360,8 +2309,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /node-releases/1.1.73: - resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==} + /node-releases/1.1.75: + resolution: {integrity: sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==} dev: true /normalize-package-data/2.5.0: @@ -2431,7 +2380,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 dev: true /object.fromentries/2.0.4: @@ -2440,7 +2389,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 has: 1.0.3 dev: true @@ -2450,7 +2399,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 dev: true /once/1.4.0: @@ -2679,8 +2628,8 @@ packages: postcss: 8.3.6 dev: true - /postcss-modules/4.2.0_postcss@8.3.6: - resolution: {integrity: sha512-zyqjOVr7hqIXgi4ADbSd2Tjaq90mDj+H6EWySE1KQFlRwBGKcvCJnD5Yf7Y4XU6HzN9SyXb+TxVGQbLdRwE78w==} + /postcss-modules/4.2.2_postcss@8.3.6: + resolution: {integrity: sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg==} peerDependencies: postcss: ^8.0.0 dependencies: @@ -2711,8 +2660,8 @@ packages: resolution: {integrity: sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==} engines: {node: ^10 || ^12 || >=14} dependencies: - colorette: 1.2.2 - nanoid: 3.1.23 + colorette: 1.3.0 + nanoid: 3.1.25 source-map-js: 0.6.2 dev: true @@ -2830,14 +2779,14 @@ packages: /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: - is-core-module: 2.5.0 + is-core-module: 2.6.0 path-parse: 1.0.7 dev: true /resolve/2.0.0-next.3: resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} dependencies: - is-core-module: 2.5.0 + is-core-module: 2.6.0 path-parse: 1.0.7 dev: true @@ -2979,7 +2928,7 @@ packages: resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} dependencies: spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.9 + spdx-license-ids: 3.0.10 dev: true /spdx-exceptions/2.3.0: @@ -2990,11 +2939,11 @@ packages: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} dependencies: spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.9 + spdx-license-ids: 3.0.10 dev: true - /spdx-license-ids/3.0.9: - resolution: {integrity: sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==} + /spdx-license-ids/3.0.10: + resolution: {integrity: sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA==} dev: true /sprintf-js/1.0.3: @@ -3019,7 +2968,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 get-intrinsic: 1.1.1 has-symbols: 1.0.2 internal-slot: 1.0.3 @@ -3033,7 +2982,7 @@ packages: dependencies: call-bind: 1.0.2 define-properties: 1.1.3 - es-abstract: 1.18.3 + es-abstract: 1.18.5 dev: true /string.prototype.trimend/1.0.4: @@ -3072,8 +3021,8 @@ packages: engines: {node: '>=8'} dev: true - /sucrase/3.20.0: - resolution: {integrity: sha512-Rsp+BX7DRuCleJvBAHN7gQ3ddk7U0rJev19XlIBF6dAq9vX4Tr5mHk4E7+ig/I7BM3DLYotCmm20lfBElT2XtQ==} + /sucrase/3.20.1: + resolution: {integrity: sha512-BIG59HaJOxNct9Va6KvT5yzBA/rcMGetzvZyTx0ZdCcspIbpJTPS64zuAfYlJuOj+3WaI5JOdA+F0bJQQi8ZiQ==} engines: {node: '>=8'} hasBin: true dependencies: @@ -3175,17 +3124,17 @@ packages: optional: true dependencies: cac: 6.7.3 - chalk: 4.1.1 + chalk: 4.1.2 chokidar: 3.5.2 debug: 4.3.2 - esbuild: 0.12.15 + esbuild: 0.12.21 execa: 5.1.1 globby: 11.0.4 joycon: 3.0.1 postcss-load-config: 3.1.0 resolve-from: 5.0.0 rollup: 2.56.2 - sucrase: 3.20.0 + sucrase: 3.20.1 tree-kill: 1.2.2 typescript: 4.3.5 transitivePeerDependencies: @@ -3280,7 +3229,7 @@ packages: - supports-color dev: true - /vite-plugin-icons/0.6.5_9a8e65338168a50b87afaedf7b0287af: + /vite-plugin-icons/0.6.5_1621662ed2beacc40076654ac7d0b36f: resolution: {integrity: sha512-lfePr8juO2ajp0571iLL+9zIoyBD9nSSSHlC4JYXbAeMOJB6WTP+Vdc2gze8yI8JRO+Z0TXCCvvL9bPgvkI4Cg==} peerDependencies: '@iconify/json': '*' @@ -3292,7 +3241,7 @@ packages: vue-template-compiler: optional: true dependencies: - '@iconify/json': 1.1.389 + '@iconify/json': 1.1.390 '@iconify/json-tools': 1.0.10 '@vue/compiler-sfc': 3.2.4 vue-template-es2015-compiler: 1.9.1 @@ -3304,7 +3253,7 @@ packages: vite: ^2.0.1 dependencies: '@windicss/plugin-utils': 1.2.7 - chalk: 4.1.1 + chalk: 4.1.2 debug: 4.3.2 vite: 2.5.0 windicss: 3.1.7 @@ -3317,7 +3266,7 @@ packages: engines: {node: '>=12.2.0'} hasBin: true dependencies: - esbuild: 0.12.20 + esbuild: 0.12.21 postcss: 8.3.6 resolve: 1.20.0 rollup: 2.56.2 @@ -3340,8 +3289,8 @@ packages: vue: 3.2.4 dev: true - /vue-eslint-parser/7.9.0_eslint@7.32.0: - resolution: {integrity: sha512-QBlhZ5LteDRVy2dISfQhNEmmcqph+GTaD4SH41bYzXcVHFPJ9p34zCG6QAqOZVa8PKaVgbomFnoZpGJRZi14vg==} + /vue-eslint-parser/7.10.0_eslint@7.32.0: + resolution: {integrity: sha512-7tc/ewS9Vq9Bn741pvpg8op2fWJPH3k32aL+jcIcWGCTzh/zXSdh7pZ5FV3W2aJancP9+ftPAv292zY5T5IPCg==} engines: {node: '>=8.10'} peerDependencies: eslint: '>=5.0.0' @@ -3403,10 +3352,10 @@ packages: /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: - is-bigint: 1.0.2 - is-boolean-object: 1.1.1 - is-number-object: 1.0.5 - is-string: 1.0.6 + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.6 + is-string: 1.0.7 is-symbol: 1.0.4 dev: true diff --git a/scripts/prepare.ts b/scripts/prepare.ts index 8a0691b..bd73883 100644 --- a/scripts/prepare.ts +++ b/scripts/prepare.ts @@ -16,7 +16,7 @@ async function stubIndexHtml() { for (const view of views) { await fs.ensureDir(r(`extension/dist/${view}`)) - let data = await fs.readFile(r(`views/${view}/index.html`), 'utf-8') + let data = await fs.readFile(r(`src/${view}/index.html`), 'utf-8') data = data .replace('"./main.ts"', `"http://localhost:${port}/${view}/main.ts"`) .replace('
', '
Vite server did not start
') @@ -34,7 +34,7 @@ writeManifest() if (isDev) { stubIndexHtml() - chokidar.watch(r('views/**/*.html')) + chokidar.watch(r('src/**/*.html')) .on('change', () => { stubIndexHtml() }) diff --git a/views/background/index.html b/src/background/index.html similarity index 100% rename from views/background/index.html rename to src/background/index.html diff --git a/views/background/main.ts b/src/background/main.ts similarity index 100% rename from views/background/main.ts rename to src/background/main.ts diff --git a/views/components/Logo.vue b/src/components/Logo.vue similarity index 100% rename from views/components/Logo.vue rename to src/components/Logo.vue diff --git a/views/components/README.md b/src/components/README.md similarity index 100% rename from views/components/README.md rename to src/components/README.md diff --git a/src/content/index.ts b/src/contentScripts/index.ts similarity index 100% rename from src/content/index.ts rename to src/contentScripts/index.ts diff --git a/views/logic/index.ts b/src/logic/index.ts similarity index 100% rename from views/logic/index.ts rename to src/logic/index.ts diff --git a/views/logic/storage.ts b/src/logic/storage.ts similarity index 100% rename from views/logic/storage.ts rename to src/logic/storage.ts diff --git a/src/manifest.ts b/src/manifest.ts index 136fecf..6c28ac2 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -28,7 +28,7 @@ export async function getManifest(): Promise { content_scripts: [ { matches: ['http://*/*', 'https://*/*'], - js: ['./dist/content/index.global.js'], + js: ['./dist/contentScripts/index.global.js'], }, ], icons: { diff --git a/views/options/Options.vue b/src/options/Options.vue similarity index 100% rename from views/options/Options.vue rename to src/options/Options.vue diff --git a/views/options/index.html b/src/options/index.html similarity index 100% rename from views/options/index.html rename to src/options/index.html diff --git a/views/options/main.ts b/src/options/main.ts similarity index 100% rename from views/options/main.ts rename to src/options/main.ts diff --git a/views/popup/Popup.vue b/src/popup/Popup.vue similarity index 100% rename from views/popup/Popup.vue rename to src/popup/Popup.vue diff --git a/views/popup/index.html b/src/popup/index.html similarity index 100% rename from views/popup/index.html rename to src/popup/index.html diff --git a/views/popup/main.ts b/src/popup/main.ts similarity index 100% rename from views/popup/main.ts rename to src/popup/main.ts diff --git a/views/styles/index.ts b/src/styles/index.ts similarity index 100% rename from views/styles/index.ts rename to src/styles/index.ts diff --git a/views/styles/main.css b/src/styles/main.css similarity index 100% rename from views/styles/main.css rename to src/styles/main.css diff --git a/tsconfig.json b/tsconfig.json index 2ca35b7..f2c9539 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,7 +17,7 @@ "vite/client" ], "paths": { - "~/*": ["views/*"] + "~/*": ["src/*"] } }, "exclude": ["dist", "node_modules"] diff --git a/tsup.config.ts b/tsup.config.ts index 082e59b..f812697 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -3,8 +3,8 @@ import type { Options } from 'tsup' const isDev = process.env.NODE_ENV !== 'production' export const tsup: Options = { - entryPoints: ['src/content'], - outDir: 'extension/dist/content', + entryPoints: ['src/contentScripts'], + outDir: 'extension/dist/contentScripts', format: ['iife'], splitting: false, sourcemap: isDev ? 'inline' : false, diff --git a/vite.config.ts b/vite.config.ts index 478b8c5..5f0ad0a 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -12,11 +12,11 @@ const r = (...args: string[]) => resolve(__dirname, ...args) export default defineConfig(({ command }) => { return { - root: r('views'), + root: r('src'), base: command === 'serve' ? `http://localhost:${port}/` : undefined, resolve: { alias: { - '~/': `${r('views')}/`, + '~/': `${r('src')}/`, }, }, server: { @@ -35,16 +35,16 @@ export default defineConfig(({ command }) => { }, rollupOptions: { input: { - background: r('views/background/index.html'), - options: r('views/options/index.html'), - popup: r('views/popup/index.html'), + background: r('src/background/index.html'), + options: r('src/options/index.html'), + popup: r('src/popup/index.html'), }, }, }, plugins: [ Vue(), ViteComponents({ - dirs: [r('views/components')], + dirs: [r('src/components')], // generate `components.d.ts` for ts support with Volar globalComponentsDeclaration: true, // auto import icons From a7cc5c528c3a335cfc3199a8b86f5806f3ee601f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?= Date: Tue, 24 Aug 2021 15:58:14 +0200 Subject: [PATCH 036/105] fix: reload manifest.ts module on watch (#21) --- scripts/prepare.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/prepare.ts b/scripts/prepare.ts index bd73883..2b785a8 100644 --- a/scripts/prepare.ts +++ b/scripts/prepare.ts @@ -1,7 +1,6 @@ // generate stub index.html files for dev entry import fs from 'fs-extra' import chokidar from 'chokidar' -import { getManifest } from '../src/manifest' import { r, port, isDev, log } from './utils' /** @@ -26,6 +25,7 @@ async function stubIndexHtml() { } export async function writeManifest() { + const { getManifest } = await import(r('src/manifest.ts')) await fs.writeJSON(r('extension/manifest.json'), await getManifest(), { spaces: 2 }) log('PRE', 'write manifest.json') } @@ -40,6 +40,7 @@ if (isDev) { }) chokidar.watch([r('src/manifest.ts'), r('package.json')]) .on('change', () => { + delete require.cache[r('src/manifest.ts')] writeManifest() }) } From ba093a4868866231fd365ad4bd37523a0461652d Mon Sep 17 00:00:00 2001 From: Wenson Smith Date: Tue, 24 Aug 2021 22:46:29 +0800 Subject: [PATCH 037/105] feat: content scripts vue support (#20) Co-authored-by: Anthony Fu Co-authored-by: Mengzhao --- README.md | 2 +- package.json | 5 +- pnpm-lock.yaml | 215 --------------------------------- src/contentScripts/Content.vue | 10 ++ src/contentScripts/index.ts | 7 ++ src/manifest.ts | 1 + tsup.config.ts | 12 -- vite.config.content.ts | 26 ++++ vite.config.ts | 143 +++++++++++----------- 9 files changed, 117 insertions(+), 304 deletions(-) create mode 100644 src/contentScripts/Content.vue delete mode 100644 tsup.config.ts create mode 100644 vite.config.content.ts diff --git a/README.md b/README.md index 57e2242..1079b83 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.c - 🦾 [TypeScript](https://www.typescriptlang.org/) - type safe - 📦 [Components auto importing](./src/components) - 🌟 [Icons](./src/components) - Access to icons from any iconset directly +- 🖥 Content Script - Use Vue even in content script - 🌍 WebExtension - isomorphic extension for Chrome, Firefox, and others - 📃 Dynamic `manifest.json` with full type support @@ -54,7 +55,6 @@ A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.c - [TypeScript](https://www.typescriptlang.org/) - [pnpm](https://pnpm.js.org/) - fast, disk space efficient package manager -- [tsup](https://github.com/egoist/tsup) - Zero config TypeScript bundler powered by esbuild - [esno](https://github.com/antfu/esno) - TypeScript / ESNext node runtime powered by esbuild - [npm-run-all](https://github.com/mysticatea/npm-run-all) - Run multiple npm-scripts in parallel or sequential diff --git a/package.json b/package.json index e446714..a634d74 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ "dev": "npm run clear && cross-env NODE_ENV=development run-p dev:*", "dev:prepare": "esno scripts/prepare.ts", "dev:web": "vite", - "dev:js": "npm run build:js --watch src/contentScripts", + "dev:js": "npm run build:js", "build": "cross-env NODE_ENV=production run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts", "build:web": "vite build", - "build:js": "tsup", + "build:js": "vite build --config vite.config.content.ts", "clear": "rimraf extension/dist extension/manifest.json", "lint": "eslint '**/*.{json,ts,js,vue}'" }, @@ -34,7 +34,6 @@ "kolorist": "^1.5.0", "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", - "tsup": "^4.14.0", "typescript": "^4.3.5", "vite": "^2.5.0", "vite-plugin-components": "^0.13.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ec027d4..b486be6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,7 +18,6 @@ specifiers: kolorist: ^1.5.0 npm-run-all: ^4.1.5 rimraf: ^3.0.2 - tsup: ^4.14.0 typescript: ^4.3.5 vite: ^2.5.0 vite-plugin-components: ^0.13.2 @@ -48,7 +47,6 @@ devDependencies: kolorist: 1.5.0 npm-run-all: 4.1.5 rimraf: 3.0.2 - tsup: 4.14.0_typescript@4.3.5 typescript: 4.3.5 vite: 2.5.0 vite-plugin-components: 0.13.2_vite@2.5.0 @@ -787,10 +785,6 @@ packages: color-convert: 2.0.1 dev: true - /any-promise/1.3.0: - resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} - dev: true - /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -893,11 +887,6 @@ packages: engines: {node: '>=6'} dev: true - /cac/6.7.3: - resolution: {integrity: sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==} - engines: {node: '>=8'} - dev: true - /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -982,11 +971,6 @@ packages: resolution: {integrity: sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==} dev: true - /commander/4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true @@ -1588,21 +1572,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /execa/5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.3 - strip-final-newline: 2.0.0 - dev: true - /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1720,11 +1689,6 @@ packages: has-symbols: 1.0.2 dev: true - /get-stream/6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1732,17 +1696,6 @@ packages: is-glob: 4.0.1 dev: true - /glob/7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.0.4 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -1832,11 +1785,6 @@ packages: entities: 2.2.0 dev: true - /human-signals/2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} - dev: true - /icss-replace-symbols/1.1.0: resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=} dev: true @@ -1860,13 +1808,6 @@ packages: engines: {node: '>= 4'} dev: true - /import-cwd/3.0.0: - resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} - engines: {node: '>=8'} - dependencies: - import-from: 3.0.0 - dev: true - /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -1875,13 +1816,6 @@ packages: resolve-from: 4.0.0 dev: true - /import-from/3.0.0: - resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} - engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - /imurmurhash/0.1.4: resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} engines: {node: '>=0.8.19'} @@ -1999,11 +1933,6 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-stream/2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} - dev: true - /is-string/1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -2027,11 +1956,6 @@ packages: hasBin: true dev: true - /joycon/3.0.1: - resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} - engines: {node: '>=10'} - dev: true - /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -2129,11 +2053,6 @@ packages: type-check: 0.4.0 dev: true - /lilconfig/2.0.3: - resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==} - engines: {node: '>=10'} - dev: true - /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} dev: true @@ -2229,10 +2148,6 @@ packages: source-map: 0.6.1 dev: true - /merge-stream/2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2246,11 +2161,6 @@ packages: picomatch: 2.3.0 dev: true - /mimic-fn/2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} - dev: true - /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -2277,14 +2187,6 @@ packages: resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} dev: true - /mz/2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - /nanoevents/6.0.0: resolution: {integrity: sha512-0ASElaiZR21yBjhmBiRboCXeNirfIVuiKIxikn6a3H/9zUL+q2HBq+4B3Cb2UdCctoGx5YSwxTXypslD/olJKA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2304,11 +2206,6 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true - /node-modules-regexp/1.0.0: - resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} - engines: {node: '>=0.10.0'} - dev: true - /node-releases/1.1.75: resolution: {integrity: sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==} dev: true @@ -2343,13 +2240,6 @@ packages: string.prototype.padend: 3.1.2 dev: true - /npm-run-path/4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} @@ -2408,13 +2298,6 @@ packages: wrappy: 1.0.2 dev: true - /onetime/5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - dev: true - /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -2547,13 +2430,6 @@ packages: engines: {node: '>=4'} dev: true - /pirates/4.0.1: - resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} - engines: {node: '>= 6'} - dependencies: - node-modules-regexp: 1.0.0 - dev: true - /pkg-dir/2.0.0: resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} engines: {node: '>=4'} @@ -2573,20 +2449,6 @@ packages: engines: {node: '>=4'} dev: true - /postcss-load-config/3.1.0: - resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==} - engines: {node: '>= 10'} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - import-cwd: 3.0.0 - lilconfig: 2.0.3 - yaml: 1.10.2 - dev: true - /postcss-modules-extract-imports/3.0.0_postcss@8.3.6: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -2771,11 +2633,6 @@ packages: engines: {node: '>=4'} dev: true - /resolve-from/5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} - dev: true - /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: @@ -2887,10 +2744,6 @@ packages: object-inspect: 1.11.0 dev: true - /signal-exit/3.0.3: - resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} - dev: true - /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -3011,29 +2864,11 @@ packages: engines: {node: '>=4'} dev: true - /strip-final-newline/2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} - dev: true - /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /sucrase/3.20.1: - resolution: {integrity: sha512-BIG59HaJOxNct9Va6KvT5yzBA/rcMGetzvZyTx0ZdCcspIbpJTPS64zuAfYlJuOj+3WaI5JOdA+F0bJQQi8ZiQ==} - engines: {node: '>=8'} - hasBin: true - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.1.6 - mz: 2.7.0 - pirates: 4.0.1 - ts-interface-checker: 0.1.13 - dev: true - /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -3064,19 +2899,6 @@ packages: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true - /thenify-all/1.6.0: - resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify/3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - /tiny-uid/1.1.1: resolution: {integrity: sha512-YRtEXpxokCLMMR46Ml/gen6jDFjZpyo9BMlEGmEpElA+zbCKtoTTikvvDTKR4Gro6tNij3ZA+60i9UiCYKKVyw==} dev: true @@ -3093,15 +2915,6 @@ packages: is-number: 7.0.0 dev: true - /tree-kill/1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} - hasBin: true - dev: true - - /ts-interface-checker/0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - /tsconfig-paths/3.10.1: resolution: {integrity: sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==} dependencies: @@ -3114,34 +2927,6 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tsup/4.14.0_typescript@4.3.5: - resolution: {integrity: sha512-77rWdzhikTP9mQ34XMRzK83tw++LF6f4ox/HNERlgesB7g6g5VQ1iJlueG9O0P9HAZGVKavUwyoZv0+322p6rg==} - hasBin: true - peerDependencies: - typescript: ^4.2.3 - peerDependenciesMeta: - typescript: - optional: true - dependencies: - cac: 6.7.3 - chalk: 4.1.2 - chokidar: 3.5.2 - debug: 4.3.2 - esbuild: 0.12.21 - execa: 5.1.1 - globby: 11.0.4 - joycon: 3.0.1 - postcss-load-config: 3.1.0 - resolve-from: 5.0.0 - rollup: 2.56.2 - sucrase: 3.20.1 - tree-kill: 1.2.2 - typescript: 4.3.5 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - /tsutils/3.21.0_typescript@4.3.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} diff --git a/src/contentScripts/Content.vue b/src/contentScripts/Content.vue new file mode 100644 index 0000000..0ed5590 --- /dev/null +++ b/src/contentScripts/Content.vue @@ -0,0 +1,10 @@ + + + diff --git a/src/contentScripts/index.ts b/src/contentScripts/index.ts index d8fd4d9..8db5d5f 100644 --- a/src/contentScripts/index.ts +++ b/src/contentScripts/index.ts @@ -1,5 +1,12 @@ /* eslint-disable no-console */ import { onMessage } from 'webext-bridge' +import { createApp } from 'vue' +import 'vue-global-api' +import App from './Content.vue' + +const app = document.createElement('div') +document.body.appendChild(app) +createApp(App).mount(app) console.info('[vitesse-webext] Hello world from content script') diff --git a/src/manifest.ts b/src/manifest.ts index 6c28ac2..0a87126 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -29,6 +29,7 @@ export async function getManifest(): Promise { { matches: ['http://*/*', 'https://*/*'], js: ['./dist/contentScripts/index.global.js'], + css: ['./dist/contentScripts/style.css'], }, ], icons: { diff --git a/tsup.config.ts b/tsup.config.ts deleted file mode 100644 index f812697..0000000 --- a/tsup.config.ts +++ /dev/null @@ -1,12 +0,0 @@ -import type { Options } from 'tsup' - -const isDev = process.env.NODE_ENV !== 'production' - -export const tsup: Options = { - entryPoints: ['src/contentScripts'], - outDir: 'extension/dist/contentScripts', - format: ['iife'], - splitting: false, - sourcemap: isDev ? 'inline' : false, - minifyWhitespace: !isDev, -} diff --git a/vite.config.content.ts b/vite.config.content.ts new file mode 100644 index 0000000..1a3e30e --- /dev/null +++ b/vite.config.content.ts @@ -0,0 +1,26 @@ +import { defineConfig } from 'vite' +import { sharedConfig } from './vite.config' +import { r, isDev } from './scripts/utils' + +// bundling the content script using Vite +export default defineConfig({ + build: { + watch: isDev + ? { include: r('src/contentScripts') } + : undefined, + outDir: r('extension/dist/contentScripts'), + cssCodeSplit: false, + emptyOutDir: false, + sourcemap: isDev ? 'inline' : false, + lib: { + entry: r('src/contentScripts/index.ts'), + formats: ['es'], + }, + rollupOptions: { + output: { + entryFileNames: 'index.global.js', + }, + }, + }, + ...sharedConfig, +}) diff --git a/vite.config.ts b/vite.config.ts index 5f0ad0a..a0fadc4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,88 +1,85 @@ -import { resolve } from 'path' import { defineConfig } from 'vite' import Vue from '@vitejs/plugin-vue' import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' import ViteComponents from 'vite-plugin-components' import WindiCSS from 'vite-plugin-windicss' import windiConfig from './windi.config' +import { r, port, isDev } from './scripts/utils' -const port = parseInt(process.env.PORT || '') || 3303 -const isDev = process.env.NODE_ENV !== 'production' -const r = (...args: string[]) => resolve(__dirname, ...args) - -export default defineConfig(({ command }) => { - return { - root: r('src'), - base: command === 'serve' ? `http://localhost:${port}/` : undefined, - resolve: { - alias: { - '~/': `${r('src')}/`, - }, - }, - server: { - port, - hmr: { - host: 'localhost', - }, - }, - build: { - outDir: r('extension/dist'), - emptyOutDir: false, - sourcemap: isDev ? 'inline' : false, - // https://developer.chrome.com/docs/webstore/program_policies/#:~:text=Code%20Readability%20Requirements - terserOptions: { - mangle: false, - }, - rollupOptions: { - input: { - background: r('src/background/index.html'), - options: r('src/options/index.html'), - popup: r('src/popup/index.html'), - }, - }, +export const sharedConfig = defineConfig({ + root: r('src'), + resolve: { + alias: { + '~/': `${r('src')}/`, }, - plugins: [ - Vue(), - ViteComponents({ - dirs: [r('src/components')], - // generate `components.d.ts` for ts support with Volar - globalComponentsDeclaration: true, - // auto import icons - customComponentResolvers: [ - // https://github.com/antfu/vite-plugin-icons - ViteIconsResolver({ - componentPrefix: '', - }), - ], - }), - + }, + plugins: [ + Vue(), + ViteComponents({ + dirs: [r('src/components')], + // generate `components.d.ts` for ts support with Volar + globalComponentsDeclaration: true, + // auto import icons + customComponentResolvers: [ // https://github.com/antfu/vite-plugin-icons - ViteIcons(), + ViteIconsResolver({ + componentPrefix: '', + }), + ], + }), + + // https://github.com/antfu/vite-plugin-icons + ViteIcons(), - // https://github.com/antfu/vite-plugin-windicss - WindiCSS({ - config: windiConfig, - }), + // https://github.com/antfu/vite-plugin-windicss + WindiCSS({ + config: windiConfig, + }), - // rewrite assets to use relative path - { - name: 'assets-rewrite', - enforce: 'post', - apply: 'build', - transformIndexHtml(html) { - return html.replace(/"\/assets\//g, '"../assets/') - }, + // rewrite assets to use relative path + { + name: 'assets-rewrite', + enforce: 'post', + apply: 'build', + transformIndexHtml(html) { + return html.replace(/"\/assets\//g, '"../assets/') }, + }, + ], + optimizeDeps: { + include: [ + 'vue', + '@vueuse/core', + ], + exclude: [ + 'vue-demi', ], + }, +}) - optimizeDeps: { - include: [ - 'vue', - '@vueuse/core', - ], - exclude: [ - 'vue-demi', - ], +export default defineConfig(({ command }) => ({ + ...sharedConfig, + base: command === 'serve' ? `http://localhost:${port}/` : undefined, + server: { + port, + hmr: { + host: 'localhost', }, - } -}) + }, + build: { + outDir: r('extension/dist'), + emptyOutDir: false, + sourcemap: isDev ? 'inline' : false, + // https://developer.chrome.com/docs/webstore/program_policies/#:~:text=Code%20Readability%20Requirements + terserOptions: { + mangle: false, + }, + rollupOptions: { + input: { + background: r('src/background/index.html'), + options: r('src/options/index.html'), + popup: r('src/popup/index.html'), + }, + }, + }, +})) From 2926c312274bbf3a05eea6cc753121d07c8ada44 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 22:50:08 +0800 Subject: [PATCH 038/105] chore: update deps --- package.json | 14 ++--- pnpm-lock.yaml | 156 +++++++++++++++++++++++++++++++++---------------- 2 files changed, 114 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index a634d74..4edd642 100644 --- a/package.json +++ b/package.json @@ -18,12 +18,12 @@ }, "devDependencies": { "@antfu/eslint-config": "^0.7.0", - "@iconify/json": "^1.1.390", + "@iconify/json": "^1.1.392", "@types/fs-extra": "^9.0.12", - "@types/node": "^16.6.2", + "@types/node": "^16.7.1", "@types/webextension-polyfill": "^0.8.0", - "@typescript-eslint/eslint-plugin": "^4.29.2", - "@vitejs/plugin-vue": "^1.4.0", + "@typescript-eslint/eslint-plugin": "^4.29.3", + "@vitejs/plugin-vue": "^1.5.0", "@vue/compiler-sfc": "^3.2.4", "@vueuse/core": "^6.0.0", "chokidar": "^3.5.2", @@ -35,14 +35,14 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "typescript": "^4.3.5", - "vite": "^2.5.0", + "vite": "^2.5.1", "vite-plugin-components": "^0.13.2", "vite-plugin-icons": "^0.6.5", - "vite-plugin-windicss": "^1.2.7", + "vite-plugin-windicss": "^1.2.8", "vue": "^3.2.4", "vue-demi": "^0.11.3", "vue-global-api": "^0.4.1", - "webext-bridge": "^4.0.1", + "webext-bridge": "^4.1.1", "webextension-polyfill": "^0.8.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b486be6..f31f62c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2,12 +2,12 @@ lockfileVersion: 5.3 specifiers: '@antfu/eslint-config': ^0.7.0 - '@iconify/json': ^1.1.390 + '@iconify/json': ^1.1.392 '@types/fs-extra': ^9.0.12 - '@types/node': ^16.6.2 + '@types/node': ^16.7.1 '@types/webextension-polyfill': ^0.8.0 - '@typescript-eslint/eslint-plugin': ^4.29.2 - '@vitejs/plugin-vue': ^1.4.0 + '@typescript-eslint/eslint-plugin': ^4.29.3 + '@vitejs/plugin-vue': ^1.5.0 '@vue/compiler-sfc': ^3.2.4 '@vueuse/core': ^6.0.0 chokidar: ^3.5.2 @@ -19,24 +19,24 @@ specifiers: npm-run-all: ^4.1.5 rimraf: ^3.0.2 typescript: ^4.3.5 - vite: ^2.5.0 + vite: ^2.5.1 vite-plugin-components: ^0.13.2 vite-plugin-icons: ^0.6.5 - vite-plugin-windicss: ^1.2.7 + vite-plugin-windicss: ^1.2.8 vue: ^3.2.4 vue-demi: ^0.11.3 vue-global-api: ^0.4.1 - webext-bridge: ^4.0.1 + webext-bridge: ^4.1.1 webextension-polyfill: ^0.8.0 devDependencies: '@antfu/eslint-config': 0.7.0_eslint@7.32.0+typescript@4.3.5 - '@iconify/json': 1.1.390 + '@iconify/json': 1.1.392 '@types/fs-extra': 9.0.12 - '@types/node': 16.6.2 + '@types/node': 16.7.1 '@types/webextension-polyfill': 0.8.0 - '@typescript-eslint/eslint-plugin': 4.29.2_eslint@7.32.0+typescript@4.3.5 - '@vitejs/plugin-vue': 1.4.0_@vue+compiler-sfc@3.2.4 + '@typescript-eslint/eslint-plugin': 4.29.3_eslint@7.32.0+typescript@4.3.5 + '@vitejs/plugin-vue': 1.5.0_@vue+compiler-sfc@3.2.4 '@vue/compiler-sfc': 3.2.4 '@vueuse/core': 6.0.0_vue@3.2.4 chokidar: 3.5.2 @@ -48,14 +48,14 @@ devDependencies: npm-run-all: 4.1.5 rimraf: 3.0.2 typescript: 4.3.5 - vite: 2.5.0 - vite-plugin-components: 0.13.2_vite@2.5.0 - vite-plugin-icons: 0.6.5_1621662ed2beacc40076654ac7d0b36f - vite-plugin-windicss: 1.2.7_vite@2.5.0 + vite: 2.5.1 + vite-plugin-components: 0.13.2_vite@2.5.1 + vite-plugin-icons: 0.6.5_927b6aa92e35a8f1cb1822fc1487e830 + vite-plugin-windicss: 1.2.8_vite@2.5.1 vue: 3.2.4 vue-demi: 0.11.3_vue@3.2.4 vue-global-api: 0.4.1_vue@3.2.4 - webext-bridge: 4.0.1 + webext-bridge: 4.1.1 webextension-polyfill: 0.8.0 packages: @@ -410,8 +410,8 @@ packages: resolution: {integrity: sha512-LFelJDOLZ6JHlmlAkgrvmcu4hpNPB91KYcr4f60D/exzU1eNOb4/KCVHIydGHIQFaOacIOD+Xy+B7P1z812cZg==} dev: true - /@iconify/json/1.1.390: - resolution: {integrity: sha512-2iLsQLORrET0xc9ldYEZF32WtxokHstQwWzFxhVJtbYrDydbtdqI2veoj3J+gWOscbGGev7FoQRqZ+VjGEYzCg==} + /@iconify/json/1.1.392: + resolution: {integrity: sha512-NeEnvIo815auLNL5bX732iafgdbzkDTlWJaad7fz7LWneJlImIuTDvCfybnMdS0g+9mItzfTzgUtHq2oJQqMFw==} dev: true /@nodelib/fs.scandir/2.1.5: @@ -453,6 +453,10 @@ packages: resolution: {integrity: sha512-LSw8TZt12ZudbpHc6EkIyDM3nHVWKYrAvGy6EAJfNfjusbwnThqjqxUKKRwuV3iWYeW/LYMzNgaq3MaLffQ2xA==} dev: true + /@types/node/16.7.1: + resolution: {integrity: sha512-ncRdc45SoYJ2H4eWU9ReDfp3vtFqDYhjOsKlFFUDEn8V1Bgr2RjYal8YT5byfadWIRluhPFU6JiDOl0H6Sl87A==} + dev: true + /@types/normalize-package-data/2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true @@ -490,8 +494,8 @@ packages: - supports-color dev: true - /@typescript-eslint/eslint-plugin/4.29.2_eslint@7.32.0+typescript@4.3.5: - resolution: {integrity: sha512-x4EMgn4BTfVd9+Z+r+6rmWxoAzBaapt4QFqE+d8L8sUtYZYLDTK6VG/y/SMMWA5t1/BVU5Kf+20rX4PtWzUYZg==} + /@typescript-eslint/eslint-plugin/4.29.3_eslint@7.32.0+typescript@4.3.5: + resolution: {integrity: sha512-tBgfA3K/3TsZY46ROGvoRxQr1wBkclbVqRQep97MjVHJzcRBURRY3sNFqLk0/Xr//BY5hM9H2p/kp+6qim85SA==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -501,8 +505,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.29.2_eslint@7.32.0+typescript@4.3.5 - '@typescript-eslint/scope-manager': 4.29.2 + '@typescript-eslint/experimental-utils': 4.29.3_eslint@7.32.0+typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.29.3 debug: 4.3.2 eslint: 7.32.0 functional-red-black-tree: 1.0.1 @@ -532,6 +536,24 @@ packages: - typescript dev: true + /@typescript-eslint/experimental-utils/4.29.3_eslint@7.32.0+typescript@4.3.5: + resolution: {integrity: sha512-ffIvbytTVWz+3keg+Sy94FG1QeOvmV9dP2YSdLFHw/ieLXWCa3U1TYu8IRCOpMv2/SPS8XqhM1+ou1YHsdzKrg==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.9 + '@typescript-eslint/scope-manager': 4.29.3 + '@typescript-eslint/types': 4.29.3 + '@typescript-eslint/typescript-estree': 4.29.3_typescript@4.3.5 + eslint: 7.32.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@7.32.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/parser/4.29.2_eslint@7.32.0+typescript@4.3.5: resolution: {integrity: sha512-WQ6BPf+lNuwteUuyk1jD/aHKqMQ9jrdCn7Gxt9vvBnzbpj7aWEf+aZsJ1zvTjx5zFxGCt000lsbD9tQPEL8u6g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -560,11 +582,24 @@ packages: '@typescript-eslint/visitor-keys': 4.29.2 dev: true + /@typescript-eslint/scope-manager/4.29.3: + resolution: {integrity: sha512-x+w8BLXO7iWPkG5mEy9bA1iFRnk36p/goVlYobVWHyDw69YmaH9q6eA+Fgl7kYHmFvWlebUTUfhtIg4zbbl8PA==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.29.3 + '@typescript-eslint/visitor-keys': 4.29.3 + dev: true + /@typescript-eslint/types/4.29.2: resolution: {integrity: sha512-K6ApnEXId+WTGxqnda8z4LhNMa/pZmbTFkDxEBLQAbhLZL50DjeY0VIDCml/0Y3FlcbqXZrABqrcKxq+n0LwzQ==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true + /@typescript-eslint/types/4.29.3: + resolution: {integrity: sha512-s1eV1lKNgoIYLAl1JUba8NhULmf+jOmmeFO1G5MN/RBCyyzg4TIOfIOICVNC06lor+Xmy4FypIIhFiJXOknhIg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + /@typescript-eslint/typescript-estree/4.29.2_typescript@4.3.5: resolution: {integrity: sha512-TJ0/hEnYxapYn9SGn3dCnETO0r+MjaxtlWZ2xU+EvytF0g4CqTpZL48SqSNn2hXsPolnewF30pdzR9a5Lj3DNg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -586,6 +621,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree/4.29.3_typescript@4.3.5: + resolution: {integrity: sha512-45oQJA0bxna4O5TMwz55/TpgjX1YrAPOI/rb6kPgmdnemRZx/dB0rsx+Ku8jpDvqTxcE1C/qEbVHbS3h0hflag==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.29.3 + '@typescript-eslint/visitor-keys': 4.29.3 + debug: 4.3.2 + globby: 11.0.4 + is-glob: 4.0.1 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.5 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/visitor-keys/4.29.2: resolution: {integrity: sha512-bDgJLQ86oWHJoZ1ai4TZdgXzJxsea3Ee9u9wsTAvjChdj2WLcVsgWYAPeY7RQMn16tKrlQaBnpKv7KBfs4EQag==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -594,11 +650,19 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /@vitejs/plugin-vue/1.4.0_@vue+compiler-sfc@3.2.4: - resolution: {integrity: sha512-RkqfJHz9wdLKBp5Yi+kQL8BAljdrvPoccQm2PTZc/UcL4EjD11xsv2PPCduYx2oV1a/bpSKA3sD5sxOHFhz+LA==} + /@typescript-eslint/visitor-keys/4.29.3: + resolution: {integrity: sha512-MGGfJvXT4asUTeVs0Q2m+sY63UsfnA+C/FDgBKV3itLBmM9H0u+URcneePtkd0at1YELmZK6HSolCqM4Fzs6yA==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.29.3 + eslint-visitor-keys: 2.1.0 + dev: true + + /@vitejs/plugin-vue/1.5.0_@vue+compiler-sfc@3.2.4: + resolution: {integrity: sha512-DwTvr9J/SSYHsrTiYTWAaUn0OnqgdINlfuhtxpWHcJVUtxGt07zZylV/ITjfeYgdcUCi0oLD+n9lwLnxlYSGtA==} engines: {node: '>=12.0.0'} peerDependencies: - '@vue/compiler-sfc': ^3.0.8 + '@vue/compiler-sfc': ^3.2.0 dependencies: '@vue/compiler-sfc': 3.2.4 dev: true @@ -705,8 +769,8 @@ packages: vue-demi: 0.11.3_vue@3.2.4 dev: true - /@windicss/config/1.2.7: - resolution: {integrity: sha512-XpH/dkXWk2LGygHzHBWWEW/yGcLqhpFFN2jo+zMeWZ1ggBzndQQzBHqHGQHcr6U6v3PoBuOz1prVWgUmQxn9eQ==} + /@windicss/config/1.2.8: + resolution: {integrity: sha512-v9vyIiG8GYUTYo874ExlVu1i6vlsWo4RFZWiDGfPKdN7GBRCcJcEV+X+j3AZPPIsx5JvD5TXQlDvkbYIqYWYbQ==} dependencies: debug: 4.3.2 jiti: 1.11.0 @@ -715,11 +779,11 @@ packages: - supports-color dev: true - /@windicss/plugin-utils/1.2.7: - resolution: {integrity: sha512-aNQhd1nEjkVsCHmzq0+4VGTmovOGGfPnH2hspH4YuDxMDhQ/99VrBdyk7irngWJjedjHB3+UYCSYWpY5a+2Hbg==} + /@windicss/plugin-utils/1.2.8: + resolution: {integrity: sha512-JwnFMJMCX/+Re4iItozvbWC3yz/7WJNOJJkgDKQ9X5Ran1sfNjx9m3LCijsYLf0MULCplZJIh/HzdxjxZMNFUA==} dependencies: '@antfu/utils': 0.2.4 - '@windicss/config': 1.2.7 + '@windicss/config': 1.2.8 debug: 4.3.2 fast-glob: 3.2.7 magic-string: 0.25.7 @@ -3000,7 +3064,7 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-plugin-components/0.13.2_vite@2.5.0: + /vite-plugin-components/0.13.2_vite@2.5.1: resolution: {integrity: sha512-Fv5iTlZUvqUUjODdAkTadijobcys+SvrtYclj27/SCE7b4LtwNySd+nHvJcGI/GsL8npTdccj2IRwGsWLrTcvQ==} peerDependencies: vite: ^2.0.0 @@ -3009,12 +3073,12 @@ packages: fast-glob: 3.2.7 magic-string: 0.25.7 minimatch: 3.0.4 - vite: 2.5.0 + vite: 2.5.1 transitivePeerDependencies: - supports-color dev: true - /vite-plugin-icons/0.6.5_1621662ed2beacc40076654ac7d0b36f: + /vite-plugin-icons/0.6.5_927b6aa92e35a8f1cb1822fc1487e830: resolution: {integrity: sha512-lfePr8juO2ajp0571iLL+9zIoyBD9nSSSHlC4JYXbAeMOJB6WTP+Vdc2gze8yI8JRO+Z0TXCCvvL9bPgvkI4Cg==} peerDependencies: '@iconify/json': '*' @@ -3026,28 +3090,28 @@ packages: vue-template-compiler: optional: true dependencies: - '@iconify/json': 1.1.390 + '@iconify/json': 1.1.392 '@iconify/json-tools': 1.0.10 '@vue/compiler-sfc': 3.2.4 vue-template-es2015-compiler: 1.9.1 dev: true - /vite-plugin-windicss/1.2.7_vite@2.5.0: - resolution: {integrity: sha512-JgIGsH5HPaz3ghDRhhLeF8VZQMUE+R0jD9u8sbne5KdBBa208r0IuTcx73V7CPcmsu7KABG6rfLgST9ffVoiDA==} + /vite-plugin-windicss/1.2.8_vite@2.5.1: + resolution: {integrity: sha512-KLoFfsEh5RAyw2OjW+lrIdgkRAMa9KM1sKPYf8pYgVIj4PL6xBbJlbvWOZnZdW1rFjLtF3KzPT35HEmj6MV8XQ==} peerDependencies: vite: ^2.0.1 dependencies: - '@windicss/plugin-utils': 1.2.7 + '@windicss/plugin-utils': 1.2.8 chalk: 4.1.2 debug: 4.3.2 - vite: 2.5.0 + vite: 2.5.1 windicss: 3.1.7 transitivePeerDependencies: - supports-color dev: true - /vite/2.5.0: - resolution: {integrity: sha512-Dn4B+g54PJsMG5WCc4QeFy1ygMXRdTtFrUPegqfk4+vzVQcbF/DqqmI/1bxezArzbujBJg/67QeT5wz8edfJVQ==} + /vite/2.5.1: + resolution: {integrity: sha512-FwmLbbz8MB1pBs9dKoRDgpiqoijif8hSK1+NNUYc12/cnf+pM2UFhhQ1rcpXgbMhm/5c2USZdVAf0FSkSxaFDA==} engines: {node: '>=12.2.0'} hasBin: true dependencies: @@ -3114,19 +3178,13 @@ packages: '@vue/shared': 3.2.4 dev: true - /webext-bridge/4.0.1: - resolution: {integrity: sha512-c8ioMYXo0ypcwjQF4yK43pJF/DBgazEgOwJZaGLynhibM8AGTRYjGPir4TPFw9AEPxf6kE4yoJZKCvLLF5LuSA==} + /webext-bridge/4.1.1: + resolution: {integrity: sha512-trHYJlBL6bZIKHQJBlMjgNjI4H3COWS8aw8iijZKQF6ztCaTvmFg2Iup6RpBON5TWuQeY3wfRpMpq5/OQiLNLg==} dependencies: + '@types/webextension-polyfill': 0.8.0 nanoevents: 6.0.0 serialize-error: 8.1.0 tiny-uid: 1.1.1 - webextension-polyfill-ts: 0.26.0 - dev: true - - /webextension-polyfill-ts/0.26.0: - resolution: {integrity: sha512-XEFL+aYVEsm/d4RajVwP75g56c/w2aSHnPwgtUv8/nCzbLNSzRQIix6aj1xqFkA5yr7OIDkk3OD/QTnPp8ThYA==} - deprecated: This project has moved to @types/webextension-polyfill - dependencies: webextension-polyfill: 0.8.0 dev: true From a3f4a7801443fac022c36a5c044139b350deff19 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 22:57:23 +0800 Subject: [PATCH 039/105] fix: use shadow dom to attach context vue, thanks to @tshemeng --- src/contentScripts/index.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/contentScripts/index.ts b/src/contentScripts/index.ts index 8db5d5f..7d56f8a 100644 --- a/src/contentScripts/index.ts +++ b/src/contentScripts/index.ts @@ -4,13 +4,17 @@ import { createApp } from 'vue' import 'vue-global-api' import App from './Content.vue' -const app = document.createElement('div') -document.body.appendChild(app) -createApp(App).mount(app) - console.info('[vitesse-webext] Hello world from content script') // communication example: send previous tab title from background page onMessage('tab-prev', ({ data }) => { console.log(`[vitesse-webext] Navigate from page "${data.title}"`) }) + +// mount component to context window +const container = document.createElement('div')! +const shadowDOM = container.attachShadow?.({ mode: 'closed' }) || container +const root = document.createElement('div') +shadowDOM.appendChild(root) +document.body.appendChild(container) +createApp(App, { globalWindow: window }).mount(root) From 25d3bc5da0bcac3be51a1de5414801e4d0bc21f5 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 23:00:11 +0800 Subject: [PATCH 040/105] fix: manifest updates --- scripts/manifest.ts | 10 ++++++++++ scripts/prepare.ts | 7 +++---- 2 files changed, 13 insertions(+), 4 deletions(-) create mode 100644 scripts/manifest.ts diff --git a/scripts/manifest.ts b/scripts/manifest.ts new file mode 100644 index 0000000..462fc42 --- /dev/null +++ b/scripts/manifest.ts @@ -0,0 +1,10 @@ +import fs from 'fs-extra' +import { getManifest } from '../src/manifest' +import { r, log } from './utils' + +export async function writeManifest() { + await fs.writeJSON(r('extension/manifest.json'), await getManifest(), { spaces: 2 }) + log('PRE', 'write manifest.json') +} + +writeManifest() diff --git a/scripts/prepare.ts b/scripts/prepare.ts index 2b785a8..f48e18a 100644 --- a/scripts/prepare.ts +++ b/scripts/prepare.ts @@ -1,4 +1,5 @@ // generate stub index.html files for dev entry +import { execSync } from 'child_process' import fs from 'fs-extra' import chokidar from 'chokidar' import { r, port, isDev, log } from './utils' @@ -24,10 +25,8 @@ async function stubIndexHtml() { } } -export async function writeManifest() { - const { getManifest } = await import(r('src/manifest.ts')) - await fs.writeJSON(r('extension/manifest.json'), await getManifest(), { spaces: 2 }) - log('PRE', 'write manifest.json') +function writeManifest() { + execSync('npx esno ./scripts/manifest.ts', { stdio: 'inherit' }) } writeManifest() From b2991d4c8ead259e844c2a97c5996e81fe58daaa Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 23:05:43 +0800 Subject: [PATCH 041/105] fix: use unplugin-auto-import instead of vue-global-api --- .gitignore | 1 - README.md | 2 +- package.json | 2 +- pnpm-lock.yaml | 44 +++++++++++++++++++++++++++++++++++++ src/auto-imports.d.ts | 41 ++++++++++++++++++++++++++++++++++ src/components.d.ts | 13 +++++++++++ src/content/components.d.ts | 10 +++++++++ src/contentScripts/index.ts | 1 - src/options/main.ts | 1 - src/popup/main.ts | 1 - vite.config.ts | 9 ++++++++ 11 files changed, 119 insertions(+), 6 deletions(-) create mode 100644 src/auto-imports.d.ts create mode 100644 src/components.d.ts create mode 100644 src/content/components.d.ts diff --git a/.gitignore b/.gitignore index 20f6f99..dfe6159 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ dist dist-ssr node_modules -components.d.ts .idea/ *.log extension/manifest.json diff --git a/README.md b/README.md index 1079b83..88da24a 100644 --- a/README.md +++ b/README.md @@ -31,10 +31,10 @@ A [Vite](https://vitejs.dev/) powered WebExtension ([Chrome](https://developer.c - [`vite-plugin-components`](https://github.com/antfu/vite-plugin-components) - components auto import - [`vite-plugin-windicss`](https://github.com/antfu/vite-plugin-windicss) - WindiCSS support +- [`unplugin-auto-import`](https://github.com/antfu/unplugin-auto-import) - Directly use Vue Composition API and others without importing ### Vue Plugins -- [`vue-global-api`](https://github.com/antfu/vue-global-api) - use Vue Composition API globally - [VueUse](https://github.com/antfu/vueuse) - collection of useful composition APIs ### UI Frameworks diff --git a/package.json b/package.json index 4edd642..509fe7a 100644 --- a/package.json +++ b/package.json @@ -35,13 +35,13 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "typescript": "^4.3.5", + "unplugin-auto-import": "^0.1.3", "vite": "^2.5.1", "vite-plugin-components": "^0.13.2", "vite-plugin-icons": "^0.6.5", "vite-plugin-windicss": "^1.2.8", "vue": "^3.2.4", "vue-demi": "^0.11.3", - "vue-global-api": "^0.4.1", "webext-bridge": "^4.1.1", "webextension-polyfill": "^0.8.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f31f62c..587551e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,6 +19,7 @@ specifiers: npm-run-all: ^4.1.5 rimraf: ^3.0.2 typescript: ^4.3.5 + unplugin-auto-import: ^0.1.3 vite: ^2.5.1 vite-plugin-components: ^0.13.2 vite-plugin-icons: ^0.6.5 @@ -48,6 +49,7 @@ devDependencies: npm-run-all: 4.1.5 rimraf: 3.0.2 typescript: 4.3.5 + unplugin-auto-import: 0.1.3_vite@2.5.1 vite: 2.5.1 vite-plugin-components: 0.13.2_vite@2.5.1 vite-plugin-icons: 0.6.5_927b6aa92e35a8f1cb1822fc1487e830 @@ -435,6 +437,14 @@ packages: fastq: 1.12.0 dev: true + /@rollup/pluginutils/4.1.1: + resolution: {integrity: sha512-clDjivHqWGXi7u+0d2r2sBi4Ie6VLEAzWMIkvJLnDmxoOhBYOTfzGbOQBA32THHm11/LiJbd01tJUpJsbshSWQ==} + engines: {node: '>= 8.0.0'} + dependencies: + estree-walker: 2.0.2 + picomatch: 2.3.0 + dev: true + /@types/estree/0.0.48: resolution: {integrity: sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew==} dev: true @@ -3043,6 +3053,36 @@ packages: engines: {node: '>= 10.0.0'} dev: true + /unplugin-auto-import/0.1.3_vite@2.5.1: + resolution: {integrity: sha512-lNrOTxa1fjkBHwkY47b8Cmtm0jmM/iI333DCcXiVyXYwLLULOOqo5eXUjjUyIGbnISJsJ8fhhPxYIwPx8JgaVg==} + dependencies: + '@antfu/utils': 0.2.4 + '@rollup/pluginutils': 4.1.1 + unplugin: 0.0.8_vite@2.5.1 + transitivePeerDependencies: + - rollup + - vite + - webpack + dev: true + + /unplugin/0.0.8_vite@2.5.1: + resolution: {integrity: sha512-eN+JfXcV8Dq9FmnXiU8PHTsBjhyUazlztLh8L2eMLHnh4Gq1oXGkfcKdEQa8FBho5Be6IW2CsDFXwJISK1MiyQ==} + peerDependencies: + rollup: ^2.50.0 + vite: ^2.3.0 + webpack: ^5.0.0 + peerDependenciesMeta: + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + dependencies: + vite: 2.5.1 + webpack-virtual-modules: 0.4.3 + dev: true + /uri-js/4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -3192,6 +3232,10 @@ packages: resolution: {integrity: sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ==} dev: true + /webpack-virtual-modules/0.4.3: + resolution: {integrity: sha512-5NUqC2JquIL2pBAAo/VfBP6KuGkHIZQXW/lNKupLPfhViwh8wNsu0BObtl09yuKZszeEUfbXz8xhrHvSG16Nqw==} + dev: true + /which-boxed-primitive/1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts new file mode 100644 index 0000000..b04c10a --- /dev/null +++ b/src/auto-imports.d.ts @@ -0,0 +1,41 @@ +// Generated by 'unplugin-auto-import' +declare global { + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onMounted: typeof import('vue')['onMounted'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const computed: typeof import('vue')['computed'] + const customRef: typeof import('vue')['customRef'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const markRaw: typeof import('vue')['markRaw'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const unref: typeof import('vue')['unref'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const defineComponent: typeof import('vue')['defineComponent'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const nextTick: typeof import('vue')['nextTick'] + const provide: typeof import('vue')['provide'] + const useCssModule: typeof import('vue')['useCssModule'] + const createApp: typeof import('vue')['createApp'] + const triggerRef: typeof import('vue')['triggerRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] +} +export {} diff --git a/src/components.d.ts b/src/components.d.ts new file mode 100644 index 0000000..dfafa17 --- /dev/null +++ b/src/components.d.ts @@ -0,0 +1,13 @@ +// generated by vite-plugin-components +// read more https://github.com/vuejs/vue-next/pull/3399 + +declare module 'vue' { + export interface GlobalComponents { + Logo: typeof import('./components/Logo.vue')['default'] + PixelarticonsPower: typeof import('virtual:vite-icons/pixelarticons/power')['default'] + PixelarticonsSliders: typeof import('virtual:vite-icons/pixelarticons/sliders')['default'] + PixelarticonsZap: typeof import('virtual:vite-icons/pixelarticons/zap')['default'] + } +} + +export { } diff --git a/src/content/components.d.ts b/src/content/components.d.ts new file mode 100644 index 0000000..111f674 --- /dev/null +++ b/src/content/components.d.ts @@ -0,0 +1,10 @@ +// generated by vite-plugin-components +// read more https://github.com/vuejs/vue-next/pull/3399 + +declare module 'vue' { + export interface GlobalComponents { + Logo: typeof import('./Users/antfu/i/vitesse-webext/src/components/Logo.vue')['default'] + } +} + +export { } diff --git a/src/contentScripts/index.ts b/src/contentScripts/index.ts index 7d56f8a..5c23540 100644 --- a/src/contentScripts/index.ts +++ b/src/contentScripts/index.ts @@ -1,7 +1,6 @@ /* eslint-disable no-console */ import { onMessage } from 'webext-bridge' import { createApp } from 'vue' -import 'vue-global-api' import App from './Content.vue' console.info('[vitesse-webext] Hello world from content script') diff --git a/src/options/main.ts b/src/options/main.ts index 53dde3e..1a911d5 100644 --- a/src/options/main.ts +++ b/src/options/main.ts @@ -1,4 +1,3 @@ -import 'vue-global-api' import { createApp } from 'vue' import App from './Options.vue' import '../styles' diff --git a/src/popup/main.ts b/src/popup/main.ts index 5c36e4b..f7901f4 100644 --- a/src/popup/main.ts +++ b/src/popup/main.ts @@ -1,4 +1,3 @@ -import 'vue-global-api' import { createApp } from 'vue' import App from './Popup.vue' import '../styles' diff --git a/vite.config.ts b/vite.config.ts index a0fadc4..9b16483 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -3,6 +3,7 @@ import Vue from '@vitejs/plugin-vue' import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' import ViteComponents from 'vite-plugin-components' import WindiCSS from 'vite-plugin-windicss' +import AutoImport from 'unplugin-auto-import/vite' import windiConfig from './windi.config' import { r, port, isDev } from './scripts/utils' @@ -15,6 +16,14 @@ export const sharedConfig = defineConfig({ }, plugins: [ Vue(), + + AutoImport({ + imports: [ + 'vue', + ], + dts: r('src/auto-imports.d.ts'), + }), + ViteComponents({ dirs: [r('src/components')], // generate `components.d.ts` for ts support with Volar From eb782ca9b7113c45a4e889480c92bc12001c9a5b Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 23:06:36 +0800 Subject: [PATCH 042/105] fix: downgrade vite temporary --- package.json | 2 +- pnpm-lock.yaml | 48 ++++++++++++++++-------------------------------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index 509fe7a..47fe737 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "rimraf": "^3.0.2", "typescript": "^4.3.5", "unplugin-auto-import": "^0.1.3", - "vite": "^2.5.1", + "vite": "2.4.3", "vite-plugin-components": "^0.13.2", "vite-plugin-icons": "^0.6.5", "vite-plugin-windicss": "^1.2.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 587551e..1c0b154 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,13 +20,12 @@ specifiers: rimraf: ^3.0.2 typescript: ^4.3.5 unplugin-auto-import: ^0.1.3 - vite: ^2.5.1 + vite: 2.4.3 vite-plugin-components: ^0.13.2 vite-plugin-icons: ^0.6.5 vite-plugin-windicss: ^1.2.8 vue: ^3.2.4 vue-demi: ^0.11.3 - vue-global-api: ^0.4.1 webext-bridge: ^4.1.1 webextension-polyfill: ^0.8.0 @@ -49,14 +48,13 @@ devDependencies: npm-run-all: 4.1.5 rimraf: 3.0.2 typescript: 4.3.5 - unplugin-auto-import: 0.1.3_vite@2.5.1 - vite: 2.5.1 - vite-plugin-components: 0.13.2_vite@2.5.1 + unplugin-auto-import: 0.1.3_vite@2.4.3 + vite: 2.4.3 + vite-plugin-components: 0.13.2_vite@2.4.3 vite-plugin-icons: 0.6.5_927b6aa92e35a8f1cb1822fc1487e830 - vite-plugin-windicss: 1.2.8_vite@2.5.1 + vite-plugin-windicss: 1.2.8_vite@2.4.3 vue: 3.2.4 vue-demi: 0.11.3_vue@3.2.4 - vue-global-api: 0.4.1_vue@3.2.4 webext-bridge: 4.1.1 webextension-polyfill: 0.8.0 @@ -1295,10 +1293,6 @@ packages: eslint-plugin-promise: 5.1.0_eslint@7.32.0 dev: true - /eslint-config-vue-global-api/0.4.1: - resolution: {integrity: sha512-mJTiKBGLe1FXmEifYzCQzUTBpFv8OtfYzP6PAOuVRf+3hkGLMeiDh4bVzZEaJfdExtc8mPw9vp35YSLhwTselQ==} - dev: true - /eslint-import-resolver-node/0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} dependencies: @@ -3053,19 +3047,19 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin-auto-import/0.1.3_vite@2.5.1: + /unplugin-auto-import/0.1.3_vite@2.4.3: resolution: {integrity: sha512-lNrOTxa1fjkBHwkY47b8Cmtm0jmM/iI333DCcXiVyXYwLLULOOqo5eXUjjUyIGbnISJsJ8fhhPxYIwPx8JgaVg==} dependencies: '@antfu/utils': 0.2.4 '@rollup/pluginutils': 4.1.1 - unplugin: 0.0.8_vite@2.5.1 + unplugin: 0.0.8_vite@2.4.3 transitivePeerDependencies: - rollup - vite - webpack dev: true - /unplugin/0.0.8_vite@2.5.1: + /unplugin/0.0.8_vite@2.4.3: resolution: {integrity: sha512-eN+JfXcV8Dq9FmnXiU8PHTsBjhyUazlztLh8L2eMLHnh4Gq1oXGkfcKdEQa8FBho5Be6IW2CsDFXwJISK1MiyQ==} peerDependencies: rollup: ^2.50.0 @@ -3079,7 +3073,7 @@ packages: webpack: optional: true dependencies: - vite: 2.5.1 + vite: 2.4.3 webpack-virtual-modules: 0.4.3 dev: true @@ -3104,7 +3098,7 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-plugin-components/0.13.2_vite@2.5.1: + /vite-plugin-components/0.13.2_vite@2.4.3: resolution: {integrity: sha512-Fv5iTlZUvqUUjODdAkTadijobcys+SvrtYclj27/SCE7b4LtwNySd+nHvJcGI/GsL8npTdccj2IRwGsWLrTcvQ==} peerDependencies: vite: ^2.0.0 @@ -3113,7 +3107,7 @@ packages: fast-glob: 3.2.7 magic-string: 0.25.7 minimatch: 3.0.4 - vite: 2.5.1 + vite: 2.4.3 transitivePeerDependencies: - supports-color dev: true @@ -3136,7 +3130,7 @@ packages: vue-template-es2015-compiler: 1.9.1 dev: true - /vite-plugin-windicss/1.2.8_vite@2.5.1: + /vite-plugin-windicss/1.2.8_vite@2.4.3: resolution: {integrity: sha512-KLoFfsEh5RAyw2OjW+lrIdgkRAMa9KM1sKPYf8pYgVIj4PL6xBbJlbvWOZnZdW1rFjLtF3KzPT35HEmj6MV8XQ==} peerDependencies: vite: ^2.0.1 @@ -3144,15 +3138,15 @@ packages: '@windicss/plugin-utils': 1.2.8 chalk: 4.1.2 debug: 4.3.2 - vite: 2.5.1 + vite: 2.4.3 windicss: 3.1.7 transitivePeerDependencies: - supports-color dev: true - /vite/2.5.1: - resolution: {integrity: sha512-FwmLbbz8MB1pBs9dKoRDgpiqoijif8hSK1+NNUYc12/cnf+pM2UFhhQ1rcpXgbMhm/5c2USZdVAf0FSkSxaFDA==} - engines: {node: '>=12.2.0'} + /vite/2.4.3: + resolution: {integrity: sha512-iT6NPeiUUZ2FkzC3eazytOEMRaM4J+xgRQcNcpRcbmfYjakCFP4WKPJpeEz1U5JEKHAtwv3ZBQketQUFhFU3ng==} + engines: {node: '>=12.0.0'} hasBin: true dependencies: esbuild: 0.12.21 @@ -3196,16 +3190,6 @@ packages: - supports-color dev: true - /vue-global-api/0.4.1_vue@3.2.4: - resolution: {integrity: sha512-283vpYOhVHJCpMkjNVEwZdgaAb+Y93zFaXGAWTI378MLoNuwQydjD/BAy1e81QYEmyA+JbxqcmMZVWcM9rbriw==} - dependencies: - eslint-config-vue-global-api: 0.4.1 - vue-demi: 0.11.3_vue@3.2.4 - transitivePeerDependencies: - - '@vue/composition-api' - - vue - dev: true - /vue-template-es2015-compiler/1.9.1: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} dev: true From 3ad1f2d97f2e81ca7340feb1bc11566f07910374 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Tue, 24 Aug 2021 23:52:38 +0800 Subject: [PATCH 043/105] fix: context script dev watch --- package.json | 2 +- vite.config.content.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 47fe737..a88b36c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "dev": "npm run clear && cross-env NODE_ENV=development run-p dev:*", "dev:prepare": "esno scripts/prepare.ts", "dev:web": "vite", - "dev:js": "npm run build:js", + "dev:js": "npm run build:js -- --mode development", "build": "cross-env NODE_ENV=production run-s clear build:web build:prepare build:js", "build:prepare": "esno scripts/prepare.ts", "build:web": "vite build", diff --git a/vite.config.content.ts b/vite.config.content.ts index 1a3e30e..d171293 100644 --- a/vite.config.content.ts +++ b/vite.config.content.ts @@ -6,7 +6,12 @@ import { r, isDev } from './scripts/utils' export default defineConfig({ build: { watch: isDev - ? { include: r('src/contentScripts') } + ? { + include: [ + r('src/contentScripts/**/*'), + r('src/components/**/*'), + ], + } : undefined, outDir: r('extension/dist/contentScripts'), cssCodeSplit: false, From 98d258ae72d9bf7dc6a7af03b8f016ba5ba40710 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 25 Aug 2021 00:05:57 +0800 Subject: [PATCH 044/105] fix: change back to non-shadow mount --- src/contentScripts/Content.vue | 11 ++++++++--- src/contentScripts/index.ts | 7 ++----- windi.config.ts | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/contentScripts/Content.vue b/src/contentScripts/Content.vue index 0ed5590..cf5dc3d 100644 --- a/src/contentScripts/Content.vue +++ b/src/contentScripts/Content.vue @@ -1,10 +1,15 @@ diff --git a/src/contentScripts/index.ts b/src/contentScripts/index.ts index 5c23540..8882d58 100644 --- a/src/contentScripts/index.ts +++ b/src/contentScripts/index.ts @@ -11,9 +11,6 @@ onMessage('tab-prev', ({ data }) => { }) // mount component to context window -const container = document.createElement('div')! -const shadowDOM = container.attachShadow?.({ mode: 'closed' }) || container -const root = document.createElement('div') -shadowDOM.appendChild(root) +const container = document.createElement('div') document.body.appendChild(container) -createApp(App, { globalWindow: window }).mount(root) +createApp(App).mount(container) diff --git a/windi.config.ts b/windi.config.ts index 65d6d54..d08acf5 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -6,7 +6,7 @@ export default defineConfig({ attributify: true, extract: { include: [ - '**/*.{vue,html}', + 'src/**/*.{vue,html}', ], }, }) From 4949e5d09b08a168dda6d5668866d5af77d121b0 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 25 Aug 2021 00:23:28 +0800 Subject: [PATCH 045/105] fix: avoid windicss preflight population --- src/contentScripts/Content.vue | 4 ++-- vite.config.content.ts | 16 +++++++++++++++- vite.config.ts | 19 +++++++++++-------- windi.config.ts | 3 ++- 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/src/contentScripts/Content.vue b/src/contentScripts/Content.vue index cf5dc3d..766bd28 100644 --- a/src/contentScripts/Content.vue +++ b/src/contentScripts/Content.vue @@ -1,7 +1,7 @@ diff --git a/vite.config.content.ts b/vite.config.content.ts index d171293..21f1162 100644 --- a/vite.config.content.ts +++ b/vite.config.content.ts @@ -1,9 +1,12 @@ import { defineConfig } from 'vite' +import WindiCSS from 'vite-plugin-windicss' import { sharedConfig } from './vite.config' import { r, isDev } from './scripts/utils' +import windiConfig from './windi.config' // bundling the content script using Vite export default defineConfig({ + ...sharedConfig, build: { watch: isDev ? { @@ -27,5 +30,16 @@ export default defineConfig({ }, }, }, - ...sharedConfig, + plugins: [ + ...sharedConfig.plugins!, + + // https://github.com/antfu/vite-plugin-windicss + WindiCSS({ + config: { + ...windiConfig, + // disable preflight to avoid css population + // preflight: false, + }, + }), + ], }) diff --git a/vite.config.ts b/vite.config.ts index 9b16483..8b7f375 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from 'vite' +import { defineConfig, UserConfig } from 'vite' import Vue from '@vitejs/plugin-vue' import ViteIcons, { ViteIconsResolver } from 'vite-plugin-icons' import ViteComponents from 'vite-plugin-components' @@ -7,7 +7,7 @@ import AutoImport from 'unplugin-auto-import/vite' import windiConfig from './windi.config' import { r, port, isDev } from './scripts/utils' -export const sharedConfig = defineConfig({ +export const sharedConfig: UserConfig = { root: r('src'), resolve: { alias: { @@ -40,11 +40,6 @@ export const sharedConfig = defineConfig({ // https://github.com/antfu/vite-plugin-icons ViteIcons(), - // https://github.com/antfu/vite-plugin-windicss - WindiCSS({ - config: windiConfig, - }), - // rewrite assets to use relative path { name: 'assets-rewrite', @@ -64,7 +59,7 @@ export const sharedConfig = defineConfig({ 'vue-demi', ], }, -}) +} export default defineConfig(({ command }) => ({ ...sharedConfig, @@ -91,4 +86,12 @@ export default defineConfig(({ command }) => ({ }, }, }, + plugins: [ + ...sharedConfig.plugins!, + + // https://github.com/antfu/vite-plugin-windicss + WindiCSS({ + config: windiConfig, + }), + ], })) diff --git a/windi.config.ts b/windi.config.ts index d08acf5..c8d8ca7 100644 --- a/windi.config.ts +++ b/windi.config.ts @@ -1,3 +1,4 @@ +import { resolve } from 'path' import { defineConfig } from 'windicss/helpers' export default defineConfig({ @@ -6,7 +7,7 @@ export default defineConfig({ attributify: true, extract: { include: [ - 'src/**/*.{vue,html}', + resolve(__dirname, 'src/**/*.{vue,html}'), ], }, }) From 01b544be88f6afaea9331c5d87480daa37b45c6d Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Wed, 25 Aug 2021 01:18:10 +0800 Subject: [PATCH 046/105] fix: disable preflight for context script --- package.json | 8 +- pnpm-lock.yaml | 372 ++++++++++++++++++++++++++------- src/contentScripts/Content.vue | 2 +- vite.config.content.ts | 2 +- 4 files changed, 308 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index a88b36c..0a0ef6c 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "@types/webextension-polyfill": "^0.8.0", "@typescript-eslint/eslint-plugin": "^4.29.3", "@vitejs/plugin-vue": "^1.5.0", - "@vue/compiler-sfc": "^3.2.4", + "@vue/compiler-sfc": "^3.2.6", "@vueuse/core": "^6.0.0", "chokidar": "^3.5.2", "cross-env": "^7.0.3", @@ -35,12 +35,12 @@ "npm-run-all": "^4.1.5", "rimraf": "^3.0.2", "typescript": "^4.3.5", - "unplugin-auto-import": "^0.1.3", + "unplugin-auto-import": "^0.1.4", "vite": "2.4.3", "vite-plugin-components": "^0.13.2", "vite-plugin-icons": "^0.6.5", - "vite-plugin-windicss": "^1.2.8", - "vue": "^3.2.4", + "vite-plugin-windicss": "^1.2.9", + "vue": "^3.2.6", "vue-demi": "^0.11.3", "webext-bridge": "^4.1.1", "webextension-polyfill": "^0.8.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1c0b154..a2b35b3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,7 +8,7 @@ specifiers: '@types/webextension-polyfill': ^0.8.0 '@typescript-eslint/eslint-plugin': ^4.29.3 '@vitejs/plugin-vue': ^1.5.0 - '@vue/compiler-sfc': ^3.2.4 + '@vue/compiler-sfc': ^3.2.6 '@vueuse/core': ^6.0.0 chokidar: ^3.5.2 cross-env: ^7.0.3 @@ -19,12 +19,12 @@ specifiers: npm-run-all: ^4.1.5 rimraf: ^3.0.2 typescript: ^4.3.5 - unplugin-auto-import: ^0.1.3 + unplugin-auto-import: ^0.1.4 vite: 2.4.3 vite-plugin-components: ^0.13.2 vite-plugin-icons: ^0.6.5 - vite-plugin-windicss: ^1.2.8 - vue: ^3.2.4 + vite-plugin-windicss: ^1.2.9 + vue: ^3.2.6 vue-demi: ^0.11.3 webext-bridge: ^4.1.1 webextension-polyfill: ^0.8.0 @@ -36,9 +36,9 @@ devDependencies: '@types/node': 16.7.1 '@types/webextension-polyfill': 0.8.0 '@typescript-eslint/eslint-plugin': 4.29.3_eslint@7.32.0+typescript@4.3.5 - '@vitejs/plugin-vue': 1.5.0_@vue+compiler-sfc@3.2.4 - '@vue/compiler-sfc': 3.2.4 - '@vueuse/core': 6.0.0_vue@3.2.4 + '@vitejs/plugin-vue': 1.5.0_@vue+compiler-sfc@3.2.6 + '@vue/compiler-sfc': 3.2.6 + '@vueuse/core': 6.0.0_vue@3.2.6 chokidar: 3.5.2 cross-env: 7.0.3 eslint: 7.32.0 @@ -48,13 +48,13 @@ devDependencies: npm-run-all: 4.1.5 rimraf: 3.0.2 typescript: 4.3.5 - unplugin-auto-import: 0.1.3_vite@2.4.3 + unplugin-auto-import: 0.1.4_vite@2.4.3 vite: 2.4.3 vite-plugin-components: 0.13.2_vite@2.4.3 - vite-plugin-icons: 0.6.5_927b6aa92e35a8f1cb1822fc1487e830 - vite-plugin-windicss: 1.2.8_vite@2.4.3 - vue: 3.2.4 - vue-demi: 0.11.3_vue@3.2.4 + vite-plugin-icons: 0.6.5_c6241b413592f3a4d00435f64bc75d16 + vite-plugin-windicss: 1.2.9_typescript@4.3.5+vite@2.4.3 + vue: 3.2.6 + vue-demi: 0.11.3_vue@3.2.6 webext-bridge: 4.1.1 webextension-polyfill: 0.8.0 @@ -666,42 +666,43 @@ packages: eslint-visitor-keys: 2.1.0 dev: true - /@vitejs/plugin-vue/1.5.0_@vue+compiler-sfc@3.2.4: + /@vitejs/plugin-vue/1.5.0_@vue+compiler-sfc@3.2.6: resolution: {integrity: sha512-DwTvr9J/SSYHsrTiYTWAaUn0OnqgdINlfuhtxpWHcJVUtxGt07zZylV/ITjfeYgdcUCi0oLD+n9lwLnxlYSGtA==} engines: {node: '>=12.0.0'} peerDependencies: '@vue/compiler-sfc': ^3.2.0 dependencies: - '@vue/compiler-sfc': 3.2.4 + '@vue/compiler-sfc': 3.2.6 dev: true - /@vue/compiler-core/3.2.4: - resolution: {integrity: sha512-c8NuQq7mUXXxA4iqD5VUKpyVeklK53+DMbojYMyZ0VPPrb0BUWrZWFiqSDT+MFDv0f6Hv3QuLiHWb1BWMXBbrw==} + /@vue/compiler-core/3.2.6: + resolution: {integrity: sha512-vbwnz7+OhtLO5p5i630fTuQCL+MlUpEMTKHuX+RfetQ+3pFCkItt2JUH+9yMaBG2Hkz6av+T9mwN/acvtIwpbw==} dependencies: '@babel/parser': 7.15.3 '@babel/types': 7.15.0 - '@vue/shared': 3.2.4 + '@vue/shared': 3.2.6 estree-walker: 2.0.2 source-map: 0.6.1 dev: true - /@vue/compiler-dom/3.2.4: - resolution: {integrity: sha512-uj1nwO4794fw2YsYas5QT+FU/YGrXbS0Qk+1c7Kp1kV7idhZIghWLTjyvYibpGoseFbYLPd+sW2/noJG5H04EQ==} + /@vue/compiler-dom/3.2.6: + resolution: {integrity: sha512-+a/3oBAzFIXhHt8L5IHJOTP4a5egzvpXYyi13jR7CUYOR1S+Zzv7vBWKYBnKyJLwnrxTZnTQVjeHCgJq743XKg==} dependencies: - '@vue/compiler-core': 3.2.4 - '@vue/shared': 3.2.4 + '@vue/compiler-core': 3.2.6 + '@vue/shared': 3.2.6 dev: true - /@vue/compiler-sfc/3.2.4: - resolution: {integrity: sha512-GM+ouDdDzhqgkLmBH4bgq4kiZxJQArSppJiZHWHIx9XRaefHLmc1LBNPmN8ivm4SVfi2i7M2t9k8ZnjsScgzPQ==} + /@vue/compiler-sfc/3.2.6: + resolution: {integrity: sha512-Ariz1eDsf+2fw6oWXVwnBNtfKHav72RjlWXpEgozYBLnfRPzP+7jhJRw4Nq0OjSsLx2HqjF3QX7HutTjYB0/eA==} dependencies: '@babel/parser': 7.15.3 '@babel/types': 7.15.0 '@types/estree': 0.0.48 - '@vue/compiler-core': 3.2.4 - '@vue/compiler-dom': 3.2.4 - '@vue/compiler-ssr': 3.2.4 - '@vue/shared': 3.2.4 + '@vue/compiler-core': 3.2.6 + '@vue/compiler-dom': 3.2.6 + '@vue/compiler-ssr': 3.2.6 + '@vue/ref-transform': 3.2.6 + '@vue/shared': 3.2.6 consolidate: 0.16.0 estree-walker: 2.0.2 hash-sum: 2.0.0 @@ -714,39 +715,49 @@ packages: source-map: 0.6.1 dev: true - /@vue/compiler-ssr/3.2.4: - resolution: {integrity: sha512-bKZuXu9/4XwsFHFWIKQK+5kN7mxIIWmMmT2L4VVek7cvY/vm3p4WTsXYDGZJy0htOTXvM2ifr6sflg012T0hsw==} + /@vue/compiler-ssr/3.2.6: + resolution: {integrity: sha512-A7IKRKHSyPnTC4w1FxHkjzoyjXInsXkcs/oX22nBQ+6AWlXj2Tt1le96CWPOXy5vYlsTYkF1IgfBaKIdeN/39g==} dependencies: - '@vue/compiler-dom': 3.2.4 - '@vue/shared': 3.2.4 + '@vue/compiler-dom': 3.2.6 + '@vue/shared': 3.2.6 dev: true - /@vue/reactivity/3.2.4: - resolution: {integrity: sha512-ljWTR0hr8Tn09hM2tlmWxZzCBPlgGLnq/k8K8X6EcJhtV+C8OzFySnbWqMWataojbrQOocThwsC8awKthSl2uQ==} + /@vue/reactivity/3.2.6: + resolution: {integrity: sha512-8vIDD2wpCnYisNNZjmcIj+Rixn0uhZNY3G1vzlgdVdLygeRSuFjkmnZk6WwvGzUWpKfnG0e/NUySM3mVi59hAA==} dependencies: - '@vue/shared': 3.2.4 + '@vue/shared': 3.2.6 dev: true - /@vue/runtime-core/3.2.4: - resolution: {integrity: sha512-W6PtEOs8P8jKYPo3JwaMAozZQivxInUleGfNwI2pK1t8ZLZIxn4kAf7p4VF4jJdQB8SZBzpfWdLUc06j7IOmpQ==} + /@vue/ref-transform/3.2.6: + resolution: {integrity: sha512-ie39+Y4nbirDLvH+WEq6Eo/l3n3mFATayqR+kEMSphrtMW6Uh/eEMx1Gk2Jnf82zmj3VLRq7dnmPx72JLcBYkQ==} dependencies: - '@vue/reactivity': 3.2.4 - '@vue/shared': 3.2.4 + '@babel/parser': 7.15.3 + '@vue/compiler-core': 3.2.6 + '@vue/shared': 3.2.6 + estree-walker: 2.0.2 + magic-string: 0.25.7 + dev: true + + /@vue/runtime-core/3.2.6: + resolution: {integrity: sha512-3mqtgpj/YSGFxtvTufSERRApo92B16JNNxz9p+5eG6PPuqTmuRJz214MqhKBEgLEAIQ6R6YCbd83ZDtjQnyw2g==} + dependencies: + '@vue/reactivity': 3.2.6 + '@vue/shared': 3.2.6 dev: true - /@vue/runtime-dom/3.2.4: - resolution: {integrity: sha512-HcVtLyn2SGwsf6BFPwkvDPDOhOqkOKcfHDpBp5R1coX+qMsOFrY8lJnGXIY+JnxqFjND00E9+u+lq5cs/W7ooA==} + /@vue/runtime-dom/3.2.6: + resolution: {integrity: sha512-fq33urnP0BNCGm2O3KCzkJlKIHI80C94HJ4qDZbjsTtxyOn5IHqwKSqXVN3RQvO6epcQH+sWS+JNwcNDPzoasg==} dependencies: - '@vue/runtime-core': 3.2.4 - '@vue/shared': 3.2.4 + '@vue/runtime-core': 3.2.6 + '@vue/shared': 3.2.6 csstype: 2.6.17 dev: true - /@vue/shared/3.2.4: - resolution: {integrity: sha512-j2j1MRmjalVKr3YBTxl/BClSIc8UQ8NnPpLYclxerK65JIowI4O7n8O8lElveEtEoHxy1d7BelPUDI0Q4bumqg==} + /@vue/shared/3.2.6: + resolution: {integrity: sha512-uwX0Qs2e6kdF+WmxwuxJxOnKs/wEkMArtYpHSm7W+VY/23Tl8syMRyjnzEeXrNCAP0/8HZxEGkHJsjPEDNRuHw==} dev: true - /@vueuse/core/6.0.0_vue@3.2.4: + /@vueuse/core/6.0.0_vue@3.2.6: resolution: {integrity: sha512-PuBfNo/Zv+NkLcZaYWBA1WjqxQhTDC0DMQpoAIJdo/GFul/1SpBbONhUho2zqtOmq8vyGuK200wNFvyA4YUAMg==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -757,12 +768,12 @@ packages: vue: optional: true dependencies: - '@vueuse/shared': 6.0.0_vue@3.2.4 - vue: 3.2.4 - vue-demi: 0.11.3_vue@3.2.4 + '@vueuse/shared': 6.0.0_vue@3.2.6 + vue: 3.2.6 + vue-demi: 0.11.3_vue@3.2.6 dev: true - /@vueuse/shared/6.0.0_vue@3.2.4: + /@vueuse/shared/6.0.0_vue@3.2.6: resolution: {integrity: sha512-PLjjqL8bxI5q86qk/ifXy572nfQE3rJc1RMem+dKcGayaagMnC4kXHEt64V98DVielSwr2FuYaeFodi4KJrvdg==} peerDependencies: '@vue/composition-api': ^1.1.0 @@ -773,25 +784,28 @@ packages: vue: optional: true dependencies: - vue: 3.2.4 - vue-demi: 0.11.3_vue@3.2.4 + vue: 3.2.6 + vue-demi: 0.11.3_vue@3.2.6 dev: true - /@windicss/config/1.2.8: - resolution: {integrity: sha512-v9vyIiG8GYUTYo874ExlVu1i6vlsWo4RFZWiDGfPKdN7GBRCcJcEV+X+j3AZPPIsx5JvD5TXQlDvkbYIqYWYbQ==} + /@windicss/config/1.2.9_typescript@4.3.5: + resolution: {integrity: sha512-WlsVgzoSIiESt1BnAVlNxHx3s/hLj3qL+Udrcvzxha94hSmnXu4Jt5izWlYJRRVEFqts8b0aK7qPTV0nBwOZXw==} dependencies: debug: 4.3.2 jiti: 1.11.0 + tsup: 4.14.0_typescript@4.3.5 windicss: 3.1.7 transitivePeerDependencies: - supports-color + - ts-node + - typescript dev: true - /@windicss/plugin-utils/1.2.8: - resolution: {integrity: sha512-JwnFMJMCX/+Re4iItozvbWC3yz/7WJNOJJkgDKQ9X5Ran1sfNjx9m3LCijsYLf0MULCplZJIh/HzdxjxZMNFUA==} + /@windicss/plugin-utils/1.2.9_typescript@4.3.5: + resolution: {integrity: sha512-foz0nQl/I1rB2/fEi6R8zda0ZcaibngY8PNkHYLLpUGRwNz39qXRYRR+ps3Sc1AAkW/ixbzKK1UeTSImfWgaSQ==} dependencies: '@antfu/utils': 0.2.4 - '@windicss/config': 1.2.8 + '@windicss/config': 1.2.9_typescript@4.3.5 debug: 4.3.2 fast-glob: 3.2.7 magic-string: 0.25.7 @@ -799,6 +813,8 @@ packages: windicss: 3.1.7 transitivePeerDependencies: - supports-color + - ts-node + - typescript dev: true /acorn-jsx/5.3.2_acorn@7.4.1: @@ -857,6 +873,10 @@ packages: color-convert: 2.0.1 dev: true + /any-promise/1.3.0: + resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} + dev: true + /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} @@ -959,6 +979,11 @@ packages: engines: {node: '>=6'} dev: true + /cac/6.7.3: + resolution: {integrity: sha512-ECVqVZh74qgSuZG9YOt2OJPI3wGcf+EwwuF/XIOYqZBD0KZYLtgPWqFPxmDPQ6joxI1nOlvVgRV6VT53Ooyocg==} + engines: {node: '>=8'} + dev: true + /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -1043,6 +1068,11 @@ packages: resolution: {integrity: sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==} dev: true + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /concat-map/0.0.1: resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} dev: true @@ -1640,6 +1670,21 @@ packages: engines: {node: '>=0.10.0'} dev: true + /execa/5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.3 + strip-final-newline: 2.0.0 + dev: true + /fast-deep-equal/3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true @@ -1757,6 +1802,11 @@ packages: has-symbols: 1.0.2 dev: true + /get-stream/6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + dev: true + /glob-parent/5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1764,6 +1814,17 @@ packages: is-glob: 4.0.1 dev: true + /glob/7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.0.4 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob/7.1.7: resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} dependencies: @@ -1853,6 +1914,11 @@ packages: entities: 2.2.0 dev: true + /human-signals/2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + dev: true + /icss-replace-symbols/1.1.0: resolution: {integrity: sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=} dev: true @@ -1876,6 +1942,13 @@ packages: engines: {node: '>= 4'} dev: true + /import-cwd/3.0.0: + resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} + engines: {node: '>=8'} + dependencies: + import-from: 3.0.0 + dev: true + /import-fresh/3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -1884,6 +1957,13 @@ packages: resolve-from: 4.0.0 dev: true + /import-from/3.0.0: + resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} + engines: {node: '>=8'} + dependencies: + resolve-from: 5.0.0 + dev: true + /imurmurhash/0.1.4: resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} engines: {node: '>=0.8.19'} @@ -2001,6 +2081,11 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + dev: true + /is-string/1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} @@ -2024,6 +2109,11 @@ packages: hasBin: true dev: true + /joycon/3.0.1: + resolution: {integrity: sha512-SJcJNBg32dGgxhPtM0wQqxqV0ax9k/9TaUskGDSJkSFSQOEWWvQ3zzWdGQRIUry2j1zA5+ReH13t0Mf3StuVZA==} + engines: {node: '>=10'} + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true @@ -2121,6 +2211,11 @@ packages: type-check: 0.4.0 dev: true + /lilconfig/2.0.3: + resolution: {integrity: sha512-EHKqr/+ZvdKCifpNrJCKxBTgk5XupZA3y/aCPY9mxfgBzmgh93Mt/WqjjQ38oMxXuvDokaKiM3lAgvSH2sjtHg==} + engines: {node: '>=10'} + dev: true + /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} dev: true @@ -2216,6 +2311,10 @@ packages: source-map: 0.6.1 dev: true + /merge-stream/2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + dev: true + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2229,6 +2328,11 @@ packages: picomatch: 2.3.0 dev: true + /mimic-fn/2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + dev: true + /minimatch/3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: @@ -2255,6 +2359,14 @@ packages: resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} dev: true + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nanoevents/6.0.0: resolution: {integrity: sha512-0ASElaiZR21yBjhmBiRboCXeNirfIVuiKIxikn6a3H/9zUL+q2HBq+4B3Cb2UdCctoGx5YSwxTXypslD/olJKA==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} @@ -2274,6 +2386,11 @@ packages: resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} dev: true + /node-modules-regexp/1.0.0: + resolution: {integrity: sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=} + engines: {node: '>=0.10.0'} + dev: true + /node-releases/1.1.75: resolution: {integrity: sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==} dev: true @@ -2308,6 +2425,13 @@ packages: string.prototype.padend: 3.1.2 dev: true + /npm-run-path/4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + dependencies: + path-key: 3.1.1 + dev: true + /object-assign/4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} @@ -2366,6 +2490,13 @@ packages: wrappy: 1.0.2 dev: true + /onetime/5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + dependencies: + mimic-fn: 2.1.0 + dev: true + /optionator/0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -2498,6 +2629,13 @@ packages: engines: {node: '>=4'} dev: true + /pirates/4.0.1: + resolution: {integrity: sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==} + engines: {node: '>= 6'} + dependencies: + node-modules-regexp: 1.0.0 + dev: true + /pkg-dir/2.0.0: resolution: {integrity: sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=} engines: {node: '>=4'} @@ -2517,6 +2655,20 @@ packages: engines: {node: '>=4'} dev: true + /postcss-load-config/3.1.0: + resolution: {integrity: sha512-ipM8Ds01ZUophjDTQYSVP70slFSYg3T0/zyfII5vzhN6V57YSxMgG5syXuwi5VtS8wSf3iL30v0uBdoIVx4Q0g==} + engines: {node: '>= 10'} + peerDependencies: + ts-node: '>=9.0.0' + peerDependenciesMeta: + ts-node: + optional: true + dependencies: + import-cwd: 3.0.0 + lilconfig: 2.0.3 + yaml: 1.10.2 + dev: true + /postcss-modules-extract-imports/3.0.0_postcss@8.3.6: resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} engines: {node: ^10 || ^12 || >= 14} @@ -2701,6 +2853,11 @@ packages: engines: {node: '>=4'} dev: true + /resolve-from/5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + dev: true + /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} dependencies: @@ -2812,6 +2969,10 @@ packages: object-inspect: 1.11.0 dev: true + /signal-exit/3.0.3: + resolution: {integrity: sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==} + dev: true + /slash/3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -2932,11 +3093,29 @@ packages: engines: {node: '>=4'} dev: true + /strip-final-newline/2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + dev: true + /strip-json-comments/3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true + /sucrase/3.20.1: + resolution: {integrity: sha512-BIG59HaJOxNct9Va6KvT5yzBA/rcMGetzvZyTx0ZdCcspIbpJTPS64zuAfYlJuOj+3WaI5JOdA+F0bJQQi8ZiQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.1.6 + mz: 2.7.0 + pirates: 4.0.1 + ts-interface-checker: 0.1.13 + dev: true + /supports-color/5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -2967,6 +3146,19 @@ packages: resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} dev: true + /thenify-all/1.6.0: + resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /tiny-uid/1.1.1: resolution: {integrity: sha512-YRtEXpxokCLMMR46Ml/gen6jDFjZpyo9BMlEGmEpElA+zbCKtoTTikvvDTKR4Gro6tNij3ZA+60i9UiCYKKVyw==} dev: true @@ -2983,6 +3175,15 @@ packages: is-number: 7.0.0 dev: true + /tree-kill/1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + dev: true + + /ts-interface-checker/0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + /tsconfig-paths/3.10.1: resolution: {integrity: sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q==} dependencies: @@ -2995,6 +3196,34 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true + /tsup/4.14.0_typescript@4.3.5: + resolution: {integrity: sha512-77rWdzhikTP9mQ34XMRzK83tw++LF6f4ox/HNERlgesB7g6g5VQ1iJlueG9O0P9HAZGVKavUwyoZv0+322p6rg==} + hasBin: true + peerDependencies: + typescript: ^4.2.3 + peerDependenciesMeta: + typescript: + optional: true + dependencies: + cac: 6.7.3 + chalk: 4.1.2 + chokidar: 3.5.2 + debug: 4.3.2 + esbuild: 0.12.21 + execa: 5.1.1 + globby: 11.0.4 + joycon: 3.0.1 + postcss-load-config: 3.1.0 + resolve-from: 5.0.0 + rollup: 2.56.2 + sucrase: 3.20.1 + tree-kill: 1.2.2 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + - ts-node + dev: true + /tsutils/3.21.0_typescript@4.3.5: resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} @@ -3047,11 +3276,12 @@ packages: engines: {node: '>= 10.0.0'} dev: true - /unplugin-auto-import/0.1.3_vite@2.4.3: - resolution: {integrity: sha512-lNrOTxa1fjkBHwkY47b8Cmtm0jmM/iI333DCcXiVyXYwLLULOOqo5eXUjjUyIGbnISJsJ8fhhPxYIwPx8JgaVg==} + /unplugin-auto-import/0.1.4_vite@2.4.3: + resolution: {integrity: sha512-kRSMAm5p+EpOj3zJ46AfzZCAWEvmkg/TFz7eNQDMsYiUnK87mrFlmYkt/p/6XOVu+i4pKjjfrE1/nM95mPwC4A==} dependencies: '@antfu/utils': 0.2.4 '@rollup/pluginutils': 4.1.1 + magic-string: 0.25.7 unplugin: 0.0.8_vite@2.4.3 transitivePeerDependencies: - rollup @@ -3112,7 +3342,7 @@ packages: - supports-color dev: true - /vite-plugin-icons/0.6.5_927b6aa92e35a8f1cb1822fc1487e830: + /vite-plugin-icons/0.6.5_c6241b413592f3a4d00435f64bc75d16: resolution: {integrity: sha512-lfePr8juO2ajp0571iLL+9zIoyBD9nSSSHlC4JYXbAeMOJB6WTP+Vdc2gze8yI8JRO+Z0TXCCvvL9bPgvkI4Cg==} peerDependencies: '@iconify/json': '*' @@ -3126,22 +3356,24 @@ packages: dependencies: '@iconify/json': 1.1.392 '@iconify/json-tools': 1.0.10 - '@vue/compiler-sfc': 3.2.4 + '@vue/compiler-sfc': 3.2.6 vue-template-es2015-compiler: 1.9.1 dev: true - /vite-plugin-windicss/1.2.8_vite@2.4.3: - resolution: {integrity: sha512-KLoFfsEh5RAyw2OjW+lrIdgkRAMa9KM1sKPYf8pYgVIj4PL6xBbJlbvWOZnZdW1rFjLtF3KzPT35HEmj6MV8XQ==} + /vite-plugin-windicss/1.2.9_typescript@4.3.5+vite@2.4.3: + resolution: {integrity: sha512-DjHstgNFCh7O26JcLqjeLG/WLMD7P1fd8haELM79pF9XTDJMmTkcLhfr6SMdsESewa+nFIYl3XtRqqcUwAOuWw==} peerDependencies: vite: ^2.0.1 dependencies: - '@windicss/plugin-utils': 1.2.8 + '@windicss/plugin-utils': 1.2.9_typescript@4.3.5 chalk: 4.1.2 debug: 4.3.2 vite: 2.4.3 windicss: 3.1.7 transitivePeerDependencies: - supports-color + - ts-node + - typescript dev: true /vite/2.4.3: @@ -3157,7 +3389,7 @@ packages: fsevents: 2.3.2 dev: true - /vue-demi/0.11.3_vue@3.2.4: + /vue-demi/0.11.3_vue@3.2.6: resolution: {integrity: sha512-DpM0TTMpclRZDV6AIacgg837zrim/C9Zn+2ztXBs9hsESJN9vC83ztjTe4KC4HgJuVle8YUjPp7HTwWtwOHfmg==} engines: {node: '>=12'} hasBin: true @@ -3169,7 +3401,7 @@ packages: '@vue/composition-api': optional: true dependencies: - vue: 3.2.4 + vue: 3.2.6 dev: true /vue-eslint-parser/7.10.0_eslint@7.32.0: @@ -3194,12 +3426,12 @@ packages: resolution: {integrity: sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==} dev: true - /vue/3.2.4: - resolution: {integrity: sha512-rNCFmoewm8IwmTK0nj3ysKq53iRpNEFKoBJ4inar6tIh7Oj7juubS39RI8UI+VE7x+Cs2z6PBsadtZu7z2qppg==} + /vue/3.2.6: + resolution: {integrity: sha512-Zlb3LMemQS3Xxa6xPsecu45bNjr1hxO8Bh5FUmE0Dr6Ot0znZBKiM47rK6O7FTcakxOnvVN+NTXWJF6u8ajpCQ==} dependencies: - '@vue/compiler-dom': 3.2.4 - '@vue/runtime-dom': 3.2.4 - '@vue/shared': 3.2.4 + '@vue/compiler-dom': 3.2.6 + '@vue/runtime-dom': 3.2.6 + '@vue/shared': 3.2.6 dev: true /webext-bridge/4.1.1: diff --git a/src/contentScripts/Content.vue b/src/contentScripts/Content.vue index 766bd28..b4cd999 100644 --- a/src/contentScripts/Content.vue +++ b/src/contentScripts/Content.vue @@ -1,6 +1,6 @@