├── .github └── workflows │ └── release.yml ├── .gitignore ├── .vscode └── extensions.json ├── README.md ├── env.d.ts ├── index.html ├── package.json ├── pnpm-lock.yaml ├── public ├── favicon.ico └── icon.png ├── scripts └── update.mjs ├── src-tauri ├── .gitignore ├── .taurignore ├── Cargo.lock ├── Cargo.toml ├── build.rs ├── icons │ ├── 128x128.png │ ├── 128x128@2x.png │ ├── 32x32.png │ ├── Square107x107Logo.png │ ├── Square142x142Logo.png │ ├── Square150x150Logo.png │ ├── Square284x284Logo.png │ ├── Square30x30Logo.png │ ├── Square310x310Logo.png │ ├── Square44x44Logo.png │ ├── Square71x71Logo.png │ ├── Square89x89Logo.png │ ├── StoreLogo.png │ ├── icon.icns │ ├── icon.ico │ └── icon.png ├── src │ ├── app_menu.rs │ ├── db_controller.rs │ ├── gpt │ │ └── mod.rs │ ├── main.rs │ └── models.rs └── tauri.conf.json ├── src ├── App.vue ├── assets │ ├── base.css │ ├── logo.svg │ └── main.css ├── components │ ├── CCanvas.vue │ ├── ItemEditor.vue │ ├── TaskItem.vue │ ├── TaskItems │ │ ├── TaskItem.vue │ │ ├── TaskItemForm.vue │ │ └── TaskTypeItems.vue │ ├── TheWelcome.vue │ ├── WelcomeItem.vue │ └── icons │ │ ├── IconCommunity.vue │ │ ├── IconDelete.vue │ │ ├── IconDocumentation.vue │ │ ├── IconEcosystem.vue │ │ ├── IconEdit.vue │ │ ├── IconSupport.vue │ │ └── IconTooling.vue ├── libs │ └── bridge.ts ├── main.ts ├── router │ └── index.ts ├── stores │ ├── counter.ts │ └── task.ts ├── types │ └── index.d.ts └── views │ ├── AboutView.vue │ ├── AiView.vue │ ├── HomeView.vue │ ├── TaskView.vue │ └── ToDoItem.vue ├── tsconfig.config.json ├── tsconfig.json └── vite.config.ts /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: Release 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v*' 7 | 8 | jobs: 9 | release: 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | platform: [macos-latest, ubuntu-latest, windows-latest] 14 | runs-on: ${{ matrix.platform }} 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v2 18 | 19 | - name: Install Node 20 | uses: actions/setup-node@v1 21 | with: 22 | node-version: 16 23 | 24 | - name: Install Rust stable 25 | uses: actions-rs/toolchain@v1 26 | with: 27 | toolchain: stable 28 | 29 | - name: Install Dependencies (ubuntu only) 30 | if: matrix.platform == 'ubuntu-latest' 31 | run: | 32 | sudo apt-get update 33 | sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf 34 | 35 | - run: yarn 36 | 37 | - name: Build Tauri 38 | uses: tauri-apps/tauri-action@v0 39 | env: 40 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 41 | TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }} 42 | TAURI_KEY_PASSWORD: '' 43 | with: 44 | tagName: v__VERSION__ 45 | releaseName: v__VERSION__ 46 | update: 47 | needs: release 48 | runs-on: macos-latest 49 | steps: 50 | - name: Checkout repository 51 | uses: actions/checkout@v2 52 | 53 | - name: Install Node 54 | uses: actions/setup-node@v1 55 | with: 56 | node-version: 16 57 | 58 | - run: yarn 59 | 60 | - name: Create Update 61 | run: yarn update 62 | env: 63 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 64 | -------------------------------------------------------------------------------- /.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 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"] 3 | } 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 7 |

8 | 随手记 9 |

随手记

10 |

11 | 12 | > 随手记 13 | 14 | [![English badge-暂无](https://img.shields.io/badge/%E8%8B%B1%E6%96%87-English-blue)](./README.md) 15 | [![简体中文 badge](https://img.shields.io/badge/%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87-Simplified%20Chinese-blue)](./README.md) 16 | 17 | ## 👀 预览 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | --- 28 | 29 | Buy Me A Coffee 30 | 31 | ## ❓常见问题 32 | 33 | ### 安全吗? 34 | 35 | 他是安全的,代码完全开源,而且数据内容存在本地的sqlite数据库,无任何网络请求。 36 | 37 | #### 开始 38 | 39 | ```bash 40 | # step1: 41 | git clone https://github.com/shijianzhong/tarui-vue3-handle-note 42 | 43 | # step2: 44 | cd tarui-vue3-handle-note 45 | 46 | # step3: install deps 47 | pnpm i 48 | 49 | # step4: 50 | cargo tauri dev 51 | 52 | # step5: 53 | # bundle path: src-tauri/target/release/bundle 54 | cargo tauri build 55 | ``` 56 | 57 | ## 用户 58 | 59 | 国内用户如果遇到使用问题或者想交流该项目,可以关注公众号“码农知道的事”,后续文章会更新到这个公众号。开源不易,如果这个项目对你有帮助可以分享给更多人,或者微信扫码赏。 60 | 61 | 62 | 63 | 64 | ## License 65 | 66 | Apache License 67 | -------------------------------------------------------------------------------- /env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Vite App 14 | 28 | 29 | 30 |
31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-project", 3 | "version": "0.0.0", 4 | "scripts": { 5 | "dev": "vite", 6 | "build": "run-p type-check build-only", 7 | "preview": "vite preview", 8 | "build-only": "vite build", 9 | "type-check": "vue-tsc --noEmit" 10 | }, 11 | "dependencies": { 12 | "@element-plus/icons-vue": "^2.0.10", 13 | "@tauri-apps/api": "1.2.0", 14 | "element-plus": "^2.2.21", 15 | "fabric": "^5.3.0", 16 | "mavon-editor": "3.0.0-beta", 17 | "pinia": "^2.0.23", 18 | "vue": "^3.2.41", 19 | "vue-router": "^4.1.5", 20 | "vuedraggable": "^4.1.0" 21 | }, 22 | "devDependencies": { 23 | "@types/node": "^16.11.68", 24 | "@vitejs/plugin-vue": "^3.1.2", 25 | "@vitejs/plugin-vue-jsx": "^2.0.1", 26 | "@vue/tsconfig": "^0.1.3", 27 | "npm-run-all": "^4.1.5", 28 | "sass": "^1.56.1", 29 | "typescript": "~4.7.4", 30 | "vite": "^3.1.8", 31 | "vue-tsc": "^1.0.8" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@element-plus/icons-vue': ^2.0.10 5 | '@tauri-apps/api': 1.2.0 6 | '@types/node': ^16.11.68 7 | '@vitejs/plugin-vue': ^3.1.2 8 | '@vitejs/plugin-vue-jsx': ^2.0.1 9 | '@vue/tsconfig': ^0.1.3 10 | element-plus: ^2.2.21 11 | fabric: ^5.3.0 12 | mavon-editor: 3.0.0-beta 13 | npm-run-all: ^4.1.5 14 | pinia: ^2.0.23 15 | sass: ^1.56.1 16 | typescript: ~4.7.4 17 | vite: ^3.1.8 18 | vue: ^3.2.41 19 | vue-router: ^4.1.5 20 | vue-tsc: ^1.0.8 21 | vuedraggable: ^4.1.0 22 | 23 | dependencies: 24 | '@element-plus/icons-vue': 2.0.10_vue@3.2.41 25 | '@tauri-apps/api': 1.2.0 26 | element-plus: 2.2.21_vue@3.2.41 27 | fabric: 5.3.0 28 | mavon-editor: 3.0.0-beta 29 | pinia: 2.0.23_lrjaoqkmph6q2hmgd3qeuy6rom 30 | vue: 3.2.41 31 | vue-router: 4.1.6_vue@3.2.41 32 | vuedraggable: 4.1.0_vue@3.2.41 33 | 34 | devDependencies: 35 | '@types/node': 16.18.3 36 | '@vitejs/plugin-vue': 3.2.0_vite@3.2.2+vue@3.2.41 37 | '@vitejs/plugin-vue-jsx': 2.1.0_vite@3.2.2+vue@3.2.41 38 | '@vue/tsconfig': 0.1.3_@types+node@16.18.3 39 | npm-run-all: 4.1.5 40 | sass: 1.56.1 41 | typescript: 4.7.4 42 | vite: 3.2.2_sass@1.56.1 43 | vue-tsc: 1.0.9_typescript@4.7.4 44 | 45 | packages: 46 | 47 | /@ampproject/remapping/2.2.0: 48 | resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} 49 | engines: {node: '>=6.0.0'} 50 | dependencies: 51 | '@jridgewell/gen-mapping': 0.1.1 52 | '@jridgewell/trace-mapping': 0.3.17 53 | dev: true 54 | 55 | /@babel/code-frame/7.18.6: 56 | resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} 57 | engines: {node: '>=6.9.0'} 58 | dependencies: 59 | '@babel/highlight': 7.18.6 60 | dev: true 61 | 62 | /@babel/compat-data/7.20.0: 63 | resolution: {integrity: sha512-Gt9jszFJYq7qzXVK4slhc6NzJXnOVmRECWcVjF/T23rNXD9NtWQ0W3qxdg+p9wWIB+VQw3GYV/U2Ha9bRTfs4w==} 64 | engines: {node: '>=6.9.0'} 65 | dev: true 66 | 67 | /@babel/core/7.19.6: 68 | resolution: {integrity: sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==} 69 | engines: {node: '>=6.9.0'} 70 | dependencies: 71 | '@ampproject/remapping': 2.2.0 72 | '@babel/code-frame': 7.18.6 73 | '@babel/generator': 7.20.0 74 | '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.19.6 75 | '@babel/helper-module-transforms': 7.19.6 76 | '@babel/helpers': 7.20.0 77 | '@babel/parser': 7.20.0 78 | '@babel/template': 7.18.10 79 | '@babel/traverse': 7.20.0 80 | '@babel/types': 7.20.0 81 | convert-source-map: 1.9.0 82 | debug: 4.3.4 83 | gensync: 1.0.0-beta.2 84 | json5: 2.2.1 85 | semver: 6.3.0 86 | transitivePeerDependencies: 87 | - supports-color 88 | dev: true 89 | 90 | /@babel/generator/7.20.0: 91 | resolution: {integrity: sha512-GUPcXxWibClgmYJuIwC2Bc2Lg+8b9VjaJ+HlNdACEVt+Wlr1eoU1OPZjZRm7Hzl0gaTsUZNQfeihvZJhG7oc3w==} 92 | engines: {node: '>=6.9.0'} 93 | dependencies: 94 | '@babel/types': 7.20.0 95 | '@jridgewell/gen-mapping': 0.3.2 96 | jsesc: 2.5.2 97 | dev: true 98 | 99 | /@babel/helper-annotate-as-pure/7.18.6: 100 | resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==} 101 | engines: {node: '>=6.9.0'} 102 | dependencies: 103 | '@babel/types': 7.20.0 104 | dev: true 105 | 106 | /@babel/helper-compilation-targets/7.20.0_@babel+core@7.19.6: 107 | resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==} 108 | engines: {node: '>=6.9.0'} 109 | peerDependencies: 110 | '@babel/core': ^7.0.0 111 | dependencies: 112 | '@babel/compat-data': 7.20.0 113 | '@babel/core': 7.19.6 114 | '@babel/helper-validator-option': 7.18.6 115 | browserslist: 4.21.4 116 | semver: 6.3.0 117 | dev: true 118 | 119 | /@babel/helper-create-class-features-plugin/7.19.0_@babel+core@7.19.6: 120 | resolution: {integrity: sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==} 121 | engines: {node: '>=6.9.0'} 122 | peerDependencies: 123 | '@babel/core': ^7.0.0 124 | dependencies: 125 | '@babel/core': 7.19.6 126 | '@babel/helper-annotate-as-pure': 7.18.6 127 | '@babel/helper-environment-visitor': 7.18.9 128 | '@babel/helper-function-name': 7.19.0 129 | '@babel/helper-member-expression-to-functions': 7.18.9 130 | '@babel/helper-optimise-call-expression': 7.18.6 131 | '@babel/helper-replace-supers': 7.19.1 132 | '@babel/helper-split-export-declaration': 7.18.6 133 | transitivePeerDependencies: 134 | - supports-color 135 | dev: true 136 | 137 | /@babel/helper-environment-visitor/7.18.9: 138 | resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==} 139 | engines: {node: '>=6.9.0'} 140 | dev: true 141 | 142 | /@babel/helper-function-name/7.19.0: 143 | resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==} 144 | engines: {node: '>=6.9.0'} 145 | dependencies: 146 | '@babel/template': 7.18.10 147 | '@babel/types': 7.20.0 148 | dev: true 149 | 150 | /@babel/helper-hoist-variables/7.18.6: 151 | resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==} 152 | engines: {node: '>=6.9.0'} 153 | dependencies: 154 | '@babel/types': 7.20.0 155 | dev: true 156 | 157 | /@babel/helper-member-expression-to-functions/7.18.9: 158 | resolution: {integrity: sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==} 159 | engines: {node: '>=6.9.0'} 160 | dependencies: 161 | '@babel/types': 7.20.0 162 | dev: true 163 | 164 | /@babel/helper-module-imports/7.18.6: 165 | resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==} 166 | engines: {node: '>=6.9.0'} 167 | dependencies: 168 | '@babel/types': 7.20.0 169 | dev: true 170 | 171 | /@babel/helper-module-transforms/7.19.6: 172 | resolution: {integrity: sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==} 173 | engines: {node: '>=6.9.0'} 174 | dependencies: 175 | '@babel/helper-environment-visitor': 7.18.9 176 | '@babel/helper-module-imports': 7.18.6 177 | '@babel/helper-simple-access': 7.19.4 178 | '@babel/helper-split-export-declaration': 7.18.6 179 | '@babel/helper-validator-identifier': 7.19.1 180 | '@babel/template': 7.18.10 181 | '@babel/traverse': 7.20.0 182 | '@babel/types': 7.20.0 183 | transitivePeerDependencies: 184 | - supports-color 185 | dev: true 186 | 187 | /@babel/helper-optimise-call-expression/7.18.6: 188 | resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==} 189 | engines: {node: '>=6.9.0'} 190 | dependencies: 191 | '@babel/types': 7.20.0 192 | dev: true 193 | 194 | /@babel/helper-plugin-utils/7.19.0: 195 | resolution: {integrity: sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==} 196 | engines: {node: '>=6.9.0'} 197 | dev: true 198 | 199 | /@babel/helper-replace-supers/7.19.1: 200 | resolution: {integrity: sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==} 201 | engines: {node: '>=6.9.0'} 202 | dependencies: 203 | '@babel/helper-environment-visitor': 7.18.9 204 | '@babel/helper-member-expression-to-functions': 7.18.9 205 | '@babel/helper-optimise-call-expression': 7.18.6 206 | '@babel/traverse': 7.20.0 207 | '@babel/types': 7.20.0 208 | transitivePeerDependencies: 209 | - supports-color 210 | dev: true 211 | 212 | /@babel/helper-simple-access/7.19.4: 213 | resolution: {integrity: sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==} 214 | engines: {node: '>=6.9.0'} 215 | dependencies: 216 | '@babel/types': 7.20.0 217 | dev: true 218 | 219 | /@babel/helper-split-export-declaration/7.18.6: 220 | resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==} 221 | engines: {node: '>=6.9.0'} 222 | dependencies: 223 | '@babel/types': 7.20.0 224 | dev: true 225 | 226 | /@babel/helper-string-parser/7.19.4: 227 | resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} 228 | engines: {node: '>=6.9.0'} 229 | 230 | /@babel/helper-validator-identifier/7.19.1: 231 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 232 | engines: {node: '>=6.9.0'} 233 | 234 | /@babel/helper-validator-option/7.18.6: 235 | resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==} 236 | engines: {node: '>=6.9.0'} 237 | dev: true 238 | 239 | /@babel/helpers/7.20.0: 240 | resolution: {integrity: sha512-aGMjYraN0zosCEthoGLdqot1oRsmxVTQRHadsUPz5QM44Zej2PYRz7XiDE7GqnkZnNtLbOuxqoZw42vkU7+XEQ==} 241 | engines: {node: '>=6.9.0'} 242 | dependencies: 243 | '@babel/template': 7.18.10 244 | '@babel/traverse': 7.20.0 245 | '@babel/types': 7.20.0 246 | transitivePeerDependencies: 247 | - supports-color 248 | dev: true 249 | 250 | /@babel/highlight/7.18.6: 251 | resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} 252 | engines: {node: '>=6.9.0'} 253 | dependencies: 254 | '@babel/helper-validator-identifier': 7.19.1 255 | chalk: 2.4.2 256 | js-tokens: 4.0.0 257 | dev: true 258 | 259 | /@babel/parser/7.20.0: 260 | resolution: {integrity: sha512-G9VgAhEaICnz8iiJeGJQyVl6J2nTjbW0xeisva0PK6XcKsga7BIaqm4ZF8Rg1Wbaqmy6znspNqhPaPkyukujzg==} 261 | engines: {node: '>=6.0.0'} 262 | hasBin: true 263 | dependencies: 264 | '@babel/types': 7.20.0 265 | 266 | /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.19.6: 267 | resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} 268 | engines: {node: '>=6.9.0'} 269 | peerDependencies: 270 | '@babel/core': ^7.0.0-0 271 | dependencies: 272 | '@babel/core': 7.19.6 273 | '@babel/helper-plugin-utils': 7.19.0 274 | dev: true 275 | 276 | /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.19.6: 277 | resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==} 278 | engines: {node: '>=6.9.0'} 279 | peerDependencies: 280 | '@babel/core': ^7.0.0-0 281 | dependencies: 282 | '@babel/core': 7.19.6 283 | '@babel/helper-plugin-utils': 7.19.0 284 | dev: true 285 | 286 | /@babel/plugin-transform-typescript/7.20.0_@babel+core@7.19.6: 287 | resolution: {integrity: sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==} 288 | engines: {node: '>=6.9.0'} 289 | peerDependencies: 290 | '@babel/core': ^7.0.0-0 291 | dependencies: 292 | '@babel/core': 7.19.6 293 | '@babel/helper-create-class-features-plugin': 7.19.0_@babel+core@7.19.6 294 | '@babel/helper-plugin-utils': 7.19.0 295 | '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.19.6 296 | transitivePeerDependencies: 297 | - supports-color 298 | dev: true 299 | 300 | /@babel/template/7.18.10: 301 | resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==} 302 | engines: {node: '>=6.9.0'} 303 | dependencies: 304 | '@babel/code-frame': 7.18.6 305 | '@babel/parser': 7.20.0 306 | '@babel/types': 7.20.0 307 | dev: true 308 | 309 | /@babel/traverse/7.20.0: 310 | resolution: {integrity: sha512-5+cAXQNARgjRUK0JWu2UBwja4JLSO/rBMPJzpsKb+oBF5xlUuCfljQepS4XypBQoiigL0VQjTZy6WiONtUdScQ==} 311 | engines: {node: '>=6.9.0'} 312 | dependencies: 313 | '@babel/code-frame': 7.18.6 314 | '@babel/generator': 7.20.0 315 | '@babel/helper-environment-visitor': 7.18.9 316 | '@babel/helper-function-name': 7.19.0 317 | '@babel/helper-hoist-variables': 7.18.6 318 | '@babel/helper-split-export-declaration': 7.18.6 319 | '@babel/parser': 7.20.0 320 | '@babel/types': 7.20.0 321 | debug: 4.3.4 322 | globals: 11.12.0 323 | transitivePeerDependencies: 324 | - supports-color 325 | dev: true 326 | 327 | /@babel/types/7.20.0: 328 | resolution: {integrity: sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==} 329 | engines: {node: '>=6.9.0'} 330 | dependencies: 331 | '@babel/helper-string-parser': 7.19.4 332 | '@babel/helper-validator-identifier': 7.19.1 333 | to-fast-properties: 2.0.0 334 | 335 | /@ctrl/tinycolor/3.4.1: 336 | resolution: {integrity: sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==} 337 | engines: {node: '>=10'} 338 | dev: false 339 | 340 | /@element-plus/icons-vue/2.0.10_vue@3.2.41: 341 | resolution: {integrity: sha512-ygEZ1mwPjcPo/OulhzLE7mtDrQBWI8vZzEWSNB2W/RNCRjoQGwbaK4N8lV4rid7Ts4qvySU3njMN7YCiSlSaTQ==} 342 | peerDependencies: 343 | vue: ^3.2.0 344 | dependencies: 345 | vue: 3.2.41 346 | dev: false 347 | 348 | /@esbuild/android-arm/0.15.12: 349 | resolution: {integrity: sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA==} 350 | engines: {node: '>=12'} 351 | cpu: [arm] 352 | os: [android] 353 | requiresBuild: true 354 | dev: true 355 | optional: true 356 | 357 | /@esbuild/linux-loong64/0.15.12: 358 | resolution: {integrity: sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw==} 359 | engines: {node: '>=12'} 360 | cpu: [loong64] 361 | os: [linux] 362 | requiresBuild: true 363 | dev: true 364 | optional: true 365 | 366 | /@floating-ui/core/1.0.1: 367 | resolution: {integrity: sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==} 368 | dev: false 369 | 370 | /@floating-ui/dom/1.0.4: 371 | resolution: {integrity: sha512-maYJRv+sAXTy4K9mzdv0JPyNW5YPVHrqtY90tEdI6XNpuLOP26Ci2pfwPsKBA/Wh4Z3FX5sUrtUFTdMYj9v+ug==} 372 | dependencies: 373 | '@floating-ui/core': 1.0.1 374 | dev: false 375 | 376 | /@jridgewell/gen-mapping/0.1.1: 377 | resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} 378 | engines: {node: '>=6.0.0'} 379 | dependencies: 380 | '@jridgewell/set-array': 1.1.2 381 | '@jridgewell/sourcemap-codec': 1.4.14 382 | dev: true 383 | 384 | /@jridgewell/gen-mapping/0.3.2: 385 | resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} 386 | engines: {node: '>=6.0.0'} 387 | dependencies: 388 | '@jridgewell/set-array': 1.1.2 389 | '@jridgewell/sourcemap-codec': 1.4.14 390 | '@jridgewell/trace-mapping': 0.3.17 391 | dev: true 392 | 393 | /@jridgewell/resolve-uri/3.1.0: 394 | resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} 395 | engines: {node: '>=6.0.0'} 396 | dev: true 397 | 398 | /@jridgewell/set-array/1.1.2: 399 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 400 | engines: {node: '>=6.0.0'} 401 | dev: true 402 | 403 | /@jridgewell/sourcemap-codec/1.4.14: 404 | resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} 405 | dev: true 406 | 407 | /@jridgewell/trace-mapping/0.3.17: 408 | resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} 409 | dependencies: 410 | '@jridgewell/resolve-uri': 3.1.0 411 | '@jridgewell/sourcemap-codec': 1.4.14 412 | dev: true 413 | 414 | /@mapbox/node-pre-gyp/1.0.10: 415 | resolution: {integrity: sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA==} 416 | hasBin: true 417 | dependencies: 418 | detect-libc: 2.0.1 419 | https-proxy-agent: 5.0.1 420 | make-dir: 3.1.0 421 | node-fetch: 2.6.9 422 | nopt: 5.0.0 423 | npmlog: 5.0.1 424 | rimraf: 3.0.2 425 | semver: 7.3.8 426 | tar: 6.1.13 427 | transitivePeerDependencies: 428 | - encoding 429 | - supports-color 430 | dev: false 431 | optional: true 432 | 433 | /@sxzz/popperjs-es/2.11.7: 434 | resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} 435 | dev: false 436 | 437 | /@tauri-apps/api/1.2.0: 438 | resolution: {integrity: sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==} 439 | engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} 440 | dev: false 441 | 442 | /@tootallnate/once/2.0.0: 443 | resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} 444 | engines: {node: '>= 10'} 445 | dev: false 446 | optional: true 447 | 448 | /@types/lodash-es/4.17.6: 449 | resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} 450 | dependencies: 451 | '@types/lodash': 4.14.189 452 | dev: false 453 | 454 | /@types/lodash/4.14.189: 455 | resolution: {integrity: sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==} 456 | dev: false 457 | 458 | /@types/node/16.18.3: 459 | resolution: {integrity: sha512-jh6m0QUhIRcZpNv7Z/rpN+ZWXOicUUQbSoWks7Htkbb9IjFQj4kzcX/xFCkjstCj5flMsN8FiSvt+q+Tcs4Llg==} 460 | dev: true 461 | 462 | /@types/web-bluetooth/0.0.16: 463 | resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} 464 | dev: false 465 | 466 | /@vitejs/plugin-vue-jsx/2.1.0_vite@3.2.2+vue@3.2.41: 467 | resolution: {integrity: sha512-vvL8MHKN0hUf5LE+/rCk1rduwzW6NihD6xEfM4s1gGCSWQFYd5zLdxBs++z3S7AV/ynr7Yig5Xp1Bm0wlB4IAA==} 468 | engines: {node: ^14.18.0 || >=16.0.0} 469 | peerDependencies: 470 | vite: ^3.0.0 471 | vue: ^3.0.0 472 | dependencies: 473 | '@babel/core': 7.19.6 474 | '@babel/plugin-transform-typescript': 7.20.0_@babel+core@7.19.6 475 | '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.19.6 476 | vite: 3.2.2_sass@1.56.1 477 | vue: 3.2.41 478 | transitivePeerDependencies: 479 | - supports-color 480 | dev: true 481 | 482 | /@vitejs/plugin-vue/3.2.0_vite@3.2.2+vue@3.2.41: 483 | resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==} 484 | engines: {node: ^14.18.0 || >=16.0.0} 485 | peerDependencies: 486 | vite: ^3.0.0 487 | vue: ^3.2.25 488 | dependencies: 489 | vite: 3.2.2_sass@1.56.1 490 | vue: 3.2.41 491 | dev: true 492 | 493 | /@volar/language-core/1.0.9: 494 | resolution: {integrity: sha512-5Fty3slLet6svXiJw2YxhYeo6c7wFdtILrql5bZymYLM+HbiZtJbryW1YnUEKAP7MO9Mbeh+TNH4Z0HFxHgIqw==} 495 | dependencies: 496 | '@volar/source-map': 1.0.9 497 | '@vue/reactivity': 3.2.41 498 | muggle-string: 0.1.0 499 | dev: true 500 | 501 | /@volar/source-map/1.0.9: 502 | resolution: {integrity: sha512-fazB/vy5ZEJ3yKx4fabJyGNI3CBkdLkfEIRVu6+1P3VixK0Mn+eqyUIkLBrzGYaeFM3GybhCLCvsVdNz0Fu/CQ==} 503 | dependencies: 504 | muggle-string: 0.1.0 505 | dev: true 506 | 507 | /@volar/typescript/1.0.9: 508 | resolution: {integrity: sha512-dVziu+ShQUWuMukM6bvK2v2O446/gG6l1XkTh2vfkccw1IzjfbiP1TWQoNo1ipTfZOtu5YJGYAx+o5HNrGXWfQ==} 509 | dependencies: 510 | '@volar/language-core': 1.0.9 511 | dev: true 512 | 513 | /@volar/vue-language-core/1.0.9: 514 | resolution: {integrity: sha512-tofNoR8ShPFenHT1YVMuvoXtXWwoQE+fiXVqSmW0dSKZqEDjWQ3YeXSd0a6aqyKaIbvR7kWWGp34WbpQlwf9Ww==} 515 | dependencies: 516 | '@volar/language-core': 1.0.9 517 | '@volar/source-map': 1.0.9 518 | '@vue/compiler-dom': 3.2.41 519 | '@vue/compiler-sfc': 3.2.41 520 | '@vue/reactivity': 3.2.41 521 | '@vue/shared': 3.2.41 522 | minimatch: 5.1.0 523 | vue-template-compiler: 2.7.13 524 | dev: true 525 | 526 | /@volar/vue-typescript/1.0.9: 527 | resolution: {integrity: sha512-ZLe4y9YNbviACa7uAMCilzxA76gbbSlKfjspXBzk6fCobd8QCIig+VyDYcjANIlm2HhgSCX8jYTzhCKlegh4mw==} 528 | dependencies: 529 | '@volar/typescript': 1.0.9 530 | '@volar/vue-language-core': 1.0.9 531 | dev: true 532 | 533 | /@vue/babel-helper-vue-transform-on/1.0.2: 534 | resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==} 535 | dev: true 536 | 537 | /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.19.6: 538 | resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==} 539 | dependencies: 540 | '@babel/helper-module-imports': 7.18.6 541 | '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.19.6 542 | '@babel/template': 7.18.10 543 | '@babel/traverse': 7.20.0 544 | '@babel/types': 7.20.0 545 | '@vue/babel-helper-vue-transform-on': 1.0.2 546 | camelcase: 6.3.0 547 | html-tags: 3.2.0 548 | svg-tags: 1.0.0 549 | transitivePeerDependencies: 550 | - '@babel/core' 551 | - supports-color 552 | dev: true 553 | 554 | /@vue/compiler-core/3.2.41: 555 | resolution: {integrity: sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==} 556 | dependencies: 557 | '@babel/parser': 7.20.0 558 | '@vue/shared': 3.2.41 559 | estree-walker: 2.0.2 560 | source-map: 0.6.1 561 | 562 | /@vue/compiler-dom/3.2.41: 563 | resolution: {integrity: sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==} 564 | dependencies: 565 | '@vue/compiler-core': 3.2.41 566 | '@vue/shared': 3.2.41 567 | 568 | /@vue/compiler-sfc/3.2.41: 569 | resolution: {integrity: sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==} 570 | dependencies: 571 | '@babel/parser': 7.20.0 572 | '@vue/compiler-core': 3.2.41 573 | '@vue/compiler-dom': 3.2.41 574 | '@vue/compiler-ssr': 3.2.41 575 | '@vue/reactivity-transform': 3.2.41 576 | '@vue/shared': 3.2.41 577 | estree-walker: 2.0.2 578 | magic-string: 0.25.9 579 | postcss: 8.4.18 580 | source-map: 0.6.1 581 | 582 | /@vue/compiler-ssr/3.2.41: 583 | resolution: {integrity: sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==} 584 | dependencies: 585 | '@vue/compiler-dom': 3.2.41 586 | '@vue/shared': 3.2.41 587 | 588 | /@vue/devtools-api/6.4.5: 589 | resolution: {integrity: sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==} 590 | dev: false 591 | 592 | /@vue/reactivity-transform/3.2.41: 593 | resolution: {integrity: sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==} 594 | dependencies: 595 | '@babel/parser': 7.20.0 596 | '@vue/compiler-core': 3.2.41 597 | '@vue/shared': 3.2.41 598 | estree-walker: 2.0.2 599 | magic-string: 0.25.9 600 | 601 | /@vue/reactivity/3.2.41: 602 | resolution: {integrity: sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==} 603 | dependencies: 604 | '@vue/shared': 3.2.41 605 | 606 | /@vue/runtime-core/3.2.41: 607 | resolution: {integrity: sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==} 608 | dependencies: 609 | '@vue/reactivity': 3.2.41 610 | '@vue/shared': 3.2.41 611 | 612 | /@vue/runtime-dom/3.2.41: 613 | resolution: {integrity: sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==} 614 | dependencies: 615 | '@vue/runtime-core': 3.2.41 616 | '@vue/shared': 3.2.41 617 | csstype: 2.6.21 618 | 619 | /@vue/server-renderer/3.2.41_vue@3.2.41: 620 | resolution: {integrity: sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==} 621 | peerDependencies: 622 | vue: 3.2.41 623 | dependencies: 624 | '@vue/compiler-ssr': 3.2.41 625 | '@vue/shared': 3.2.41 626 | vue: 3.2.41 627 | 628 | /@vue/shared/3.2.41: 629 | resolution: {integrity: sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==} 630 | 631 | /@vue/tsconfig/0.1.3_@types+node@16.18.3: 632 | resolution: {integrity: sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==} 633 | peerDependencies: 634 | '@types/node': '*' 635 | peerDependenciesMeta: 636 | '@types/node': 637 | optional: true 638 | dependencies: 639 | '@types/node': 16.18.3 640 | dev: true 641 | 642 | /@vueuse/core/9.5.0_vue@3.2.41: 643 | resolution: {integrity: sha512-6GsWBsJHEb3sYw15mbLrcbslAVY45pkzjJYTKYKCXv88z7srAF0VEW0q+oXKsl58tCbqooplInahXFg8Yo1m4w==} 644 | dependencies: 645 | '@types/web-bluetooth': 0.0.16 646 | '@vueuse/metadata': 9.5.0 647 | '@vueuse/shared': 9.5.0_vue@3.2.41 648 | vue-demi: 0.13.11_vue@3.2.41 649 | transitivePeerDependencies: 650 | - '@vue/composition-api' 651 | - vue 652 | dev: false 653 | 654 | /@vueuse/metadata/9.5.0: 655 | resolution: {integrity: sha512-4M1AyPZmIv41pym+K5+4wup3bKuYebbH8w8BROY1hmT7rIwcyS4tEL+UsGz0Hiu1FCOxcoBrwtAizc0YmBJjyQ==} 656 | dev: false 657 | 658 | /@vueuse/shared/9.5.0_vue@3.2.41: 659 | resolution: {integrity: sha512-HnnCWU1Vg9CVWRCcI8ohDKDRB2Sc4bTgT1XAIaoLSfVHHn+TKbrox6pd3klCSw4UDxkhDfOk8cAdcK+Z5KleCA==} 660 | dependencies: 661 | vue-demi: 0.13.11_vue@3.2.41 662 | transitivePeerDependencies: 663 | - '@vue/composition-api' 664 | - vue 665 | dev: false 666 | 667 | /abab/2.0.6: 668 | resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} 669 | dev: false 670 | optional: true 671 | 672 | /abbrev/1.1.1: 673 | resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} 674 | dev: false 675 | optional: true 676 | 677 | /acorn-globals/6.0.0: 678 | resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} 679 | dependencies: 680 | acorn: 7.4.1 681 | acorn-walk: 7.2.0 682 | dev: false 683 | optional: true 684 | 685 | /acorn-walk/7.2.0: 686 | resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} 687 | engines: {node: '>=0.4.0'} 688 | dev: false 689 | optional: true 690 | 691 | /acorn/7.4.1: 692 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 693 | engines: {node: '>=0.4.0'} 694 | hasBin: true 695 | dev: false 696 | optional: true 697 | 698 | /acorn/8.8.2: 699 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 700 | engines: {node: '>=0.4.0'} 701 | hasBin: true 702 | dev: false 703 | optional: true 704 | 705 | /agent-base/6.0.2: 706 | resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} 707 | engines: {node: '>= 6.0.0'} 708 | dependencies: 709 | debug: 4.3.4 710 | transitivePeerDependencies: 711 | - supports-color 712 | dev: false 713 | optional: true 714 | 715 | /ansi-regex/5.0.1: 716 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 717 | engines: {node: '>=8'} 718 | dev: false 719 | optional: true 720 | 721 | /ansi-styles/3.2.1: 722 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 723 | engines: {node: '>=4'} 724 | dependencies: 725 | color-convert: 1.9.3 726 | dev: true 727 | 728 | /anymatch/3.1.2: 729 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 730 | engines: {node: '>= 8'} 731 | dependencies: 732 | normalize-path: 3.0.0 733 | picomatch: 2.3.1 734 | dev: true 735 | 736 | /aproba/2.0.0: 737 | resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} 738 | dev: false 739 | optional: true 740 | 741 | /are-we-there-yet/2.0.0: 742 | resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} 743 | engines: {node: '>=10'} 744 | dependencies: 745 | delegates: 1.0.0 746 | readable-stream: 3.6.0 747 | dev: false 748 | optional: true 749 | 750 | /async-validator/4.2.5: 751 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 752 | dev: false 753 | 754 | /asynckit/0.4.0: 755 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 756 | dev: false 757 | optional: true 758 | 759 | /balanced-match/1.0.2: 760 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 761 | 762 | /binary-extensions/2.2.0: 763 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 764 | engines: {node: '>=8'} 765 | dev: true 766 | 767 | /brace-expansion/1.1.11: 768 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 769 | dependencies: 770 | balanced-match: 1.0.2 771 | concat-map: 0.0.1 772 | 773 | /brace-expansion/2.0.1: 774 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 775 | dependencies: 776 | balanced-match: 1.0.2 777 | dev: true 778 | 779 | /braces/3.0.2: 780 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 781 | engines: {node: '>=8'} 782 | dependencies: 783 | fill-range: 7.0.1 784 | dev: true 785 | 786 | /browser-process-hrtime/1.0.0: 787 | resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} 788 | dev: false 789 | optional: true 790 | 791 | /browserslist/4.21.4: 792 | resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==} 793 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 794 | hasBin: true 795 | dependencies: 796 | caniuse-lite: 1.0.30001429 797 | electron-to-chromium: 1.4.284 798 | node-releases: 2.0.6 799 | update-browserslist-db: 1.0.10_browserslist@4.21.4 800 | dev: true 801 | 802 | /call-bind/1.0.2: 803 | resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} 804 | dependencies: 805 | function-bind: 1.1.1 806 | get-intrinsic: 1.1.3 807 | dev: true 808 | 809 | /camelcase/6.3.0: 810 | resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} 811 | engines: {node: '>=10'} 812 | dev: true 813 | 814 | /caniuse-lite/1.0.30001429: 815 | resolution: {integrity: sha512-511ThLu1hF+5RRRt0zYCf2U2yRr9GPF6m5y90SBCWsvSoYoW7yAGlv/elyPaNfvGCkp6kj/KFZWU0BMA69Prsg==} 816 | dev: true 817 | 818 | /canvas/2.11.0: 819 | resolution: {integrity: sha512-bdTjFexjKJEwtIo0oRx8eD4G2yWoUOXP9lj279jmQ2zMnTQhT8C3512OKz3s+ZOaQlLbE7TuVvRDYDB3Llyy5g==} 820 | engines: {node: '>=6'} 821 | requiresBuild: true 822 | dependencies: 823 | '@mapbox/node-pre-gyp': 1.0.10 824 | nan: 2.17.0 825 | simple-get: 3.1.1 826 | transitivePeerDependencies: 827 | - encoding 828 | - supports-color 829 | dev: false 830 | optional: true 831 | 832 | /chalk/2.4.2: 833 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 834 | engines: {node: '>=4'} 835 | dependencies: 836 | ansi-styles: 3.2.1 837 | escape-string-regexp: 1.0.5 838 | supports-color: 5.5.0 839 | dev: true 840 | 841 | /chokidar/3.5.3: 842 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 843 | engines: {node: '>= 8.10.0'} 844 | dependencies: 845 | anymatch: 3.1.2 846 | braces: 3.0.2 847 | glob-parent: 5.1.2 848 | is-binary-path: 2.1.0 849 | is-glob: 4.0.3 850 | normalize-path: 3.0.0 851 | readdirp: 3.6.0 852 | optionalDependencies: 853 | fsevents: 2.3.2 854 | dev: true 855 | 856 | /chownr/2.0.0: 857 | resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} 858 | engines: {node: '>=10'} 859 | dev: false 860 | optional: true 861 | 862 | /color-convert/1.9.3: 863 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 864 | dependencies: 865 | color-name: 1.1.3 866 | dev: true 867 | 868 | /color-name/1.1.3: 869 | resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} 870 | dev: true 871 | 872 | /color-support/1.1.3: 873 | resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} 874 | hasBin: true 875 | dev: false 876 | optional: true 877 | 878 | /combined-stream/1.0.8: 879 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 880 | engines: {node: '>= 0.8'} 881 | dependencies: 882 | delayed-stream: 1.0.0 883 | dev: false 884 | optional: true 885 | 886 | /commander/2.20.3: 887 | resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} 888 | dev: false 889 | 890 | /concat-map/0.0.1: 891 | resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} 892 | 893 | /console-control-strings/1.1.0: 894 | resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} 895 | dev: false 896 | optional: true 897 | 898 | /convert-source-map/1.9.0: 899 | resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} 900 | dev: true 901 | 902 | /cross-spawn/6.0.5: 903 | resolution: {integrity: sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==} 904 | engines: {node: '>=4.8'} 905 | dependencies: 906 | nice-try: 1.0.5 907 | path-key: 2.0.1 908 | semver: 5.7.1 909 | shebang-command: 1.2.0 910 | which: 1.3.1 911 | dev: true 912 | 913 | /cssfilter/0.0.10: 914 | resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==} 915 | dev: false 916 | 917 | /cssom/0.3.8: 918 | resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} 919 | dev: false 920 | optional: true 921 | 922 | /cssom/0.5.0: 923 | resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} 924 | dev: false 925 | optional: true 926 | 927 | /cssstyle/2.3.0: 928 | resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} 929 | engines: {node: '>=8'} 930 | dependencies: 931 | cssom: 0.3.8 932 | dev: false 933 | optional: true 934 | 935 | /csstype/2.6.21: 936 | resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} 937 | 938 | /data-urls/3.0.2: 939 | resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} 940 | engines: {node: '>=12'} 941 | dependencies: 942 | abab: 2.0.6 943 | whatwg-mimetype: 3.0.0 944 | whatwg-url: 11.0.0 945 | dev: false 946 | optional: true 947 | 948 | /dayjs/1.11.6: 949 | resolution: {integrity: sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==} 950 | dev: false 951 | 952 | /de-indent/1.0.2: 953 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 954 | dev: true 955 | 956 | /debug/4.3.4: 957 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 958 | engines: {node: '>=6.0'} 959 | peerDependencies: 960 | supports-color: '*' 961 | peerDependenciesMeta: 962 | supports-color: 963 | optional: true 964 | dependencies: 965 | ms: 2.1.2 966 | 967 | /decimal.js/10.4.3: 968 | resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} 969 | dev: false 970 | optional: true 971 | 972 | /decompress-response/4.2.1: 973 | resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} 974 | engines: {node: '>=8'} 975 | dependencies: 976 | mimic-response: 2.1.0 977 | dev: false 978 | optional: true 979 | 980 | /deep-is/0.1.4: 981 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 982 | dev: false 983 | optional: true 984 | 985 | /define-properties/1.1.4: 986 | resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} 987 | engines: {node: '>= 0.4'} 988 | dependencies: 989 | has-property-descriptors: 1.0.0 990 | object-keys: 1.1.1 991 | dev: true 992 | 993 | /delayed-stream/1.0.0: 994 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 995 | engines: {node: '>=0.4.0'} 996 | dev: false 997 | optional: true 998 | 999 | /delegates/1.0.0: 1000 | resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} 1001 | dev: false 1002 | optional: true 1003 | 1004 | /detect-libc/2.0.1: 1005 | resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} 1006 | engines: {node: '>=8'} 1007 | dev: false 1008 | optional: true 1009 | 1010 | /domexception/4.0.0: 1011 | resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} 1012 | engines: {node: '>=12'} 1013 | dependencies: 1014 | webidl-conversions: 7.0.0 1015 | dev: false 1016 | optional: true 1017 | 1018 | /electron-to-chromium/1.4.284: 1019 | resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==} 1020 | dev: true 1021 | 1022 | /element-plus/2.2.21_vue@3.2.41: 1023 | resolution: {integrity: sha512-wZUePoXZ1zuCkzENK/8mn+mekuLJ9OoGYiudjUujzCf+T8HfOQl+TKQStwOkGBNk93fK8e9YdFIty4jH4AX6dg==} 1024 | peerDependencies: 1025 | vue: ^3.2.0 1026 | dependencies: 1027 | '@ctrl/tinycolor': 3.4.1 1028 | '@element-plus/icons-vue': 2.0.10_vue@3.2.41 1029 | '@floating-ui/dom': 1.0.4 1030 | '@popperjs/core': /@sxzz/popperjs-es/2.11.7 1031 | '@types/lodash': 4.14.189 1032 | '@types/lodash-es': 4.17.6 1033 | '@vueuse/core': 9.5.0_vue@3.2.41 1034 | async-validator: 4.2.5 1035 | dayjs: 1.11.6 1036 | escape-html: 1.0.3 1037 | lodash: 4.17.21 1038 | lodash-es: 4.17.21 1039 | lodash-unified: 1.0.3_3ib2ivapxullxkx3xftsimdk7u 1040 | memoize-one: 6.0.0 1041 | normalize-wheel-es: 1.2.0 1042 | vue: 3.2.41 1043 | transitivePeerDependencies: 1044 | - '@vue/composition-api' 1045 | dev: false 1046 | 1047 | /emoji-regex/8.0.0: 1048 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1049 | dev: false 1050 | optional: true 1051 | 1052 | /error-ex/1.3.2: 1053 | resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} 1054 | dependencies: 1055 | is-arrayish: 0.2.1 1056 | dev: true 1057 | 1058 | /es-abstract/1.20.4: 1059 | resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} 1060 | engines: {node: '>= 0.4'} 1061 | dependencies: 1062 | call-bind: 1.0.2 1063 | es-to-primitive: 1.2.1 1064 | function-bind: 1.1.1 1065 | function.prototype.name: 1.1.5 1066 | get-intrinsic: 1.1.3 1067 | get-symbol-description: 1.0.0 1068 | has: 1.0.3 1069 | has-property-descriptors: 1.0.0 1070 | has-symbols: 1.0.3 1071 | internal-slot: 1.0.3 1072 | is-callable: 1.2.7 1073 | is-negative-zero: 2.0.2 1074 | is-regex: 1.1.4 1075 | is-shared-array-buffer: 1.0.2 1076 | is-string: 1.0.7 1077 | is-weakref: 1.0.2 1078 | object-inspect: 1.12.2 1079 | object-keys: 1.1.1 1080 | object.assign: 4.1.4 1081 | regexp.prototype.flags: 1.4.3 1082 | safe-regex-test: 1.0.0 1083 | string.prototype.trimend: 1.0.5 1084 | string.prototype.trimstart: 1.0.5 1085 | unbox-primitive: 1.0.2 1086 | dev: true 1087 | 1088 | /es-to-primitive/1.2.1: 1089 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1090 | engines: {node: '>= 0.4'} 1091 | dependencies: 1092 | is-callable: 1.2.7 1093 | is-date-object: 1.0.5 1094 | is-symbol: 1.0.4 1095 | dev: true 1096 | 1097 | /esbuild-android-64/0.15.12: 1098 | resolution: {integrity: sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q==} 1099 | engines: {node: '>=12'} 1100 | cpu: [x64] 1101 | os: [android] 1102 | requiresBuild: true 1103 | dev: true 1104 | optional: true 1105 | 1106 | /esbuild-android-arm64/0.15.12: 1107 | resolution: {integrity: sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA==} 1108 | engines: {node: '>=12'} 1109 | cpu: [arm64] 1110 | os: [android] 1111 | requiresBuild: true 1112 | dev: true 1113 | optional: true 1114 | 1115 | /esbuild-darwin-64/0.15.12: 1116 | resolution: {integrity: sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q==} 1117 | engines: {node: '>=12'} 1118 | cpu: [x64] 1119 | os: [darwin] 1120 | requiresBuild: true 1121 | dev: true 1122 | optional: true 1123 | 1124 | /esbuild-darwin-arm64/0.15.12: 1125 | resolution: {integrity: sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw==} 1126 | engines: {node: '>=12'} 1127 | cpu: [arm64] 1128 | os: [darwin] 1129 | requiresBuild: true 1130 | dev: true 1131 | optional: true 1132 | 1133 | /esbuild-freebsd-64/0.15.12: 1134 | resolution: {integrity: sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw==} 1135 | engines: {node: '>=12'} 1136 | cpu: [x64] 1137 | os: [freebsd] 1138 | requiresBuild: true 1139 | dev: true 1140 | optional: true 1141 | 1142 | /esbuild-freebsd-arm64/0.15.12: 1143 | resolution: {integrity: sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g==} 1144 | engines: {node: '>=12'} 1145 | cpu: [arm64] 1146 | os: [freebsd] 1147 | requiresBuild: true 1148 | dev: true 1149 | optional: true 1150 | 1151 | /esbuild-linux-32/0.15.12: 1152 | resolution: {integrity: sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA==} 1153 | engines: {node: '>=12'} 1154 | cpu: [ia32] 1155 | os: [linux] 1156 | requiresBuild: true 1157 | dev: true 1158 | optional: true 1159 | 1160 | /esbuild-linux-64/0.15.12: 1161 | resolution: {integrity: sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA==} 1162 | engines: {node: '>=12'} 1163 | cpu: [x64] 1164 | os: [linux] 1165 | requiresBuild: true 1166 | dev: true 1167 | optional: true 1168 | 1169 | /esbuild-linux-arm/0.15.12: 1170 | resolution: {integrity: sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A==} 1171 | engines: {node: '>=12'} 1172 | cpu: [arm] 1173 | os: [linux] 1174 | requiresBuild: true 1175 | dev: true 1176 | optional: true 1177 | 1178 | /esbuild-linux-arm64/0.15.12: 1179 | resolution: {integrity: sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ==} 1180 | engines: {node: '>=12'} 1181 | cpu: [arm64] 1182 | os: [linux] 1183 | requiresBuild: true 1184 | dev: true 1185 | optional: true 1186 | 1187 | /esbuild-linux-mips64le/0.15.12: 1188 | resolution: {integrity: sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A==} 1189 | engines: {node: '>=12'} 1190 | cpu: [mips64el] 1191 | os: [linux] 1192 | requiresBuild: true 1193 | dev: true 1194 | optional: true 1195 | 1196 | /esbuild-linux-ppc64le/0.15.12: 1197 | resolution: {integrity: sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg==} 1198 | engines: {node: '>=12'} 1199 | cpu: [ppc64] 1200 | os: [linux] 1201 | requiresBuild: true 1202 | dev: true 1203 | optional: true 1204 | 1205 | /esbuild-linux-riscv64/0.15.12: 1206 | resolution: {integrity: sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA==} 1207 | engines: {node: '>=12'} 1208 | cpu: [riscv64] 1209 | os: [linux] 1210 | requiresBuild: true 1211 | dev: true 1212 | optional: true 1213 | 1214 | /esbuild-linux-s390x/0.15.12: 1215 | resolution: {integrity: sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww==} 1216 | engines: {node: '>=12'} 1217 | cpu: [s390x] 1218 | os: [linux] 1219 | requiresBuild: true 1220 | dev: true 1221 | optional: true 1222 | 1223 | /esbuild-netbsd-64/0.15.12: 1224 | resolution: {integrity: sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w==} 1225 | engines: {node: '>=12'} 1226 | cpu: [x64] 1227 | os: [netbsd] 1228 | requiresBuild: true 1229 | dev: true 1230 | optional: true 1231 | 1232 | /esbuild-openbsd-64/0.15.12: 1233 | resolution: {integrity: sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw==} 1234 | engines: {node: '>=12'} 1235 | cpu: [x64] 1236 | os: [openbsd] 1237 | requiresBuild: true 1238 | dev: true 1239 | optional: true 1240 | 1241 | /esbuild-sunos-64/0.15.12: 1242 | resolution: {integrity: sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg==} 1243 | engines: {node: '>=12'} 1244 | cpu: [x64] 1245 | os: [sunos] 1246 | requiresBuild: true 1247 | dev: true 1248 | optional: true 1249 | 1250 | /esbuild-windows-32/0.15.12: 1251 | resolution: {integrity: sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw==} 1252 | engines: {node: '>=12'} 1253 | cpu: [ia32] 1254 | os: [win32] 1255 | requiresBuild: true 1256 | dev: true 1257 | optional: true 1258 | 1259 | /esbuild-windows-64/0.15.12: 1260 | resolution: {integrity: sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA==} 1261 | engines: {node: '>=12'} 1262 | cpu: [x64] 1263 | os: [win32] 1264 | requiresBuild: true 1265 | dev: true 1266 | optional: true 1267 | 1268 | /esbuild-windows-arm64/0.15.12: 1269 | resolution: {integrity: sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA==} 1270 | engines: {node: '>=12'} 1271 | cpu: [arm64] 1272 | os: [win32] 1273 | requiresBuild: true 1274 | dev: true 1275 | optional: true 1276 | 1277 | /esbuild/0.15.12: 1278 | resolution: {integrity: sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng==} 1279 | engines: {node: '>=12'} 1280 | hasBin: true 1281 | requiresBuild: true 1282 | optionalDependencies: 1283 | '@esbuild/android-arm': 0.15.12 1284 | '@esbuild/linux-loong64': 0.15.12 1285 | esbuild-android-64: 0.15.12 1286 | esbuild-android-arm64: 0.15.12 1287 | esbuild-darwin-64: 0.15.12 1288 | esbuild-darwin-arm64: 0.15.12 1289 | esbuild-freebsd-64: 0.15.12 1290 | esbuild-freebsd-arm64: 0.15.12 1291 | esbuild-linux-32: 0.15.12 1292 | esbuild-linux-64: 0.15.12 1293 | esbuild-linux-arm: 0.15.12 1294 | esbuild-linux-arm64: 0.15.12 1295 | esbuild-linux-mips64le: 0.15.12 1296 | esbuild-linux-ppc64le: 0.15.12 1297 | esbuild-linux-riscv64: 0.15.12 1298 | esbuild-linux-s390x: 0.15.12 1299 | esbuild-netbsd-64: 0.15.12 1300 | esbuild-openbsd-64: 0.15.12 1301 | esbuild-sunos-64: 0.15.12 1302 | esbuild-windows-32: 0.15.12 1303 | esbuild-windows-64: 0.15.12 1304 | esbuild-windows-arm64: 0.15.12 1305 | dev: true 1306 | 1307 | /escalade/3.1.1: 1308 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1309 | engines: {node: '>=6'} 1310 | dev: true 1311 | 1312 | /escape-html/1.0.3: 1313 | resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} 1314 | dev: false 1315 | 1316 | /escape-string-regexp/1.0.5: 1317 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1318 | engines: {node: '>=0.8.0'} 1319 | dev: true 1320 | 1321 | /escodegen/2.0.0: 1322 | resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} 1323 | engines: {node: '>=6.0'} 1324 | hasBin: true 1325 | dependencies: 1326 | esprima: 4.0.1 1327 | estraverse: 5.3.0 1328 | esutils: 2.0.3 1329 | optionator: 0.8.3 1330 | optionalDependencies: 1331 | source-map: 0.6.1 1332 | dev: false 1333 | optional: true 1334 | 1335 | /esprima/4.0.1: 1336 | resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} 1337 | engines: {node: '>=4'} 1338 | hasBin: true 1339 | dev: false 1340 | optional: true 1341 | 1342 | /estraverse/5.3.0: 1343 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1344 | engines: {node: '>=4.0'} 1345 | dev: false 1346 | optional: true 1347 | 1348 | /estree-walker/2.0.2: 1349 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1350 | 1351 | /esutils/2.0.3: 1352 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1353 | engines: {node: '>=0.10.0'} 1354 | dev: false 1355 | optional: true 1356 | 1357 | /fabric/5.3.0: 1358 | resolution: {integrity: sha512-AVayKuzWoXM5cTn7iD3yNWBlfEa8r1tHaOe2g8NsZrmWKAHjryTxT/j6f9ncRfOWOF0I1Ci1AId3y78cC+GExQ==} 1359 | engines: {node: '>=14.0.0'} 1360 | optionalDependencies: 1361 | canvas: 2.11.0 1362 | jsdom: 19.0.0_canvas@2.11.0 1363 | transitivePeerDependencies: 1364 | - bufferutil 1365 | - encoding 1366 | - supports-color 1367 | - utf-8-validate 1368 | dev: false 1369 | 1370 | /fast-levenshtein/2.0.6: 1371 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1372 | dev: false 1373 | optional: true 1374 | 1375 | /fill-range/7.0.1: 1376 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1377 | engines: {node: '>=8'} 1378 | dependencies: 1379 | to-regex-range: 5.0.1 1380 | dev: true 1381 | 1382 | /form-data/4.0.0: 1383 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 1384 | engines: {node: '>= 6'} 1385 | dependencies: 1386 | asynckit: 0.4.0 1387 | combined-stream: 1.0.8 1388 | mime-types: 2.1.35 1389 | dev: false 1390 | optional: true 1391 | 1392 | /fs-minipass/2.1.0: 1393 | resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} 1394 | engines: {node: '>= 8'} 1395 | dependencies: 1396 | minipass: 3.3.6 1397 | dev: false 1398 | optional: true 1399 | 1400 | /fs.realpath/1.0.0: 1401 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1402 | dev: false 1403 | optional: true 1404 | 1405 | /fsevents/2.3.2: 1406 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1407 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1408 | os: [darwin] 1409 | requiresBuild: true 1410 | dev: true 1411 | optional: true 1412 | 1413 | /function-bind/1.1.1: 1414 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1415 | dev: true 1416 | 1417 | /function.prototype.name/1.1.5: 1418 | resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} 1419 | engines: {node: '>= 0.4'} 1420 | dependencies: 1421 | call-bind: 1.0.2 1422 | define-properties: 1.1.4 1423 | es-abstract: 1.20.4 1424 | functions-have-names: 1.2.3 1425 | dev: true 1426 | 1427 | /functions-have-names/1.2.3: 1428 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1429 | dev: true 1430 | 1431 | /gauge/3.0.2: 1432 | resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} 1433 | engines: {node: '>=10'} 1434 | dependencies: 1435 | aproba: 2.0.0 1436 | color-support: 1.1.3 1437 | console-control-strings: 1.1.0 1438 | has-unicode: 2.0.1 1439 | object-assign: 4.1.1 1440 | signal-exit: 3.0.7 1441 | string-width: 4.2.3 1442 | strip-ansi: 6.0.1 1443 | wide-align: 1.1.5 1444 | dev: false 1445 | optional: true 1446 | 1447 | /gensync/1.0.0-beta.2: 1448 | resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1449 | engines: {node: '>=6.9.0'} 1450 | dev: true 1451 | 1452 | /get-intrinsic/1.1.3: 1453 | resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} 1454 | dependencies: 1455 | function-bind: 1.1.1 1456 | has: 1.0.3 1457 | has-symbols: 1.0.3 1458 | dev: true 1459 | 1460 | /get-symbol-description/1.0.0: 1461 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1462 | engines: {node: '>= 0.4'} 1463 | dependencies: 1464 | call-bind: 1.0.2 1465 | get-intrinsic: 1.1.3 1466 | dev: true 1467 | 1468 | /glob-parent/5.1.2: 1469 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1470 | engines: {node: '>= 6'} 1471 | dependencies: 1472 | is-glob: 4.0.3 1473 | dev: true 1474 | 1475 | /glob/7.2.3: 1476 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1477 | dependencies: 1478 | fs.realpath: 1.0.0 1479 | inflight: 1.0.6 1480 | inherits: 2.0.4 1481 | minimatch: 3.1.2 1482 | once: 1.4.0 1483 | path-is-absolute: 1.0.1 1484 | dev: false 1485 | optional: true 1486 | 1487 | /globals/11.12.0: 1488 | resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} 1489 | engines: {node: '>=4'} 1490 | dev: true 1491 | 1492 | /graceful-fs/4.2.10: 1493 | resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} 1494 | dev: true 1495 | 1496 | /has-bigints/1.0.2: 1497 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1498 | dev: true 1499 | 1500 | /has-flag/3.0.0: 1501 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1502 | engines: {node: '>=4'} 1503 | dev: true 1504 | 1505 | /has-property-descriptors/1.0.0: 1506 | resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} 1507 | dependencies: 1508 | get-intrinsic: 1.1.3 1509 | dev: true 1510 | 1511 | /has-symbols/1.0.3: 1512 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1513 | engines: {node: '>= 0.4'} 1514 | dev: true 1515 | 1516 | /has-tostringtag/1.0.0: 1517 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1518 | engines: {node: '>= 0.4'} 1519 | dependencies: 1520 | has-symbols: 1.0.3 1521 | dev: true 1522 | 1523 | /has-unicode/2.0.1: 1524 | resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} 1525 | dev: false 1526 | optional: true 1527 | 1528 | /has/1.0.3: 1529 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1530 | engines: {node: '>= 0.4.0'} 1531 | dependencies: 1532 | function-bind: 1.1.1 1533 | dev: true 1534 | 1535 | /he/1.2.0: 1536 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 1537 | hasBin: true 1538 | dev: true 1539 | 1540 | /highlight.js-async-webpack/1.0.4: 1541 | resolution: {integrity: sha512-IC0AwUgNr7BU8pqheaCEvOQvOtIZwO3I4rtbmT489Ndz8loE31IRmBmT6C4qDCbfZjzNO+k2w3VceZjTQ3JQ8Q==} 1542 | dev: false 1543 | 1544 | /highlight.js/9.18.5: 1545 | resolution: {integrity: sha512-a5bFyofd/BHCX52/8i8uJkjr9DYwXIPnM/plwI6W7ezItLGqzt7X2G2nXuYSfsIJdkwwj/g9DG1LkcGJI/dDoA==} 1546 | deprecated: Support has ended for 9.x series. Upgrade to @latest 1547 | requiresBuild: true 1548 | dev: false 1549 | 1550 | /hosted-git-info/2.8.9: 1551 | resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} 1552 | dev: true 1553 | 1554 | /html-encoding-sniffer/3.0.0: 1555 | resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} 1556 | engines: {node: '>=12'} 1557 | dependencies: 1558 | whatwg-encoding: 2.0.0 1559 | dev: false 1560 | optional: true 1561 | 1562 | /html-tags/3.2.0: 1563 | resolution: {integrity: sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==} 1564 | engines: {node: '>=8'} 1565 | dev: true 1566 | 1567 | /http-proxy-agent/5.0.0: 1568 | resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} 1569 | engines: {node: '>= 6'} 1570 | dependencies: 1571 | '@tootallnate/once': 2.0.0 1572 | agent-base: 6.0.2 1573 | debug: 4.3.4 1574 | transitivePeerDependencies: 1575 | - supports-color 1576 | dev: false 1577 | optional: true 1578 | 1579 | /https-proxy-agent/5.0.1: 1580 | resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} 1581 | engines: {node: '>= 6'} 1582 | dependencies: 1583 | agent-base: 6.0.2 1584 | debug: 4.3.4 1585 | transitivePeerDependencies: 1586 | - supports-color 1587 | dev: false 1588 | optional: true 1589 | 1590 | /iconv-lite/0.6.3: 1591 | resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1592 | engines: {node: '>=0.10.0'} 1593 | dependencies: 1594 | safer-buffer: 2.1.2 1595 | dev: false 1596 | optional: true 1597 | 1598 | /immutable/4.1.0: 1599 | resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} 1600 | dev: true 1601 | 1602 | /inflight/1.0.6: 1603 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1604 | dependencies: 1605 | once: 1.4.0 1606 | wrappy: 1.0.2 1607 | dev: false 1608 | optional: true 1609 | 1610 | /inherits/2.0.4: 1611 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1612 | dev: false 1613 | optional: true 1614 | 1615 | /internal-slot/1.0.3: 1616 | resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} 1617 | engines: {node: '>= 0.4'} 1618 | dependencies: 1619 | get-intrinsic: 1.1.3 1620 | has: 1.0.3 1621 | side-channel: 1.0.4 1622 | dev: true 1623 | 1624 | /is-arrayish/0.2.1: 1625 | resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} 1626 | dev: true 1627 | 1628 | /is-bigint/1.0.4: 1629 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1630 | dependencies: 1631 | has-bigints: 1.0.2 1632 | dev: true 1633 | 1634 | /is-binary-path/2.1.0: 1635 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1636 | engines: {node: '>=8'} 1637 | dependencies: 1638 | binary-extensions: 2.2.0 1639 | dev: true 1640 | 1641 | /is-boolean-object/1.1.2: 1642 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1643 | engines: {node: '>= 0.4'} 1644 | dependencies: 1645 | call-bind: 1.0.2 1646 | has-tostringtag: 1.0.0 1647 | dev: true 1648 | 1649 | /is-callable/1.2.7: 1650 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1651 | engines: {node: '>= 0.4'} 1652 | dev: true 1653 | 1654 | /is-core-module/2.11.0: 1655 | resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} 1656 | dependencies: 1657 | has: 1.0.3 1658 | dev: true 1659 | 1660 | /is-date-object/1.0.5: 1661 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1662 | engines: {node: '>= 0.4'} 1663 | dependencies: 1664 | has-tostringtag: 1.0.0 1665 | dev: true 1666 | 1667 | /is-extglob/2.1.1: 1668 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1669 | engines: {node: '>=0.10.0'} 1670 | dev: true 1671 | 1672 | /is-fullwidth-code-point/3.0.0: 1673 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1674 | engines: {node: '>=8'} 1675 | dev: false 1676 | optional: true 1677 | 1678 | /is-glob/4.0.3: 1679 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1680 | engines: {node: '>=0.10.0'} 1681 | dependencies: 1682 | is-extglob: 2.1.1 1683 | dev: true 1684 | 1685 | /is-negative-zero/2.0.2: 1686 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1687 | engines: {node: '>= 0.4'} 1688 | dev: true 1689 | 1690 | /is-number-object/1.0.7: 1691 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1692 | engines: {node: '>= 0.4'} 1693 | dependencies: 1694 | has-tostringtag: 1.0.0 1695 | dev: true 1696 | 1697 | /is-number/7.0.0: 1698 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1699 | engines: {node: '>=0.12.0'} 1700 | dev: true 1701 | 1702 | /is-potential-custom-element-name/1.0.1: 1703 | resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1704 | dev: false 1705 | optional: true 1706 | 1707 | /is-regex/1.1.4: 1708 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1709 | engines: {node: '>= 0.4'} 1710 | dependencies: 1711 | call-bind: 1.0.2 1712 | has-tostringtag: 1.0.0 1713 | dev: true 1714 | 1715 | /is-shared-array-buffer/1.0.2: 1716 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1717 | dependencies: 1718 | call-bind: 1.0.2 1719 | dev: true 1720 | 1721 | /is-string/1.0.7: 1722 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1723 | engines: {node: '>= 0.4'} 1724 | dependencies: 1725 | has-tostringtag: 1.0.0 1726 | dev: true 1727 | 1728 | /is-symbol/1.0.4: 1729 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1730 | engines: {node: '>= 0.4'} 1731 | dependencies: 1732 | has-symbols: 1.0.3 1733 | dev: true 1734 | 1735 | /is-weakref/1.0.2: 1736 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1737 | dependencies: 1738 | call-bind: 1.0.2 1739 | dev: true 1740 | 1741 | /isexe/2.0.0: 1742 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1743 | dev: true 1744 | 1745 | /js-tokens/4.0.0: 1746 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1747 | dev: true 1748 | 1749 | /jsdom/19.0.0_canvas@2.11.0: 1750 | resolution: {integrity: sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==} 1751 | engines: {node: '>=12'} 1752 | requiresBuild: true 1753 | peerDependencies: 1754 | canvas: ^2.5.0 1755 | peerDependenciesMeta: 1756 | canvas: 1757 | optional: true 1758 | dependencies: 1759 | abab: 2.0.6 1760 | acorn: 8.8.2 1761 | acorn-globals: 6.0.0 1762 | canvas: 2.11.0 1763 | cssom: 0.5.0 1764 | cssstyle: 2.3.0 1765 | data-urls: 3.0.2 1766 | decimal.js: 10.4.3 1767 | domexception: 4.0.0 1768 | escodegen: 2.0.0 1769 | form-data: 4.0.0 1770 | html-encoding-sniffer: 3.0.0 1771 | http-proxy-agent: 5.0.0 1772 | https-proxy-agent: 5.0.1 1773 | is-potential-custom-element-name: 1.0.1 1774 | nwsapi: 2.2.2 1775 | parse5: 6.0.1 1776 | saxes: 5.0.1 1777 | symbol-tree: 3.2.4 1778 | tough-cookie: 4.1.2 1779 | w3c-hr-time: 1.0.2 1780 | w3c-xmlserializer: 3.0.0 1781 | webidl-conversions: 7.0.0 1782 | whatwg-encoding: 2.0.0 1783 | whatwg-mimetype: 3.0.0 1784 | whatwg-url: 10.0.0 1785 | ws: 8.12.0 1786 | xml-name-validator: 4.0.0 1787 | transitivePeerDependencies: 1788 | - bufferutil 1789 | - supports-color 1790 | - utf-8-validate 1791 | dev: false 1792 | optional: true 1793 | 1794 | /jsesc/2.5.2: 1795 | resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} 1796 | engines: {node: '>=4'} 1797 | hasBin: true 1798 | dev: true 1799 | 1800 | /json-parse-better-errors/1.0.2: 1801 | resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} 1802 | dev: true 1803 | 1804 | /json5/2.2.1: 1805 | resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} 1806 | engines: {node: '>=6'} 1807 | hasBin: true 1808 | dev: true 1809 | 1810 | /levn/0.3.0: 1811 | resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} 1812 | engines: {node: '>= 0.8.0'} 1813 | dependencies: 1814 | prelude-ls: 1.1.2 1815 | type-check: 0.3.2 1816 | dev: false 1817 | optional: true 1818 | 1819 | /load-json-file/4.0.0: 1820 | resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} 1821 | engines: {node: '>=4'} 1822 | dependencies: 1823 | graceful-fs: 4.2.10 1824 | parse-json: 4.0.0 1825 | pify: 3.0.0 1826 | strip-bom: 3.0.0 1827 | dev: true 1828 | 1829 | /lodash-es/4.17.21: 1830 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 1831 | dev: false 1832 | 1833 | /lodash-unified/1.0.3_3ib2ivapxullxkx3xftsimdk7u: 1834 | resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} 1835 | peerDependencies: 1836 | '@types/lodash-es': '*' 1837 | lodash: '*' 1838 | lodash-es: '*' 1839 | dependencies: 1840 | '@types/lodash-es': 4.17.6 1841 | lodash: 4.17.21 1842 | lodash-es: 4.17.21 1843 | dev: false 1844 | 1845 | /lodash/4.17.21: 1846 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1847 | dev: false 1848 | 1849 | /lru-cache/6.0.0: 1850 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 1851 | engines: {node: '>=10'} 1852 | dependencies: 1853 | yallist: 4.0.0 1854 | dev: false 1855 | optional: true 1856 | 1857 | /magic-string/0.25.9: 1858 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 1859 | dependencies: 1860 | sourcemap-codec: 1.4.8 1861 | 1862 | /make-dir/3.1.0: 1863 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1864 | engines: {node: '>=8'} 1865 | dependencies: 1866 | semver: 6.3.0 1867 | dev: false 1868 | optional: true 1869 | 1870 | /mavon-editor/3.0.0-beta: 1871 | resolution: {integrity: sha512-cmGKbkgrlvFtrhEVyEUIO2X30R+0p0cWpWcYZ97p2E7zn5flKakgv3gq/4mrzjb6UTmhUiHis38k+a6fP6XUEQ==} 1872 | dependencies: 1873 | highlight.js: 9.18.5 1874 | highlight.js-async-webpack: 1.0.4 1875 | xss: 1.0.14 1876 | dev: false 1877 | 1878 | /memoize-one/6.0.0: 1879 | resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} 1880 | dev: false 1881 | 1882 | /memorystream/0.3.1: 1883 | resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} 1884 | engines: {node: '>= 0.10.0'} 1885 | dev: true 1886 | 1887 | /mime-db/1.52.0: 1888 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1889 | engines: {node: '>= 0.6'} 1890 | dev: false 1891 | optional: true 1892 | 1893 | /mime-types/2.1.35: 1894 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1895 | engines: {node: '>= 0.6'} 1896 | dependencies: 1897 | mime-db: 1.52.0 1898 | dev: false 1899 | optional: true 1900 | 1901 | /mimic-response/2.1.0: 1902 | resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} 1903 | engines: {node: '>=8'} 1904 | dev: false 1905 | optional: true 1906 | 1907 | /minimatch/3.1.2: 1908 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1909 | dependencies: 1910 | brace-expansion: 1.1.11 1911 | 1912 | /minimatch/5.1.0: 1913 | resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} 1914 | engines: {node: '>=10'} 1915 | dependencies: 1916 | brace-expansion: 2.0.1 1917 | dev: true 1918 | 1919 | /minipass/3.3.6: 1920 | resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} 1921 | engines: {node: '>=8'} 1922 | dependencies: 1923 | yallist: 4.0.0 1924 | dev: false 1925 | optional: true 1926 | 1927 | /minipass/4.0.3: 1928 | resolution: {integrity: sha512-OW2r4sQ0sI+z5ckEt5c1Tri4xTgZwYDxpE54eqWlQloQRoWtXjqt9udJ5Z4dSv7wK+nfFI7FRXyCpBSft+gpFw==} 1929 | engines: {node: '>=8'} 1930 | dev: false 1931 | optional: true 1932 | 1933 | /minizlib/2.1.2: 1934 | resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} 1935 | engines: {node: '>= 8'} 1936 | dependencies: 1937 | minipass: 3.3.6 1938 | yallist: 4.0.0 1939 | dev: false 1940 | optional: true 1941 | 1942 | /mkdirp/1.0.4: 1943 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 1944 | engines: {node: '>=10'} 1945 | hasBin: true 1946 | dev: false 1947 | optional: true 1948 | 1949 | /ms/2.1.2: 1950 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1951 | 1952 | /muggle-string/0.1.0: 1953 | resolution: {integrity: sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==} 1954 | dev: true 1955 | 1956 | /nan/2.17.0: 1957 | resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==} 1958 | dev: false 1959 | optional: true 1960 | 1961 | /nanoid/3.3.4: 1962 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 1963 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1964 | hasBin: true 1965 | 1966 | /nice-try/1.0.5: 1967 | resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} 1968 | dev: true 1969 | 1970 | /node-fetch/2.6.9: 1971 | resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} 1972 | engines: {node: 4.x || >=6.0.0} 1973 | peerDependencies: 1974 | encoding: ^0.1.0 1975 | peerDependenciesMeta: 1976 | encoding: 1977 | optional: true 1978 | dependencies: 1979 | whatwg-url: 5.0.0 1980 | dev: false 1981 | optional: true 1982 | 1983 | /node-releases/2.0.6: 1984 | resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==} 1985 | dev: true 1986 | 1987 | /nopt/5.0.0: 1988 | resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} 1989 | engines: {node: '>=6'} 1990 | hasBin: true 1991 | dependencies: 1992 | abbrev: 1.1.1 1993 | dev: false 1994 | optional: true 1995 | 1996 | /normalize-package-data/2.5.0: 1997 | resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} 1998 | dependencies: 1999 | hosted-git-info: 2.8.9 2000 | resolve: 1.22.1 2001 | semver: 5.7.1 2002 | validate-npm-package-license: 3.0.4 2003 | dev: true 2004 | 2005 | /normalize-path/3.0.0: 2006 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2007 | engines: {node: '>=0.10.0'} 2008 | dev: true 2009 | 2010 | /normalize-wheel-es/1.2.0: 2011 | resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} 2012 | dev: false 2013 | 2014 | /npm-run-all/4.1.5: 2015 | resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} 2016 | engines: {node: '>= 4'} 2017 | hasBin: true 2018 | dependencies: 2019 | ansi-styles: 3.2.1 2020 | chalk: 2.4.2 2021 | cross-spawn: 6.0.5 2022 | memorystream: 0.3.1 2023 | minimatch: 3.1.2 2024 | pidtree: 0.3.1 2025 | read-pkg: 3.0.0 2026 | shell-quote: 1.7.4 2027 | string.prototype.padend: 3.1.3 2028 | dev: true 2029 | 2030 | /npmlog/5.0.1: 2031 | resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} 2032 | dependencies: 2033 | are-we-there-yet: 2.0.0 2034 | console-control-strings: 1.1.0 2035 | gauge: 3.0.2 2036 | set-blocking: 2.0.0 2037 | dev: false 2038 | optional: true 2039 | 2040 | /nwsapi/2.2.2: 2041 | resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} 2042 | dev: false 2043 | optional: true 2044 | 2045 | /object-assign/4.1.1: 2046 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2047 | engines: {node: '>=0.10.0'} 2048 | dev: false 2049 | optional: true 2050 | 2051 | /object-inspect/1.12.2: 2052 | resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} 2053 | dev: true 2054 | 2055 | /object-keys/1.1.1: 2056 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2057 | engines: {node: '>= 0.4'} 2058 | dev: true 2059 | 2060 | /object.assign/4.1.4: 2061 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2062 | engines: {node: '>= 0.4'} 2063 | dependencies: 2064 | call-bind: 1.0.2 2065 | define-properties: 1.1.4 2066 | has-symbols: 1.0.3 2067 | object-keys: 1.1.1 2068 | dev: true 2069 | 2070 | /once/1.4.0: 2071 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2072 | dependencies: 2073 | wrappy: 1.0.2 2074 | dev: false 2075 | optional: true 2076 | 2077 | /optionator/0.8.3: 2078 | resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} 2079 | engines: {node: '>= 0.8.0'} 2080 | dependencies: 2081 | deep-is: 0.1.4 2082 | fast-levenshtein: 2.0.6 2083 | levn: 0.3.0 2084 | prelude-ls: 1.1.2 2085 | type-check: 0.3.2 2086 | word-wrap: 1.2.3 2087 | dev: false 2088 | optional: true 2089 | 2090 | /parse-json/4.0.0: 2091 | resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} 2092 | engines: {node: '>=4'} 2093 | dependencies: 2094 | error-ex: 1.3.2 2095 | json-parse-better-errors: 1.0.2 2096 | dev: true 2097 | 2098 | /parse5/6.0.1: 2099 | resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} 2100 | dev: false 2101 | optional: true 2102 | 2103 | /path-is-absolute/1.0.1: 2104 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2105 | engines: {node: '>=0.10.0'} 2106 | dev: false 2107 | optional: true 2108 | 2109 | /path-key/2.0.1: 2110 | resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} 2111 | engines: {node: '>=4'} 2112 | dev: true 2113 | 2114 | /path-parse/1.0.7: 2115 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2116 | dev: true 2117 | 2118 | /path-type/3.0.0: 2119 | resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} 2120 | engines: {node: '>=4'} 2121 | dependencies: 2122 | pify: 3.0.0 2123 | dev: true 2124 | 2125 | /picocolors/1.0.0: 2126 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2127 | 2128 | /picomatch/2.3.1: 2129 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2130 | engines: {node: '>=8.6'} 2131 | dev: true 2132 | 2133 | /pidtree/0.3.1: 2134 | resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} 2135 | engines: {node: '>=0.10'} 2136 | hasBin: true 2137 | dev: true 2138 | 2139 | /pify/3.0.0: 2140 | resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} 2141 | engines: {node: '>=4'} 2142 | dev: true 2143 | 2144 | /pinia/2.0.23_lrjaoqkmph6q2hmgd3qeuy6rom: 2145 | resolution: {integrity: sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==} 2146 | peerDependencies: 2147 | '@vue/composition-api': ^1.4.0 2148 | typescript: '>=4.4.4' 2149 | vue: ^2.6.14 || ^3.2.0 2150 | peerDependenciesMeta: 2151 | '@vue/composition-api': 2152 | optional: true 2153 | typescript: 2154 | optional: true 2155 | dependencies: 2156 | '@vue/devtools-api': 6.4.5 2157 | typescript: 4.7.4 2158 | vue: 3.2.41 2159 | vue-demi: 0.13.11_vue@3.2.41 2160 | dev: false 2161 | 2162 | /postcss/8.4.18: 2163 | resolution: {integrity: sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==} 2164 | engines: {node: ^10 || ^12 || >=14} 2165 | dependencies: 2166 | nanoid: 3.3.4 2167 | picocolors: 1.0.0 2168 | source-map-js: 1.0.2 2169 | 2170 | /prelude-ls/1.1.2: 2171 | resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} 2172 | engines: {node: '>= 0.8.0'} 2173 | dev: false 2174 | optional: true 2175 | 2176 | /psl/1.9.0: 2177 | resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} 2178 | dev: false 2179 | optional: true 2180 | 2181 | /punycode/2.3.0: 2182 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2183 | engines: {node: '>=6'} 2184 | dev: false 2185 | optional: true 2186 | 2187 | /querystringify/2.2.0: 2188 | resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} 2189 | dev: false 2190 | optional: true 2191 | 2192 | /read-pkg/3.0.0: 2193 | resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} 2194 | engines: {node: '>=4'} 2195 | dependencies: 2196 | load-json-file: 4.0.0 2197 | normalize-package-data: 2.5.0 2198 | path-type: 3.0.0 2199 | dev: true 2200 | 2201 | /readable-stream/3.6.0: 2202 | resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} 2203 | engines: {node: '>= 6'} 2204 | dependencies: 2205 | inherits: 2.0.4 2206 | string_decoder: 1.3.0 2207 | util-deprecate: 1.0.2 2208 | dev: false 2209 | optional: true 2210 | 2211 | /readdirp/3.6.0: 2212 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2213 | engines: {node: '>=8.10.0'} 2214 | dependencies: 2215 | picomatch: 2.3.1 2216 | dev: true 2217 | 2218 | /regexp.prototype.flags/1.4.3: 2219 | resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} 2220 | engines: {node: '>= 0.4'} 2221 | dependencies: 2222 | call-bind: 1.0.2 2223 | define-properties: 1.1.4 2224 | functions-have-names: 1.2.3 2225 | dev: true 2226 | 2227 | /requires-port/1.0.0: 2228 | resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} 2229 | dev: false 2230 | optional: true 2231 | 2232 | /resolve/1.22.1: 2233 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 2234 | hasBin: true 2235 | dependencies: 2236 | is-core-module: 2.11.0 2237 | path-parse: 1.0.7 2238 | supports-preserve-symlinks-flag: 1.0.0 2239 | dev: true 2240 | 2241 | /rimraf/3.0.2: 2242 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2243 | hasBin: true 2244 | dependencies: 2245 | glob: 7.2.3 2246 | dev: false 2247 | optional: true 2248 | 2249 | /rollup/2.79.1: 2250 | resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} 2251 | engines: {node: '>=10.0.0'} 2252 | hasBin: true 2253 | optionalDependencies: 2254 | fsevents: 2.3.2 2255 | dev: true 2256 | 2257 | /safe-buffer/5.2.1: 2258 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 2259 | dev: false 2260 | optional: true 2261 | 2262 | /safe-regex-test/1.0.0: 2263 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2264 | dependencies: 2265 | call-bind: 1.0.2 2266 | get-intrinsic: 1.1.3 2267 | is-regex: 1.1.4 2268 | dev: true 2269 | 2270 | /safer-buffer/2.1.2: 2271 | resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 2272 | dev: false 2273 | optional: true 2274 | 2275 | /sass/1.56.1: 2276 | resolution: {integrity: sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==} 2277 | engines: {node: '>=12.0.0'} 2278 | hasBin: true 2279 | dependencies: 2280 | chokidar: 3.5.3 2281 | immutable: 4.1.0 2282 | source-map-js: 1.0.2 2283 | dev: true 2284 | 2285 | /saxes/5.0.1: 2286 | resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} 2287 | engines: {node: '>=10'} 2288 | dependencies: 2289 | xmlchars: 2.2.0 2290 | dev: false 2291 | optional: true 2292 | 2293 | /semver/5.7.1: 2294 | resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} 2295 | hasBin: true 2296 | dev: true 2297 | 2298 | /semver/6.3.0: 2299 | resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} 2300 | hasBin: true 2301 | 2302 | /semver/7.3.8: 2303 | resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} 2304 | engines: {node: '>=10'} 2305 | hasBin: true 2306 | dependencies: 2307 | lru-cache: 6.0.0 2308 | dev: false 2309 | optional: true 2310 | 2311 | /set-blocking/2.0.0: 2312 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 2313 | dev: false 2314 | optional: true 2315 | 2316 | /shebang-command/1.2.0: 2317 | resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} 2318 | engines: {node: '>=0.10.0'} 2319 | dependencies: 2320 | shebang-regex: 1.0.0 2321 | dev: true 2322 | 2323 | /shebang-regex/1.0.0: 2324 | resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} 2325 | engines: {node: '>=0.10.0'} 2326 | dev: true 2327 | 2328 | /shell-quote/1.7.4: 2329 | resolution: {integrity: sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==} 2330 | dev: true 2331 | 2332 | /side-channel/1.0.4: 2333 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2334 | dependencies: 2335 | call-bind: 1.0.2 2336 | get-intrinsic: 1.1.3 2337 | object-inspect: 1.12.2 2338 | dev: true 2339 | 2340 | /signal-exit/3.0.7: 2341 | resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} 2342 | dev: false 2343 | optional: true 2344 | 2345 | /simple-concat/1.0.1: 2346 | resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} 2347 | dev: false 2348 | optional: true 2349 | 2350 | /simple-get/3.1.1: 2351 | resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} 2352 | dependencies: 2353 | decompress-response: 4.2.1 2354 | once: 1.4.0 2355 | simple-concat: 1.0.1 2356 | dev: false 2357 | optional: true 2358 | 2359 | /sortablejs/1.14.0: 2360 | resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==} 2361 | dev: false 2362 | 2363 | /source-map-js/1.0.2: 2364 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2365 | engines: {node: '>=0.10.0'} 2366 | 2367 | /source-map/0.6.1: 2368 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2369 | engines: {node: '>=0.10.0'} 2370 | 2371 | /sourcemap-codec/1.4.8: 2372 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 2373 | 2374 | /spdx-correct/3.1.1: 2375 | resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} 2376 | dependencies: 2377 | spdx-expression-parse: 3.0.1 2378 | spdx-license-ids: 3.0.12 2379 | dev: true 2380 | 2381 | /spdx-exceptions/2.3.0: 2382 | resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} 2383 | dev: true 2384 | 2385 | /spdx-expression-parse/3.0.1: 2386 | resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} 2387 | dependencies: 2388 | spdx-exceptions: 2.3.0 2389 | spdx-license-ids: 3.0.12 2390 | dev: true 2391 | 2392 | /spdx-license-ids/3.0.12: 2393 | resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} 2394 | dev: true 2395 | 2396 | /string-width/4.2.3: 2397 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 2398 | engines: {node: '>=8'} 2399 | dependencies: 2400 | emoji-regex: 8.0.0 2401 | is-fullwidth-code-point: 3.0.0 2402 | strip-ansi: 6.0.1 2403 | dev: false 2404 | optional: true 2405 | 2406 | /string.prototype.padend/3.1.3: 2407 | resolution: {integrity: sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==} 2408 | engines: {node: '>= 0.4'} 2409 | dependencies: 2410 | call-bind: 1.0.2 2411 | define-properties: 1.1.4 2412 | es-abstract: 1.20.4 2413 | dev: true 2414 | 2415 | /string.prototype.trimend/1.0.5: 2416 | resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==} 2417 | dependencies: 2418 | call-bind: 1.0.2 2419 | define-properties: 1.1.4 2420 | es-abstract: 1.20.4 2421 | dev: true 2422 | 2423 | /string.prototype.trimstart/1.0.5: 2424 | resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==} 2425 | dependencies: 2426 | call-bind: 1.0.2 2427 | define-properties: 1.1.4 2428 | es-abstract: 1.20.4 2429 | dev: true 2430 | 2431 | /string_decoder/1.3.0: 2432 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 2433 | dependencies: 2434 | safe-buffer: 5.2.1 2435 | dev: false 2436 | optional: true 2437 | 2438 | /strip-ansi/6.0.1: 2439 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2440 | engines: {node: '>=8'} 2441 | dependencies: 2442 | ansi-regex: 5.0.1 2443 | dev: false 2444 | optional: true 2445 | 2446 | /strip-bom/3.0.0: 2447 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2448 | engines: {node: '>=4'} 2449 | dev: true 2450 | 2451 | /supports-color/5.5.0: 2452 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2453 | engines: {node: '>=4'} 2454 | dependencies: 2455 | has-flag: 3.0.0 2456 | dev: true 2457 | 2458 | /supports-preserve-symlinks-flag/1.0.0: 2459 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2460 | engines: {node: '>= 0.4'} 2461 | dev: true 2462 | 2463 | /svg-tags/1.0.0: 2464 | resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} 2465 | dev: true 2466 | 2467 | /symbol-tree/3.2.4: 2468 | resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 2469 | dev: false 2470 | optional: true 2471 | 2472 | /tar/6.1.13: 2473 | resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} 2474 | engines: {node: '>=10'} 2475 | dependencies: 2476 | chownr: 2.0.0 2477 | fs-minipass: 2.1.0 2478 | minipass: 4.0.3 2479 | minizlib: 2.1.2 2480 | mkdirp: 1.0.4 2481 | yallist: 4.0.0 2482 | dev: false 2483 | optional: true 2484 | 2485 | /to-fast-properties/2.0.0: 2486 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 2487 | engines: {node: '>=4'} 2488 | 2489 | /to-regex-range/5.0.1: 2490 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2491 | engines: {node: '>=8.0'} 2492 | dependencies: 2493 | is-number: 7.0.0 2494 | dev: true 2495 | 2496 | /tough-cookie/4.1.2: 2497 | resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} 2498 | engines: {node: '>=6'} 2499 | dependencies: 2500 | psl: 1.9.0 2501 | punycode: 2.3.0 2502 | universalify: 0.2.0 2503 | url-parse: 1.5.10 2504 | dev: false 2505 | optional: true 2506 | 2507 | /tr46/0.0.3: 2508 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 2509 | dev: false 2510 | optional: true 2511 | 2512 | /tr46/3.0.0: 2513 | resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} 2514 | engines: {node: '>=12'} 2515 | dependencies: 2516 | punycode: 2.3.0 2517 | dev: false 2518 | optional: true 2519 | 2520 | /type-check/0.3.2: 2521 | resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} 2522 | engines: {node: '>= 0.8.0'} 2523 | dependencies: 2524 | prelude-ls: 1.1.2 2525 | dev: false 2526 | optional: true 2527 | 2528 | /typescript/4.7.4: 2529 | resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==} 2530 | engines: {node: '>=4.2.0'} 2531 | hasBin: true 2532 | 2533 | /unbox-primitive/1.0.2: 2534 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2535 | dependencies: 2536 | call-bind: 1.0.2 2537 | has-bigints: 1.0.2 2538 | has-symbols: 1.0.3 2539 | which-boxed-primitive: 1.0.2 2540 | dev: true 2541 | 2542 | /universalify/0.2.0: 2543 | resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} 2544 | engines: {node: '>= 4.0.0'} 2545 | dev: false 2546 | optional: true 2547 | 2548 | /update-browserslist-db/1.0.10_browserslist@4.21.4: 2549 | resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==} 2550 | hasBin: true 2551 | peerDependencies: 2552 | browserslist: '>= 4.21.0' 2553 | dependencies: 2554 | browserslist: 4.21.4 2555 | escalade: 3.1.1 2556 | picocolors: 1.0.0 2557 | dev: true 2558 | 2559 | /url-parse/1.5.10: 2560 | resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} 2561 | dependencies: 2562 | querystringify: 2.2.0 2563 | requires-port: 1.0.0 2564 | dev: false 2565 | optional: true 2566 | 2567 | /util-deprecate/1.0.2: 2568 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2569 | dev: false 2570 | optional: true 2571 | 2572 | /validate-npm-package-license/3.0.4: 2573 | resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} 2574 | dependencies: 2575 | spdx-correct: 3.1.1 2576 | spdx-expression-parse: 3.0.1 2577 | dev: true 2578 | 2579 | /vite/3.2.2_sass@1.56.1: 2580 | resolution: {integrity: sha512-pLrhatFFOWO9kS19bQ658CnRYzv0WLbsPih6R+iFeEEhDOuYgYCX2rztUViMz/uy/V8cLCJvLFeiOK7RJEzHcw==} 2581 | engines: {node: ^14.18.0 || >=16.0.0} 2582 | hasBin: true 2583 | peerDependencies: 2584 | less: '*' 2585 | sass: '*' 2586 | stylus: '*' 2587 | sugarss: '*' 2588 | terser: ^5.4.0 2589 | peerDependenciesMeta: 2590 | less: 2591 | optional: true 2592 | sass: 2593 | optional: true 2594 | stylus: 2595 | optional: true 2596 | sugarss: 2597 | optional: true 2598 | terser: 2599 | optional: true 2600 | dependencies: 2601 | esbuild: 0.15.12 2602 | postcss: 8.4.18 2603 | resolve: 1.22.1 2604 | rollup: 2.79.1 2605 | sass: 1.56.1 2606 | optionalDependencies: 2607 | fsevents: 2.3.2 2608 | dev: true 2609 | 2610 | /vue-demi/0.13.11_vue@3.2.41: 2611 | resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} 2612 | engines: {node: '>=12'} 2613 | hasBin: true 2614 | requiresBuild: true 2615 | peerDependencies: 2616 | '@vue/composition-api': ^1.0.0-rc.1 2617 | vue: ^3.0.0-0 || ^2.6.0 2618 | peerDependenciesMeta: 2619 | '@vue/composition-api': 2620 | optional: true 2621 | dependencies: 2622 | vue: 3.2.41 2623 | dev: false 2624 | 2625 | /vue-router/4.1.6_vue@3.2.41: 2626 | resolution: {integrity: sha512-DYWYwsG6xNPmLq/FmZn8Ip+qrhFEzA14EI12MsMgVxvHFDYvlr4NXpVF5hrRH1wVcDP8fGi5F4rxuJSl8/r+EQ==} 2627 | peerDependencies: 2628 | vue: ^3.2.0 2629 | dependencies: 2630 | '@vue/devtools-api': 6.4.5 2631 | vue: 3.2.41 2632 | dev: false 2633 | 2634 | /vue-template-compiler/2.7.13: 2635 | resolution: {integrity: sha512-jYM6TClwDS9YqP48gYrtAtaOhRKkbYmbzE+Q51gX5YDr777n7tNI/IZk4QV4l/PjQPNh/FVa/E92sh/RqKMrog==} 2636 | dependencies: 2637 | de-indent: 1.0.2 2638 | he: 1.2.0 2639 | dev: true 2640 | 2641 | /vue-tsc/1.0.9_typescript@4.7.4: 2642 | resolution: {integrity: sha512-vRmHD1K6DmBymNhoHjQy/aYKTRQNLGOu2/ESasChG9Vy113K6CdP0NlhR0bzgFJfv2eFB9Ez/9L5kIciUajBxQ==} 2643 | hasBin: true 2644 | peerDependencies: 2645 | typescript: '*' 2646 | dependencies: 2647 | '@volar/vue-language-core': 1.0.9 2648 | '@volar/vue-typescript': 1.0.9 2649 | typescript: 4.7.4 2650 | dev: true 2651 | 2652 | /vue/3.2.41: 2653 | resolution: {integrity: sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==} 2654 | dependencies: 2655 | '@vue/compiler-dom': 3.2.41 2656 | '@vue/compiler-sfc': 3.2.41 2657 | '@vue/runtime-dom': 3.2.41 2658 | '@vue/server-renderer': 3.2.41_vue@3.2.41 2659 | '@vue/shared': 3.2.41 2660 | 2661 | /vuedraggable/4.1.0_vue@3.2.41: 2662 | resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==} 2663 | peerDependencies: 2664 | vue: ^3.0.1 2665 | dependencies: 2666 | sortablejs: 1.14.0 2667 | vue: 3.2.41 2668 | dev: false 2669 | 2670 | /w3c-hr-time/1.0.2: 2671 | resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} 2672 | dependencies: 2673 | browser-process-hrtime: 1.0.0 2674 | dev: false 2675 | optional: true 2676 | 2677 | /w3c-xmlserializer/3.0.0: 2678 | resolution: {integrity: sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==} 2679 | engines: {node: '>=12'} 2680 | dependencies: 2681 | xml-name-validator: 4.0.0 2682 | dev: false 2683 | optional: true 2684 | 2685 | /webidl-conversions/3.0.1: 2686 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 2687 | dev: false 2688 | optional: true 2689 | 2690 | /webidl-conversions/7.0.0: 2691 | resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 2692 | engines: {node: '>=12'} 2693 | dev: false 2694 | optional: true 2695 | 2696 | /whatwg-encoding/2.0.0: 2697 | resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} 2698 | engines: {node: '>=12'} 2699 | dependencies: 2700 | iconv-lite: 0.6.3 2701 | dev: false 2702 | optional: true 2703 | 2704 | /whatwg-mimetype/3.0.0: 2705 | resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} 2706 | engines: {node: '>=12'} 2707 | dev: false 2708 | optional: true 2709 | 2710 | /whatwg-url/10.0.0: 2711 | resolution: {integrity: sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==} 2712 | engines: {node: '>=12'} 2713 | dependencies: 2714 | tr46: 3.0.0 2715 | webidl-conversions: 7.0.0 2716 | dev: false 2717 | optional: true 2718 | 2719 | /whatwg-url/11.0.0: 2720 | resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} 2721 | engines: {node: '>=12'} 2722 | dependencies: 2723 | tr46: 3.0.0 2724 | webidl-conversions: 7.0.0 2725 | dev: false 2726 | optional: true 2727 | 2728 | /whatwg-url/5.0.0: 2729 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 2730 | dependencies: 2731 | tr46: 0.0.3 2732 | webidl-conversions: 3.0.1 2733 | dev: false 2734 | optional: true 2735 | 2736 | /which-boxed-primitive/1.0.2: 2737 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2738 | dependencies: 2739 | is-bigint: 1.0.4 2740 | is-boolean-object: 1.1.2 2741 | is-number-object: 1.0.7 2742 | is-string: 1.0.7 2743 | is-symbol: 1.0.4 2744 | dev: true 2745 | 2746 | /which/1.3.1: 2747 | resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} 2748 | hasBin: true 2749 | dependencies: 2750 | isexe: 2.0.0 2751 | dev: true 2752 | 2753 | /wide-align/1.1.5: 2754 | resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} 2755 | dependencies: 2756 | string-width: 4.2.3 2757 | dev: false 2758 | optional: true 2759 | 2760 | /word-wrap/1.2.3: 2761 | resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} 2762 | engines: {node: '>=0.10.0'} 2763 | dev: false 2764 | optional: true 2765 | 2766 | /wrappy/1.0.2: 2767 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 2768 | dev: false 2769 | optional: true 2770 | 2771 | /ws/8.12.0: 2772 | resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} 2773 | engines: {node: '>=10.0.0'} 2774 | peerDependencies: 2775 | bufferutil: ^4.0.1 2776 | utf-8-validate: '>=5.0.2' 2777 | peerDependenciesMeta: 2778 | bufferutil: 2779 | optional: true 2780 | utf-8-validate: 2781 | optional: true 2782 | dev: false 2783 | optional: true 2784 | 2785 | /xml-name-validator/4.0.0: 2786 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 2787 | engines: {node: '>=12'} 2788 | dev: false 2789 | optional: true 2790 | 2791 | /xmlchars/2.2.0: 2792 | resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 2793 | dev: false 2794 | optional: true 2795 | 2796 | /xss/1.0.14: 2797 | resolution: {integrity: sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==} 2798 | engines: {node: '>= 0.10.0'} 2799 | hasBin: true 2800 | dependencies: 2801 | commander: 2.20.3 2802 | cssfilter: 0.0.10 2803 | dev: false 2804 | 2805 | /yallist/4.0.0: 2806 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 2807 | dev: false 2808 | optional: true 2809 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/public/favicon.ico -------------------------------------------------------------------------------- /public/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/public/icon.png -------------------------------------------------------------------------------- /scripts/update.mjs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2023-02-08 16:10:14 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-08 16:10:53 5 | * @FilePath: /vue-project/scripts/update.mjs 6 | */ 7 | 8 | // @ts-nocheck 9 | import fetch from 'node-fetch'; 10 | import { getOctokit, context } from '@actions/github'; 11 | 12 | const UPDATE_TAG_NAME = 'updater'; 13 | const UPDATE_FILE_NAME = 'update.json'; 14 | 15 | const getSignature = async (url) => { 16 | const response = await fetch(url, { 17 | method: 'GET', 18 | headers: { 'Content-Type': 'application/octet-stream' } 19 | }); 20 | return response.text(); 21 | }; 22 | 23 | const updateData = { 24 | name: '', 25 | pub_date: new Date().toISOString(), 26 | platforms: { 27 | win64: { signature: '', url: '' }, 28 | linux: { signature: '', url: '' }, 29 | darwin: { signature: '', url: '' }, 30 | 'linux-x86_64': { signature: '', url: '' }, 31 | 'windows-x86_64': { signature: '', url: '' } 32 | } 33 | }; 34 | 35 | const octokit = getOctokit(process.env.GITHUB_TOKEN); 36 | const options = { owner: context.repo.owner, repo: context.repo.repo }; 37 | 38 | const { data: release } = await octokit.rest.repos.getLatestRelease(options); 39 | updateData.name = release.tag_name; 40 | // eslint-disable-next-line camelcase 41 | for (const { name, browser_download_url } of release.assets) { 42 | if (name.endsWith('.msi.zip')) { 43 | // eslint-disable-next-line camelcase 44 | updateData.platforms.win64.url = browser_download_url; 45 | // eslint-disable-next-line camelcase 46 | updateData.platforms['windows-x86_64'].url = browser_download_url; 47 | } else if (name.endsWith('.msi.zip.sig')) { 48 | // eslint-disable-next-line no-await-in-loop 49 | const signature = await getSignature(browser_download_url); 50 | updateData.platforms.win64.signature = signature; 51 | updateData.platforms['windows-x86_64'].signature = signature; 52 | } else if (name.endsWith('.app.tar.gz')) { 53 | // eslint-disable-next-line camelcase 54 | updateData.platforms.darwin.url = browser_download_url; 55 | } else if (name.endsWith('.app.tar.gz.sig')) { 56 | // eslint-disable-next-line no-await-in-loop 57 | const signature = await getSignature(browser_download_url); 58 | updateData.platforms.darwin.signature = signature; 59 | } else if (name.endsWith('.AppImage.tar.gz')) { 60 | // eslint-disable-next-line camelcase 61 | updateData.platforms.linux.url = browser_download_url; 62 | // eslint-disable-next-line camelcase 63 | updateData.platforms['linux-x86_64'].url = browser_download_url; 64 | } else if (name.endsWith('.AppImage.tar.gz.sig')) { 65 | // eslint-disable-next-line no-await-in-loop 66 | const signature = await getSignature(browser_download_url); 67 | updateData.platforms.linux.signature = signature; 68 | updateData.platforms['linux-x86_64'].signature = signature; 69 | } 70 | } 71 | 72 | const { data: updater } = await octokit.rest.repos.getReleaseByTag({ 73 | ...options, 74 | tag: UPDATE_TAG_NAME 75 | }); 76 | 77 | for (const { id, name } of updater.assets) { 78 | if (name === UPDATE_FILE_NAME) { 79 | // eslint-disable-next-line no-await-in-loop 80 | await octokit.rest.repos.deleteReleaseAsset({ ...options, asset_id: id }); 81 | break; 82 | } 83 | } 84 | 85 | await octokit.rest.repos.uploadReleaseAsset({ 86 | ...options, 87 | release_id: updater.id, 88 | name: UPDATE_FILE_NAME, 89 | data: JSON.stringify(updateData) 90 | }); 91 | -------------------------------------------------------------------------------- /src-tauri/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | /target/ 4 | -------------------------------------------------------------------------------- /src-tauri/.taurignore: -------------------------------------------------------------------------------- 1 | # 忽略src-tauri目录下的所有文件变更 -------------------------------------------------------------------------------- /src-tauri/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "app" 3 | version = "0.1.0" 4 | description = "A Tauri App" 5 | authors = ["you"] 6 | license = "" 7 | repository = "" 8 | default-run = "app" 9 | edition = "2021" 10 | rust-version = "1.57" 11 | 12 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 13 | 14 | [build-dependencies] 15 | tauri-build = { version = "1.1.1", features = [] } 16 | 17 | [dependencies] 18 | serde_json = "1.0" 19 | serde_derive = "1.0.145" 20 | serde = { version = "1.0", features = ["derive"] } 21 | hyper = { version = "0.14.20", features = ["full"] } 22 | hyper-tls = "0.5.0" 23 | tauri = { version = "1.1.1", features = ["api-all", "updater"] } 24 | rusqlite = { version = "0.28.0", features = ["bundled"] } 25 | dirs = "4.0" 26 | uuid = { version="1.0.0",feature = ["v4","fast-rng","macro-diagnostics"] } 27 | tokio = { version = "1", features = ["full"] } 28 | [features] 29 | # by default Tauri runs in production mode 30 | # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL 31 | default = [ "custom-protocol" ] 32 | # this feature is used for production builds where `devPath` points to the filesystem 33 | # DO NOT remove this 34 | custom-protocol = [ "tauri/custom-protocol" ] 35 | 36 | -------------------------------------------------------------------------------- /src-tauri/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | tauri_build::build() 3 | } 4 | -------------------------------------------------------------------------------- /src-tauri/icons/128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/128x128.png -------------------------------------------------------------------------------- /src-tauri/icons/128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/128x128@2x.png -------------------------------------------------------------------------------- /src-tauri/icons/32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/32x32.png -------------------------------------------------------------------------------- /src-tauri/icons/Square107x107Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square107x107Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square142x142Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square142x142Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square150x150Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square150x150Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square284x284Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square284x284Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square30x30Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square30x30Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square310x310Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square310x310Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square44x44Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square44x44Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square71x71Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square71x71Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/Square89x89Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/Square89x89Logo.png -------------------------------------------------------------------------------- /src-tauri/icons/StoreLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/StoreLogo.png -------------------------------------------------------------------------------- /src-tauri/icons/icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/icon.icns -------------------------------------------------------------------------------- /src-tauri/icons/icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/icon.ico -------------------------------------------------------------------------------- /src-tauri/icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shijianzhong/tarui-vue3-handle-note/fab424f3310701d721e94f80a948bd4939eeb900/src-tauri/icons/icon.png -------------------------------------------------------------------------------- /src-tauri/src/app_menu.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-26 22:34:27 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-16 16:21:12 5 | * @FilePath: /vue-project/src-tauri/src/app_menu.rs 6 | */ 7 | // use tauri::api::dialog::message; 8 | use tauri::utils::assets::EmbeddedAssets; 9 | use tauri::{AboutMetadata, Context, CustomMenuItem, Menu, MenuItem, Submenu, WindowMenuEvent}; 10 | 11 | use crate::MAIN_WINDOW; 12 | pub fn init(context: &Context) -> Menu { 13 | // 应用名称 14 | let name = &context.package_info().name; 15 | // tauri::Menu::os_default(name) 16 | // 应用主菜单 17 | 18 | let mut about_meta_data = AboutMetadata::new(); 19 | about_meta_data.comments =Some(String::from("sking")); 20 | about_meta_data.version =Some(String::from("v0.0.1")); 21 | println!("{:#?}",about_meta_data); 22 | // let app_menu = Submenu::new( 23 | // "", 24 | // // MenuItem::About 为原生菜单 25 | // Menu::new().add_native_item(MenuItem::About(name.into(), about_meta_data)), 26 | // ); 27 | let app_menu = Submenu::new( 28 | name, 29 | Menu::with_items([ 30 | #[cfg(target_os = "macos")] 31 | MenuItem::About(name.into(), AboutMetadata::default()).into(), 32 | #[cfg(not(target_os = "macos"))] 33 | CustomMenuItem::new("about".to_string(), "About").into(), 34 | CustomMenuItem::new("check_update".to_string(), "Check for Updates").into(), 35 | MenuItem::Services.into(), 36 | MenuItem::Hide.into(), 37 | MenuItem::HideOthers.into(), 38 | MenuItem::ShowAll.into(), 39 | MenuItem::Separator.into(), 40 | MenuItem::Quit.into(), 41 | ]) 42 | ); 43 | // 文件菜单(自定义菜单) 44 | let file_menu = Submenu::new( 45 | "事项", 46 | Menu::new() 47 | .add_item(CustomMenuItem::new("new_item_type".to_string(), "新建类型")) 48 | .add_item(CustomMenuItem::new("new_item".to_string(), "新建事项")), 49 | ); 50 | // 编辑菜单(自定义菜单) 51 | let edit_menu = Submenu::new( 52 | "能力", 53 | Menu::new() 54 | .add_item(CustomMenuItem::new("open_ai".to_string(), "智能问答")) 55 | .add_item(CustomMenuItem::new("note".to_string(), "笔记")), 56 | ); 57 | 58 | Menu::new() 59 | .add_submenu(app_menu) 60 | .add_submenu(file_menu) 61 | .add_submenu(edit_menu) 62 | } 63 | // 应用菜单处理事件 64 | pub fn handler(event: WindowMenuEvent) { 65 | // 菜单所属的窗口 66 | // let win = Some(event.window()); 67 | // 匹配菜单 id 68 | match event.menu_item_id() { 69 | "new_item_type" => { 70 | // debug 信息(终端输出) 71 | event_to_front("new_item_type"); 72 | } 73 | "new_item" => { 74 | // 发送信息到菜单所属窗口(弹窗形式) 75 | // message(win, "Eidt File", "TODO"); 76 | dbg!("edit file"); 77 | event_to_front("new_item"); 78 | } 79 | "open_ai" =>{ 80 | dbg!("open_ai"); 81 | event_to_front("open_ai"); 82 | } 83 | "note" => { 84 | event_to_front("note"); 85 | } 86 | "redo" => { 87 | dbg!("redo"); 88 | } 89 | _ => {} 90 | } 91 | } 92 | #[derive(Clone, serde::Serialize)] 93 | struct ToFrontMessage { 94 | message: String, 95 | } 96 | fn event_to_front(emit_type: &str) { 97 | unsafe { 98 | let window = MAIN_WINDOW.clone().unwrap(); 99 | window 100 | .emit( 101 | "rust_event", 102 | ToFrontMessage { 103 | message: emit_type.to_string(), 104 | }, 105 | ) 106 | .unwrap(); 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /src-tauri/src/db_controller.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-27 10:00:09 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-08 13:39:18 5 | * @FilePath: /vue-project/src-tauri/src/db_controller.rs 6 | */ 7 | 8 | use crate::models::matter_item::ItemType; 9 | use crate::Item; 10 | use rusqlite::{params, Connection, Result}; 11 | use uuid::Uuid; 12 | pub struct Dao { 13 | con: Connection, 14 | } 15 | impl Dao { 16 | pub fn create_table(&self) { 17 | let sql = "CREATE TABLE 'todo_items' ( 18 | 'item_id' text NOT NULL ON CONFLICT FAIL, 19 | 'item_name' TEXT, 20 | 'item_type' integer, 21 | 'item_desc' TEXT, 22 | 'item_state' integer, 23 | 'item_priority' integer, 24 | 'item_start' TEXT, 25 | 'item_end' TEXT, 26 | 'item_delete_flag' integer DEFAULT 0, 27 | 'item_desc_type' text, 28 | CONSTRAINT 'item_type' FOREIGN KEY ('item_type') REFERENCES 'item_type' ('item_type') ON DELETE CASCADE ON UPDATE CASCADE ); 29 | "; 30 | self.con.execute(sql, params![]).unwrap(); 31 | let sql1: &str = "CREATE TABLE 'item_type' ( 32 | 'item_type' integer NOT NULL, 33 | 'item_type_name' TEXT NOT NULL, 34 | 'item_type_desc' TEXT, 35 | PRIMARY KEY ('item_type') 36 | );"; 37 | self.con.execute(sql1, params![]).unwrap(); 38 | } 39 | pub fn check_table_existed_else_created(&self, table_name: &str) -> bool { 40 | let sql = "select count(`name`) from 'sqlite_master' where `type` = 'table' and `name` = ?"; 41 | let mut stmt = self.con.prepare(sql).unwrap(); 42 | let rs = stmt.query_row(params![table_name], |row| { 43 | return row.get(0) as Result; 44 | }); 45 | let count = rs.unwrap(); 46 | // println!("长度::::{}", count); 47 | if count > 0 { 48 | return true; 49 | } else { 50 | self.create_table(); 51 | return true; 52 | } 53 | } 54 | pub fn create() -> Dao { 55 | let db_file_path = dirs::data_dir() 56 | .unwrap() 57 | .into_os_string() 58 | .into_string() 59 | .unwrap(); 60 | let db_file_path = format!("{}/do.db", db_file_path.as_str()); 61 | let con = Connection::open(&db_file_path).unwrap(); 62 | Dao { con } 63 | } 64 | pub fn delete_item(&self, item_id: String) -> bool { 65 | let sql: String = format!("DELETE FROM `todo_items` where `item_id` = '{}';", item_id); 66 | // println!("{}", &sql); 67 | let size = self.con.execute(&sql, []); 68 | match size { 69 | Ok(_) => return true, 70 | Err(_) => return false, 71 | } 72 | } 73 | pub fn vitural_delete_item(&self, item_id: String) -> bool { 74 | let sql: String = format!( 75 | "update `todo_items` set `item_delete_flag`= 1, 76 | item_type =1024 77 | where `item_id` ='{}';", 78 | item_id 79 | ); 80 | let size = self.con.execute(&sql, []); 81 | match size { 82 | Ok(_) => true, 83 | Err(_) => false, 84 | } 85 | } 86 | pub fn update_item(&self, item: Item) -> bool { 87 | // println!("{:#?}", item); 88 | let sql: String = format!( 89 | "update `todo_items` set `item_name`= '{}', 90 | `item_type`={},`item_desc`='{}',`item_state`={}, 91 | `item_priority`={},`item_start`='{}',`item_end`='{}',`item_desc_type`='{}' 92 | where `item_id` ='{}';", 93 | item.item_name, 94 | item.item_type, 95 | item.item_desc, 96 | item.item_state, 97 | item.item_priority, 98 | item.item_start, 99 | item.item_end, 100 | item.item_desc_type, 101 | item.item_id 102 | ); 103 | // println!("sql语句::::{}", sql); 104 | let size = self.con.execute(&sql, []); 105 | // println!("{:#?}", size); 106 | match size { 107 | Ok(_) => true, 108 | Err(_) => false, 109 | } 110 | } 111 | pub fn add_item(&self, item: Item) -> Option { 112 | let sql = format!( 113 | "INSERT INTO `todo_items` (item_id,item_name, 114 | item_type,item_desc,item_state,item_priority,item_start,item_end,item_desc_type 115 | ) VALUES('{}','{}',{},'{}',{},{},'{}','{}','{}');", 116 | Uuid::new_v4(), 117 | item.item_name.as_str(), 118 | item.item_type.as_str(), 119 | item.item_desc.as_str(), 120 | item.item_state, 121 | item.item_priority.as_str(), 122 | item.item_start.as_str(), 123 | item.item_end.as_str(), 124 | item.item_desc_type.as_str() 125 | ); 126 | // println!("{}", sql); 127 | let size = self.con.execute(&sql, []); 128 | match size { 129 | Ok(v) => Some(v == 1), 130 | Err(e) => { 131 | eprintln!("错误:{}", e); 132 | return Some(false); 133 | } 134 | } 135 | } 136 | pub fn add_item_type(&self, item_type: ItemType) -> Option { 137 | let sql = format!( 138 | "INSERT INTO `item_type` VALUES(null,'{}','{}');", 139 | item_type.item_type_name.as_str(), 140 | item_type.item_type_desc.as_str() 141 | ); 142 | // println!("add_item_type::::{}", sql); 143 | let size = self.con.execute(&sql, []); 144 | match size { 145 | Ok(v) => Some(v == 1), 146 | Err(e) => { 147 | eprintln!("错误:{}", e); 148 | return Some(false); 149 | } 150 | } 151 | } 152 | pub fn list_item_type(&self) -> Result> { 153 | let sql = "select t1.item_type,t1.item_type_name,t1.item_type_desc from item_type as t1"; 154 | let mut stmt = self.con.prepare(sql).unwrap(); 155 | let item_iterator = stmt 156 | .query_map([], |row| { 157 | Ok(ItemType { 158 | item_type: row.get::(0)?.to_string(), 159 | item_type_name: row.get(1)?, 160 | item_type_desc: row.get(2)?, 161 | }) 162 | }) 163 | .unwrap(); 164 | let mut items = Vec::new(); 165 | for item in item_iterator { 166 | // println!("{:#?}", item); 167 | items.push(item?); 168 | } 169 | Ok(items) 170 | } 171 | pub fn list_items(&self) -> Result> { 172 | // let sql = "select * from `todo_items`"; 173 | // and t1.item_delete_flag=0 174 | let sql ="SELECT t1.item_id, 175 | t1.item_name, t1.item_type, t2.item_type_name, 176 | t1.item_desc,t1.item_state,t1.item_priority,t1.item_start,t1.item_end,t1.item_desc_type FROM todo_items AS t1, item_type AS t2 WHERE t1.item_type=t2.item_type ;"; 177 | let mut stmt = self.con.prepare(sql).unwrap(); 178 | let item_iterator = stmt 179 | .query_map([], |row| { 180 | Ok(Item { 181 | item_id: row.get(0)?, 182 | item_name: row.get(1)?, 183 | item_type: row.get::(2)?.to_string(), 184 | item_type_name: row.get(3)?, 185 | item_desc: row.get(4)?, 186 | item_state: row.get(5)?, 187 | item_priority: row.get::(6)?.to_string(), 188 | item_start: row.get(7)?, 189 | item_end: row.get(8)?, 190 | item_desc_type: row.get(9)?, 191 | }) 192 | }) 193 | .unwrap(); 194 | let mut items = Vec::new(); 195 | for item in item_iterator { 196 | // println!("{:#?}", item); 197 | items.push(item?); 198 | } 199 | Ok(items) 200 | } 201 | 202 | pub fn list_trash_items(&self) -> Result> { 203 | let sql ="SELECT t1.item_id, 204 | t1.item_name, t1.item_type, 205 | t1.item_desc,t1.item_state,t1.item_priority,t1.item_start,t1.item_end,t1.item_desc_type FROM todo_items AS t1 WHERE t1.item_type=1024 ;"; 206 | let mut stmt = self.con.prepare(sql).unwrap(); 207 | let item_iterator = stmt 208 | .query_map([], |row| { 209 | Ok(Item { 210 | item_id: row.get(0)?, 211 | item_name: row.get(1)?, 212 | item_type: row.get::(2)?.to_string(), 213 | item_type_name: "废纸篓".to_string(), 214 | item_desc: row.get(3)?, 215 | item_state: row.get(4)?, 216 | item_priority: row.get::(5)?.to_string(), 217 | item_start: row.get(6)?, 218 | item_end: row.get(7)?, 219 | item_desc_type: row.get(8)?, 220 | }) 221 | }) 222 | .unwrap(); 223 | let mut items = Vec::new(); 224 | for item in item_iterator { 225 | // println!("{:#?}", item); 226 | items.push(item?); 227 | } 228 | Ok(items) 229 | } 230 | } 231 | -------------------------------------------------------------------------------- /src-tauri/src/gpt/mod.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2023-02-17 08:10:02 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-21 10:08:54 5 | * @FilePath: /vue-project/src-tauri/src/gpt/mod.rs 6 | */ 7 | 8 | pub mod openai { 9 | use hyper::{body::Buf, header, Body, Client, Request}; 10 | use hyper_tls::HttpsConnector; 11 | use std::{env}; 12 | use crate::models::open_ai_mod::{OpenAIResponse,OpenAIRequest}; 13 | pub async fn qs(user_input:String) -> Result> { 14 | let api_key = match env::var("OPENAI_KEY") { 15 | Ok(key) => key, 16 | Err(e) => { 17 | println!("{:#?}", e); 18 | println!("Error: please create an environment variable OPENAI_KEY"); 19 | std::process::exit(1); 20 | } 21 | }; 22 | let uri = "https://api.openai.com/v1/completions"; 23 | let https = HttpsConnector::new(); 24 | let client = Client::builder().build(https); 25 | let model = String::from("text-davinci-003"); 26 | let stop = String::from("Text"); 27 | println!("{}", api_key); 28 | let auth_header_val = format!("Bearer {}", api_key); 29 | // let default_prompt = 30 | // "Given text, return 1 bash command. Text:list contents of a directory. Command:ls"; 31 | let before_qs:String = String::from(""); 32 | let openai_request = OpenAIRequest { 33 | model, 34 | prompt: format!("Text:{}. Human:", user_input), 35 | temperature:0.9, 36 | max_tokens: 2500, 37 | stop, 38 | top_p:1, 39 | frequency_penalty:0.0, 40 | presence_penalty:0.6 41 | }; 42 | println!("执行我了&*("); 43 | let body = Body::from(serde_json::to_vec(&openai_request)?); 44 | 45 | let req = Request::post(uri) 46 | .header(header::CONTENT_TYPE, "application/json") 47 | .header("Authorization", &auth_header_val) 48 | .body(body) 49 | .unwrap(); 50 | 51 | let res = client.request(req).await?; 52 | 53 | let body = hyper::body::aggregate(res).await?; 54 | 55 | match serde_json::from_reader(body.reader()) { 56 | Ok(response) => Ok(response), 57 | Err(_) => { 58 | println!("Error"); 59 | std::process::exit(1); 60 | } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src-tauri/src/main.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-01 14:27:55 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-21 09:16:09 5 | * @FilePath: /vue-project/src-tauri/src/main.rs 6 | */ 7 | #![cfg_attr( 8 | all(not(debug_assertions), target_os = "windows"), 9 | windows_subsystem = "windows" 10 | )] 11 | extern crate dirs; 12 | mod app_menu; 13 | mod db_controller; 14 | use db_controller::Dao; 15 | mod models; 16 | use models::matter_item::{Item,ItemType}; 17 | use tauri::{ Manager, Window}; 18 | mod gpt; 19 | use gpt::openai; 20 | // use models::open_ai_mod::{OpenAIResponse,OpenAIRequest}; 21 | // static mut CURRENT_APP: &App; 22 | static mut MAIN_WINDOW: Option = None; 23 | fn main() { 24 | let context = tauri::generate_context!(); 25 | tauri::Builder::default() 26 | .setup(move |app| { 27 | unsafe { 28 | MAIN_WINDOW = app.get_window("main"); 29 | } 30 | Ok(()) 31 | }) 32 | .menu(app_menu::init(&context)) 33 | .on_menu_event(app_menu::handler) 34 | .invoke_handler(tauri::generate_handler![greet, get_items, add_item,add_item_type,vitural_delete_item, 35 | get_item_types,delete_item,update_item,get_trash_items,ai_qs]) 36 | .run(context) 37 | .expect("error while running tauri application"); 38 | } 39 | 40 | #[tauri::command] 41 | async fn ai_qs(user_input:String)->String{ 42 | println!("进来了哈哈"); 43 | let tmp = openai::qs(user_input.to_string()).await; 44 | match tmp{ 45 | Ok(o)=>{ 46 | println!("{:#?}",o); 47 | let data = serde_json::to_string(&o).unwrap(); 48 | data 49 | }, 50 | Err(_)=> String::from("error") 51 | } 52 | 53 | } 54 | 55 | #[tauri::command] 56 | fn greet(name: &str) -> String { 57 | format!("Hello,{}", name) 58 | } 59 | #[tauri::command] 60 | fn get_items() -> String { 61 | let dao = Dao::create(); 62 | if dao.check_table_existed_else_created("todo_items") {} 63 | let tmp = dao.list_items().unwrap(); 64 | let data = serde_json::to_string(&tmp).unwrap(); 65 | data 66 | } 67 | #[tauri::command] 68 | fn get_trash_items() -> String { 69 | let dao = Dao::create(); 70 | if dao.check_table_existed_else_created("todo_items") {} 71 | let tmp = dao.list_trash_items().unwrap(); 72 | let data = serde_json::to_string(&tmp).unwrap(); 73 | data 74 | } 75 | #[tauri::command] 76 | fn get_item_types() -> String { 77 | let dao = Dao::create(); 78 | if dao.check_table_existed_else_created("todo_items") {} 79 | let tmp = dao.list_item_type().unwrap(); 80 | let data = serde_json::to_string(&tmp).unwrap(); 81 | data 82 | } 83 | #[tauri::command] 84 | fn vitural_delete_item(item_id:String) -> bool { 85 | // println!("收到假删除参数{}",item_id); 86 | let dao = Dao::create(); 87 | dao.vitural_delete_item(item_id) //假删除 88 | } 89 | #[tauri::command] 90 | fn delete_item(item_id:String) -> bool { 91 | // println!("收到真的删除参数{}",item_id); 92 | let dao = Dao::create(); 93 | dao.delete_item(item_id) //真删除 94 | } 95 | #[tauri::command] 96 | fn update_item(item:String) -> bool { 97 | // println!("更新item对象:{}",item); 98 | let dao = Dao::create(); 99 | let parsed:Item = serde_json::from_str(item.as_str()).unwrap(); 100 | dao.update_item(parsed) // 101 | } 102 | #[tauri::command] 103 | fn add_item(form: &str) -> String { 104 | // println!("this is fe's value :{}", form); 105 | let parsed: Item = serde_json::from_str(form).unwrap(); 106 | // println!("{:#?}", parsed); 107 | let dao = Dao::create(); 108 | if dao.check_table_existed_else_created("todo_items") { 109 | // println!("nothing"); 110 | } 111 | let r = dao.add_item(parsed); 112 | if let Some(true) = r { 113 | "1".to_string() 114 | } else { 115 | "0".to_string() 116 | } 117 | } 118 | #[tauri::command] 119 | fn add_item_type(form: &str) -> bool { 120 | // println!("this is fe's value :{}", form); 121 | let parsed: ItemType = serde_json::from_str(form).unwrap(); 122 | // print!("{:#?}", parsed); 123 | let dao = Dao::create(); 124 | if dao.check_table_existed_else_created("todo_items") { 125 | // println!("nothing"); 126 | } 127 | let r = dao.add_item_type(parsed); 128 | if let Some(true) = r { 129 | true 130 | } else { 131 | false 132 | } 133 | } -------------------------------------------------------------------------------- /src-tauri/src/models.rs: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-27 11:45:31 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-21 09:36:08 5 | * @FilePath: /vue-project/src-tauri/src/models.rs 6 | */ 7 | pub mod matter_item { 8 | use serde::{Deserialize, Serialize}; 9 | #[derive(Debug, Deserialize, Serialize)] 10 | #[warn(dead_code)] 11 | pub struct Item { 12 | pub item_id: String, 13 | pub item_name: String, 14 | pub item_type: String, //类型 15 | pub item_type_name: String, 16 | pub item_state: u8, 17 | pub item_desc: String, 18 | pub item_priority: String, 19 | pub item_start: String, 20 | pub item_end: String, 21 | pub item_desc_type: String, //内容类型,1为markdown 2为画板 22 | } 23 | 24 | #[derive(Debug, Deserialize, Serialize)] 25 | #[warn(dead_code)] 26 | pub struct ItemType { 27 | pub item_type: String, 28 | pub item_type_name: String, 29 | pub item_type_desc: String, 30 | } 31 | } 32 | pub mod open_ai_mod { 33 | use serde::{Deserialize, Serialize}; 34 | #[derive(Deserialize,Serialize, Debug)] 35 | pub struct OpenAIChoices { 36 | pub text: String, 37 | } 38 | 39 | #[derive(Deserialize,Serialize, Debug)] 40 | pub struct OpenAIResponse { 41 | pub choices: Vec, 42 | } 43 | 44 | #[derive(Deserialize,Serialize, Debug)] 45 | pub struct OpenAIRequest { 46 | pub model: String, 47 | pub prompt: String, 48 | pub max_tokens: u32, 49 | pub stop: String, 50 | pub temperature :f32, 51 | pub top_p:u32, 52 | pub frequency_penalty:f32, 53 | pub presence_penalty:f32 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src-tauri/tauri.conf.json: -------------------------------------------------------------------------------- 1 | { 2 | "build": { 3 | "beforeBuildCommand": "npm run build", 4 | "beforeDevCommand": "npm run dev", 5 | "devPath": "http://localhost:5173", 6 | "distDir": "../dist", 7 | "withGlobalTauri":true 8 | }, 9 | "package": { 10 | "productName": "随手记", 11 | "version": "0.1.0" 12 | }, 13 | 14 | "tauri": { 15 | "allowlist": { 16 | "all": true, 17 | "path": { 18 | "all": true 19 | } 20 | }, 21 | "bundle": { 22 | "active": true, 23 | "category": "DeveloperTool", 24 | "copyright": "", 25 | "deb": { 26 | "depends": [] 27 | }, 28 | "externalBin": [], 29 | "icon": [ 30 | "icons/32x32.png", 31 | "icons/128x128.png", 32 | "icons/128x128@2x.png", 33 | "icons/icon.icns", 34 | "icons/icon.ico" 35 | ], 36 | "identifier": "com.tauri.sking", 37 | "longDescription": "", 38 | "macOS": { 39 | "entitlements": null, 40 | "exceptionDomain": "", 41 | "frameworks": [], 42 | "providerShortName": null, 43 | "signingIdentity": null 44 | }, 45 | "resources": [ 46 | 47 | ], 48 | "shortDescription": "", 49 | "targets": "all", 50 | "windows": { 51 | "certificateThumbprint": null, 52 | "digestAlgorithm": "sha256", 53 | "timestampUrl": "", 54 | "wix":{ 55 | "language":"zh-CN" 56 | } 57 | } 58 | }, 59 | "security": { 60 | "csp": null 61 | }, 62 | "updater": { 63 | "active": true, 64 | "endpoints":[ 65 | "https://github.com/shijianzhong/tarui-vue3-handle-note/releases/download/updater/update.json" 66 | ], 67 | "dialog":false, 68 | "pubkey":"dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDlFMDhENTdBMjE5MUIyMzAKUldRd3NwRWhldFVJbmdqL3dxaGpodVA5SFl6alNab1dhZmhuQm9xcXhBNDJqVlU1WUpYZ0VseUcK" 69 | }, 70 | "windows": [ 71 | { 72 | "fullscreen": false, 73 | "height": 800, 74 | "resizable": true, 75 | "title": "随手记", 76 | "width": 1000 77 | } 78 | ] 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /src/assets/base.css: -------------------------------------------------------------------------------- 1 | /* color palette from */ 2 | :root { 3 | --vt-c-white: #ffffff; 4 | --vt-c-white-soft: #f8f8f8; 5 | --vt-c-white-mute: #f2f2f2; 6 | 7 | --vt-c-black: #181818; 8 | --vt-c-black-soft: #222222; 9 | --vt-c-black-mute: #282828; 10 | 11 | --vt-c-indigo: #2c3e50; 12 | 13 | --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); 14 | --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); 15 | --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); 16 | --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); 17 | 18 | --vt-c-text-light-1: var(--vt-c-indigo); 19 | --vt-c-text-light-2: rgba(60, 60, 60, 0.66); 20 | --vt-c-text-dark-1: var(--vt-c-white); 21 | --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); 22 | } 23 | 24 | /* semantic color variables for this project */ 25 | :root { 26 | --color-background: var(--vt-c-white); 27 | --color-background-soft: var(--vt-c-white-soft); 28 | --color-background-mute: var(--vt-c-white-mute); 29 | 30 | --color-border: var(--vt-c-divider-light-2); 31 | --color-border-hover: var(--vt-c-divider-light-1); 32 | 33 | --color-heading: var(--vt-c-text-light-1); 34 | --color-text: var(--vt-c-text-light-1); 35 | 36 | --section-gap: 160px; 37 | } 38 | 39 | @media (prefers-color-scheme: dark) { 40 | :root { 41 | --color-background: var(--vt-c-black); 42 | --color-background-soft: var(--vt-c-black-soft); 43 | --color-background-mute: var(--vt-c-black-mute); 44 | 45 | --color-border: var(--vt-c-divider-dark-2); 46 | --color-border-hover: var(--vt-c-divider-dark-1); 47 | 48 | --color-heading: var(--vt-c-text-dark-1); 49 | --color-text: var(--vt-c-text-dark-2); 50 | } 51 | } 52 | 53 | *, 54 | *::before, 55 | *::after { 56 | box-sizing: border-box; 57 | margin: 0; 58 | position: relative; 59 | font-weight: normal; 60 | } 61 | 62 | body { 63 | min-height: 100vh; 64 | color: var(--color-text); 65 | background: var(--color-background); 66 | transition: color 0.5s, background-color 0.5s; 67 | line-height: 1.6; 68 | font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, 69 | Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; 70 | font-size: 15px; 71 | text-rendering: optimizeLegibility; 72 | -webkit-font-smoothing: antialiased; 73 | -moz-osx-font-smoothing: grayscale; 74 | } 75 | -------------------------------------------------------------------------------- /src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/assets/main.css: -------------------------------------------------------------------------------- 1 | @import './base.css'; 2 | 3 | /* #app { 4 | max-width: 1280px; 5 | margin: 0 auto; 6 | padding: 2rem; 7 | 8 | font-weight: normal; 9 | } 10 | 11 | a, 12 | .green { 13 | text-decoration: none; 14 | color: hsla(160, 100%, 37%, 1); 15 | transition: 0.4s; 16 | } 17 | 18 | @media (hover: hover) { 19 | a:hover { 20 | background-color: hsla(160, 100%, 37%, 0.2); 21 | } 22 | } 23 | 24 | @media (min-width: 1024px) { 25 | body { 26 | display: flex; 27 | place-items: center; 28 | } 29 | 30 | #app { 31 | display: grid; 32 | grid-template-columns: 1fr 1fr; 33 | padding: 0 2rem; 34 | } 35 | } */ 36 | -------------------------------------------------------------------------------- /src/components/CCanvas.vue: -------------------------------------------------------------------------------- 1 | 23 | 211 | -------------------------------------------------------------------------------- /src/components/ItemEditor.vue: -------------------------------------------------------------------------------- 1 | 7 | 35 | 136 | -------------------------------------------------------------------------------- /src/components/TaskItem.vue: -------------------------------------------------------------------------------- 1 | 7 | 31 | 61 | -------------------------------------------------------------------------------- /src/components/TaskItems/TaskItem.vue: -------------------------------------------------------------------------------- 1 | 7 | 28 | 34 | -------------------------------------------------------------------------------- /src/components/TaskItems/TaskItemForm.vue: -------------------------------------------------------------------------------- 1 | 7 | 40 | -------------------------------------------------------------------------------- /src/components/TaskItems/TaskTypeItems.vue: -------------------------------------------------------------------------------- 1 | 7 | 30 | 49 | -------------------------------------------------------------------------------- /src/components/TheWelcome.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 87 | -------------------------------------------------------------------------------- /src/components/WelcomeItem.vue: -------------------------------------------------------------------------------- 1 | 7 | 20 | 23 | 95 | -------------------------------------------------------------------------------- /src/components/icons/IconCommunity.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/icons/IconDelete.vue: -------------------------------------------------------------------------------- 1 | 7 | 18 | -------------------------------------------------------------------------------- /src/components/icons/IconDocumentation.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/icons/IconEcosystem.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/icons/IconEdit.vue: -------------------------------------------------------------------------------- 1 | 7 | 18 | -------------------------------------------------------------------------------- /src/components/icons/IconSupport.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /src/components/icons/IconTooling.vue: -------------------------------------------------------------------------------- 1 | 2 | 20 | -------------------------------------------------------------------------------- /src/libs/bridge.ts: -------------------------------------------------------------------------------- 1 | // @ts-nocheck 2 | /* 3 | * @Date: 2022-11-17 15:02:39 4 | * @LastEditors: shijianzhong 994129509@qq.com 5 | * @LastEditTime: 2023-02-17 14:18:39 6 | * @FilePath: /vue-project/src/libs/bridge.ts 7 | */ 8 | import { ref, onMounted, onUnmounted, watch } from 'vue' 9 | import { invoke } from '@tauri-apps/api'; 10 | 11 | export function useGreet() { 12 | const greetRes = ref(null) 13 | const greetErr = ref(null) 14 | let res = invoke('greet', { name: 'world' }) 15 | .then(res => greetRes.value = res) 16 | .catch(err => greetErr.value = err) 17 | return { greetRes, greetErr } 18 | } 19 | export function useAi(user_input) { 20 | return new Promise((resolve, reject) => { 21 | invoke('ai_qs', { userInput:`${user_input}` }) 22 | .then(res => resolve(res)) 23 | .catch(err => reject(err)) 24 | }) 25 | 26 | } 27 | export function useDeleteItemByItemId(item_id, real = false) { 28 | return new Promise((resolve, reject) => { 29 | invoke(real ? 'delete_item' : 'vitural_delete_item', { itemId: `${item_id}` }) 30 | .then(res => { 31 | resolve(res) 32 | }) 33 | .catch(e => reject(e)) 34 | }) 35 | } 36 | export function useUpdateItem(item) { 37 | return new Promise((resolve, reject) => { 38 | invoke('update_item', { item: JSON.stringify(item) }) 39 | .then(res => { 40 | resolve(res) 41 | }) 42 | .catch(e => reject(e)) 43 | }) 44 | } 45 | export function useGetItems() { 46 | return new Promise((resolve, reject) => { 47 | invoke('get_items') 48 | .then(res => { 49 | let val = JSON.parse(res) 50 | let _data = new Map(); 51 | val.forEach(element => { 52 | let _key = element.item_type; 53 | if (_data.has(_key)) { 54 | _data.get(_key).push(element) 55 | } else { 56 | _data.set(_key, [ 57 | element 58 | ]) 59 | } 60 | }); 61 | invoke('get_trash_items') 62 | .then(res => { 63 | let val = JSON.parse(res) 64 | val.forEach(element => { 65 | let _key = "1024"; 66 | if (_data.has(_key)) { 67 | _data.get(_key).push(element) 68 | } else { 69 | _data.set(_key, [ 70 | element 71 | ]) 72 | } 73 | }); 74 | resolve(_data) 75 | }) 76 | 77 | }) 78 | .catch(e => reject(e)) 79 | }) 80 | } 81 | export function useGetItemTypes() { 82 | return new Promise((resolve, reject) => { 83 | invoke('get_item_types') 84 | .then(res => { 85 | let val = JSON.parse(res) 86 | resolve(val) 87 | }) 88 | .catch(e => reject(e)) 89 | }) 90 | } 91 | // get_item_types 92 | export function useAddData(item, apiStr) { 93 | return new Promise((resolve, reject) => { 94 | invoke(apiStr, { form: JSON.stringify(item) }) 95 | .then(res => { 96 | resolve(res) 97 | }) 98 | .catch(err => reject(err)) 99 | }) 100 | } 101 | // 按照惯例,组合式函数名以“use”开头 102 | export function useBridge() { 103 | // 被组合式函数封装和管理的状态 104 | const x = ref(0) 105 | const y = ref(0) 106 | 107 | // 组合式函数可以随时更改其状态。 108 | function update(event) { 109 | x.value = event.pageX 110 | y.value = event.pageY 111 | } 112 | 113 | // 一个组合式函数也可以挂靠在所属组件的生命周期上 114 | // 来启动和卸载副作用 115 | onMounted(() => window.addEventListener('mousemove', update)) 116 | onUnmounted(() => window.removeEventListener('mousemove', update)) 117 | 118 | // 通过返回值暴露所管理的状态 119 | return { x, y } 120 | } -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-01 14:14:04 3 | * @LastEditors: shijianzhong shijianzhong 4 | * @LastEditTime: 2022-11-30 09:19:01 5 | * @FilePath: /vue-project/src/main.ts 6 | */ 7 | import { createApp } from 'vue' 8 | import { createPinia } from 'pinia' 9 | import ElementPlus from 'element-plus' 10 | import 'element-plus/dist/index.css' 11 | import App from './App.vue' 12 | import router from './router' 13 | import mavonEditor from 'mavon-editor' 14 | import 'mavon-editor/dist/css/index.css' 15 | import './assets/main.css' 16 | 17 | const app = createApp(App) 18 | app.use(mavonEditor) 19 | app.use(ElementPlus) 20 | app.use(createPinia()) 21 | app.use(router) 22 | 23 | app.mount('#app') 24 | -------------------------------------------------------------------------------- /src/router/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-01 14:14:04 3 | * @LastEditors: shijianzhong 994129509@qq.com 4 | * @LastEditTime: 2023-02-16 15:45:18 5 | * @FilePath: /vue-project/src/router/index.ts 6 | */ 7 | import { createRouter, createWebHistory } from 'vue-router' 8 | import HomeView from '../views/HomeView.vue' 9 | 10 | const router = createRouter({ 11 | history: createWebHistory(import.meta.env.BASE_URL), 12 | routes: [ 13 | { 14 | path: '/', 15 | name: 'home', 16 | component: () => import('../views/HomeView.vue') 17 | }, 18 | { 19 | path: '/about', 20 | name: 'about', 21 | // route level code-splitting 22 | // this generates a separate chunk (About.[hash].js) for this route 23 | // which is lazy-loaded when the route is visited. 24 | component: () => import('../views/AboutView.vue') 25 | }, 26 | { 27 | path: '/ai', 28 | name: 'ai', 29 | component: () => import('../views/AiView.vue') 30 | }, 31 | ] 32 | }) 33 | 34 | export default router 35 | -------------------------------------------------------------------------------- /src/stores/counter.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-11-01 14:14:04 3 | * @LastEditors: shijianzhong shijianzhong 4 | * @LastEditTime: 2022-11-16 19:27:59 5 | * @FilePath: /vue-project/src/stores/counter.ts 6 | */ 7 | import { ref, computed } from 'vue' 8 | import { defineStore } from 'pinia' 9 | 10 | export const useCounterStore = defineStore('counter', () => { 11 | const count = ref(0) 12 | const doubleCount = computed(() => count.value * 2) 13 | function increment() { 14 | count.value++ 15 | } 16 | 17 | return { count, doubleCount, increment } 18 | }) 19 | -------------------------------------------------------------------------------- /src/stores/task.ts: -------------------------------------------------------------------------------- 1 | // @ts-nocheck 2 | /* 3 | * @Date: 2022-11-01 14:14:04 4 | * @LastEditors: shijianzhong shijianzhong 5 | * @LastEditTime: 2022-11-30 15:46:29 6 | */ 7 | import { ref, computed, reactive } from 'vue' 8 | import { defineStore } from 'pinia' 9 | // import {useGetItems} from '@/libs/bridge' 10 | export const useTaskStore = defineStore('task', () => { 11 | let typeItemsStore =reactive(new Map()) 12 | /** 13 | * 类目 14 | */ 15 | let itemTypes = ref([]); 16 | 17 | /** 18 | * 设置类目 19 | * @param val 20 | */ 21 | function setItemTypes(val){ 22 | itemTypes.value =val; 23 | } 24 | //初始化数据 25 | function setAllData(data){ 26 | this.typeItemsStore = data; 27 | } 28 | return { typeItemsStore, setAllData,setItemTypes,itemTypes} 29 | }) 30 | -------------------------------------------------------------------------------- /src/types/index.d.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @Date: 2022-12-02 13:52:01 3 | * @LastEditors: shijianzhong shijianzhong 4 | * @LastEditTime: 2022-12-02 13:52:26 5 | * @FilePath: /vue-project/src/types/index.d.ts 6 | */ 7 | declare module 'fabric'; -------------------------------------------------------------------------------- /src/views/AboutView.vue: -------------------------------------------------------------------------------- 1 | 7 | 12 | 29 | 30 | 39 | -------------------------------------------------------------------------------- /src/views/AiView.vue: -------------------------------------------------------------------------------- 1 | 7 | 27 | 95 | -------------------------------------------------------------------------------- /src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 7 | 64 | 218 | -------------------------------------------------------------------------------- /src/views/TaskView.vue: -------------------------------------------------------------------------------- 1 | 7 | 18 | 29 | -------------------------------------------------------------------------------- /src/views/ToDoItem.vue: -------------------------------------------------------------------------------- 1 | 7 | 20 | 32 | -------------------------------------------------------------------------------- /tsconfig.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.node.json", 3 | "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], 4 | "compilerOptions": { 5 | "strict": false, 6 | "composite": true, 7 | "types": ["node"] 8 | }, 9 | 10 | } 11 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@vue/tsconfig/tsconfig.web.json", 3 | "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], 4 | "compilerOptions": { 5 | "baseUrl": ".", 6 | "strict": false, 7 | "paths": { 8 | "@/*": ["./src/*"] 9 | }, 10 | "types": ["element-plus/global"] 11 | }, 12 | 13 | "references": [ 14 | { 15 | "path": "./tsconfig.config.json" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | 3 | import { defineConfig } from 'vite' 4 | import vue from '@vitejs/plugin-vue' 5 | import vueJsx from '@vitejs/plugin-vue-jsx' 6 | 7 | // https://vitejs.dev/config/ 8 | export default defineConfig({ 9 | plugins: [vue(), vueJsx()], 10 | resolve: { 11 | alias: { 12 | '@': fileURLToPath(new URL('./src', import.meta.url)) 13 | } 14 | } 15 | }) 16 | --------------------------------------------------------------------------------