├── .editorconfig ├── .github └── FUNDING.yml ├── .gitignore ├── .npmrc ├── .prettierrc.js ├── CHANGELOG.md ├── LICENSE ├── README.md ├── README.zh_CN.md ├── package.json ├── playgrounds ├── vue2 │ ├── .gitignore │ ├── README.md │ ├── jsconfig.json │ ├── package.json │ ├── pnpm-lock.yaml │ ├── public │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── reset.css │ │ ├── components │ │ │ └── button.vue │ │ └── main.js │ └── vue.config.js └── vue3 │ ├── .gitignore │ ├── .vscode │ └── extensions.json │ ├── README.md │ ├── index.html │ ├── package.json │ ├── pnpm-lock.yaml │ ├── public │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── assets │ │ └── reset.css │ ├── components │ │ └── button.vue │ ├── env.d.ts │ └── main.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── pnpm-lock.yaml ├── src ├── convert.ts ├── index.ts └── types.ts ├── tsconfig.json └── tsup.config.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | trim_trailing_whitespace = true 7 | insert_final_newline = true 8 | 9 | [*.md] 10 | insert_final_newline = false 11 | trim_trailing_whitespace = false 12 | 13 | [*.{js,jsx,json,ts,tsx,yml}] 14 | indent_size = 2 15 | indent_style = space 16 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: xiaoxian521 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | babel.config.js 9 | 10 | # Diagnostic reports (https://nodejs.org/api/report.html) 11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 12 | 13 | # Runtime data 14 | pids 15 | *.pid 16 | *.seed 17 | *.pid.lock 18 | 19 | # Directory for instrumented libs generated by jscoverage/JSCover 20 | lib-cov 21 | 22 | # Coverage directory used by tools like istanbul 23 | coverage 24 | *.lcov 25 | 26 | # nyc test coverage 27 | .nyc_output 28 | 29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 30 | .grunt 31 | 32 | # Bower dependency directory (https://bower.io/) 33 | bower_components 34 | 35 | # node-waf configuration 36 | .lock-wscript 37 | 38 | # Compiled binary addons (https://nodejs.org/api/addons.html) 39 | build/Release 40 | 41 | # Dependency directories 42 | node_modules/ 43 | jspm_packages/ 44 | 45 | # TypeScript v1 declaration files 46 | typings/ 47 | 48 | # TypeScript cache 49 | *.tsbuildinfo 50 | 51 | # Optional npm cache directory 52 | .npm 53 | 54 | # Optional eslint cache 55 | .eslintcache 56 | 57 | # Microbundle cache 58 | .rpt2_cache/ 59 | .rts2_cache_cjs/ 60 | .rts2_cache_es/ 61 | .rts2_cache_umd/ 62 | 63 | # Optional REPL history 64 | .node_repl_history 65 | 66 | # Output of 'npm pack' 67 | *.tgz 68 | 69 | # Yarn Integrity file 70 | .yarn-integrity 71 | 72 | # dotenv environment variables file 73 | .env 74 | .env.test 75 | 76 | # parcel-bundler cache (https://parceljs.org/) 77 | .cache 78 | 79 | # Next.js build output 80 | .next 81 | 82 | # Nuxt.js build / generate output 83 | .nuxt 84 | dist 85 | 86 | # Gatsby files 87 | .cache/ 88 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 89 | # https://nextjs.org/blog/next-9-1#public-directory-support 90 | # public 91 | 92 | # vuepress build output 93 | .vuepress/dist 94 | 95 | # Serverless directories 96 | .serverless/ 97 | 98 | # FuseBox cache 99 | .fusebox/ 100 | 101 | # DynamoDB Local files 102 | .dynamodb/ 103 | 104 | # TernJS port file 105 | .tern-port 106 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | strict-peer-dependencies=false -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | bracketSpacing: true, 3 | singleQuote: false, 4 | arrowParens: "avoid", 5 | trailingComma: "none" 6 | } 7 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 2.2.0 (2023-02-13) 2 | 3 | ### 🐞 Bug fixes 4 | 5 | - fix: `version` is declared here 6 | 7 | ## 2.1.0 (2022-08-06) 8 | 9 | ### 🐞 Bug fixes 10 | 11 | - fix: memory does not transmit parameter error 12 | 13 | ## 2.0.0 (2022-06-20) 14 | 15 | ### 🎫 Feat 16 | 17 | - supports vue2 and vue3 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) latest xiaoxian521 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

responsive-storage

2 |

Responsive local storage, supports vue2 and vue3

3 | 4 |

5 | NPM version 6 | NPM Downloads 7 |

8 | 9 | English | [简体中文](./README.zh_CN.md) 10 | 11 | ## 🤔 Original intention of development 12 | 13 | - In some scenarios, we need to store some variables and keep it responsive, there are many solutions, such as [vuex](https://vuex.vuejs.org), [pinia](https://pinia.vuejs.org), but they disappear after refreshing the page, in some cases I want them to exist locally without losing responsiveness, so was born [responsive-storage](https://github.com/xiaoxian521/responsive-storage) 14 | 15 | ## 🚀 Features 16 | 17 | - ⚡ **Strong compatibility**: supports both `vue2` and `vue3`, no need to install additional dependencies 18 | - ⚡ **Fully tree-shaking**: Comes with Tree-shaking, only packages the imported code 19 | - 🧪 **Complete example**: Currently we have added `vue2`, `vue3` examples in the [playgrounds](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds) folder , zero learning usage cost 20 | - 🦾 **Extremely Light**: The source code size is `1.76 KB`, and the footprint of the package size in the project is only calculated in bits 21 | 22 | ## 📦 install 23 | 24 | ```bash 25 | npm install responsive-storage 26 | or 27 | pnpm add responsive-storage 28 | ```` 29 | 30 | ## 🦄 Usage 31 | 32 | ### vue2 33 | 34 | - main.js 35 | ````js 36 | import Storage from "responsive-storage"; 37 | Vue.use(Storage, { 38 | // must pass 39 | version: 2, 40 | // Namespace, optional, default `rs-` (not recommended if there is no special requirement) 41 | nameSpace: "xx_", 42 | // The responsive object that needs to be stored (it should be noted here that if nameSpace is passed, the second parameter of the Storage.getData method must be passed and the value of nameSpace must be the same. If nameSpace is not passed, the second parameter of Storage.getData method parameters can be omitted) 43 | memory: { 44 | starValue: Storage.getData("starValue", 'xx_') ?? 1 45 | } 46 | }); 47 | ```` 48 | 49 | [Click to view the specific usage](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds/vue2) 50 | 51 | ### vue3 52 | 53 | - main.ts 54 | 55 | ```ts 56 | import { createApp } from "vue"; 57 | import App from "./App.vue"; 58 | 59 | import Storage from "responsive-storage"; 60 | const app = createApp(App); 61 | 62 | app.use(Storage, { 63 | memory: { 64 | starValue: Storage.getData("starValue") ?? 1 65 | } 66 | }); 67 | ```` 68 | 69 | [Click to view the specific usage](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds/vue3) 70 | 71 | ## License 72 | 73 | [MIT © xiaoxian521-latest](./LICENSE) -------------------------------------------------------------------------------- /README.zh_CN.md: -------------------------------------------------------------------------------- 1 |

responsive-storage

2 |

响应式本地存储,同时支持vue2和vue3

3 | 4 |

5 | NPM version 6 | NPM Downloads 7 |

8 | 9 | 简体中文 | [English](./README.md) 10 | 11 | ## 🤔 开发初衷 12 | 13 | - 在某些场景下,我们需要存储一些变量并保持响应式,目前有很多解决方案,比如 [vuex](https://vuex.vuejs.org) 、[pinia](https://pinia.vuejs.org),但是它们在刷新页面后就会消失,在某些情况下我想让它们存在本地又不失去响应式,就诞生了 [responsive-storage](https://github.com/xiaoxian521/responsive-storage) 14 | 15 | ## 🚀 特性 16 | 17 | - 🦾 **兼容性强**: 既支持`vue2`,又支持`vue3`,无需安装额外依赖 18 | - ⚡ **完全可摇树**: 自带Tree-shaking,只对引入的代码进行打包 19 | - 🧪 **完善的示例**: 目前我们在 [playgrounds](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds) 文件夹中加入了`vue2`、`vue3`示例,零学习使用成本 20 | - 🕋 **极轻**: 源码大小`1.76 KB`,在项目中打包大小的占用空间仅用比特计算 21 | 22 | ## 📦 安装 23 | 24 | ```bash 25 | npm install responsive-storage 26 | or 27 | pnpm add responsive-storage 28 | ``` 29 | 30 | ## 🦄 用法 31 | 32 | ### vue2 33 | 34 | - main.js 35 | ```js 36 | import Storage from "responsive-storage"; 37 | Vue.use(Storage, { 38 | // 必传 39 | version: 2, 40 | // 命名空间,可不传,默认`rs-`(如果没有特殊需求建议不传) 41 | nameSpace: "xx_", 42 | // 需要存储的响应式对象(这里需要注意一点,如果传了nameSpace,那么Storage.getData方法的第二个参数必传且和nameSpace的值保持一致,如果不传nameSpace的话,Storage.getData方法的第二个参数可不传) 43 | memory: { 44 | starValue: Storage.getData("starValue", 'xx_') ?? 1 45 | } 46 | }); 47 | ``` 48 | 49 | [点击查看具体用法](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds/vue2) 50 | 51 | ### vue3 52 | 53 | - main.ts 54 | 55 | ```ts 56 | import { createApp } from "vue"; 57 | import App from "./App.vue"; 58 | 59 | import Storage from "responsive-storage"; 60 | const app = createApp(App); 61 | 62 | app.use(Storage, { 63 | memory: { 64 | starValue: Storage.getData("starValue") ?? 1 65 | } 66 | }); 67 | ``` 68 | 69 | [点击查看具体用法](https://github.com/xiaoxian521/responsive-storage/tree/main/playgrounds/vue3) 70 | 71 | ## 许可证 72 | 73 | [MIT © xiaoxian521-latest](./LICENSE) -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "responsive-storage", 3 | "version": "2.2.0", 4 | "description": "Responsive local storage, supports vue2 and vue3", 5 | "files": [ 6 | "dist" 7 | ], 8 | "scripts": { 9 | "build": "tsup", 10 | "dev": "tsup --watch", 11 | "dev:2": "cd playgrounds/vue2/ && pnpm dev", 12 | "dev:3": "cd playgrounds/vue3/ && pnpm dev", 13 | "lint": "prettier --write \"src/*.ts\"", 14 | "pub": "pub" 15 | }, 16 | "keywords": [ 17 | "Vue2", 18 | "Vue3", 19 | "storage" 20 | ], 21 | "author": "xiaoxian521", 22 | "license": "MIT", 23 | "main": "dist/index.mjs", 24 | "module": "dist/index.mjs", 25 | "types": "dist/index.d.ts", 26 | "exports": { 27 | ".": { 28 | "import": "./dist/index.mjs", 29 | "types": "./dist/index.d.ts" 30 | } 31 | }, 32 | "sideEffects": false, 33 | "repository": { 34 | "type": "git", 35 | "url": "https://github.com/xiaoxian521/responsive-storage" 36 | }, 37 | "publishConfig": { 38 | "registry": "https://registry.npmjs.org/" 39 | }, 40 | "bugs": { 41 | "url": "https://github.com/xiaoxian521/responsive-storage/issues" 42 | }, 43 | "homepage": "https://github.com/xiaoxian521/responsive-storage/tree/main/#readme", 44 | "devDependencies": { 45 | "@pureadmin/release": "^1.0.0", 46 | "@types/node": "^18.0.0", 47 | "prettier": "^2.7.1", 48 | "tsup": "^6.1.2", 49 | "typescript": "^4.7.4", 50 | "vue": "^3.2.37" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /playgrounds/vue2/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /playgrounds/vue2/README.md: -------------------------------------------------------------------------------- 1 | # vue2 responsive-storage test -------------------------------------------------------------------------------- /playgrounds/vue2/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "baseUrl": "./", 6 | "moduleResolution": "node", 7 | "paths": { 8 | "@/*": [ 9 | "src/*" 10 | ] 11 | }, 12 | "lib": [ 13 | "esnext", 14 | "dom", 15 | "dom.iterable", 16 | "scripthost" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /playgrounds/vue2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "preview": "yarn build && serve -s dist", 9 | "lint": "vue-cli-service lint" 10 | }, 11 | "dependencies": { 12 | "core-js": "^3.8.3", 13 | "element-ui": "^2.15.9", 14 | "responsive-storage": "^2.0.0", 15 | "vue": "2.6.14" 16 | }, 17 | "devDependencies": { 18 | "@babel/core": "^7.12.16", 19 | "@babel/eslint-parser": "^7.12.16", 20 | "@vue/cli-plugin-babel": "~5.0.0", 21 | "@vue/cli-plugin-eslint": "~5.0.0", 22 | "@vue/cli-service": "~5.0.0", 23 | "eslint": "^7.32.0", 24 | "eslint-plugin-vue": "^8.0.3", 25 | "serve": "^13.0.2", 26 | "vue-template-compiler": "2.6.14" 27 | }, 28 | "eslintConfig": { 29 | "root": true, 30 | "env": { 31 | "node": true 32 | }, 33 | "extends": [ 34 | "plugin:vue/essential", 35 | "eslint:recommended" 36 | ], 37 | "parserOptions": { 38 | "parser": "@babel/eslint-parser" 39 | }, 40 | "rules": {} 41 | }, 42 | "browserslist": [ 43 | "> 1%", 44 | "last 2 versions", 45 | "not dead" 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /playgrounds/vue2/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoxian521/responsive-storage/f0e67bb6ccd4671e8bc98af1d0b24fed02b8f2c3/playgrounds/vue2/public/favicon.ico -------------------------------------------------------------------------------- /playgrounds/vue2/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | vue2 responsive-storage test 10 | 11 | 12 | 13 | 17 |
18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /playgrounds/vue2/src/App.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 39 | 40 | 48 | -------------------------------------------------------------------------------- /playgrounds/vue2/src/assets/reset.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #app { 4 | margin: 0; 5 | padding: 0; 6 | width: 100%; 7 | height: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /playgrounds/vue2/src/components/button.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 27 | -------------------------------------------------------------------------------- /playgrounds/vue2/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | 4 | import "./assets/reset.css" 5 | import 'element-ui/lib/theme-chalk/index.css' 6 | 7 | import ElementUI from 'element-ui' 8 | Vue.use(ElementUI) 9 | 10 | import Storage from "../../../dist" 11 | // import Storage from "responsive-storage" 12 | Vue.use(Storage, { 13 | version: 2, 14 | // nameSpace: "test_", 15 | memory: { 16 | // starValue: Storage.getData("starValue", "test_") ?? 1 17 | starValue: Storage.getData("starValue") ?? 1 18 | } 19 | }) 20 | 21 | Vue.config.productionTip = false 22 | 23 | new Vue({ 24 | render: h => h(App), 25 | }).$mount('#app') 26 | -------------------------------------------------------------------------------- /playgrounds/vue2/vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | transpileDependencies: true 4 | }) 5 | -------------------------------------------------------------------------------- /playgrounds/vue3/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /playgrounds/vue3/.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /playgrounds/vue3/README.md: -------------------------------------------------------------------------------- 1 | # vue3 responsive-storage test -------------------------------------------------------------------------------- /playgrounds/vue3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue3 responsive-storage test 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /playgrounds/vue3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "test", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc --noEmit && vite build", 9 | "preview": "vite build && vite preview" 10 | }, 11 | "dependencies": { 12 | "element-plus": "^2.2.6", 13 | "responsive-storage": "^2.0.0", 14 | "vue": "^3.2.37" 15 | }, 16 | "devDependencies": { 17 | "@vitejs/plugin-vue": "^2.3.3", 18 | "typescript": "^4.6.4", 19 | "vite": "^2.9.12", 20 | "vue-tsc": "^0.37.5" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /playgrounds/vue3/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.3 2 | 3 | specifiers: 4 | '@vitejs/plugin-vue': ^2.3.3 5 | element-plus: ^2.2.6 6 | responsive-storage: ^2.0.0 7 | typescript: ^4.6.4 8 | vite: ^2.9.12 9 | vue: ^3.2.37 10 | vue-tsc: ^0.37.5 11 | 12 | dependencies: 13 | element-plus: 2.2.6_vue@3.2.37 14 | responsive-storage: 2.0.0 15 | vue: 3.2.37 16 | 17 | devDependencies: 18 | '@vitejs/plugin-vue': 2.3.3_vite@2.9.12+vue@3.2.37 19 | typescript: 4.7.4 20 | vite: 2.9.12 21 | vue-tsc: 0.37.9_typescript@4.7.4 22 | 23 | packages: 24 | 25 | /@babel/helper-validator-identifier/7.16.7: 26 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 27 | engines: {node: '>=6.9.0'} 28 | 29 | /@babel/parser/7.18.5: 30 | resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} 31 | engines: {node: '>=6.0.0'} 32 | hasBin: true 33 | dependencies: 34 | '@babel/types': 7.18.4 35 | 36 | /@babel/types/7.18.4: 37 | resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} 38 | engines: {node: '>=6.9.0'} 39 | dependencies: 40 | '@babel/helper-validator-identifier': 7.16.7 41 | to-fast-properties: 2.0.0 42 | 43 | /@ctrl/tinycolor/3.4.1: 44 | resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} 45 | engines: {node: '>=10'} 46 | dev: false 47 | 48 | /@element-plus/icons-vue/2.0.5_vue@3.2.37: 49 | resolution: {integrity: sha512-jvNWyKcdvPvMDLTWjghrPY+bYHKqh7hbAFIPe+HWR073zilzt33csREzmKx3VwhdlJUW5u0nCqN+0rwI8jlH+w==} 50 | peerDependencies: 51 | vue: ^3.2.0 52 | dependencies: 53 | vue: 3.2.37 54 | dev: false 55 | 56 | /@floating-ui/core/0.7.3: 57 | resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} 58 | dev: false 59 | 60 | /@floating-ui/dom/0.5.3: 61 | resolution: {integrity: sha512-vpjWB1uC7rajvgA58uzlJZgtWqrdDQLw+XVA3w63ZTmsWwRmVd0Gl5Dy9VMAViI9cP7hBWaJt23Jy3AVgVYnoQ==} 62 | dependencies: 63 | '@floating-ui/core': 0.7.3 64 | dev: false 65 | 66 | /@sxzz/popperjs-es/2.11.7: 67 | resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} 68 | dev: false 69 | 70 | /@types/lodash-es/4.17.6: 71 | resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} 72 | dependencies: 73 | '@types/lodash': 4.14.182 74 | dev: false 75 | 76 | /@types/lodash/4.14.182: 77 | resolution: {integrity: sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==} 78 | dev: false 79 | 80 | /@vitejs/plugin-vue/2.3.3_vite@2.9.12+vue@3.2.37: 81 | resolution: {integrity: sha512-SmQLDyhz+6lGJhPELsBdzXGc+AcaT8stgkbiTFGpXPe8Tl1tJaBw1A6pxDqDuRsVkD8uscrkx3hA7QDOoKYtyw==} 82 | engines: {node: '>=12.0.0'} 83 | peerDependencies: 84 | vite: ^2.5.10 85 | vue: ^3.2.25 86 | dependencies: 87 | vite: 2.9.12 88 | vue: 3.2.37 89 | dev: true 90 | 91 | /@volar/code-gen/0.37.9: 92 | resolution: {integrity: sha512-/A9WzG4mBduFw2+okHSAWkFyEsozq1OLbspPo9Kp034C2XuDyAuy09e78koA0ZPB+jUMLO1u9SDIWGLSaVVRPg==} 93 | dependencies: 94 | '@volar/source-map': 0.37.9 95 | dev: true 96 | 97 | /@volar/source-map/0.37.9: 98 | resolution: {integrity: sha512-3FlmxAIiWKorbDFzVSgq3oF7A6JX/3wGhO4NhUJEagTWVP1cBszr8mhQdH80bp9JgMi0jYuxVyAu4D6+CT3VVQ==} 99 | dev: true 100 | 101 | /@volar/vue-code-gen/0.37.9: 102 | resolution: {integrity: sha512-5fyl+O8S9l9aWITa2azmlThvMSPBSpKhuzObLErHrwWaWBk+IwMnaYh8xnF1om7VFnWDpyhBM7du5zqyjQDXhw==} 103 | dependencies: 104 | '@volar/code-gen': 0.37.9 105 | '@volar/source-map': 0.37.9 106 | '@vue/compiler-core': 3.2.37 107 | '@vue/compiler-dom': 3.2.37 108 | '@vue/shared': 3.2.37 109 | dev: true 110 | 111 | /@volar/vue-typescript/0.37.9: 112 | resolution: {integrity: sha512-gs83p1gFNAms77CFgLRBg+SLnbwGf4ze5hji4Q4y0p5pwNTKCNP0VXLY5kic3YB2O2Z0uQmNm/i8cgjhtEtitA==} 113 | dependencies: 114 | '@volar/code-gen': 0.37.9 115 | '@volar/source-map': 0.37.9 116 | '@volar/vue-code-gen': 0.37.9 117 | '@vue/compiler-sfc': 3.2.37 118 | '@vue/reactivity': 3.2.37 119 | dev: true 120 | 121 | /@vue/compiler-core/3.2.37: 122 | resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} 123 | dependencies: 124 | '@babel/parser': 7.18.5 125 | '@vue/shared': 3.2.37 126 | estree-walker: 2.0.2 127 | source-map: 0.6.1 128 | 129 | /@vue/compiler-dom/3.2.37: 130 | resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} 131 | dependencies: 132 | '@vue/compiler-core': 3.2.37 133 | '@vue/shared': 3.2.37 134 | 135 | /@vue/compiler-sfc/3.2.37: 136 | resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} 137 | dependencies: 138 | '@babel/parser': 7.18.5 139 | '@vue/compiler-core': 3.2.37 140 | '@vue/compiler-dom': 3.2.37 141 | '@vue/compiler-ssr': 3.2.37 142 | '@vue/reactivity-transform': 3.2.37 143 | '@vue/shared': 3.2.37 144 | estree-walker: 2.0.2 145 | magic-string: 0.25.9 146 | postcss: 8.4.14 147 | source-map: 0.6.1 148 | 149 | /@vue/compiler-ssr/3.2.37: 150 | resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} 151 | dependencies: 152 | '@vue/compiler-dom': 3.2.37 153 | '@vue/shared': 3.2.37 154 | 155 | /@vue/reactivity-transform/3.2.37: 156 | resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} 157 | dependencies: 158 | '@babel/parser': 7.18.5 159 | '@vue/compiler-core': 3.2.37 160 | '@vue/shared': 3.2.37 161 | estree-walker: 2.0.2 162 | magic-string: 0.25.9 163 | 164 | /@vue/reactivity/3.2.37: 165 | resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} 166 | dependencies: 167 | '@vue/shared': 3.2.37 168 | 169 | /@vue/runtime-core/3.2.37: 170 | resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} 171 | dependencies: 172 | '@vue/reactivity': 3.2.37 173 | '@vue/shared': 3.2.37 174 | dev: false 175 | 176 | /@vue/runtime-dom/3.2.37: 177 | resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} 178 | dependencies: 179 | '@vue/runtime-core': 3.2.37 180 | '@vue/shared': 3.2.37 181 | csstype: 2.6.20 182 | dev: false 183 | 184 | /@vue/server-renderer/3.2.37_vue@3.2.37: 185 | resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} 186 | peerDependencies: 187 | vue: 3.2.37 188 | dependencies: 189 | '@vue/compiler-ssr': 3.2.37 190 | '@vue/shared': 3.2.37 191 | vue: 3.2.37 192 | dev: false 193 | 194 | /@vue/shared/3.2.37: 195 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 196 | 197 | /@vueuse/core/8.7.4_vue@3.2.37: 198 | resolution: {integrity: sha512-dQgxjb79PDcizlaclgCkCzNoqNv12PnbXxUOFL9VacakmD/ACoSMWwTpcG3HKoDoYyl2V3kSW/8AkvXGEYEGFA==} 199 | peerDependencies: 200 | '@vue/composition-api': ^1.1.0 201 | vue: ^2.6.0 || ^3.2.0 202 | peerDependenciesMeta: 203 | '@vue/composition-api': 204 | optional: true 205 | vue: 206 | optional: true 207 | dependencies: 208 | '@vueuse/metadata': 8.7.4 209 | '@vueuse/shared': 8.7.4_vue@3.2.37 210 | vue: 3.2.37 211 | vue-demi: 0.13.1_vue@3.2.37 212 | dev: false 213 | 214 | /@vueuse/metadata/8.7.4: 215 | resolution: {integrity: sha512-CwEYS6/M6JDxk9D1mUsZq3F0VnYnf39rAxOytP58vb4BrhmPKEVfiSpvxuYcJimU9ccT/xjWhwBnsdGC2H9mIQ==} 216 | dev: false 217 | 218 | /@vueuse/shared/8.7.4_vue@3.2.37: 219 | resolution: {integrity: sha512-QhwTEd2Gr/8ZliWVEM8sbMUkXtVVV1Mt1mOkCnIbIN33D/V28FwGKUKqEPGZZCXuJchARnun/J1TAiT/UmZd1w==} 220 | peerDependencies: 221 | '@vue/composition-api': ^1.1.0 222 | vue: ^2.6.0 || ^3.2.0 223 | peerDependenciesMeta: 224 | '@vue/composition-api': 225 | optional: true 226 | vue: 227 | optional: true 228 | dependencies: 229 | vue: 3.2.37 230 | vue-demi: 0.13.1_vue@3.2.37 231 | dev: false 232 | 233 | /async-validator/4.2.5: 234 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 235 | dev: false 236 | 237 | /csstype/2.6.20: 238 | resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} 239 | dev: false 240 | 241 | /dayjs/1.11.3: 242 | resolution: {integrity: sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==} 243 | dev: false 244 | 245 | /element-plus/2.2.6_vue@3.2.37: 246 | resolution: {integrity: sha512-N9G4yWSxDt1YtreCJgt7UaSsXKuR4Fzb3ThzlBjbGDYDhcHijsrLL3qkdLZgeoSB13LRyr9pgP1ljNXdaYGa+g==} 247 | peerDependencies: 248 | vue: ^3.2.0 249 | dependencies: 250 | '@ctrl/tinycolor': 3.4.1 251 | '@element-plus/icons-vue': 2.0.5_vue@3.2.37 252 | '@floating-ui/dom': 0.5.3 253 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 254 | '@types/lodash': 4.14.182 255 | '@types/lodash-es': 4.17.6 256 | '@vueuse/core': 8.7.4_vue@3.2.37 257 | async-validator: 4.2.5 258 | dayjs: 1.11.3 259 | escape-html: 1.0.3 260 | lodash: 4.17.21 261 | lodash-es: 4.17.21 262 | lodash-unified: 1.0.2_da03a4540fbd16bbaafbb96724306afd 263 | memoize-one: 6.0.0 264 | normalize-wheel-es: 1.1.2 265 | vue: 3.2.37 266 | transitivePeerDependencies: 267 | - '@vue/composition-api' 268 | dev: false 269 | 270 | /esbuild-android-64/0.14.46: 271 | resolution: {integrity: sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==} 272 | engines: {node: '>=12'} 273 | cpu: [x64] 274 | os: [android] 275 | requiresBuild: true 276 | dev: true 277 | optional: true 278 | 279 | /esbuild-android-arm64/0.14.46: 280 | resolution: {integrity: sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==} 281 | engines: {node: '>=12'} 282 | cpu: [arm64] 283 | os: [android] 284 | requiresBuild: true 285 | dev: true 286 | optional: true 287 | 288 | /esbuild-darwin-64/0.14.46: 289 | resolution: {integrity: sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==} 290 | engines: {node: '>=12'} 291 | cpu: [x64] 292 | os: [darwin] 293 | requiresBuild: true 294 | dev: true 295 | optional: true 296 | 297 | /esbuild-darwin-arm64/0.14.46: 298 | resolution: {integrity: sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==} 299 | engines: {node: '>=12'} 300 | cpu: [arm64] 301 | os: [darwin] 302 | requiresBuild: true 303 | dev: true 304 | optional: true 305 | 306 | /esbuild-freebsd-64/0.14.46: 307 | resolution: {integrity: sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==} 308 | engines: {node: '>=12'} 309 | cpu: [x64] 310 | os: [freebsd] 311 | requiresBuild: true 312 | dev: true 313 | optional: true 314 | 315 | /esbuild-freebsd-arm64/0.14.46: 316 | resolution: {integrity: sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==} 317 | engines: {node: '>=12'} 318 | cpu: [arm64] 319 | os: [freebsd] 320 | requiresBuild: true 321 | dev: true 322 | optional: true 323 | 324 | /esbuild-linux-32/0.14.46: 325 | resolution: {integrity: sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==} 326 | engines: {node: '>=12'} 327 | cpu: [ia32] 328 | os: [linux] 329 | requiresBuild: true 330 | dev: true 331 | optional: true 332 | 333 | /esbuild-linux-64/0.14.46: 334 | resolution: {integrity: sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==} 335 | engines: {node: '>=12'} 336 | cpu: [x64] 337 | os: [linux] 338 | requiresBuild: true 339 | dev: true 340 | optional: true 341 | 342 | /esbuild-linux-arm/0.14.46: 343 | resolution: {integrity: sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==} 344 | engines: {node: '>=12'} 345 | cpu: [arm] 346 | os: [linux] 347 | requiresBuild: true 348 | dev: true 349 | optional: true 350 | 351 | /esbuild-linux-arm64/0.14.46: 352 | resolution: {integrity: sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==} 353 | engines: {node: '>=12'} 354 | cpu: [arm64] 355 | os: [linux] 356 | requiresBuild: true 357 | dev: true 358 | optional: true 359 | 360 | /esbuild-linux-mips64le/0.14.46: 361 | resolution: {integrity: sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==} 362 | engines: {node: '>=12'} 363 | cpu: [mips64el] 364 | os: [linux] 365 | requiresBuild: true 366 | dev: true 367 | optional: true 368 | 369 | /esbuild-linux-ppc64le/0.14.46: 370 | resolution: {integrity: sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==} 371 | engines: {node: '>=12'} 372 | cpu: [ppc64] 373 | os: [linux] 374 | requiresBuild: true 375 | dev: true 376 | optional: true 377 | 378 | /esbuild-linux-riscv64/0.14.46: 379 | resolution: {integrity: sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==} 380 | engines: {node: '>=12'} 381 | cpu: [riscv64] 382 | os: [linux] 383 | requiresBuild: true 384 | dev: true 385 | optional: true 386 | 387 | /esbuild-linux-s390x/0.14.46: 388 | resolution: {integrity: sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==} 389 | engines: {node: '>=12'} 390 | cpu: [s390x] 391 | os: [linux] 392 | requiresBuild: true 393 | dev: true 394 | optional: true 395 | 396 | /esbuild-netbsd-64/0.14.46: 397 | resolution: {integrity: sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==} 398 | engines: {node: '>=12'} 399 | cpu: [x64] 400 | os: [netbsd] 401 | requiresBuild: true 402 | dev: true 403 | optional: true 404 | 405 | /esbuild-openbsd-64/0.14.46: 406 | resolution: {integrity: sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==} 407 | engines: {node: '>=12'} 408 | cpu: [x64] 409 | os: [openbsd] 410 | requiresBuild: true 411 | dev: true 412 | optional: true 413 | 414 | /esbuild-sunos-64/0.14.46: 415 | resolution: {integrity: sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==} 416 | engines: {node: '>=12'} 417 | cpu: [x64] 418 | os: [sunos] 419 | requiresBuild: true 420 | dev: true 421 | optional: true 422 | 423 | /esbuild-windows-32/0.14.46: 424 | resolution: {integrity: sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==} 425 | engines: {node: '>=12'} 426 | cpu: [ia32] 427 | os: [win32] 428 | requiresBuild: true 429 | dev: true 430 | optional: true 431 | 432 | /esbuild-windows-64/0.14.46: 433 | resolution: {integrity: sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==} 434 | engines: {node: '>=12'} 435 | cpu: [x64] 436 | os: [win32] 437 | requiresBuild: true 438 | dev: true 439 | optional: true 440 | 441 | /esbuild-windows-arm64/0.14.46: 442 | resolution: {integrity: sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==} 443 | engines: {node: '>=12'} 444 | cpu: [arm64] 445 | os: [win32] 446 | requiresBuild: true 447 | dev: true 448 | optional: true 449 | 450 | /esbuild/0.14.46: 451 | resolution: {integrity: sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==} 452 | engines: {node: '>=12'} 453 | hasBin: true 454 | requiresBuild: true 455 | optionalDependencies: 456 | esbuild-android-64: 0.14.46 457 | esbuild-android-arm64: 0.14.46 458 | esbuild-darwin-64: 0.14.46 459 | esbuild-darwin-arm64: 0.14.46 460 | esbuild-freebsd-64: 0.14.46 461 | esbuild-freebsd-arm64: 0.14.46 462 | esbuild-linux-32: 0.14.46 463 | esbuild-linux-64: 0.14.46 464 | esbuild-linux-arm: 0.14.46 465 | esbuild-linux-arm64: 0.14.46 466 | esbuild-linux-mips64le: 0.14.46 467 | esbuild-linux-ppc64le: 0.14.46 468 | esbuild-linux-riscv64: 0.14.46 469 | esbuild-linux-s390x: 0.14.46 470 | esbuild-netbsd-64: 0.14.46 471 | esbuild-openbsd-64: 0.14.46 472 | esbuild-sunos-64: 0.14.46 473 | esbuild-windows-32: 0.14.46 474 | esbuild-windows-64: 0.14.46 475 | esbuild-windows-arm64: 0.14.46 476 | dev: true 477 | 478 | /escape-html/1.0.3: 479 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 480 | dev: false 481 | 482 | /estree-walker/2.0.2: 483 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 484 | 485 | /fsevents/2.3.2: 486 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 487 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 488 | os: [darwin] 489 | requiresBuild: true 490 | dev: true 491 | optional: true 492 | 493 | /function-bind/1.1.1: 494 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 495 | dev: true 496 | 497 | /has/1.0.3: 498 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 499 | engines: {node: '>= 0.4.0'} 500 | dependencies: 501 | function-bind: 1.1.1 502 | dev: true 503 | 504 | /is-core-module/2.9.0: 505 | resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} 506 | dependencies: 507 | has: 1.0.3 508 | dev: true 509 | 510 | /lodash-es/4.17.21: 511 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 512 | dev: false 513 | 514 | /lodash-unified/1.0.2_da03a4540fbd16bbaafbb96724306afd: 515 | resolution: {integrity: sha512-OGbEy+1P+UT26CYi4opY4gebD8cWRDxAT6MAObIVQMiqYdxZr1g3QHWCToVsm31x2NkLS4K3+MC2qInaRMa39g==} 516 | peerDependencies: 517 | '@types/lodash-es': '*' 518 | lodash: '*' 519 | lodash-es: '*' 520 | dependencies: 521 | '@types/lodash-es': 4.17.6 522 | lodash: 4.17.21 523 | lodash-es: 4.17.21 524 | dev: false 525 | 526 | /lodash/4.17.21: 527 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 528 | dev: false 529 | 530 | /magic-string/0.25.9: 531 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 532 | dependencies: 533 | sourcemap-codec: 1.4.8 534 | 535 | /memoize-one/6.0.0: 536 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 537 | dev: false 538 | 539 | /nanoid/3.3.4: 540 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 541 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 542 | hasBin: true 543 | 544 | /normalize-wheel-es/1.1.2: 545 | resolution: {integrity: sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==} 546 | dev: false 547 | 548 | /path-parse/1.0.7: 549 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 550 | dev: true 551 | 552 | /picocolors/1.0.0: 553 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 554 | 555 | /postcss/8.4.14: 556 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 557 | engines: {node: ^10 || ^12 || >=14} 558 | dependencies: 559 | nanoid: 3.3.4 560 | picocolors: 1.0.0 561 | source-map-js: 1.0.2 562 | 563 | /resolve/1.22.1: 564 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 565 | hasBin: true 566 | dependencies: 567 | is-core-module: 2.9.0 568 | path-parse: 1.0.7 569 | supports-preserve-symlinks-flag: 1.0.0 570 | dev: true 571 | 572 | /responsive-storage/2.0.0: 573 | resolution: {integrity: sha512-4pZbTlwDmJAbnZ0B93aQVfTOY58+LYwwQBGPDqAI89NbjnrgVdmqqemmzkfOSGNqFWWnCamq9moWASFk+oC2Fg==} 574 | dev: false 575 | 576 | /rollup/2.75.6: 577 | resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==} 578 | engines: {node: '>=10.0.0'} 579 | hasBin: true 580 | optionalDependencies: 581 | fsevents: 2.3.2 582 | dev: true 583 | 584 | /source-map-js/1.0.2: 585 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 586 | engines: {node: '>=0.10.0'} 587 | 588 | /source-map/0.6.1: 589 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 590 | engines: {node: '>=0.10.0'} 591 | 592 | /sourcemap-codec/1.4.8: 593 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 594 | 595 | /supports-preserve-symlinks-flag/1.0.0: 596 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 597 | engines: {node: '>= 0.4'} 598 | dev: true 599 | 600 | /to-fast-properties/2.0.0: 601 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 602 | engines: {node: '>=4'} 603 | 604 | /typescript/4.7.4: 605 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 606 | engines: {node: '>=4.2.0'} 607 | hasBin: true 608 | dev: true 609 | 610 | /vite/2.9.12: 611 | resolution: {integrity: sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==} 612 | engines: {node: '>=12.2.0'} 613 | hasBin: true 614 | peerDependencies: 615 | less: '*' 616 | sass: '*' 617 | stylus: '*' 618 | peerDependenciesMeta: 619 | less: 620 | optional: true 621 | sass: 622 | optional: true 623 | stylus: 624 | optional: true 625 | dependencies: 626 | esbuild: 0.14.46 627 | postcss: 8.4.14 628 | resolve: 1.22.1 629 | rollup: 2.75.6 630 | optionalDependencies: 631 | fsevents: 2.3.2 632 | dev: true 633 | 634 | /vue-demi/0.13.1_vue@3.2.37: 635 | resolution: {integrity: sha512-xmkJ56koG3ptpLnpgmIzk9/4nFf4CqduSJbUM0OdPoU87NwRuZ6x49OLhjSa/fC15fV+5CbEnrxU4oyE022svg==} 636 | engines: {node: '>=12'} 637 | hasBin: true 638 | requiresBuild: true 639 | peerDependencies: 640 | '@vue/composition-api': ^1.0.0-rc.1 641 | vue: ^3.0.0-0 || ^2.6.0 642 | peerDependenciesMeta: 643 | '@vue/composition-api': 644 | optional: true 645 | dependencies: 646 | vue: 3.2.37 647 | dev: false 648 | 649 | /vue-tsc/0.37.9_typescript@4.7.4: 650 | resolution: {integrity: sha512-7UDietFPPfLFm2JeG0OodUhtOWbD66tFrALX3NdqNl8LjVHKLId5oTQpuHNUIme2vbNj/fcwaENPfEX2BCSgMw==} 651 | hasBin: true 652 | peerDependencies: 653 | typescript: '*' 654 | dependencies: 655 | '@volar/vue-typescript': 0.37.9 656 | typescript: 4.7.4 657 | dev: true 658 | 659 | /vue/3.2.37: 660 | resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} 661 | dependencies: 662 | '@vue/compiler-dom': 3.2.37 663 | '@vue/compiler-sfc': 3.2.37 664 | '@vue/runtime-dom': 3.2.37 665 | '@vue/server-renderer': 3.2.37_vue@3.2.37 666 | '@vue/shared': 3.2.37 667 | dev: false 668 | -------------------------------------------------------------------------------- /playgrounds/vue3/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xiaoxian521/responsive-storage/f0e67bb6ccd4671e8bc98af1d0b24fed02b8f2c3/playgrounds/vue3/public/favicon.ico -------------------------------------------------------------------------------- /playgrounds/vue3/src/App.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 38 | 39 | 47 | -------------------------------------------------------------------------------- /playgrounds/vue3/src/assets/reset.css: -------------------------------------------------------------------------------- 1 | html, 2 | body, 3 | #app { 4 | margin: 0; 5 | padding: 0; 6 | width: 100%; 7 | height: 100%; 8 | } 9 | -------------------------------------------------------------------------------- /playgrounds/vue3/src/components/button.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 30 | -------------------------------------------------------------------------------- /playgrounds/vue3/src/env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types 6 | const component: DefineComponent<{}, {}, any> 7 | export default component 8 | } 9 | -------------------------------------------------------------------------------- /playgrounds/vue3/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import App from "./App.vue"; 3 | 4 | import "./assets/reset.css"; 5 | import "element-plus/dist/index.css"; 6 | 7 | import Storage from "../../../dist"; 8 | // import Storage from "responsive-storage"; 9 | import ElementPlus from "element-plus"; 10 | 11 | const app = createApp(App); 12 | 13 | app.use(Storage, { 14 | // nameSpace: "test_", 15 | memory: { 16 | // starValue: Storage.getData("starValue", "test_") ?? 1 17 | starValue: Storage.getData("starValue") ?? 1 18 | } 19 | }); 20 | 21 | app.use(ElementPlus).mount("#app"); 22 | -------------------------------------------------------------------------------- /playgrounds/vue3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "lib": ["ESNext", "DOM"], 14 | "skipLibCheck": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [{ "path": "./tsconfig.node.json" }] 18 | } 19 | -------------------------------------------------------------------------------- /playgrounds/vue3/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node" 6 | }, 7 | "include": ["vite.config.ts"] 8 | } 9 | -------------------------------------------------------------------------------- /playgrounds/vue3/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import vue from "@vitejs/plugin-vue"; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()] 7 | }); 8 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@pureadmin/release': ^1.0.0 5 | '@types/node': ^18.0.0 6 | prettier: ^2.7.1 7 | tsup: ^6.1.2 8 | typescript: ^4.7.4 9 | vue: ^3.2.37 10 | 11 | devDependencies: 12 | '@pureadmin/release': 1.0.0 13 | '@types/node': 18.0.0 14 | prettier: 2.7.1 15 | tsup: 6.1.2_typescript@4.7.4 16 | typescript: 4.7.4 17 | vue: 3.2.37 18 | 19 | packages: 20 | 21 | /@babel/helper-validator-identifier/7.16.7: 22 | resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} 23 | engines: {node: '>=6.9.0'} 24 | dev: true 25 | 26 | /@babel/parser/7.18.5: 27 | resolution: {integrity: sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==} 28 | engines: {node: '>=6.0.0'} 29 | hasBin: true 30 | dependencies: 31 | '@babel/types': 7.18.4 32 | dev: true 33 | 34 | /@babel/types/7.18.4: 35 | resolution: {integrity: sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==} 36 | engines: {node: '>=6.9.0'} 37 | dependencies: 38 | '@babel/helper-validator-identifier': 7.16.7 39 | to-fast-properties: 2.0.0 40 | dev: true 41 | 42 | /@nodelib/fs.scandir/2.1.5: 43 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 44 | engines: {node: '>= 8'} 45 | dependencies: 46 | '@nodelib/fs.stat': 2.0.5 47 | run-parallel: 1.2.0 48 | dev: true 49 | 50 | /@nodelib/fs.stat/2.0.5: 51 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 52 | engines: {node: '>= 8'} 53 | dev: true 54 | 55 | /@nodelib/fs.walk/1.2.8: 56 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 57 | engines: {node: '>= 8'} 58 | dependencies: 59 | '@nodelib/fs.scandir': 2.1.5 60 | fastq: 1.13.0 61 | dev: true 62 | 63 | /@pureadmin/release/1.0.0: 64 | resolution: {integrity: sha512-cFXev9X+TQNmpb8E8agD53ZfL5DCYpY25SPpLUXo42Twa62vmJckc+xqh95r4tvgMi0eqUEFRuiSHr1oS3pHmQ==} 65 | hasBin: true 66 | dev: true 67 | 68 | /@types/node/18.0.0: 69 | resolution: {integrity: sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==} 70 | dev: true 71 | 72 | /@vue/compiler-core/3.2.37: 73 | resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} 74 | dependencies: 75 | '@babel/parser': 7.18.5 76 | '@vue/shared': 3.2.37 77 | estree-walker: 2.0.2 78 | source-map: 0.6.1 79 | dev: true 80 | 81 | /@vue/compiler-dom/3.2.37: 82 | resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} 83 | dependencies: 84 | '@vue/compiler-core': 3.2.37 85 | '@vue/shared': 3.2.37 86 | dev: true 87 | 88 | /@vue/compiler-sfc/3.2.37: 89 | resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} 90 | dependencies: 91 | '@babel/parser': 7.18.5 92 | '@vue/compiler-core': 3.2.37 93 | '@vue/compiler-dom': 3.2.37 94 | '@vue/compiler-ssr': 3.2.37 95 | '@vue/reactivity-transform': 3.2.37 96 | '@vue/shared': 3.2.37 97 | estree-walker: 2.0.2 98 | magic-string: 0.25.9 99 | postcss: 8.4.14 100 | source-map: 0.6.1 101 | dev: true 102 | 103 | /@vue/compiler-ssr/3.2.37: 104 | resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} 105 | dependencies: 106 | '@vue/compiler-dom': 3.2.37 107 | '@vue/shared': 3.2.37 108 | dev: true 109 | 110 | /@vue/reactivity-transform/3.2.37: 111 | resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} 112 | dependencies: 113 | '@babel/parser': 7.18.5 114 | '@vue/compiler-core': 3.2.37 115 | '@vue/shared': 3.2.37 116 | estree-walker: 2.0.2 117 | magic-string: 0.25.9 118 | dev: true 119 | 120 | /@vue/reactivity/3.2.37: 121 | resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} 122 | dependencies: 123 | '@vue/shared': 3.2.37 124 | dev: true 125 | 126 | /@vue/runtime-core/3.2.37: 127 | resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} 128 | dependencies: 129 | '@vue/reactivity': 3.2.37 130 | '@vue/shared': 3.2.37 131 | dev: true 132 | 133 | /@vue/runtime-dom/3.2.37: 134 | resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} 135 | dependencies: 136 | '@vue/runtime-core': 3.2.37 137 | '@vue/shared': 3.2.37 138 | csstype: 2.6.20 139 | dev: true 140 | 141 | /@vue/server-renderer/3.2.37_vue@3.2.37: 142 | resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} 143 | peerDependencies: 144 | vue: 3.2.37 145 | dependencies: 146 | '@vue/compiler-ssr': 3.2.37 147 | '@vue/shared': 3.2.37 148 | vue: 3.2.37 149 | dev: true 150 | 151 | /@vue/shared/3.2.37: 152 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 153 | dev: true 154 | 155 | /any-promise/1.3.0: 156 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 157 | dev: true 158 | 159 | /anymatch/3.1.2: 160 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 161 | engines: {node: '>= 8'} 162 | dependencies: 163 | normalize-path: 3.0.0 164 | picomatch: 2.3.1 165 | dev: true 166 | 167 | /array-union/2.1.0: 168 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 169 | engines: {node: '>=8'} 170 | dev: true 171 | 172 | /balanced-match/1.0.2: 173 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 174 | dev: true 175 | 176 | /binary-extensions/2.2.0: 177 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 178 | engines: {node: '>=8'} 179 | dev: true 180 | 181 | /brace-expansion/1.1.11: 182 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 183 | dependencies: 184 | balanced-match: 1.0.2 185 | concat-map: 0.0.1 186 | dev: true 187 | 188 | /braces/3.0.2: 189 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 190 | engines: {node: '>=8'} 191 | dependencies: 192 | fill-range: 7.0.1 193 | dev: true 194 | 195 | /bundle-require/3.0.4_esbuild@0.14.46: 196 | resolution: {integrity: sha512-VXG6epB1yrLAvWVQpl92qF347/UXmncQj7J3U8kZEbdVZ1ZkQyr4hYeL/9RvcE8vVVdp53dY78Fd/3pqfRqI1A==} 197 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 198 | peerDependencies: 199 | esbuild: '>=0.13' 200 | dependencies: 201 | esbuild: 0.14.46 202 | load-tsconfig: 0.2.3 203 | dev: true 204 | 205 | /cac/6.7.12: 206 | resolution: {integrity: sha512-rM7E2ygtMkJqD9c7WnFU6fruFcN3xe4FM5yUmgxhZzIKJk4uHl9U/fhwdajGFQbQuv43FAUo1Fe8gX/oIKDeSA==} 207 | engines: {node: '>=8'} 208 | dev: true 209 | 210 | /chokidar/3.5.3: 211 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 212 | engines: {node: '>= 8.10.0'} 213 | dependencies: 214 | anymatch: 3.1.2 215 | braces: 3.0.2 216 | glob-parent: 5.1.2 217 | is-binary-path: 2.1.0 218 | is-glob: 4.0.3 219 | normalize-path: 3.0.0 220 | readdirp: 3.6.0 221 | optionalDependencies: 222 | fsevents: 2.3.2 223 | dev: true 224 | 225 | /commander/4.1.1: 226 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 227 | engines: {node: '>= 6'} 228 | dev: true 229 | 230 | /concat-map/0.0.1: 231 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 232 | dev: true 233 | 234 | /cross-spawn/7.0.3: 235 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 236 | engines: {node: '>= 8'} 237 | dependencies: 238 | path-key: 3.1.1 239 | shebang-command: 2.0.0 240 | which: 2.0.2 241 | dev: true 242 | 243 | /csstype/2.6.20: 244 | resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} 245 | dev: true 246 | 247 | /debug/4.3.4: 248 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 249 | engines: {node: '>=6.0'} 250 | peerDependencies: 251 | supports-color: '*' 252 | peerDependenciesMeta: 253 | supports-color: 254 | optional: true 255 | dependencies: 256 | ms: 2.1.2 257 | dev: true 258 | 259 | /dir-glob/3.0.1: 260 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 261 | engines: {node: '>=8'} 262 | dependencies: 263 | path-type: 4.0.0 264 | dev: true 265 | 266 | /esbuild-android-64/0.14.46: 267 | resolution: {integrity: sha512-ZyJqwAcjNbZprs0ZAxnUAOhEhdE5kTKwz+CZuLmZYNLAPyRgBtaC8pT2PCuPifNvV8Cl3yLlrQPaOCjovoyb5g==} 268 | engines: {node: '>=12'} 269 | cpu: [x64] 270 | os: [android] 271 | requiresBuild: true 272 | dev: true 273 | optional: true 274 | 275 | /esbuild-android-arm64/0.14.46: 276 | resolution: {integrity: sha512-BKcnUksvCijO9ONv6b4SikZE/OZftwJvX91XROODZGQmuwGVg97jmLDVu3lxuHdFlMNNzxh8taJ2mbCWZzH/Iw==} 277 | engines: {node: '>=12'} 278 | cpu: [arm64] 279 | os: [android] 280 | requiresBuild: true 281 | dev: true 282 | optional: true 283 | 284 | /esbuild-darwin-64/0.14.46: 285 | resolution: {integrity: sha512-/ss2kO92sUJ9/1nHnMb3+oab8w6dyqKrMtPMvSYJ9KZIYGAZxz/WYxfFprY7Xk+ZxWnnlASSyZlG+If1nVmFYg==} 286 | engines: {node: '>=12'} 287 | cpu: [x64] 288 | os: [darwin] 289 | requiresBuild: true 290 | dev: true 291 | optional: true 292 | 293 | /esbuild-darwin-arm64/0.14.46: 294 | resolution: {integrity: sha512-WX0JOaEFf6t+rIjXO6THsf/0fhQAt2Zb0/PSYlvXnuQQAmOmFAfPsuRNocp5ME0NGaUqZd4FxqqmLEVK3RzPAg==} 295 | engines: {node: '>=12'} 296 | cpu: [arm64] 297 | os: [darwin] 298 | requiresBuild: true 299 | dev: true 300 | optional: true 301 | 302 | /esbuild-freebsd-64/0.14.46: 303 | resolution: {integrity: sha512-o+ozPFuHRCAGCVWU2bLurOUgVkT0jcPEu082VBUY2Q/yLf+B+/3nXzh4Fjp5O21tOvJRTn7hUVydG9j5+vYE6A==} 304 | engines: {node: '>=12'} 305 | cpu: [x64] 306 | os: [freebsd] 307 | requiresBuild: true 308 | dev: true 309 | optional: true 310 | 311 | /esbuild-freebsd-arm64/0.14.46: 312 | resolution: {integrity: sha512-9zicZ0X43WDKz3sjNfcqYO38xbfJpSWYXB+FxvYYkmBwGA52K0SAu4oKuTTLi8od8X2IIo1x5C5TUNvKDSVJww==} 313 | engines: {node: '>=12'} 314 | cpu: [arm64] 315 | os: [freebsd] 316 | requiresBuild: true 317 | dev: true 318 | optional: true 319 | 320 | /esbuild-linux-32/0.14.46: 321 | resolution: {integrity: sha512-ZnTpZMVb0VGvL99R5eh4OrJwbUyvpM6M88VAMuHP4LvFjuvZrhgefjKqEGuWZZW7JRnAjKqjXLjWdhdSjwMFnQ==} 322 | engines: {node: '>=12'} 323 | cpu: [ia32] 324 | os: [linux] 325 | requiresBuild: true 326 | dev: true 327 | optional: true 328 | 329 | /esbuild-linux-64/0.14.46: 330 | resolution: {integrity: sha512-ECCRRZtX6l4ubeVhHhiVoK/uYAkvzNqfmR4gP4N/9H9RPu+b8YCcN4bQGp7xCuYIV6Xd41WpOMyO+xpcQvjtQQ==} 331 | engines: {node: '>=12'} 332 | cpu: [x64] 333 | os: [linux] 334 | requiresBuild: true 335 | dev: true 336 | optional: true 337 | 338 | /esbuild-linux-arm/0.14.46: 339 | resolution: {integrity: sha512-RvTJEi4vj13c5FP9YPp+8Y6x6HK1E7uSqfy3y9UoeaNAzNZWA7fN1U3hQjTL/dy5zTJH5KE64mrt5k5+he+CQA==} 340 | engines: {node: '>=12'} 341 | cpu: [arm] 342 | os: [linux] 343 | requiresBuild: true 344 | dev: true 345 | optional: true 346 | 347 | /esbuild-linux-arm64/0.14.46: 348 | resolution: {integrity: sha512-HX0TXCHyI0NEWG4jg8LlW1PbZQbnz+PUH56yjx996cgM5pC90u32drKs/tyJiyyQmNk9OXOogjKw7LEdp/Qc1w==} 349 | engines: {node: '>=12'} 350 | cpu: [arm64] 351 | os: [linux] 352 | requiresBuild: true 353 | dev: true 354 | optional: true 355 | 356 | /esbuild-linux-mips64le/0.14.46: 357 | resolution: {integrity: sha512-jnb2NDwGqJUVmxn1v0f7seNdDm0nRNWHP9Z3MrWAGnBCdnnDlsjqRFDnbKoaQvWONEa+rOOr/giK+VL0hgQExA==} 358 | engines: {node: '>=12'} 359 | cpu: [mips64el] 360 | os: [linux] 361 | requiresBuild: true 362 | dev: true 363 | optional: true 364 | 365 | /esbuild-linux-ppc64le/0.14.46: 366 | resolution: {integrity: sha512-uu3JTQUrwwauKY9z8yq5MnDyOlT3f2DNOzBcYz4dB78HqwEqilCsifoBGd0WcbED5n57dc59X+LZMTZ8Ose44w==} 367 | engines: {node: '>=12'} 368 | cpu: [ppc64] 369 | os: [linux] 370 | requiresBuild: true 371 | dev: true 372 | optional: true 373 | 374 | /esbuild-linux-riscv64/0.14.46: 375 | resolution: {integrity: sha512-OB29r1EG44ZY34JnXCRERxo7k4pRKoQdaoRg2HIeCavatsXZwW4LCakpLnMQ72vXT1HtpBUABEjHkKkn5JyrUg==} 376 | engines: {node: '>=12'} 377 | cpu: [riscv64] 378 | os: [linux] 379 | requiresBuild: true 380 | dev: true 381 | optional: true 382 | 383 | /esbuild-linux-s390x/0.14.46: 384 | resolution: {integrity: sha512-XQ/U9TueMSGYyPTKyZsJVraiuvxhwCDIMn/QwFXCRCJ6H/Cy/Rq33u9qhpeSziinHKfzJROGx5A8mQY6aYamdQ==} 385 | engines: {node: '>=12'} 386 | cpu: [s390x] 387 | os: [linux] 388 | requiresBuild: true 389 | dev: true 390 | optional: true 391 | 392 | /esbuild-netbsd-64/0.14.46: 393 | resolution: {integrity: sha512-i15BwqHaAIFp1vBJkitAbHtwXcLk9TdHs/Ia1xGIAutQYXSJNPLM3Z4B4hyfHNEFl2yBqBIYpglMohv2ClNdOQ==} 394 | engines: {node: '>=12'} 395 | cpu: [x64] 396 | os: [netbsd] 397 | requiresBuild: true 398 | dev: true 399 | optional: true 400 | 401 | /esbuild-openbsd-64/0.14.46: 402 | resolution: {integrity: sha512-XwOIFCE140Y/PvjrwjFfa/QLWBuvhR1mPCOa35mKx02jt++wPNgf0qhn6HfdVC3vQe7R46RwTp4q2cp99fepEg==} 403 | engines: {node: '>=12'} 404 | cpu: [x64] 405 | os: [openbsd] 406 | requiresBuild: true 407 | dev: true 408 | optional: true 409 | 410 | /esbuild-sunos-64/0.14.46: 411 | resolution: {integrity: sha512-+kV3JnmfdxBVpHyFvuGXWtu6tXxXApOLPkSrVkMJf6+ns/3PLtPndpzwCzHjD+qYUEk8ln4MA+ufQ2qmjW5mZg==} 412 | engines: {node: '>=12'} 413 | cpu: [x64] 414 | os: [sunos] 415 | requiresBuild: true 416 | dev: true 417 | optional: true 418 | 419 | /esbuild-windows-32/0.14.46: 420 | resolution: {integrity: sha512-gzGC1Q11B/Bo5A2EX4N22oigWmhL7Z0eDyc8kbSoJjqSrGQuRE7B0uMpluO+q0O/gZ1S3zdw+M4PCWlqOIeXLA==} 421 | engines: {node: '>=12'} 422 | cpu: [ia32] 423 | os: [win32] 424 | requiresBuild: true 425 | dev: true 426 | optional: true 427 | 428 | /esbuild-windows-64/0.14.46: 429 | resolution: {integrity: sha512-Do2daaskfOjmCB7o3ygz6fD3K6SPjZLERiZLktzHz2oUCwsebKu/gmop0+j/XdrVIXC32wFzHzDS+9CTu9OShw==} 430 | engines: {node: '>=12'} 431 | cpu: [x64] 432 | os: [win32] 433 | requiresBuild: true 434 | dev: true 435 | optional: true 436 | 437 | /esbuild-windows-arm64/0.14.46: 438 | resolution: {integrity: sha512-VEzMy6bM60/HT/URTDElyhfi2Pk0quCCrEhRlI4MRno/AIqYUGw0rZwkPl6PeoqVI6BgoBHGY576GWTiPmshCA==} 439 | engines: {node: '>=12'} 440 | cpu: [arm64] 441 | os: [win32] 442 | requiresBuild: true 443 | dev: true 444 | optional: true 445 | 446 | /esbuild/0.14.46: 447 | resolution: {integrity: sha512-vdm5G1JdZBktva8dwQci/s44VbeBUg8g907xoZx77mqFZ4gU5GlMULNsdGeID+qXCXocsfYSGtE0LvqH3eiNQg==} 448 | engines: {node: '>=12'} 449 | hasBin: true 450 | requiresBuild: true 451 | optionalDependencies: 452 | esbuild-android-64: 0.14.46 453 | esbuild-android-arm64: 0.14.46 454 | esbuild-darwin-64: 0.14.46 455 | esbuild-darwin-arm64: 0.14.46 456 | esbuild-freebsd-64: 0.14.46 457 | esbuild-freebsd-arm64: 0.14.46 458 | esbuild-linux-32: 0.14.46 459 | esbuild-linux-64: 0.14.46 460 | esbuild-linux-arm: 0.14.46 461 | esbuild-linux-arm64: 0.14.46 462 | esbuild-linux-mips64le: 0.14.46 463 | esbuild-linux-ppc64le: 0.14.46 464 | esbuild-linux-riscv64: 0.14.46 465 | esbuild-linux-s390x: 0.14.46 466 | esbuild-netbsd-64: 0.14.46 467 | esbuild-openbsd-64: 0.14.46 468 | esbuild-sunos-64: 0.14.46 469 | esbuild-windows-32: 0.14.46 470 | esbuild-windows-64: 0.14.46 471 | esbuild-windows-arm64: 0.14.46 472 | dev: true 473 | 474 | /estree-walker/2.0.2: 475 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 476 | dev: true 477 | 478 | /execa/5.1.1: 479 | resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} 480 | engines: {node: '>=10'} 481 | dependencies: 482 | cross-spawn: 7.0.3 483 | get-stream: 6.0.1 484 | human-signals: 2.1.0 485 | is-stream: 2.0.1 486 | merge-stream: 2.0.0 487 | npm-run-path: 4.0.1 488 | onetime: 5.1.2 489 | signal-exit: 3.0.7 490 | strip-final-newline: 2.0.0 491 | dev: true 492 | 493 | /fast-glob/3.2.11: 494 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 495 | engines: {node: '>=8.6.0'} 496 | dependencies: 497 | '@nodelib/fs.stat': 2.0.5 498 | '@nodelib/fs.walk': 1.2.8 499 | glob-parent: 5.1.2 500 | merge2: 1.4.1 501 | micromatch: 4.0.5 502 | dev: true 503 | 504 | /fastq/1.13.0: 505 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 506 | dependencies: 507 | reusify: 1.0.4 508 | dev: true 509 | 510 | /fill-range/7.0.1: 511 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 512 | engines: {node: '>=8'} 513 | dependencies: 514 | to-regex-range: 5.0.1 515 | dev: true 516 | 517 | /fs.realpath/1.0.0: 518 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 519 | dev: true 520 | 521 | /fsevents/2.3.2: 522 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 523 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 524 | os: [darwin] 525 | requiresBuild: true 526 | dev: true 527 | optional: true 528 | 529 | /get-stream/6.0.1: 530 | resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} 531 | engines: {node: '>=10'} 532 | dev: true 533 | 534 | /glob-parent/5.1.2: 535 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 536 | engines: {node: '>= 6'} 537 | dependencies: 538 | is-glob: 4.0.3 539 | dev: true 540 | 541 | /glob/7.1.6: 542 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 543 | dependencies: 544 | fs.realpath: 1.0.0 545 | inflight: 1.0.6 546 | inherits: 2.0.4 547 | minimatch: 3.1.2 548 | once: 1.4.0 549 | path-is-absolute: 1.0.1 550 | dev: true 551 | 552 | /globby/11.1.0: 553 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 554 | engines: {node: '>=10'} 555 | dependencies: 556 | array-union: 2.1.0 557 | dir-glob: 3.0.1 558 | fast-glob: 3.2.11 559 | ignore: 5.2.0 560 | merge2: 1.4.1 561 | slash: 3.0.0 562 | dev: true 563 | 564 | /human-signals/2.1.0: 565 | resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} 566 | engines: {node: '>=10.17.0'} 567 | dev: true 568 | 569 | /ignore/5.2.0: 570 | resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} 571 | engines: {node: '>= 4'} 572 | dev: true 573 | 574 | /inflight/1.0.6: 575 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 576 | dependencies: 577 | once: 1.4.0 578 | wrappy: 1.0.2 579 | dev: true 580 | 581 | /inherits/2.0.4: 582 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 583 | dev: true 584 | 585 | /is-binary-path/2.1.0: 586 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 587 | engines: {node: '>=8'} 588 | dependencies: 589 | binary-extensions: 2.2.0 590 | dev: true 591 | 592 | /is-extglob/2.1.1: 593 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 594 | engines: {node: '>=0.10.0'} 595 | dev: true 596 | 597 | /is-glob/4.0.3: 598 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 599 | engines: {node: '>=0.10.0'} 600 | dependencies: 601 | is-extglob: 2.1.1 602 | dev: true 603 | 604 | /is-number/7.0.0: 605 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 606 | engines: {node: '>=0.12.0'} 607 | dev: true 608 | 609 | /is-stream/2.0.1: 610 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 611 | engines: {node: '>=8'} 612 | dev: true 613 | 614 | /isexe/2.0.0: 615 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 616 | dev: true 617 | 618 | /joycon/3.1.1: 619 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 620 | engines: {node: '>=10'} 621 | dev: true 622 | 623 | /lilconfig/2.0.5: 624 | resolution: {integrity: sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==} 625 | engines: {node: '>=10'} 626 | dev: true 627 | 628 | /lines-and-columns/1.2.4: 629 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 630 | dev: true 631 | 632 | /load-tsconfig/0.2.3: 633 | resolution: {integrity: sha512-iyT2MXws+dc2Wi6o3grCFtGXpeMvHmJqS27sMPGtV2eUu4PeFnG+33I8BlFK1t1NWMjOpcx9bridn5yxLDX2gQ==} 634 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 635 | dev: true 636 | 637 | /lodash.sortby/4.7.0: 638 | resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} 639 | dev: true 640 | 641 | /magic-string/0.25.9: 642 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 643 | dependencies: 644 | sourcemap-codec: 1.4.8 645 | dev: true 646 | 647 | /merge-stream/2.0.0: 648 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 649 | dev: true 650 | 651 | /merge2/1.4.1: 652 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 653 | engines: {node: '>= 8'} 654 | dev: true 655 | 656 | /micromatch/4.0.5: 657 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 658 | engines: {node: '>=8.6'} 659 | dependencies: 660 | braces: 3.0.2 661 | picomatch: 2.3.1 662 | dev: true 663 | 664 | /mimic-fn/2.1.0: 665 | resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} 666 | engines: {node: '>=6'} 667 | dev: true 668 | 669 | /minimatch/3.1.2: 670 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 671 | dependencies: 672 | brace-expansion: 1.1.11 673 | dev: true 674 | 675 | /ms/2.1.2: 676 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 677 | dev: true 678 | 679 | /mz/2.7.0: 680 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 681 | dependencies: 682 | any-promise: 1.3.0 683 | object-assign: 4.1.1 684 | thenify-all: 1.6.0 685 | dev: true 686 | 687 | /nanoid/3.3.4: 688 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 689 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 690 | hasBin: true 691 | dev: true 692 | 693 | /normalize-path/3.0.0: 694 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 695 | engines: {node: '>=0.10.0'} 696 | dev: true 697 | 698 | /npm-run-path/4.0.1: 699 | resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} 700 | engines: {node: '>=8'} 701 | dependencies: 702 | path-key: 3.1.1 703 | dev: true 704 | 705 | /object-assign/4.1.1: 706 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 707 | engines: {node: '>=0.10.0'} 708 | dev: true 709 | 710 | /once/1.4.0: 711 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 712 | dependencies: 713 | wrappy: 1.0.2 714 | dev: true 715 | 716 | /onetime/5.1.2: 717 | resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} 718 | engines: {node: '>=6'} 719 | dependencies: 720 | mimic-fn: 2.1.0 721 | dev: true 722 | 723 | /path-is-absolute/1.0.1: 724 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 725 | engines: {node: '>=0.10.0'} 726 | dev: true 727 | 728 | /path-key/3.1.1: 729 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 730 | engines: {node: '>=8'} 731 | dev: true 732 | 733 | /path-type/4.0.0: 734 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 735 | engines: {node: '>=8'} 736 | dev: true 737 | 738 | /picocolors/1.0.0: 739 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 740 | dev: true 741 | 742 | /picomatch/2.3.1: 743 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 744 | engines: {node: '>=8.6'} 745 | dev: true 746 | 747 | /pirates/4.0.5: 748 | resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} 749 | engines: {node: '>= 6'} 750 | dev: true 751 | 752 | /postcss-load-config/3.1.4: 753 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 754 | engines: {node: '>= 10'} 755 | peerDependencies: 756 | postcss: '>=8.0.9' 757 | ts-node: '>=9.0.0' 758 | peerDependenciesMeta: 759 | postcss: 760 | optional: true 761 | ts-node: 762 | optional: true 763 | dependencies: 764 | lilconfig: 2.0.5 765 | yaml: 1.10.2 766 | dev: true 767 | 768 | /postcss/8.4.14: 769 | resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} 770 | engines: {node: ^10 || ^12 || >=14} 771 | dependencies: 772 | nanoid: 3.3.4 773 | picocolors: 1.0.0 774 | source-map-js: 1.0.2 775 | dev: true 776 | 777 | /prettier/2.7.1: 778 | resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==} 779 | engines: {node: '>=10.13.0'} 780 | hasBin: true 781 | dev: true 782 | 783 | /punycode/2.1.1: 784 | resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} 785 | engines: {node: '>=6'} 786 | dev: true 787 | 788 | /queue-microtask/1.2.3: 789 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 790 | dev: true 791 | 792 | /readdirp/3.6.0: 793 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 794 | engines: {node: '>=8.10.0'} 795 | dependencies: 796 | picomatch: 2.3.1 797 | dev: true 798 | 799 | /resolve-from/5.0.0: 800 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 801 | engines: {node: '>=8'} 802 | dev: true 803 | 804 | /reusify/1.0.4: 805 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 806 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 807 | dev: true 808 | 809 | /rollup/2.75.6: 810 | resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==} 811 | engines: {node: '>=10.0.0'} 812 | hasBin: true 813 | optionalDependencies: 814 | fsevents: 2.3.2 815 | dev: true 816 | 817 | /run-parallel/1.2.0: 818 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 819 | dependencies: 820 | queue-microtask: 1.2.3 821 | dev: true 822 | 823 | /shebang-command/2.0.0: 824 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 825 | engines: {node: '>=8'} 826 | dependencies: 827 | shebang-regex: 3.0.0 828 | dev: true 829 | 830 | /shebang-regex/3.0.0: 831 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 832 | engines: {node: '>=8'} 833 | dev: true 834 | 835 | /signal-exit/3.0.7: 836 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 837 | dev: true 838 | 839 | /slash/3.0.0: 840 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 841 | engines: {node: '>=8'} 842 | dev: true 843 | 844 | /source-map-js/1.0.2: 845 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 846 | engines: {node: '>=0.10.0'} 847 | dev: true 848 | 849 | /source-map/0.6.1: 850 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 851 | engines: {node: '>=0.10.0'} 852 | dev: true 853 | 854 | /source-map/0.8.0-beta.0: 855 | resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} 856 | engines: {node: '>= 8'} 857 | dependencies: 858 | whatwg-url: 7.1.0 859 | dev: true 860 | 861 | /sourcemap-codec/1.4.8: 862 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 863 | dev: true 864 | 865 | /strip-final-newline/2.0.0: 866 | resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} 867 | engines: {node: '>=6'} 868 | dev: true 869 | 870 | /sucrase/3.21.0: 871 | resolution: {integrity: sha512-FjAhMJjDcifARI7bZej0Bi1yekjWQHoEvWIXhLPwDhC6O4iZ5PtGb86WV56riW87hzpgB13wwBKO9vKAiWu5VQ==} 872 | engines: {node: '>=8'} 873 | hasBin: true 874 | dependencies: 875 | commander: 4.1.1 876 | glob: 7.1.6 877 | lines-and-columns: 1.2.4 878 | mz: 2.7.0 879 | pirates: 4.0.5 880 | ts-interface-checker: 0.1.13 881 | dev: true 882 | 883 | /thenify-all/1.6.0: 884 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 885 | engines: {node: '>=0.8'} 886 | dependencies: 887 | thenify: 3.3.1 888 | dev: true 889 | 890 | /thenify/3.3.1: 891 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 892 | dependencies: 893 | any-promise: 1.3.0 894 | dev: true 895 | 896 | /to-fast-properties/2.0.0: 897 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 898 | engines: {node: '>=4'} 899 | dev: true 900 | 901 | /to-regex-range/5.0.1: 902 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 903 | engines: {node: '>=8.0'} 904 | dependencies: 905 | is-number: 7.0.0 906 | dev: true 907 | 908 | /tr46/1.0.1: 909 | resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} 910 | dependencies: 911 | punycode: 2.1.1 912 | dev: true 913 | 914 | /tree-kill/1.2.2: 915 | resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} 916 | hasBin: true 917 | dev: true 918 | 919 | /ts-interface-checker/0.1.13: 920 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 921 | dev: true 922 | 923 | /tsup/6.1.2_typescript@4.7.4: 924 | resolution: {integrity: sha512-Hw4hKDHaAQkm2eVavlArEOrAPA93bziRDamdfwaNs0vXQdUUFfItvUWY0L/F6oQQMVh6GvjQq1+HpDXw8UKtPA==} 925 | engines: {node: '>=14'} 926 | hasBin: true 927 | peerDependencies: 928 | '@swc/core': ^1 929 | postcss: ^8.4.12 930 | typescript: ^4.1.0 931 | peerDependenciesMeta: 932 | '@swc/core': 933 | optional: true 934 | postcss: 935 | optional: true 936 | typescript: 937 | optional: true 938 | dependencies: 939 | bundle-require: 3.0.4_esbuild@0.14.46 940 | cac: 6.7.12 941 | chokidar: 3.5.3 942 | debug: 4.3.4 943 | esbuild: 0.14.46 944 | execa: 5.1.1 945 | globby: 11.1.0 946 | joycon: 3.1.1 947 | postcss-load-config: 3.1.4 948 | resolve-from: 5.0.0 949 | rollup: 2.75.6 950 | source-map: 0.8.0-beta.0 951 | sucrase: 3.21.0 952 | tree-kill: 1.2.2 953 | typescript: 4.7.4 954 | transitivePeerDependencies: 955 | - supports-color 956 | - ts-node 957 | dev: true 958 | 959 | /typescript/4.7.4: 960 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 961 | engines: {node: '>=4.2.0'} 962 | hasBin: true 963 | dev: true 964 | 965 | /vue/3.2.37: 966 | resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} 967 | dependencies: 968 | '@vue/compiler-dom': 3.2.37 969 | '@vue/compiler-sfc': 3.2.37 970 | '@vue/runtime-dom': 3.2.37 971 | '@vue/server-renderer': 3.2.37_vue@3.2.37 972 | '@vue/shared': 3.2.37 973 | dev: true 974 | 975 | /webidl-conversions/4.0.2: 976 | resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} 977 | dev: true 978 | 979 | /whatwg-url/7.1.0: 980 | resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} 981 | dependencies: 982 | lodash.sortby: 4.7.0 983 | tr46: 1.0.1 984 | webidl-conversions: 4.0.2 985 | dev: true 986 | 987 | /which/2.0.2: 988 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 989 | engines: {node: '>= 8'} 990 | hasBin: true 991 | dependencies: 992 | isexe: 2.0.0 993 | dev: true 994 | 995 | /wrappy/1.0.2: 996 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 997 | dev: true 998 | 999 | /yaml/1.10.2: 1000 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 1001 | engines: {node: '>= 6'} 1002 | dev: true 1003 | -------------------------------------------------------------------------------- /src/convert.ts: -------------------------------------------------------------------------------- 1 | import * as Vue from "vue"; 2 | export * from "vue"; 3 | export { Vue }; 4 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { reactive } from "./convert"; 2 | import { StorageOpts } from "./types"; 3 | 4 | export default class Storage { 5 | static _nameSpace = "rs-"; 6 | 7 | static _getStaticKey = (nameSpace: string, key: string) => 8 | `${nameSpace ?? this._nameSpace}${key}`; 9 | 10 | static install(app: any, options: StorageOpts) { 11 | const { nameSpace = this._nameSpace, memory } = options; 12 | memory && this.clearAll(nameSpace, memory); 13 | return new Storage(app, options); 14 | } 15 | 16 | static clearAll(nameSpace: string, memory: object) { 17 | Object.keys(memory).forEach(key => { 18 | const alias: string = nameSpace + key; 19 | if (Object.prototype.hasOwnProperty.call(window.localStorage, alias)) { 20 | window.localStorage.removeItem(alias); 21 | } 22 | }); 23 | } 24 | 25 | static get(key: string) { 26 | return JSON.parse(window.localStorage.getItem(key) as string); 27 | } 28 | 29 | static set(key: string, val: string) { 30 | val = typeof val === "object" ? JSON.stringify(val) : val; 31 | window.localStorage.setItem(key, val); 32 | } 33 | 34 | static getData(key: string, nameSpace?: string) { 35 | if ( 36 | Object.prototype.hasOwnProperty.call( 37 | window.localStorage, 38 | this._getStaticKey(nameSpace!, key) 39 | ) 40 | ) 41 | return JSON.parse( 42 | window.localStorage.getItem( 43 | this._getStaticKey(nameSpace!, key) 44 | ) as string 45 | ); 46 | } 47 | 48 | public constructor(app: any, options: StorageOpts) { 49 | const that = Storage; 50 | const { version = 3, nameSpace = that._nameSpace, memory } = options; 51 | const _getKey = (key: string): string => nameSpace + key; 52 | 53 | /** 54 | * Vue2 uses defineReactive to create responsive storage 55 | * Vue3 uses reactive to create responsive storage 56 | */ 57 | let _storage: any = version === 3 ? reactive(memory) : memory; 58 | 59 | if (Object.keys(_storage).length === 0) console.warn("key cannot be empty"); 60 | 61 | Object.keys(_storage).forEach(key => { 62 | const val = _storage[key]; 63 | that.set(_getKey(key), val); 64 | 65 | Reflect.defineProperty(_storage, key, { 66 | get: () => that.get(_getKey(key)), 67 | set: val => that.set(_getKey(key), val), 68 | configurable: true 69 | }); 70 | 71 | if (version === 2) app.util.defineReactive(_storage, key, _storage[key]); 72 | }); 73 | 74 | let _target = version === 3 ? app.config.globalProperties : app.prototype; 75 | Reflect.defineProperty(_target, "$storage", { 76 | get: () => _storage 77 | }); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | export type Version = 2 | 3; 2 | 3 | export interface StorageOpts { 4 | /** vue版本 可选2、3 默认3 */ 5 | version?: Version; 6 | /** 命名空间 默认 `rs-` */ 7 | nameSpace?: string; 8 | /** 需要存储的响应式对象 */ 9 | memory: object; 10 | } 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strict": true, 4 | "pretty": true, 5 | "sourceMap": false, 6 | "module": "esnext", 7 | "target": "esnext", 8 | "declaration": true, 9 | "skipLibCheck": true, 10 | "noImplicitAny": true, 11 | "importHelpers": true, 12 | "esModuleInterop": true, 13 | "isolatedModules": true, 14 | "resolveJsonModule": true, 15 | "moduleResolution": "node", 16 | "experimentalDecorators": true, 17 | "lib": ["ESNext", "ES6", "DOM"], 18 | "allowSyntheticDefaultImports": true, 19 | "forceConsistentCasingInFileNames": true, 20 | }, 21 | "types": ["node"], 22 | "include": ["src/*.ts"], 23 | "exclude": ["node_modules", "dist"] 24 | } 25 | -------------------------------------------------------------------------------- /tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "tsup"; 2 | 3 | const config = { 4 | dts: true, 5 | clean: true, 6 | minify: true, 7 | outDir: "dist", 8 | sourcemap: false, 9 | external: ["vue"] 10 | }; 11 | 12 | export default defineConfig([ 13 | { 14 | entry: ["src/index.ts"], 15 | format: ["esm"], 16 | ...config 17 | } 18 | ]); 19 | --------------------------------------------------------------------------------