├── .github └── workflows │ └── releases.yml ├── .gitignore ├── .vscode └── extensions.json ├── README-zh_CN.md ├── README.md ├── imgs └── banner.png ├── package.json ├── pnpm-lock.yaml ├── popup.html ├── public ├── _locales │ ├── en │ │ └── messages.json │ └── zh_CN │ │ └── messages.json ├── icon128.png ├── icon48.png └── manifest.json ├── scripts ├── injectWebComponent.js ├── utils.js └── zipDist.js ├── src ├── App.vue ├── ShareImage.ce.vue ├── assets │ └── 引号.svg ├── components │ └── Overlay.ce.vue ├── content.ts ├── main.ts ├── popup │ ├── App.vue │ └── main.ts ├── utils │ ├── canvas.ts │ ├── info.ts │ └── text.ts └── vite-env.d.ts ├── text-camera-extension.zip ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.popup.ts └── vite.config.ts /.github/workflows/releases.yml: -------------------------------------------------------------------------------- 1 | name: 'Create Releases' 2 | 3 | on: 4 | push: 5 | tags: 6 | - 'v1.*.*' 7 | workflow_dispatch: 8 | 9 | jobs: 10 | releases: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Checkout repository 14 | uses: actions/checkout@v4 15 | 16 | - name: Use pnpm 17 | uses: pnpm/action-setup@v4 18 | with: 19 | version: 7 20 | 21 | - name: Use Node.js 22 | uses: actions/setup-node@v4 23 | with: 24 | node-version: '22.x' 25 | cache: 'pnpm' 26 | 27 | - name: Cache 28 | id: cache-dependencies 29 | uses: actions/cache@v4 30 | with: 31 | path: | 32 | **/node_modules 33 | key: ${{runner.OS}}-${{hashFiles('pnpm-lock.yaml')}} 34 | 35 | - name: Installing Dependencies 36 | if: steps.cache-dependencies.outputs.cache-hit != 'true' 37 | run: pnpm install 38 | 39 | - name: Build 40 | run: pnpm zip 41 | 42 | - name: Create Releases 43 | uses: softprops/action-gh-release@v2 44 | with: 45 | draft: true 46 | generate_release_notes: true 47 | files: text-camera-extension.zip 48 | token: ${{ secrets.RELEASE_GITHUB_TOKEN }} 49 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["Vue.volar"] 3 | } 4 | -------------------------------------------------------------------------------- /README-zh_CN.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | [![Chrome Web Store Version](https://img.shields.io/chrome-web-store/v/adoclpododfhnldnloflmcgpgjigciil)](https://chromewebstore.google.com/detail/text-camera/adoclpododfhnldnloflmcgpgjigciil) 6 | 7 | 中文 | [English](./README.md) 8 | 9 | 鼠标右键选中的文本以创建分享图 10 | 11 | 分享图包含以下内容: 12 | * 选中的文本 13 | * 网站标题 14 | * 网站简介 15 | * 网站图标 16 | * 指向网站的二维码 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 | 3 |
4 | 5 | [![Chrome Web Store Version](https://img.shields.io/chrome-web-store/v/adoclpododfhnldnloflmcgpgjigciil)](https://chromewebstore.google.com/detail/text-camera/adoclpododfhnldnloflmcgpgjigciil) 6 | 7 | [中文](./README-zh_CN.md) | English 8 | 9 | Right-click to generate a shareable image after selecting the text. 10 | 11 | Includes the following content: 12 | * selected text 13 | * website title 14 | * website description 15 | * website icon 16 | * QR code pointing to the website -------------------------------------------------------------------------------- /imgs/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JavanShen/text-camera/a7c9a51a961893167ec98193fdf9988f70534993/imgs/banner.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "text-camera", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc -b && vite build && vite build -c vite.config.popup.ts --emptyOutDir false && node scripts/injectWebComponent.js", 9 | "zip": "pnpm run build && node scripts/zipDist.js" 10 | }, 11 | "dependencies": { 12 | "@ant-design/icons-vue": "^7.0.1", 13 | "@webcomponents/webcomponentsjs": "^2.8.0", 14 | "ant-design-vue": "^4.2.6", 15 | "html2canvas": "^1.4.1", 16 | "html2canvas-pro": "^1.5.8", 17 | "qrcode": "^1.5.4", 18 | "vue": "^3.5.13" 19 | }, 20 | "devDependencies": { 21 | "@types/archiver": "^6.0.3", 22 | "@types/chrome": "^0.0.287", 23 | "@types/node": "^22.10.2", 24 | "@types/qrcode": "^1.5.5", 25 | "@vitejs/plugin-vue": "^5.2.1", 26 | "archiver": "^7.0.1", 27 | "sass-embedded": "^1.83.0", 28 | "typescript": "~5.6.2", 29 | "vite": "^6.0.1", 30 | "vue-tsc": "^2.1.10" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@ant-design/icons-vue': 12 | specifier: ^7.0.1 13 | version: 7.0.1(vue@3.5.13(typescript@5.6.3)) 14 | '@webcomponents/webcomponentsjs': 15 | specifier: ^2.8.0 16 | version: 2.8.0 17 | ant-design-vue: 18 | specifier: ^4.2.6 19 | version: 4.2.6(vue@3.5.13(typescript@5.6.3)) 20 | html2canvas: 21 | specifier: ^1.4.1 22 | version: 1.4.1 23 | html2canvas-pro: 24 | specifier: ^1.5.8 25 | version: 1.5.8 26 | qrcode: 27 | specifier: ^1.5.4 28 | version: 1.5.4 29 | vue: 30 | specifier: ^3.5.13 31 | version: 3.5.13(typescript@5.6.3) 32 | devDependencies: 33 | '@types/archiver': 34 | specifier: ^6.0.3 35 | version: 6.0.3 36 | '@types/chrome': 37 | specifier: ^0.0.287 38 | version: 0.0.287 39 | '@types/node': 40 | specifier: ^22.10.2 41 | version: 22.10.2 42 | '@types/qrcode': 43 | specifier: ^1.5.5 44 | version: 1.5.5 45 | '@vitejs/plugin-vue': 46 | specifier: ^5.2.1 47 | version: 5.2.1(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(sass-embedded@1.83.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.6.3)) 48 | archiver: 49 | specifier: ^7.0.1 50 | version: 7.0.1 51 | sass-embedded: 52 | specifier: ^1.83.0 53 | version: 1.83.0 54 | typescript: 55 | specifier: ~5.6.2 56 | version: 5.6.3 57 | vite: 58 | specifier: ^6.0.1 59 | version: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(sass-embedded@1.83.0)(tsx@4.19.2) 60 | vue-tsc: 61 | specifier: ^2.1.10 62 | version: 2.1.10(typescript@5.6.3) 63 | 64 | packages: 65 | 66 | '@ant-design/colors@6.0.0': 67 | resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==} 68 | 69 | '@ant-design/icons-svg@4.4.2': 70 | resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==} 71 | 72 | '@ant-design/icons-vue@7.0.1': 73 | resolution: {integrity: sha512-eCqY2unfZK6Fe02AwFlDHLfoyEFreP6rBwAZMIJ1LugmfMiVgwWDYlp1YsRugaPtICYOabV1iWxXdP12u9U43Q==} 74 | peerDependencies: 75 | vue: '>=3.0.3' 76 | 77 | '@babel/helper-string-parser@7.25.9': 78 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 79 | engines: {node: '>=6.9.0'} 80 | 81 | '@babel/helper-validator-identifier@7.25.9': 82 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 83 | engines: {node: '>=6.9.0'} 84 | 85 | '@babel/parser@7.26.3': 86 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} 87 | engines: {node: '>=6.0.0'} 88 | hasBin: true 89 | 90 | '@babel/runtime@7.26.0': 91 | resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} 92 | engines: {node: '>=6.9.0'} 93 | 94 | '@babel/types@7.26.3': 95 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 96 | engines: {node: '>=6.9.0'} 97 | 98 | '@bufbuild/protobuf@2.2.3': 99 | resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} 100 | 101 | '@ctrl/tinycolor@3.6.1': 102 | resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} 103 | engines: {node: '>=10'} 104 | 105 | '@emotion/hash@0.9.2': 106 | resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} 107 | 108 | '@emotion/unitless@0.8.1': 109 | resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==} 110 | 111 | '@esbuild/aix-ppc64@0.23.1': 112 | resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} 113 | engines: {node: '>=18'} 114 | cpu: [ppc64] 115 | os: [aix] 116 | 117 | '@esbuild/aix-ppc64@0.24.0': 118 | resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==} 119 | engines: {node: '>=18'} 120 | cpu: [ppc64] 121 | os: [aix] 122 | 123 | '@esbuild/android-arm64@0.23.1': 124 | resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} 125 | engines: {node: '>=18'} 126 | cpu: [arm64] 127 | os: [android] 128 | 129 | '@esbuild/android-arm64@0.24.0': 130 | resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==} 131 | engines: {node: '>=18'} 132 | cpu: [arm64] 133 | os: [android] 134 | 135 | '@esbuild/android-arm@0.23.1': 136 | resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} 137 | engines: {node: '>=18'} 138 | cpu: [arm] 139 | os: [android] 140 | 141 | '@esbuild/android-arm@0.24.0': 142 | resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==} 143 | engines: {node: '>=18'} 144 | cpu: [arm] 145 | os: [android] 146 | 147 | '@esbuild/android-x64@0.23.1': 148 | resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} 149 | engines: {node: '>=18'} 150 | cpu: [x64] 151 | os: [android] 152 | 153 | '@esbuild/android-x64@0.24.0': 154 | resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==} 155 | engines: {node: '>=18'} 156 | cpu: [x64] 157 | os: [android] 158 | 159 | '@esbuild/darwin-arm64@0.23.1': 160 | resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} 161 | engines: {node: '>=18'} 162 | cpu: [arm64] 163 | os: [darwin] 164 | 165 | '@esbuild/darwin-arm64@0.24.0': 166 | resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==} 167 | engines: {node: '>=18'} 168 | cpu: [arm64] 169 | os: [darwin] 170 | 171 | '@esbuild/darwin-x64@0.23.1': 172 | resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} 173 | engines: {node: '>=18'} 174 | cpu: [x64] 175 | os: [darwin] 176 | 177 | '@esbuild/darwin-x64@0.24.0': 178 | resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==} 179 | engines: {node: '>=18'} 180 | cpu: [x64] 181 | os: [darwin] 182 | 183 | '@esbuild/freebsd-arm64@0.23.1': 184 | resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} 185 | engines: {node: '>=18'} 186 | cpu: [arm64] 187 | os: [freebsd] 188 | 189 | '@esbuild/freebsd-arm64@0.24.0': 190 | resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==} 191 | engines: {node: '>=18'} 192 | cpu: [arm64] 193 | os: [freebsd] 194 | 195 | '@esbuild/freebsd-x64@0.23.1': 196 | resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} 197 | engines: {node: '>=18'} 198 | cpu: [x64] 199 | os: [freebsd] 200 | 201 | '@esbuild/freebsd-x64@0.24.0': 202 | resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==} 203 | engines: {node: '>=18'} 204 | cpu: [x64] 205 | os: [freebsd] 206 | 207 | '@esbuild/linux-arm64@0.23.1': 208 | resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} 209 | engines: {node: '>=18'} 210 | cpu: [arm64] 211 | os: [linux] 212 | 213 | '@esbuild/linux-arm64@0.24.0': 214 | resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==} 215 | engines: {node: '>=18'} 216 | cpu: [arm64] 217 | os: [linux] 218 | 219 | '@esbuild/linux-arm@0.23.1': 220 | resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} 221 | engines: {node: '>=18'} 222 | cpu: [arm] 223 | os: [linux] 224 | 225 | '@esbuild/linux-arm@0.24.0': 226 | resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==} 227 | engines: {node: '>=18'} 228 | cpu: [arm] 229 | os: [linux] 230 | 231 | '@esbuild/linux-ia32@0.23.1': 232 | resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} 233 | engines: {node: '>=18'} 234 | cpu: [ia32] 235 | os: [linux] 236 | 237 | '@esbuild/linux-ia32@0.24.0': 238 | resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==} 239 | engines: {node: '>=18'} 240 | cpu: [ia32] 241 | os: [linux] 242 | 243 | '@esbuild/linux-loong64@0.23.1': 244 | resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} 245 | engines: {node: '>=18'} 246 | cpu: [loong64] 247 | os: [linux] 248 | 249 | '@esbuild/linux-loong64@0.24.0': 250 | resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==} 251 | engines: {node: '>=18'} 252 | cpu: [loong64] 253 | os: [linux] 254 | 255 | '@esbuild/linux-mips64el@0.23.1': 256 | resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} 257 | engines: {node: '>=18'} 258 | cpu: [mips64el] 259 | os: [linux] 260 | 261 | '@esbuild/linux-mips64el@0.24.0': 262 | resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==} 263 | engines: {node: '>=18'} 264 | cpu: [mips64el] 265 | os: [linux] 266 | 267 | '@esbuild/linux-ppc64@0.23.1': 268 | resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} 269 | engines: {node: '>=18'} 270 | cpu: [ppc64] 271 | os: [linux] 272 | 273 | '@esbuild/linux-ppc64@0.24.0': 274 | resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==} 275 | engines: {node: '>=18'} 276 | cpu: [ppc64] 277 | os: [linux] 278 | 279 | '@esbuild/linux-riscv64@0.23.1': 280 | resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} 281 | engines: {node: '>=18'} 282 | cpu: [riscv64] 283 | os: [linux] 284 | 285 | '@esbuild/linux-riscv64@0.24.0': 286 | resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==} 287 | engines: {node: '>=18'} 288 | cpu: [riscv64] 289 | os: [linux] 290 | 291 | '@esbuild/linux-s390x@0.23.1': 292 | resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} 293 | engines: {node: '>=18'} 294 | cpu: [s390x] 295 | os: [linux] 296 | 297 | '@esbuild/linux-s390x@0.24.0': 298 | resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==} 299 | engines: {node: '>=18'} 300 | cpu: [s390x] 301 | os: [linux] 302 | 303 | '@esbuild/linux-x64@0.23.1': 304 | resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} 305 | engines: {node: '>=18'} 306 | cpu: [x64] 307 | os: [linux] 308 | 309 | '@esbuild/linux-x64@0.24.0': 310 | resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==} 311 | engines: {node: '>=18'} 312 | cpu: [x64] 313 | os: [linux] 314 | 315 | '@esbuild/netbsd-x64@0.23.1': 316 | resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} 317 | engines: {node: '>=18'} 318 | cpu: [x64] 319 | os: [netbsd] 320 | 321 | '@esbuild/netbsd-x64@0.24.0': 322 | resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==} 323 | engines: {node: '>=18'} 324 | cpu: [x64] 325 | os: [netbsd] 326 | 327 | '@esbuild/openbsd-arm64@0.23.1': 328 | resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} 329 | engines: {node: '>=18'} 330 | cpu: [arm64] 331 | os: [openbsd] 332 | 333 | '@esbuild/openbsd-arm64@0.24.0': 334 | resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==} 335 | engines: {node: '>=18'} 336 | cpu: [arm64] 337 | os: [openbsd] 338 | 339 | '@esbuild/openbsd-x64@0.23.1': 340 | resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} 341 | engines: {node: '>=18'} 342 | cpu: [x64] 343 | os: [openbsd] 344 | 345 | '@esbuild/openbsd-x64@0.24.0': 346 | resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==} 347 | engines: {node: '>=18'} 348 | cpu: [x64] 349 | os: [openbsd] 350 | 351 | '@esbuild/sunos-x64@0.23.1': 352 | resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} 353 | engines: {node: '>=18'} 354 | cpu: [x64] 355 | os: [sunos] 356 | 357 | '@esbuild/sunos-x64@0.24.0': 358 | resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==} 359 | engines: {node: '>=18'} 360 | cpu: [x64] 361 | os: [sunos] 362 | 363 | '@esbuild/win32-arm64@0.23.1': 364 | resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} 365 | engines: {node: '>=18'} 366 | cpu: [arm64] 367 | os: [win32] 368 | 369 | '@esbuild/win32-arm64@0.24.0': 370 | resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==} 371 | engines: {node: '>=18'} 372 | cpu: [arm64] 373 | os: [win32] 374 | 375 | '@esbuild/win32-ia32@0.23.1': 376 | resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} 377 | engines: {node: '>=18'} 378 | cpu: [ia32] 379 | os: [win32] 380 | 381 | '@esbuild/win32-ia32@0.24.0': 382 | resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==} 383 | engines: {node: '>=18'} 384 | cpu: [ia32] 385 | os: [win32] 386 | 387 | '@esbuild/win32-x64@0.23.1': 388 | resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} 389 | engines: {node: '>=18'} 390 | cpu: [x64] 391 | os: [win32] 392 | 393 | '@esbuild/win32-x64@0.24.0': 394 | resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==} 395 | engines: {node: '>=18'} 396 | cpu: [x64] 397 | os: [win32] 398 | 399 | '@isaacs/cliui@8.0.2': 400 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 401 | engines: {node: '>=12'} 402 | 403 | '@jridgewell/sourcemap-codec@1.5.0': 404 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 405 | 406 | '@pkgjs/parseargs@0.11.0': 407 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 408 | engines: {node: '>=14'} 409 | 410 | '@rollup/rollup-android-arm-eabi@4.28.0': 411 | resolution: {integrity: sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==} 412 | cpu: [arm] 413 | os: [android] 414 | 415 | '@rollup/rollup-android-arm64@4.28.0': 416 | resolution: {integrity: sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==} 417 | cpu: [arm64] 418 | os: [android] 419 | 420 | '@rollup/rollup-darwin-arm64@4.28.0': 421 | resolution: {integrity: sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==} 422 | cpu: [arm64] 423 | os: [darwin] 424 | 425 | '@rollup/rollup-darwin-x64@4.28.0': 426 | resolution: {integrity: sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==} 427 | cpu: [x64] 428 | os: [darwin] 429 | 430 | '@rollup/rollup-freebsd-arm64@4.28.0': 431 | resolution: {integrity: sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==} 432 | cpu: [arm64] 433 | os: [freebsd] 434 | 435 | '@rollup/rollup-freebsd-x64@4.28.0': 436 | resolution: {integrity: sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==} 437 | cpu: [x64] 438 | os: [freebsd] 439 | 440 | '@rollup/rollup-linux-arm-gnueabihf@4.28.0': 441 | resolution: {integrity: sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==} 442 | cpu: [arm] 443 | os: [linux] 444 | 445 | '@rollup/rollup-linux-arm-musleabihf@4.28.0': 446 | resolution: {integrity: sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==} 447 | cpu: [arm] 448 | os: [linux] 449 | 450 | '@rollup/rollup-linux-arm64-gnu@4.28.0': 451 | resolution: {integrity: sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==} 452 | cpu: [arm64] 453 | os: [linux] 454 | 455 | '@rollup/rollup-linux-arm64-musl@4.28.0': 456 | resolution: {integrity: sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==} 457 | cpu: [arm64] 458 | os: [linux] 459 | 460 | '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': 461 | resolution: {integrity: sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==} 462 | cpu: [ppc64] 463 | os: [linux] 464 | 465 | '@rollup/rollup-linux-riscv64-gnu@4.28.0': 466 | resolution: {integrity: sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==} 467 | cpu: [riscv64] 468 | os: [linux] 469 | 470 | '@rollup/rollup-linux-s390x-gnu@4.28.0': 471 | resolution: {integrity: sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==} 472 | cpu: [s390x] 473 | os: [linux] 474 | 475 | '@rollup/rollup-linux-x64-gnu@4.28.0': 476 | resolution: {integrity: sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==} 477 | cpu: [x64] 478 | os: [linux] 479 | 480 | '@rollup/rollup-linux-x64-musl@4.28.0': 481 | resolution: {integrity: sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==} 482 | cpu: [x64] 483 | os: [linux] 484 | 485 | '@rollup/rollup-win32-arm64-msvc@4.28.0': 486 | resolution: {integrity: sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==} 487 | cpu: [arm64] 488 | os: [win32] 489 | 490 | '@rollup/rollup-win32-ia32-msvc@4.28.0': 491 | resolution: {integrity: sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==} 492 | cpu: [ia32] 493 | os: [win32] 494 | 495 | '@rollup/rollup-win32-x64-msvc@4.28.0': 496 | resolution: {integrity: sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==} 497 | cpu: [x64] 498 | os: [win32] 499 | 500 | '@simonwep/pickr@1.8.2': 501 | resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==} 502 | 503 | '@types/archiver@6.0.3': 504 | resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} 505 | 506 | '@types/chrome@0.0.287': 507 | resolution: {integrity: sha512-wWhBNPNXZHwycHKNYnexUcpSbrihVZu++0rdp6GEk5ZgAglenLx+RwdEouh6FrHS0XQiOxSd62yaujM1OoQlZQ==} 508 | 509 | '@types/estree@1.0.6': 510 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 511 | 512 | '@types/filesystem@0.0.36': 513 | resolution: {integrity: sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==} 514 | 515 | '@types/filewriter@0.0.33': 516 | resolution: {integrity: sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==} 517 | 518 | '@types/har-format@1.2.16': 519 | resolution: {integrity: sha512-fluxdy7ryD3MV6h8pTfTYpy/xQzCFC7m89nOH9y94cNqJ1mDIDPut7MnRHI3F6qRmh/cT2fUjG1MLdCNb4hE9A==} 520 | 521 | '@types/node@22.10.2': 522 | resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} 523 | 524 | '@types/qrcode@1.5.5': 525 | resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==} 526 | 527 | '@types/readdir-glob@1.1.5': 528 | resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} 529 | 530 | '@vitejs/plugin-vue@5.2.1': 531 | resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} 532 | engines: {node: ^18.0.0 || >=20.0.0} 533 | peerDependencies: 534 | vite: ^5.0.0 || ^6.0.0 535 | vue: ^3.2.25 536 | 537 | '@volar/language-core@2.4.10': 538 | resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} 539 | 540 | '@volar/source-map@2.4.10': 541 | resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} 542 | 543 | '@volar/typescript@2.4.10': 544 | resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} 545 | 546 | '@vue/compiler-core@3.5.13': 547 | resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} 548 | 549 | '@vue/compiler-dom@3.5.13': 550 | resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} 551 | 552 | '@vue/compiler-sfc@3.5.13': 553 | resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} 554 | 555 | '@vue/compiler-ssr@3.5.13': 556 | resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} 557 | 558 | '@vue/compiler-vue2@2.7.16': 559 | resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} 560 | 561 | '@vue/language-core@2.1.10': 562 | resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} 563 | peerDependencies: 564 | typescript: '*' 565 | peerDependenciesMeta: 566 | typescript: 567 | optional: true 568 | 569 | '@vue/reactivity@3.5.13': 570 | resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} 571 | 572 | '@vue/runtime-core@3.5.13': 573 | resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} 574 | 575 | '@vue/runtime-dom@3.5.13': 576 | resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} 577 | 578 | '@vue/server-renderer@3.5.13': 579 | resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} 580 | peerDependencies: 581 | vue: 3.5.13 582 | 583 | '@vue/shared@3.5.13': 584 | resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} 585 | 586 | '@webcomponents/webcomponentsjs@2.8.0': 587 | resolution: {integrity: sha512-loGD63sacRzOzSJgQnB9ZAhaQGkN7wl2Zuw7tsphI5Isa0irijrRo6EnJii/GgjGefIFO8AIO7UivzRhFaEk9w==} 588 | 589 | abort-controller@3.0.0: 590 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} 591 | engines: {node: '>=6.5'} 592 | 593 | alien-signals@0.2.2: 594 | resolution: {integrity: sha512-cZIRkbERILsBOXTQmMrxc9hgpxglstn69zm+F1ARf4aPAzdAFYd6sBq87ErO0Fj3DV94tglcyHG5kQz9nDC/8A==} 595 | 596 | ansi-regex@5.0.1: 597 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 598 | engines: {node: '>=8'} 599 | 600 | ansi-regex@6.1.0: 601 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 602 | engines: {node: '>=12'} 603 | 604 | ansi-styles@4.3.0: 605 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 606 | engines: {node: '>=8'} 607 | 608 | ansi-styles@6.2.1: 609 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 610 | engines: {node: '>=12'} 611 | 612 | ant-design-vue@4.2.6: 613 | resolution: {integrity: sha512-t7eX13Yj3i9+i5g9lqFyYneoIb3OzTvQjq9Tts1i+eiOd3Eva/6GagxBSXM1fOCjqemIu0FYVE1ByZ/38epR3Q==} 614 | engines: {node: '>=12.22.0'} 615 | peerDependencies: 616 | vue: '>=3.2.0' 617 | 618 | archiver-utils@5.0.2: 619 | resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} 620 | engines: {node: '>= 14'} 621 | 622 | archiver@7.0.1: 623 | resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} 624 | engines: {node: '>= 14'} 625 | 626 | array-tree-filter@2.1.0: 627 | resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==} 628 | 629 | async-validator@4.2.5: 630 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 631 | 632 | async@3.2.6: 633 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 634 | 635 | b4a@1.6.7: 636 | resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} 637 | 638 | balanced-match@1.0.2: 639 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 640 | 641 | bare-events@2.5.0: 642 | resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} 643 | 644 | base64-arraybuffer@1.0.2: 645 | resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} 646 | engines: {node: '>= 0.6.0'} 647 | 648 | base64-js@1.5.1: 649 | resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} 650 | 651 | brace-expansion@2.0.1: 652 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 653 | 654 | buffer-builder@0.2.0: 655 | resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} 656 | 657 | buffer-crc32@1.0.0: 658 | resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} 659 | engines: {node: '>=8.0.0'} 660 | 661 | buffer@6.0.3: 662 | resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} 663 | 664 | camelcase@5.3.1: 665 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 666 | engines: {node: '>=6'} 667 | 668 | cliui@6.0.0: 669 | resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} 670 | 671 | color-convert@2.0.1: 672 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 673 | engines: {node: '>=7.0.0'} 674 | 675 | color-name@1.1.4: 676 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 677 | 678 | colorjs.io@0.5.2: 679 | resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} 680 | 681 | compress-commons@6.0.2: 682 | resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} 683 | engines: {node: '>= 14'} 684 | 685 | compute-scroll-into-view@1.0.20: 686 | resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} 687 | 688 | core-js@3.40.0: 689 | resolution: {integrity: sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==} 690 | 691 | core-util-is@1.0.3: 692 | resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} 693 | 694 | crc-32@1.2.2: 695 | resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} 696 | engines: {node: '>=0.8'} 697 | hasBin: true 698 | 699 | crc32-stream@6.0.0: 700 | resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} 701 | engines: {node: '>= 14'} 702 | 703 | cross-spawn@7.0.6: 704 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 705 | engines: {node: '>= 8'} 706 | 707 | css-line-break@2.1.0: 708 | resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==} 709 | 710 | csstype@3.1.3: 711 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 712 | 713 | dayjs@1.11.13: 714 | resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} 715 | 716 | de-indent@1.0.2: 717 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 718 | 719 | decamelize@1.2.0: 720 | resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} 721 | engines: {node: '>=0.10.0'} 722 | 723 | dijkstrajs@1.0.3: 724 | resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==} 725 | 726 | dom-align@1.12.4: 727 | resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==} 728 | 729 | dom-scroll-into-view@2.0.1: 730 | resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==} 731 | 732 | eastasianwidth@0.2.0: 733 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 734 | 735 | emoji-regex@8.0.0: 736 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 737 | 738 | emoji-regex@9.2.2: 739 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 740 | 741 | entities@4.5.0: 742 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 743 | engines: {node: '>=0.12'} 744 | 745 | esbuild@0.23.1: 746 | resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} 747 | engines: {node: '>=18'} 748 | hasBin: true 749 | 750 | esbuild@0.24.0: 751 | resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==} 752 | engines: {node: '>=18'} 753 | hasBin: true 754 | 755 | estree-walker@2.0.2: 756 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 757 | 758 | event-target-shim@5.0.1: 759 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} 760 | engines: {node: '>=6'} 761 | 762 | events@3.3.0: 763 | resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} 764 | engines: {node: '>=0.8.x'} 765 | 766 | fast-fifo@1.3.2: 767 | resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} 768 | 769 | find-up@4.1.0: 770 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 771 | engines: {node: '>=8'} 772 | 773 | foreground-child@3.3.0: 774 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 775 | engines: {node: '>=14'} 776 | 777 | fsevents@2.3.3: 778 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 779 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 780 | os: [darwin] 781 | 782 | get-caller-file@2.0.5: 783 | resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 784 | engines: {node: 6.* || 8.* || >= 10.*} 785 | 786 | get-tsconfig@4.8.1: 787 | resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} 788 | 789 | glob@10.4.5: 790 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 791 | hasBin: true 792 | 793 | graceful-fs@4.2.11: 794 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 795 | 796 | has-flag@4.0.0: 797 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 798 | engines: {node: '>=8'} 799 | 800 | he@1.2.0: 801 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 802 | hasBin: true 803 | 804 | html2canvas-pro@1.5.8: 805 | resolution: {integrity: sha512-bVGAU7IvhBwBlRAmX6QhekX8lsaxmYoF6zIwf/HNlHscjx+KN8jw/U4PQRYqeEVm9+m13hcS1l5ChJB9/e29Lw==} 806 | engines: {node: '>=16.0.0'} 807 | 808 | html2canvas@1.4.1: 809 | resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==} 810 | engines: {node: '>=8.0.0'} 811 | 812 | ieee754@1.2.1: 813 | resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} 814 | 815 | immutable@5.0.3: 816 | resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} 817 | 818 | inherits@2.0.4: 819 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 820 | 821 | is-fullwidth-code-point@3.0.0: 822 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 823 | engines: {node: '>=8'} 824 | 825 | is-plain-object@3.0.1: 826 | resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==} 827 | engines: {node: '>=0.10.0'} 828 | 829 | is-stream@2.0.1: 830 | resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} 831 | engines: {node: '>=8'} 832 | 833 | isarray@1.0.0: 834 | resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} 835 | 836 | isexe@2.0.0: 837 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 838 | 839 | jackspeak@3.4.3: 840 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 841 | 842 | jiti@1.21.7: 843 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 844 | hasBin: true 845 | 846 | js-tokens@4.0.0: 847 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 848 | 849 | lazystream@1.0.1: 850 | resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} 851 | engines: {node: '>= 0.6.3'} 852 | 853 | locate-path@5.0.0: 854 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 855 | engines: {node: '>=8'} 856 | 857 | lodash-es@4.17.21: 858 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 859 | 860 | lodash@4.17.21: 861 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 862 | 863 | loose-envify@1.4.0: 864 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 865 | hasBin: true 866 | 867 | lru-cache@10.4.3: 868 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 869 | 870 | magic-string@0.30.14: 871 | resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} 872 | 873 | minimatch@5.1.6: 874 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 875 | engines: {node: '>=10'} 876 | 877 | minimatch@9.0.5: 878 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 879 | engines: {node: '>=16 || 14 >=14.17'} 880 | 881 | minipass@7.1.2: 882 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 883 | engines: {node: '>=16 || 14 >=14.17'} 884 | 885 | muggle-string@0.4.1: 886 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 887 | 888 | nanoid@3.3.8: 889 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 890 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 891 | hasBin: true 892 | 893 | nanopop@2.4.2: 894 | resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==} 895 | 896 | normalize-path@3.0.0: 897 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 898 | engines: {node: '>=0.10.0'} 899 | 900 | p-limit@2.3.0: 901 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 902 | engines: {node: '>=6'} 903 | 904 | p-locate@4.1.0: 905 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 906 | engines: {node: '>=8'} 907 | 908 | p-try@2.2.0: 909 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 910 | engines: {node: '>=6'} 911 | 912 | package-json-from-dist@1.0.1: 913 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 914 | 915 | path-browserify@1.0.1: 916 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 917 | 918 | path-exists@4.0.0: 919 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 920 | engines: {node: '>=8'} 921 | 922 | path-key@3.1.1: 923 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 924 | engines: {node: '>=8'} 925 | 926 | path-scurry@1.11.1: 927 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 928 | engines: {node: '>=16 || 14 >=14.18'} 929 | 930 | picocolors@1.1.1: 931 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 932 | 933 | pngjs@5.0.0: 934 | resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==} 935 | engines: {node: '>=10.13.0'} 936 | 937 | postcss@8.4.49: 938 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 939 | engines: {node: ^10 || ^12 || >=14} 940 | 941 | process-nextick-args@2.0.1: 942 | resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} 943 | 944 | process@0.11.10: 945 | resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} 946 | engines: {node: '>= 0.6.0'} 947 | 948 | qrcode@1.5.4: 949 | resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==} 950 | engines: {node: '>=10.13.0'} 951 | hasBin: true 952 | 953 | queue-tick@1.0.1: 954 | resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} 955 | 956 | readable-stream@2.3.8: 957 | resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} 958 | 959 | readable-stream@4.6.0: 960 | resolution: {integrity: sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==} 961 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 962 | 963 | readdir-glob@1.1.3: 964 | resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} 965 | 966 | regenerator-runtime@0.14.1: 967 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 968 | 969 | require-directory@2.1.1: 970 | resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} 971 | engines: {node: '>=0.10.0'} 972 | 973 | require-main-filename@2.0.0: 974 | resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} 975 | 976 | resize-observer-polyfill@1.5.1: 977 | resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} 978 | 979 | resolve-pkg-maps@1.0.0: 980 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 981 | 982 | rollup@4.28.0: 983 | resolution: {integrity: sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==} 984 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 985 | hasBin: true 986 | 987 | rxjs@7.8.1: 988 | resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} 989 | 990 | safe-buffer@5.1.2: 991 | resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} 992 | 993 | safe-buffer@5.2.1: 994 | resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 995 | 996 | sass-embedded-android-arm64@1.83.0: 997 | resolution: {integrity: sha512-GBiCvM4a2rkWBLdYDxI6XYnprfk5U5c81g69RC2X6kqPuzxzx8qTArQ9M6keFK4+iDQ5N9QTwFCr0KbZTn+ZNQ==} 998 | engines: {node: '>=14.0.0'} 999 | cpu: [arm64] 1000 | os: [android] 1001 | 1002 | sass-embedded-android-arm@1.83.0: 1003 | resolution: {integrity: sha512-uwFSXzJlfbd4Px189xE5l+cxN8+TQpXdQgJec7TIrb4HEY7imabtpYufpVdqUVwT1/uiis5V4+qIEC4Vl5XObQ==} 1004 | engines: {node: '>=14.0.0'} 1005 | cpu: [arm] 1006 | os: [android] 1007 | 1008 | sass-embedded-android-ia32@1.83.0: 1009 | resolution: {integrity: sha512-5ATPdGo2SICqAhiJl/Z8KQ23zH4sGgobGgux0TnrNtt83uHZ+r+To/ubVJ7xTkZxed+KJZnIpolGD8dQyQqoTg==} 1010 | engines: {node: '>=14.0.0'} 1011 | cpu: [ia32] 1012 | os: [android] 1013 | 1014 | sass-embedded-android-riscv64@1.83.0: 1015 | resolution: {integrity: sha512-aveknUOB8GZewOzVn2Uwk+DKcncTR50Q6vtzslNMGbYnxtgQNHzy8A1qVEviNUruex+pHofppeMK4iMPFAbiEQ==} 1016 | engines: {node: '>=14.0.0'} 1017 | cpu: [riscv64] 1018 | os: [android] 1019 | 1020 | sass-embedded-android-x64@1.83.0: 1021 | resolution: {integrity: sha512-WqIay/72ncyf9Ph4vS742J3a73wZihWmzFUwpn1OD6lme1Aj4eWzWIve5IVnlTEJgcZcDHu6ECID9IZgehJKoA==} 1022 | engines: {node: '>=14.0.0'} 1023 | cpu: [x64] 1024 | os: [android] 1025 | 1026 | sass-embedded-darwin-arm64@1.83.0: 1027 | resolution: {integrity: sha512-XQl9QqgxFFIPm/CzHhmppse5o9ocxrbaAdC2/DAnlAqvYWBBtgFqPjGoYlej13h9SzfvNoogx+y9r+Ap+e+hYg==} 1028 | engines: {node: '>=14.0.0'} 1029 | cpu: [arm64] 1030 | os: [darwin] 1031 | 1032 | sass-embedded-darwin-x64@1.83.0: 1033 | resolution: {integrity: sha512-ERQ7Tvp1kFOW3ux4VDFIxb7tkYXHYc+zJpcrbs0hzcIO5ilIRU2tIOK1OrNwrFO6Qxyf7AUuBwYKLAtIU/Nz7g==} 1034 | engines: {node: '>=14.0.0'} 1035 | cpu: [x64] 1036 | os: [darwin] 1037 | 1038 | sass-embedded-linux-arm64@1.83.0: 1039 | resolution: {integrity: sha512-syEAVTJt4qhaMLxrSwOWa46zdqHJdnqJkLUK+t9aCr8xqBZLPxSUeIGji76uOehQZ1C+KGFj6n9xstHN6wzOJw==} 1040 | engines: {node: '>=14.0.0'} 1041 | cpu: [arm64] 1042 | os: [linux] 1043 | 1044 | sass-embedded-linux-arm@1.83.0: 1045 | resolution: {integrity: sha512-baG9RYBJxUFmqwDNC9h9ZFElgJoyO3jgHGjzEZ1wHhIS9anpG+zZQvO8bHx3dBpKEImX+DBeLX+CxsFR9n81gQ==} 1046 | engines: {node: '>=14.0.0'} 1047 | cpu: [arm] 1048 | os: [linux] 1049 | 1050 | sass-embedded-linux-ia32@1.83.0: 1051 | resolution: {integrity: sha512-RRBxQxMpoxu5+XcSSc6QR/o9asEwUzR8AbCS83RaXcdTIHTa/CccQsiAoDDoPlRsMTLqnzs0LKL4CfOsf7zBbA==} 1052 | engines: {node: '>=14.0.0'} 1053 | cpu: [ia32] 1054 | os: [linux] 1055 | 1056 | sass-embedded-linux-musl-arm64@1.83.0: 1057 | resolution: {integrity: sha512-Y7juhPHClUO2H5O+u+StRy6SEAcwZ+hTEk5WJdEmo1Bb1gDtfHvJaWB/iFZJ2tW0W1e865AZeUrC4OcOFjyAQA==} 1058 | engines: {node: '>=14.0.0'} 1059 | cpu: [arm64] 1060 | os: [linux] 1061 | 1062 | sass-embedded-linux-musl-arm@1.83.0: 1063 | resolution: {integrity: sha512-Yc7u2TelCfBab+PRob9/MNJFh3EooMiz4urvhejXkihTiKSHGCv5YqDdtWzvyb9tY2Jb7YtYREVuHwfdVn3dTQ==} 1064 | engines: {node: '>=14.0.0'} 1065 | cpu: [arm] 1066 | os: [linux] 1067 | 1068 | sass-embedded-linux-musl-ia32@1.83.0: 1069 | resolution: {integrity: sha512-arQeYwGmwXV8byx5G1PtSzZWW1jbkfR5qrIHMEbTFSAvAxpqjgSvCvrHMOFd73FcMxVaYh4BX9LQNbKinkbEdg==} 1070 | engines: {node: '>=14.0.0'} 1071 | cpu: [ia32] 1072 | os: [linux] 1073 | 1074 | sass-embedded-linux-musl-riscv64@1.83.0: 1075 | resolution: {integrity: sha512-E6uzlIWz59rut+Z3XR6mLG915zNzv07ISvj3GUNZENdHM7dF8GQ//ANoIpl5PljMQKp89GnYdvo6kj2gnaBf/g==} 1076 | engines: {node: '>=14.0.0'} 1077 | cpu: [riscv64] 1078 | os: [linux] 1079 | 1080 | sass-embedded-linux-musl-x64@1.83.0: 1081 | resolution: {integrity: sha512-eAMK6tyGqvqr21r9g8BnR3fQc1rYFj85RGduSQ3xkITZ6jOAnOhuU94N5fwRS852Hpws0lXhET+7JHXgg3U18w==} 1082 | engines: {node: '>=14.0.0'} 1083 | cpu: [x64] 1084 | os: [linux] 1085 | 1086 | sass-embedded-linux-riscv64@1.83.0: 1087 | resolution: {integrity: sha512-Ojpi78pTv02sy2fUYirRGXHLY3fPnV/bvwuC2i5LwPQw2LpCcFyFTtN0c5h4LJDk9P6wr+/ZB/JXU8tHIOlK+Q==} 1088 | engines: {node: '>=14.0.0'} 1089 | cpu: [riscv64] 1090 | os: [linux] 1091 | 1092 | sass-embedded-linux-x64@1.83.0: 1093 | resolution: {integrity: sha512-3iLjlXdoPfgZRtX4odhRvka1BQs5mAXqfCtDIQBgh/o0JnGPzJIWWl9bYLpHxK8qb+uyVBxXYgXpI0sCzArBOw==} 1094 | engines: {node: '>=14.0.0'} 1095 | cpu: [x64] 1096 | os: [linux] 1097 | 1098 | sass-embedded-win32-arm64@1.83.0: 1099 | resolution: {integrity: sha512-iOHw/8/t2dlTW3lOFwG5eUbiwhEyGWawivlKWJ8lkXH7fjMpVx2VO9zCFAm8RvY9xOHJ9sf1L7g5bx3EnNP9BQ==} 1100 | engines: {node: '>=14.0.0'} 1101 | cpu: [arm64] 1102 | os: [win32] 1103 | 1104 | sass-embedded-win32-ia32@1.83.0: 1105 | resolution: {integrity: sha512-2PxNXJ8Pad4geVcTXY4rkyTr5AwbF8nfrCTDv0ulbTvPhzX2mMKEGcBZUXWn5BeHZTBc6whNMfS7d5fQXR9dDQ==} 1106 | engines: {node: '>=14.0.0'} 1107 | cpu: [ia32] 1108 | os: [win32] 1109 | 1110 | sass-embedded-win32-x64@1.83.0: 1111 | resolution: {integrity: sha512-muBXkFngM6eLTNqOV0FQi7Dv9s+YRQ42Yem26mosdan/GmJQc81deto6uDTgrYn+bzFNmiXcOdfm+0MkTWK3OQ==} 1112 | engines: {node: '>=14.0.0'} 1113 | cpu: [x64] 1114 | os: [win32] 1115 | 1116 | sass-embedded@1.83.0: 1117 | resolution: {integrity: sha512-/8cYZeL39evUqe0o//193na51Q1VWZ61qhxioQvLJwOtWIrX+PgNhCyD8RSuTtmzc4+6+waFZf899bfp/MCUwA==} 1118 | engines: {node: '>=16.0.0'} 1119 | hasBin: true 1120 | 1121 | scroll-into-view-if-needed@2.2.31: 1122 | resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==} 1123 | 1124 | semver@7.6.3: 1125 | resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} 1126 | engines: {node: '>=10'} 1127 | hasBin: true 1128 | 1129 | set-blocking@2.0.0: 1130 | resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} 1131 | 1132 | shallow-equal@1.2.1: 1133 | resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==} 1134 | 1135 | shebang-command@2.0.0: 1136 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1137 | engines: {node: '>=8'} 1138 | 1139 | shebang-regex@3.0.0: 1140 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1141 | engines: {node: '>=8'} 1142 | 1143 | signal-exit@4.1.0: 1144 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1145 | engines: {node: '>=14'} 1146 | 1147 | source-map-js@1.2.1: 1148 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1149 | engines: {node: '>=0.10.0'} 1150 | 1151 | streamx@2.21.1: 1152 | resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} 1153 | 1154 | string-width@4.2.3: 1155 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1156 | engines: {node: '>=8'} 1157 | 1158 | string-width@5.1.2: 1159 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1160 | engines: {node: '>=12'} 1161 | 1162 | string_decoder@1.1.1: 1163 | resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} 1164 | 1165 | string_decoder@1.3.0: 1166 | resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} 1167 | 1168 | strip-ansi@6.0.1: 1169 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1170 | engines: {node: '>=8'} 1171 | 1172 | strip-ansi@7.1.0: 1173 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1174 | engines: {node: '>=12'} 1175 | 1176 | stylis@4.3.4: 1177 | resolution: {integrity: sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==} 1178 | 1179 | supports-color@8.1.1: 1180 | resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} 1181 | engines: {node: '>=10'} 1182 | 1183 | sync-child-process@1.0.2: 1184 | resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} 1185 | engines: {node: '>=16.0.0'} 1186 | 1187 | sync-message-port@1.1.3: 1188 | resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} 1189 | engines: {node: '>=16.0.0'} 1190 | 1191 | tar-stream@3.1.7: 1192 | resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} 1193 | 1194 | text-decoder@1.2.3: 1195 | resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} 1196 | 1197 | text-segmentation@1.0.3: 1198 | resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==} 1199 | 1200 | throttle-debounce@5.0.2: 1201 | resolution: {integrity: sha512-B71/4oyj61iNH0KeCamLuE2rmKuTO5byTOSVwECM5FA7TiAiAW+UqTKZ9ERueC4qvgSttUhdmq1mXC3kJqGX7A==} 1202 | engines: {node: '>=12.22'} 1203 | 1204 | tslib@2.8.1: 1205 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 1206 | 1207 | tsx@4.19.2: 1208 | resolution: {integrity: sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==} 1209 | engines: {node: '>=18.0.0'} 1210 | hasBin: true 1211 | 1212 | typescript@5.6.3: 1213 | resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} 1214 | engines: {node: '>=14.17'} 1215 | hasBin: true 1216 | 1217 | undici-types@6.20.0: 1218 | resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} 1219 | 1220 | util-deprecate@1.0.2: 1221 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1222 | 1223 | utrie@1.0.2: 1224 | resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==} 1225 | 1226 | varint@6.0.0: 1227 | resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} 1228 | 1229 | vite@6.0.3: 1230 | resolution: {integrity: sha512-Cmuo5P0ENTN6HxLSo6IHsjCLn/81Vgrp81oaiFFMRa8gGDj5xEjIcEpf2ZymZtZR8oU0P2JX5WuUp/rlXcHkAw==} 1231 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1232 | hasBin: true 1233 | peerDependencies: 1234 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 1235 | jiti: '>=1.21.0' 1236 | less: '*' 1237 | lightningcss: ^1.21.0 1238 | sass: '*' 1239 | sass-embedded: '*' 1240 | stylus: '*' 1241 | sugarss: '*' 1242 | terser: ^5.16.0 1243 | tsx: ^4.8.1 1244 | yaml: ^2.4.2 1245 | peerDependenciesMeta: 1246 | '@types/node': 1247 | optional: true 1248 | jiti: 1249 | optional: true 1250 | less: 1251 | optional: true 1252 | lightningcss: 1253 | optional: true 1254 | sass: 1255 | optional: true 1256 | sass-embedded: 1257 | optional: true 1258 | stylus: 1259 | optional: true 1260 | sugarss: 1261 | optional: true 1262 | terser: 1263 | optional: true 1264 | tsx: 1265 | optional: true 1266 | yaml: 1267 | optional: true 1268 | 1269 | vscode-uri@3.0.8: 1270 | resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} 1271 | 1272 | vue-tsc@2.1.10: 1273 | resolution: {integrity: sha512-RBNSfaaRHcN5uqVqJSZh++Gy/YUzryuv9u1aFWhsammDJXNtUiJMNoJ747lZcQ68wUQFx6E73y4FY3D8E7FGMA==} 1274 | hasBin: true 1275 | peerDependencies: 1276 | typescript: '>=5.0.0' 1277 | 1278 | vue-types@3.0.2: 1279 | resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==} 1280 | engines: {node: '>=10.15.0'} 1281 | peerDependencies: 1282 | vue: ^3.0.0 1283 | 1284 | vue@3.5.13: 1285 | resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} 1286 | peerDependencies: 1287 | typescript: '*' 1288 | peerDependenciesMeta: 1289 | typescript: 1290 | optional: true 1291 | 1292 | warning@4.0.3: 1293 | resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} 1294 | 1295 | which-module@2.0.1: 1296 | resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} 1297 | 1298 | which@2.0.2: 1299 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1300 | engines: {node: '>= 8'} 1301 | hasBin: true 1302 | 1303 | wrap-ansi@6.2.0: 1304 | resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} 1305 | engines: {node: '>=8'} 1306 | 1307 | wrap-ansi@7.0.0: 1308 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1309 | engines: {node: '>=10'} 1310 | 1311 | wrap-ansi@8.1.0: 1312 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1313 | engines: {node: '>=12'} 1314 | 1315 | y18n@4.0.3: 1316 | resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} 1317 | 1318 | yargs-parser@18.1.3: 1319 | resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} 1320 | engines: {node: '>=6'} 1321 | 1322 | yargs@15.4.1: 1323 | resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} 1324 | engines: {node: '>=8'} 1325 | 1326 | zip-stream@6.0.1: 1327 | resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} 1328 | engines: {node: '>= 14'} 1329 | 1330 | snapshots: 1331 | 1332 | '@ant-design/colors@6.0.0': 1333 | dependencies: 1334 | '@ctrl/tinycolor': 3.6.1 1335 | 1336 | '@ant-design/icons-svg@4.4.2': {} 1337 | 1338 | '@ant-design/icons-vue@7.0.1(vue@3.5.13(typescript@5.6.3))': 1339 | dependencies: 1340 | '@ant-design/colors': 6.0.0 1341 | '@ant-design/icons-svg': 4.4.2 1342 | vue: 3.5.13(typescript@5.6.3) 1343 | 1344 | '@babel/helper-string-parser@7.25.9': {} 1345 | 1346 | '@babel/helper-validator-identifier@7.25.9': {} 1347 | 1348 | '@babel/parser@7.26.3': 1349 | dependencies: 1350 | '@babel/types': 7.26.3 1351 | 1352 | '@babel/runtime@7.26.0': 1353 | dependencies: 1354 | regenerator-runtime: 0.14.1 1355 | 1356 | '@babel/types@7.26.3': 1357 | dependencies: 1358 | '@babel/helper-string-parser': 7.25.9 1359 | '@babel/helper-validator-identifier': 7.25.9 1360 | 1361 | '@bufbuild/protobuf@2.2.3': {} 1362 | 1363 | '@ctrl/tinycolor@3.6.1': {} 1364 | 1365 | '@emotion/hash@0.9.2': {} 1366 | 1367 | '@emotion/unitless@0.8.1': {} 1368 | 1369 | '@esbuild/aix-ppc64@0.23.1': 1370 | optional: true 1371 | 1372 | '@esbuild/aix-ppc64@0.24.0': 1373 | optional: true 1374 | 1375 | '@esbuild/android-arm64@0.23.1': 1376 | optional: true 1377 | 1378 | '@esbuild/android-arm64@0.24.0': 1379 | optional: true 1380 | 1381 | '@esbuild/android-arm@0.23.1': 1382 | optional: true 1383 | 1384 | '@esbuild/android-arm@0.24.0': 1385 | optional: true 1386 | 1387 | '@esbuild/android-x64@0.23.1': 1388 | optional: true 1389 | 1390 | '@esbuild/android-x64@0.24.0': 1391 | optional: true 1392 | 1393 | '@esbuild/darwin-arm64@0.23.1': 1394 | optional: true 1395 | 1396 | '@esbuild/darwin-arm64@0.24.0': 1397 | optional: true 1398 | 1399 | '@esbuild/darwin-x64@0.23.1': 1400 | optional: true 1401 | 1402 | '@esbuild/darwin-x64@0.24.0': 1403 | optional: true 1404 | 1405 | '@esbuild/freebsd-arm64@0.23.1': 1406 | optional: true 1407 | 1408 | '@esbuild/freebsd-arm64@0.24.0': 1409 | optional: true 1410 | 1411 | '@esbuild/freebsd-x64@0.23.1': 1412 | optional: true 1413 | 1414 | '@esbuild/freebsd-x64@0.24.0': 1415 | optional: true 1416 | 1417 | '@esbuild/linux-arm64@0.23.1': 1418 | optional: true 1419 | 1420 | '@esbuild/linux-arm64@0.24.0': 1421 | optional: true 1422 | 1423 | '@esbuild/linux-arm@0.23.1': 1424 | optional: true 1425 | 1426 | '@esbuild/linux-arm@0.24.0': 1427 | optional: true 1428 | 1429 | '@esbuild/linux-ia32@0.23.1': 1430 | optional: true 1431 | 1432 | '@esbuild/linux-ia32@0.24.0': 1433 | optional: true 1434 | 1435 | '@esbuild/linux-loong64@0.23.1': 1436 | optional: true 1437 | 1438 | '@esbuild/linux-loong64@0.24.0': 1439 | optional: true 1440 | 1441 | '@esbuild/linux-mips64el@0.23.1': 1442 | optional: true 1443 | 1444 | '@esbuild/linux-mips64el@0.24.0': 1445 | optional: true 1446 | 1447 | '@esbuild/linux-ppc64@0.23.1': 1448 | optional: true 1449 | 1450 | '@esbuild/linux-ppc64@0.24.0': 1451 | optional: true 1452 | 1453 | '@esbuild/linux-riscv64@0.23.1': 1454 | optional: true 1455 | 1456 | '@esbuild/linux-riscv64@0.24.0': 1457 | optional: true 1458 | 1459 | '@esbuild/linux-s390x@0.23.1': 1460 | optional: true 1461 | 1462 | '@esbuild/linux-s390x@0.24.0': 1463 | optional: true 1464 | 1465 | '@esbuild/linux-x64@0.23.1': 1466 | optional: true 1467 | 1468 | '@esbuild/linux-x64@0.24.0': 1469 | optional: true 1470 | 1471 | '@esbuild/netbsd-x64@0.23.1': 1472 | optional: true 1473 | 1474 | '@esbuild/netbsd-x64@0.24.0': 1475 | optional: true 1476 | 1477 | '@esbuild/openbsd-arm64@0.23.1': 1478 | optional: true 1479 | 1480 | '@esbuild/openbsd-arm64@0.24.0': 1481 | optional: true 1482 | 1483 | '@esbuild/openbsd-x64@0.23.1': 1484 | optional: true 1485 | 1486 | '@esbuild/openbsd-x64@0.24.0': 1487 | optional: true 1488 | 1489 | '@esbuild/sunos-x64@0.23.1': 1490 | optional: true 1491 | 1492 | '@esbuild/sunos-x64@0.24.0': 1493 | optional: true 1494 | 1495 | '@esbuild/win32-arm64@0.23.1': 1496 | optional: true 1497 | 1498 | '@esbuild/win32-arm64@0.24.0': 1499 | optional: true 1500 | 1501 | '@esbuild/win32-ia32@0.23.1': 1502 | optional: true 1503 | 1504 | '@esbuild/win32-ia32@0.24.0': 1505 | optional: true 1506 | 1507 | '@esbuild/win32-x64@0.23.1': 1508 | optional: true 1509 | 1510 | '@esbuild/win32-x64@0.24.0': 1511 | optional: true 1512 | 1513 | '@isaacs/cliui@8.0.2': 1514 | dependencies: 1515 | string-width: 5.1.2 1516 | string-width-cjs: string-width@4.2.3 1517 | strip-ansi: 7.1.0 1518 | strip-ansi-cjs: strip-ansi@6.0.1 1519 | wrap-ansi: 8.1.0 1520 | wrap-ansi-cjs: wrap-ansi@7.0.0 1521 | 1522 | '@jridgewell/sourcemap-codec@1.5.0': {} 1523 | 1524 | '@pkgjs/parseargs@0.11.0': 1525 | optional: true 1526 | 1527 | '@rollup/rollup-android-arm-eabi@4.28.0': 1528 | optional: true 1529 | 1530 | '@rollup/rollup-android-arm64@4.28.0': 1531 | optional: true 1532 | 1533 | '@rollup/rollup-darwin-arm64@4.28.0': 1534 | optional: true 1535 | 1536 | '@rollup/rollup-darwin-x64@4.28.0': 1537 | optional: true 1538 | 1539 | '@rollup/rollup-freebsd-arm64@4.28.0': 1540 | optional: true 1541 | 1542 | '@rollup/rollup-freebsd-x64@4.28.0': 1543 | optional: true 1544 | 1545 | '@rollup/rollup-linux-arm-gnueabihf@4.28.0': 1546 | optional: true 1547 | 1548 | '@rollup/rollup-linux-arm-musleabihf@4.28.0': 1549 | optional: true 1550 | 1551 | '@rollup/rollup-linux-arm64-gnu@4.28.0': 1552 | optional: true 1553 | 1554 | '@rollup/rollup-linux-arm64-musl@4.28.0': 1555 | optional: true 1556 | 1557 | '@rollup/rollup-linux-powerpc64le-gnu@4.28.0': 1558 | optional: true 1559 | 1560 | '@rollup/rollup-linux-riscv64-gnu@4.28.0': 1561 | optional: true 1562 | 1563 | '@rollup/rollup-linux-s390x-gnu@4.28.0': 1564 | optional: true 1565 | 1566 | '@rollup/rollup-linux-x64-gnu@4.28.0': 1567 | optional: true 1568 | 1569 | '@rollup/rollup-linux-x64-musl@4.28.0': 1570 | optional: true 1571 | 1572 | '@rollup/rollup-win32-arm64-msvc@4.28.0': 1573 | optional: true 1574 | 1575 | '@rollup/rollup-win32-ia32-msvc@4.28.0': 1576 | optional: true 1577 | 1578 | '@rollup/rollup-win32-x64-msvc@4.28.0': 1579 | optional: true 1580 | 1581 | '@simonwep/pickr@1.8.2': 1582 | dependencies: 1583 | core-js: 3.40.0 1584 | nanopop: 2.4.2 1585 | 1586 | '@types/archiver@6.0.3': 1587 | dependencies: 1588 | '@types/readdir-glob': 1.1.5 1589 | 1590 | '@types/chrome@0.0.287': 1591 | dependencies: 1592 | '@types/filesystem': 0.0.36 1593 | '@types/har-format': 1.2.16 1594 | 1595 | '@types/estree@1.0.6': {} 1596 | 1597 | '@types/filesystem@0.0.36': 1598 | dependencies: 1599 | '@types/filewriter': 0.0.33 1600 | 1601 | '@types/filewriter@0.0.33': {} 1602 | 1603 | '@types/har-format@1.2.16': {} 1604 | 1605 | '@types/node@22.10.2': 1606 | dependencies: 1607 | undici-types: 6.20.0 1608 | 1609 | '@types/qrcode@1.5.5': 1610 | dependencies: 1611 | '@types/node': 22.10.2 1612 | 1613 | '@types/readdir-glob@1.1.5': 1614 | dependencies: 1615 | '@types/node': 22.10.2 1616 | 1617 | '@vitejs/plugin-vue@5.2.1(vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(sass-embedded@1.83.0)(tsx@4.19.2))(vue@3.5.13(typescript@5.6.3))': 1618 | dependencies: 1619 | vite: 6.0.3(@types/node@22.10.2)(jiti@1.21.7)(sass-embedded@1.83.0)(tsx@4.19.2) 1620 | vue: 3.5.13(typescript@5.6.3) 1621 | 1622 | '@volar/language-core@2.4.10': 1623 | dependencies: 1624 | '@volar/source-map': 2.4.10 1625 | 1626 | '@volar/source-map@2.4.10': {} 1627 | 1628 | '@volar/typescript@2.4.10': 1629 | dependencies: 1630 | '@volar/language-core': 2.4.10 1631 | path-browserify: 1.0.1 1632 | vscode-uri: 3.0.8 1633 | 1634 | '@vue/compiler-core@3.5.13': 1635 | dependencies: 1636 | '@babel/parser': 7.26.3 1637 | '@vue/shared': 3.5.13 1638 | entities: 4.5.0 1639 | estree-walker: 2.0.2 1640 | source-map-js: 1.2.1 1641 | 1642 | '@vue/compiler-dom@3.5.13': 1643 | dependencies: 1644 | '@vue/compiler-core': 3.5.13 1645 | '@vue/shared': 3.5.13 1646 | 1647 | '@vue/compiler-sfc@3.5.13': 1648 | dependencies: 1649 | '@babel/parser': 7.26.3 1650 | '@vue/compiler-core': 3.5.13 1651 | '@vue/compiler-dom': 3.5.13 1652 | '@vue/compiler-ssr': 3.5.13 1653 | '@vue/shared': 3.5.13 1654 | estree-walker: 2.0.2 1655 | magic-string: 0.30.14 1656 | postcss: 8.4.49 1657 | source-map-js: 1.2.1 1658 | 1659 | '@vue/compiler-ssr@3.5.13': 1660 | dependencies: 1661 | '@vue/compiler-dom': 3.5.13 1662 | '@vue/shared': 3.5.13 1663 | 1664 | '@vue/compiler-vue2@2.7.16': 1665 | dependencies: 1666 | de-indent: 1.0.2 1667 | he: 1.2.0 1668 | 1669 | '@vue/language-core@2.1.10(typescript@5.6.3)': 1670 | dependencies: 1671 | '@volar/language-core': 2.4.10 1672 | '@vue/compiler-dom': 3.5.13 1673 | '@vue/compiler-vue2': 2.7.16 1674 | '@vue/shared': 3.5.13 1675 | alien-signals: 0.2.2 1676 | minimatch: 9.0.5 1677 | muggle-string: 0.4.1 1678 | path-browserify: 1.0.1 1679 | optionalDependencies: 1680 | typescript: 5.6.3 1681 | 1682 | '@vue/reactivity@3.5.13': 1683 | dependencies: 1684 | '@vue/shared': 3.5.13 1685 | 1686 | '@vue/runtime-core@3.5.13': 1687 | dependencies: 1688 | '@vue/reactivity': 3.5.13 1689 | '@vue/shared': 3.5.13 1690 | 1691 | '@vue/runtime-dom@3.5.13': 1692 | dependencies: 1693 | '@vue/reactivity': 3.5.13 1694 | '@vue/runtime-core': 3.5.13 1695 | '@vue/shared': 3.5.13 1696 | csstype: 3.1.3 1697 | 1698 | '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.3))': 1699 | dependencies: 1700 | '@vue/compiler-ssr': 3.5.13 1701 | '@vue/shared': 3.5.13 1702 | vue: 3.5.13(typescript@5.6.3) 1703 | 1704 | '@vue/shared@3.5.13': {} 1705 | 1706 | '@webcomponents/webcomponentsjs@2.8.0': {} 1707 | 1708 | abort-controller@3.0.0: 1709 | dependencies: 1710 | event-target-shim: 5.0.1 1711 | 1712 | alien-signals@0.2.2: {} 1713 | 1714 | ansi-regex@5.0.1: {} 1715 | 1716 | ansi-regex@6.1.0: {} 1717 | 1718 | ansi-styles@4.3.0: 1719 | dependencies: 1720 | color-convert: 2.0.1 1721 | 1722 | ansi-styles@6.2.1: {} 1723 | 1724 | ant-design-vue@4.2.6(vue@3.5.13(typescript@5.6.3)): 1725 | dependencies: 1726 | '@ant-design/colors': 6.0.0 1727 | '@ant-design/icons-vue': 7.0.1(vue@3.5.13(typescript@5.6.3)) 1728 | '@babel/runtime': 7.26.0 1729 | '@ctrl/tinycolor': 3.6.1 1730 | '@emotion/hash': 0.9.2 1731 | '@emotion/unitless': 0.8.1 1732 | '@simonwep/pickr': 1.8.2 1733 | array-tree-filter: 2.1.0 1734 | async-validator: 4.2.5 1735 | csstype: 3.1.3 1736 | dayjs: 1.11.13 1737 | dom-align: 1.12.4 1738 | dom-scroll-into-view: 2.0.1 1739 | lodash: 4.17.21 1740 | lodash-es: 4.17.21 1741 | resize-observer-polyfill: 1.5.1 1742 | scroll-into-view-if-needed: 2.2.31 1743 | shallow-equal: 1.2.1 1744 | stylis: 4.3.4 1745 | throttle-debounce: 5.0.2 1746 | vue: 3.5.13(typescript@5.6.3) 1747 | vue-types: 3.0.2(vue@3.5.13(typescript@5.6.3)) 1748 | warning: 4.0.3 1749 | 1750 | archiver-utils@5.0.2: 1751 | dependencies: 1752 | glob: 10.4.5 1753 | graceful-fs: 4.2.11 1754 | is-stream: 2.0.1 1755 | lazystream: 1.0.1 1756 | lodash: 4.17.21 1757 | normalize-path: 3.0.0 1758 | readable-stream: 4.6.0 1759 | 1760 | archiver@7.0.1: 1761 | dependencies: 1762 | archiver-utils: 5.0.2 1763 | async: 3.2.6 1764 | buffer-crc32: 1.0.0 1765 | readable-stream: 4.6.0 1766 | readdir-glob: 1.1.3 1767 | tar-stream: 3.1.7 1768 | zip-stream: 6.0.1 1769 | 1770 | array-tree-filter@2.1.0: {} 1771 | 1772 | async-validator@4.2.5: {} 1773 | 1774 | async@3.2.6: {} 1775 | 1776 | b4a@1.6.7: {} 1777 | 1778 | balanced-match@1.0.2: {} 1779 | 1780 | bare-events@2.5.0: 1781 | optional: true 1782 | 1783 | base64-arraybuffer@1.0.2: {} 1784 | 1785 | base64-js@1.5.1: {} 1786 | 1787 | brace-expansion@2.0.1: 1788 | dependencies: 1789 | balanced-match: 1.0.2 1790 | 1791 | buffer-builder@0.2.0: {} 1792 | 1793 | buffer-crc32@1.0.0: {} 1794 | 1795 | buffer@6.0.3: 1796 | dependencies: 1797 | base64-js: 1.5.1 1798 | ieee754: 1.2.1 1799 | 1800 | camelcase@5.3.1: {} 1801 | 1802 | cliui@6.0.0: 1803 | dependencies: 1804 | string-width: 4.2.3 1805 | strip-ansi: 6.0.1 1806 | wrap-ansi: 6.2.0 1807 | 1808 | color-convert@2.0.1: 1809 | dependencies: 1810 | color-name: 1.1.4 1811 | 1812 | color-name@1.1.4: {} 1813 | 1814 | colorjs.io@0.5.2: {} 1815 | 1816 | compress-commons@6.0.2: 1817 | dependencies: 1818 | crc-32: 1.2.2 1819 | crc32-stream: 6.0.0 1820 | is-stream: 2.0.1 1821 | normalize-path: 3.0.0 1822 | readable-stream: 4.6.0 1823 | 1824 | compute-scroll-into-view@1.0.20: {} 1825 | 1826 | core-js@3.40.0: {} 1827 | 1828 | core-util-is@1.0.3: {} 1829 | 1830 | crc-32@1.2.2: {} 1831 | 1832 | crc32-stream@6.0.0: 1833 | dependencies: 1834 | crc-32: 1.2.2 1835 | readable-stream: 4.6.0 1836 | 1837 | cross-spawn@7.0.6: 1838 | dependencies: 1839 | path-key: 3.1.1 1840 | shebang-command: 2.0.0 1841 | which: 2.0.2 1842 | 1843 | css-line-break@2.1.0: 1844 | dependencies: 1845 | utrie: 1.0.2 1846 | 1847 | csstype@3.1.3: {} 1848 | 1849 | dayjs@1.11.13: {} 1850 | 1851 | de-indent@1.0.2: {} 1852 | 1853 | decamelize@1.2.0: {} 1854 | 1855 | dijkstrajs@1.0.3: {} 1856 | 1857 | dom-align@1.12.4: {} 1858 | 1859 | dom-scroll-into-view@2.0.1: {} 1860 | 1861 | eastasianwidth@0.2.0: {} 1862 | 1863 | emoji-regex@8.0.0: {} 1864 | 1865 | emoji-regex@9.2.2: {} 1866 | 1867 | entities@4.5.0: {} 1868 | 1869 | esbuild@0.23.1: 1870 | optionalDependencies: 1871 | '@esbuild/aix-ppc64': 0.23.1 1872 | '@esbuild/android-arm': 0.23.1 1873 | '@esbuild/android-arm64': 0.23.1 1874 | '@esbuild/android-x64': 0.23.1 1875 | '@esbuild/darwin-arm64': 0.23.1 1876 | '@esbuild/darwin-x64': 0.23.1 1877 | '@esbuild/freebsd-arm64': 0.23.1 1878 | '@esbuild/freebsd-x64': 0.23.1 1879 | '@esbuild/linux-arm': 0.23.1 1880 | '@esbuild/linux-arm64': 0.23.1 1881 | '@esbuild/linux-ia32': 0.23.1 1882 | '@esbuild/linux-loong64': 0.23.1 1883 | '@esbuild/linux-mips64el': 0.23.1 1884 | '@esbuild/linux-ppc64': 0.23.1 1885 | '@esbuild/linux-riscv64': 0.23.1 1886 | '@esbuild/linux-s390x': 0.23.1 1887 | '@esbuild/linux-x64': 0.23.1 1888 | '@esbuild/netbsd-x64': 0.23.1 1889 | '@esbuild/openbsd-arm64': 0.23.1 1890 | '@esbuild/openbsd-x64': 0.23.1 1891 | '@esbuild/sunos-x64': 0.23.1 1892 | '@esbuild/win32-arm64': 0.23.1 1893 | '@esbuild/win32-ia32': 0.23.1 1894 | '@esbuild/win32-x64': 0.23.1 1895 | optional: true 1896 | 1897 | esbuild@0.24.0: 1898 | optionalDependencies: 1899 | '@esbuild/aix-ppc64': 0.24.0 1900 | '@esbuild/android-arm': 0.24.0 1901 | '@esbuild/android-arm64': 0.24.0 1902 | '@esbuild/android-x64': 0.24.0 1903 | '@esbuild/darwin-arm64': 0.24.0 1904 | '@esbuild/darwin-x64': 0.24.0 1905 | '@esbuild/freebsd-arm64': 0.24.0 1906 | '@esbuild/freebsd-x64': 0.24.0 1907 | '@esbuild/linux-arm': 0.24.0 1908 | '@esbuild/linux-arm64': 0.24.0 1909 | '@esbuild/linux-ia32': 0.24.0 1910 | '@esbuild/linux-loong64': 0.24.0 1911 | '@esbuild/linux-mips64el': 0.24.0 1912 | '@esbuild/linux-ppc64': 0.24.0 1913 | '@esbuild/linux-riscv64': 0.24.0 1914 | '@esbuild/linux-s390x': 0.24.0 1915 | '@esbuild/linux-x64': 0.24.0 1916 | '@esbuild/netbsd-x64': 0.24.0 1917 | '@esbuild/openbsd-arm64': 0.24.0 1918 | '@esbuild/openbsd-x64': 0.24.0 1919 | '@esbuild/sunos-x64': 0.24.0 1920 | '@esbuild/win32-arm64': 0.24.0 1921 | '@esbuild/win32-ia32': 0.24.0 1922 | '@esbuild/win32-x64': 0.24.0 1923 | 1924 | estree-walker@2.0.2: {} 1925 | 1926 | event-target-shim@5.0.1: {} 1927 | 1928 | events@3.3.0: {} 1929 | 1930 | fast-fifo@1.3.2: {} 1931 | 1932 | find-up@4.1.0: 1933 | dependencies: 1934 | locate-path: 5.0.0 1935 | path-exists: 4.0.0 1936 | 1937 | foreground-child@3.3.0: 1938 | dependencies: 1939 | cross-spawn: 7.0.6 1940 | signal-exit: 4.1.0 1941 | 1942 | fsevents@2.3.3: 1943 | optional: true 1944 | 1945 | get-caller-file@2.0.5: {} 1946 | 1947 | get-tsconfig@4.8.1: 1948 | dependencies: 1949 | resolve-pkg-maps: 1.0.0 1950 | optional: true 1951 | 1952 | glob@10.4.5: 1953 | dependencies: 1954 | foreground-child: 3.3.0 1955 | jackspeak: 3.4.3 1956 | minimatch: 9.0.5 1957 | minipass: 7.1.2 1958 | package-json-from-dist: 1.0.1 1959 | path-scurry: 1.11.1 1960 | 1961 | graceful-fs@4.2.11: {} 1962 | 1963 | has-flag@4.0.0: {} 1964 | 1965 | he@1.2.0: {} 1966 | 1967 | html2canvas-pro@1.5.8: 1968 | dependencies: 1969 | css-line-break: 2.1.0 1970 | text-segmentation: 1.0.3 1971 | 1972 | html2canvas@1.4.1: 1973 | dependencies: 1974 | css-line-break: 2.1.0 1975 | text-segmentation: 1.0.3 1976 | 1977 | ieee754@1.2.1: {} 1978 | 1979 | immutable@5.0.3: {} 1980 | 1981 | inherits@2.0.4: {} 1982 | 1983 | is-fullwidth-code-point@3.0.0: {} 1984 | 1985 | is-plain-object@3.0.1: {} 1986 | 1987 | is-stream@2.0.1: {} 1988 | 1989 | isarray@1.0.0: {} 1990 | 1991 | isexe@2.0.0: {} 1992 | 1993 | jackspeak@3.4.3: 1994 | dependencies: 1995 | '@isaacs/cliui': 8.0.2 1996 | optionalDependencies: 1997 | '@pkgjs/parseargs': 0.11.0 1998 | 1999 | jiti@1.21.7: 2000 | optional: true 2001 | 2002 | js-tokens@4.0.0: {} 2003 | 2004 | lazystream@1.0.1: 2005 | dependencies: 2006 | readable-stream: 2.3.8 2007 | 2008 | locate-path@5.0.0: 2009 | dependencies: 2010 | p-locate: 4.1.0 2011 | 2012 | lodash-es@4.17.21: {} 2013 | 2014 | lodash@4.17.21: {} 2015 | 2016 | loose-envify@1.4.0: 2017 | dependencies: 2018 | js-tokens: 4.0.0 2019 | 2020 | lru-cache@10.4.3: {} 2021 | 2022 | magic-string@0.30.14: 2023 | dependencies: 2024 | '@jridgewell/sourcemap-codec': 1.5.0 2025 | 2026 | minimatch@5.1.6: 2027 | dependencies: 2028 | brace-expansion: 2.0.1 2029 | 2030 | minimatch@9.0.5: 2031 | dependencies: 2032 | brace-expansion: 2.0.1 2033 | 2034 | minipass@7.1.2: {} 2035 | 2036 | muggle-string@0.4.1: {} 2037 | 2038 | nanoid@3.3.8: {} 2039 | 2040 | nanopop@2.4.2: {} 2041 | 2042 | normalize-path@3.0.0: {} 2043 | 2044 | p-limit@2.3.0: 2045 | dependencies: 2046 | p-try: 2.2.0 2047 | 2048 | p-locate@4.1.0: 2049 | dependencies: 2050 | p-limit: 2.3.0 2051 | 2052 | p-try@2.2.0: {} 2053 | 2054 | package-json-from-dist@1.0.1: {} 2055 | 2056 | path-browserify@1.0.1: {} 2057 | 2058 | path-exists@4.0.0: {} 2059 | 2060 | path-key@3.1.1: {} 2061 | 2062 | path-scurry@1.11.1: 2063 | dependencies: 2064 | lru-cache: 10.4.3 2065 | minipass: 7.1.2 2066 | 2067 | picocolors@1.1.1: {} 2068 | 2069 | pngjs@5.0.0: {} 2070 | 2071 | postcss@8.4.49: 2072 | dependencies: 2073 | nanoid: 3.3.8 2074 | picocolors: 1.1.1 2075 | source-map-js: 1.2.1 2076 | 2077 | process-nextick-args@2.0.1: {} 2078 | 2079 | process@0.11.10: {} 2080 | 2081 | qrcode@1.5.4: 2082 | dependencies: 2083 | dijkstrajs: 1.0.3 2084 | pngjs: 5.0.0 2085 | yargs: 15.4.1 2086 | 2087 | queue-tick@1.0.1: {} 2088 | 2089 | readable-stream@2.3.8: 2090 | dependencies: 2091 | core-util-is: 1.0.3 2092 | inherits: 2.0.4 2093 | isarray: 1.0.0 2094 | process-nextick-args: 2.0.1 2095 | safe-buffer: 5.1.2 2096 | string_decoder: 1.1.1 2097 | util-deprecate: 1.0.2 2098 | 2099 | readable-stream@4.6.0: 2100 | dependencies: 2101 | abort-controller: 3.0.0 2102 | buffer: 6.0.3 2103 | events: 3.3.0 2104 | process: 0.11.10 2105 | string_decoder: 1.3.0 2106 | 2107 | readdir-glob@1.1.3: 2108 | dependencies: 2109 | minimatch: 5.1.6 2110 | 2111 | regenerator-runtime@0.14.1: {} 2112 | 2113 | require-directory@2.1.1: {} 2114 | 2115 | require-main-filename@2.0.0: {} 2116 | 2117 | resize-observer-polyfill@1.5.1: {} 2118 | 2119 | resolve-pkg-maps@1.0.0: 2120 | optional: true 2121 | 2122 | rollup@4.28.0: 2123 | dependencies: 2124 | '@types/estree': 1.0.6 2125 | optionalDependencies: 2126 | '@rollup/rollup-android-arm-eabi': 4.28.0 2127 | '@rollup/rollup-android-arm64': 4.28.0 2128 | '@rollup/rollup-darwin-arm64': 4.28.0 2129 | '@rollup/rollup-darwin-x64': 4.28.0 2130 | '@rollup/rollup-freebsd-arm64': 4.28.0 2131 | '@rollup/rollup-freebsd-x64': 4.28.0 2132 | '@rollup/rollup-linux-arm-gnueabihf': 4.28.0 2133 | '@rollup/rollup-linux-arm-musleabihf': 4.28.0 2134 | '@rollup/rollup-linux-arm64-gnu': 4.28.0 2135 | '@rollup/rollup-linux-arm64-musl': 4.28.0 2136 | '@rollup/rollup-linux-powerpc64le-gnu': 4.28.0 2137 | '@rollup/rollup-linux-riscv64-gnu': 4.28.0 2138 | '@rollup/rollup-linux-s390x-gnu': 4.28.0 2139 | '@rollup/rollup-linux-x64-gnu': 4.28.0 2140 | '@rollup/rollup-linux-x64-musl': 4.28.0 2141 | '@rollup/rollup-win32-arm64-msvc': 4.28.0 2142 | '@rollup/rollup-win32-ia32-msvc': 4.28.0 2143 | '@rollup/rollup-win32-x64-msvc': 4.28.0 2144 | fsevents: 2.3.3 2145 | 2146 | rxjs@7.8.1: 2147 | dependencies: 2148 | tslib: 2.8.1 2149 | 2150 | safe-buffer@5.1.2: {} 2151 | 2152 | safe-buffer@5.2.1: {} 2153 | 2154 | sass-embedded-android-arm64@1.83.0: 2155 | optional: true 2156 | 2157 | sass-embedded-android-arm@1.83.0: 2158 | optional: true 2159 | 2160 | sass-embedded-android-ia32@1.83.0: 2161 | optional: true 2162 | 2163 | sass-embedded-android-riscv64@1.83.0: 2164 | optional: true 2165 | 2166 | sass-embedded-android-x64@1.83.0: 2167 | optional: true 2168 | 2169 | sass-embedded-darwin-arm64@1.83.0: 2170 | optional: true 2171 | 2172 | sass-embedded-darwin-x64@1.83.0: 2173 | optional: true 2174 | 2175 | sass-embedded-linux-arm64@1.83.0: 2176 | optional: true 2177 | 2178 | sass-embedded-linux-arm@1.83.0: 2179 | optional: true 2180 | 2181 | sass-embedded-linux-ia32@1.83.0: 2182 | optional: true 2183 | 2184 | sass-embedded-linux-musl-arm64@1.83.0: 2185 | optional: true 2186 | 2187 | sass-embedded-linux-musl-arm@1.83.0: 2188 | optional: true 2189 | 2190 | sass-embedded-linux-musl-ia32@1.83.0: 2191 | optional: true 2192 | 2193 | sass-embedded-linux-musl-riscv64@1.83.0: 2194 | optional: true 2195 | 2196 | sass-embedded-linux-musl-x64@1.83.0: 2197 | optional: true 2198 | 2199 | sass-embedded-linux-riscv64@1.83.0: 2200 | optional: true 2201 | 2202 | sass-embedded-linux-x64@1.83.0: 2203 | optional: true 2204 | 2205 | sass-embedded-win32-arm64@1.83.0: 2206 | optional: true 2207 | 2208 | sass-embedded-win32-ia32@1.83.0: 2209 | optional: true 2210 | 2211 | sass-embedded-win32-x64@1.83.0: 2212 | optional: true 2213 | 2214 | sass-embedded@1.83.0: 2215 | dependencies: 2216 | '@bufbuild/protobuf': 2.2.3 2217 | buffer-builder: 0.2.0 2218 | colorjs.io: 0.5.2 2219 | immutable: 5.0.3 2220 | rxjs: 7.8.1 2221 | supports-color: 8.1.1 2222 | sync-child-process: 1.0.2 2223 | varint: 6.0.0 2224 | optionalDependencies: 2225 | sass-embedded-android-arm: 1.83.0 2226 | sass-embedded-android-arm64: 1.83.0 2227 | sass-embedded-android-ia32: 1.83.0 2228 | sass-embedded-android-riscv64: 1.83.0 2229 | sass-embedded-android-x64: 1.83.0 2230 | sass-embedded-darwin-arm64: 1.83.0 2231 | sass-embedded-darwin-x64: 1.83.0 2232 | sass-embedded-linux-arm: 1.83.0 2233 | sass-embedded-linux-arm64: 1.83.0 2234 | sass-embedded-linux-ia32: 1.83.0 2235 | sass-embedded-linux-musl-arm: 1.83.0 2236 | sass-embedded-linux-musl-arm64: 1.83.0 2237 | sass-embedded-linux-musl-ia32: 1.83.0 2238 | sass-embedded-linux-musl-riscv64: 1.83.0 2239 | sass-embedded-linux-musl-x64: 1.83.0 2240 | sass-embedded-linux-riscv64: 1.83.0 2241 | sass-embedded-linux-x64: 1.83.0 2242 | sass-embedded-win32-arm64: 1.83.0 2243 | sass-embedded-win32-ia32: 1.83.0 2244 | sass-embedded-win32-x64: 1.83.0 2245 | 2246 | scroll-into-view-if-needed@2.2.31: 2247 | dependencies: 2248 | compute-scroll-into-view: 1.0.20 2249 | 2250 | semver@7.6.3: {} 2251 | 2252 | set-blocking@2.0.0: {} 2253 | 2254 | shallow-equal@1.2.1: {} 2255 | 2256 | shebang-command@2.0.0: 2257 | dependencies: 2258 | shebang-regex: 3.0.0 2259 | 2260 | shebang-regex@3.0.0: {} 2261 | 2262 | signal-exit@4.1.0: {} 2263 | 2264 | source-map-js@1.2.1: {} 2265 | 2266 | streamx@2.21.1: 2267 | dependencies: 2268 | fast-fifo: 1.3.2 2269 | queue-tick: 1.0.1 2270 | text-decoder: 1.2.3 2271 | optionalDependencies: 2272 | bare-events: 2.5.0 2273 | 2274 | string-width@4.2.3: 2275 | dependencies: 2276 | emoji-regex: 8.0.0 2277 | is-fullwidth-code-point: 3.0.0 2278 | strip-ansi: 6.0.1 2279 | 2280 | string-width@5.1.2: 2281 | dependencies: 2282 | eastasianwidth: 0.2.0 2283 | emoji-regex: 9.2.2 2284 | strip-ansi: 7.1.0 2285 | 2286 | string_decoder@1.1.1: 2287 | dependencies: 2288 | safe-buffer: 5.1.2 2289 | 2290 | string_decoder@1.3.0: 2291 | dependencies: 2292 | safe-buffer: 5.2.1 2293 | 2294 | strip-ansi@6.0.1: 2295 | dependencies: 2296 | ansi-regex: 5.0.1 2297 | 2298 | strip-ansi@7.1.0: 2299 | dependencies: 2300 | ansi-regex: 6.1.0 2301 | 2302 | stylis@4.3.4: {} 2303 | 2304 | supports-color@8.1.1: 2305 | dependencies: 2306 | has-flag: 4.0.0 2307 | 2308 | sync-child-process@1.0.2: 2309 | dependencies: 2310 | sync-message-port: 1.1.3 2311 | 2312 | sync-message-port@1.1.3: {} 2313 | 2314 | tar-stream@3.1.7: 2315 | dependencies: 2316 | b4a: 1.6.7 2317 | fast-fifo: 1.3.2 2318 | streamx: 2.21.1 2319 | 2320 | text-decoder@1.2.3: 2321 | dependencies: 2322 | b4a: 1.6.7 2323 | 2324 | text-segmentation@1.0.3: 2325 | dependencies: 2326 | utrie: 1.0.2 2327 | 2328 | throttle-debounce@5.0.2: {} 2329 | 2330 | tslib@2.8.1: {} 2331 | 2332 | tsx@4.19.2: 2333 | dependencies: 2334 | esbuild: 0.23.1 2335 | get-tsconfig: 4.8.1 2336 | optionalDependencies: 2337 | fsevents: 2.3.3 2338 | optional: true 2339 | 2340 | typescript@5.6.3: {} 2341 | 2342 | undici-types@6.20.0: {} 2343 | 2344 | util-deprecate@1.0.2: {} 2345 | 2346 | utrie@1.0.2: 2347 | dependencies: 2348 | base64-arraybuffer: 1.0.2 2349 | 2350 | varint@6.0.0: {} 2351 | 2352 | vite@6.0.3(@types/node@22.10.2)(jiti@1.21.7)(sass-embedded@1.83.0)(tsx@4.19.2): 2353 | dependencies: 2354 | esbuild: 0.24.0 2355 | postcss: 8.4.49 2356 | rollup: 4.28.0 2357 | optionalDependencies: 2358 | '@types/node': 22.10.2 2359 | fsevents: 2.3.3 2360 | jiti: 1.21.7 2361 | sass-embedded: 1.83.0 2362 | tsx: 4.19.2 2363 | 2364 | vscode-uri@3.0.8: {} 2365 | 2366 | vue-tsc@2.1.10(typescript@5.6.3): 2367 | dependencies: 2368 | '@volar/typescript': 2.4.10 2369 | '@vue/language-core': 2.1.10(typescript@5.6.3) 2370 | semver: 7.6.3 2371 | typescript: 5.6.3 2372 | 2373 | vue-types@3.0.2(vue@3.5.13(typescript@5.6.3)): 2374 | dependencies: 2375 | is-plain-object: 3.0.1 2376 | vue: 3.5.13(typescript@5.6.3) 2377 | 2378 | vue@3.5.13(typescript@5.6.3): 2379 | dependencies: 2380 | '@vue/compiler-dom': 3.5.13 2381 | '@vue/compiler-sfc': 3.5.13 2382 | '@vue/runtime-dom': 3.5.13 2383 | '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.6.3)) 2384 | '@vue/shared': 3.5.13 2385 | optionalDependencies: 2386 | typescript: 5.6.3 2387 | 2388 | warning@4.0.3: 2389 | dependencies: 2390 | loose-envify: 1.4.0 2391 | 2392 | which-module@2.0.1: {} 2393 | 2394 | which@2.0.2: 2395 | dependencies: 2396 | isexe: 2.0.0 2397 | 2398 | wrap-ansi@6.2.0: 2399 | dependencies: 2400 | ansi-styles: 4.3.0 2401 | string-width: 4.2.3 2402 | strip-ansi: 6.0.1 2403 | 2404 | wrap-ansi@7.0.0: 2405 | dependencies: 2406 | ansi-styles: 4.3.0 2407 | string-width: 4.2.3 2408 | strip-ansi: 6.0.1 2409 | 2410 | wrap-ansi@8.1.0: 2411 | dependencies: 2412 | ansi-styles: 6.2.1 2413 | string-width: 5.1.2 2414 | strip-ansi: 7.1.0 2415 | 2416 | y18n@4.0.3: {} 2417 | 2418 | yargs-parser@18.1.3: 2419 | dependencies: 2420 | camelcase: 5.3.1 2421 | decamelize: 1.2.0 2422 | 2423 | yargs@15.4.1: 2424 | dependencies: 2425 | cliui: 6.0.0 2426 | decamelize: 1.2.0 2427 | find-up: 4.1.0 2428 | get-caller-file: 2.0.5 2429 | require-directory: 2.1.1 2430 | require-main-filename: 2.0.0 2431 | set-blocking: 2.0.0 2432 | string-width: 4.2.3 2433 | which-module: 2.0.1 2434 | y18n: 4.0.3 2435 | yargs-parser: 18.1.3 2436 | 2437 | zip-stream@6.0.1: 2438 | dependencies: 2439 | archiver-utils: 5.0.2 2440 | compress-commons: 6.0.2 2441 | readable-stream: 4.6.0 2442 | -------------------------------------------------------------------------------- /popup.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Text Camera 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public/_locales/en/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { 3 | "message": "Text Camera" 4 | }, 5 | "desc": { 6 | "message": "Generate a share image of the text you selected" 7 | }, 8 | "rightClickDesc": { 9 | "message": "Generate Share Image" 10 | }, 11 | "parseLinkOptTitle": { 12 | "message": "parse link" 13 | } 14 | } -------------------------------------------------------------------------------- /public/_locales/zh_CN/messages.json: -------------------------------------------------------------------------------- 1 | { 2 | "extName": { 3 | "message": "文摘" 4 | }, 5 | "desc": { 6 | "message": "生成所选文本的分享图" 7 | }, 8 | "rightClickDesc": { 9 | "message": "生成分享图" 10 | }, 11 | "parseLinkOptTitle": { 12 | "message": "解析链接" 13 | } 14 | } -------------------------------------------------------------------------------- /public/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JavanShen/text-camera/a7c9a51a961893167ec98193fdf9988f70534993/public/icon128.png -------------------------------------------------------------------------------- /public/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JavanShen/text-camera/a7c9a51a961893167ec98193fdf9988f70534993/public/icon48.png -------------------------------------------------------------------------------- /public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "manifest_version": 3, 3 | "name": "__MSG_extName__", 4 | "description": "__MSG_desc__", 5 | "version": "1.2.0", 6 | "icons": { 7 | "48": "icon48.png", 8 | "128": "icon128.png" 9 | }, 10 | "default_locale": "en", 11 | "permissions": ["contextMenus", "favicon", "storage"], 12 | "background": { 13 | "service_worker": "background.js" 14 | }, 15 | "action": { 16 | "default_popup": "popup.html" 17 | }, 18 | "content_scripts": [ 19 | { 20 | "js": ["webcomponents-bundle.js", "content.js"], 21 | "matches": [""], 22 | "run_at": "document_end" 23 | } 24 | ], 25 | "web_accessible_resources": [ 26 | { 27 | "resources": ["_favicon/*"], 28 | "matches": [""], 29 | "extension_ids": ["*"] 30 | } 31 | ] 32 | } 33 | -------------------------------------------------------------------------------- /scripts/injectWebComponent.js: -------------------------------------------------------------------------------- 1 | import { copyFileSync } from 'fs' 2 | import { resolve, dirname } from 'path' 3 | import { fileURLToPath } from 'url' 4 | 5 | const __dirname = dirname(fileURLToPath(import.meta.url)) 6 | 7 | const resPath = (p) => resolve(__dirname, p) 8 | 9 | copyFileSync(resPath('../node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js'), resPath('../dist/webcomponents-bundle.js')) -------------------------------------------------------------------------------- /scripts/utils.js: -------------------------------------------------------------------------------- 1 | import { resolve, dirname } from 'path' 2 | import { fileURLToPath } from 'url' 3 | 4 | export const __dirname = dirname(fileURLToPath(import.meta.url)) 5 | 6 | export const resPath = (p) => resolve(__dirname, p) -------------------------------------------------------------------------------- /scripts/zipDist.js: -------------------------------------------------------------------------------- 1 | import archiver from 'archiver' 2 | import { resPath } from './utils.js' 3 | import { createWriteStream, readdirSync, createReadStream, lstatSync } from 'fs' 4 | 5 | const output = createWriteStream(resPath('../text-camera-extension.zip')) 6 | const archive = archiver('zip') 7 | 8 | archive.pipe(output) 9 | 10 | const dirPath = resPath('../dist') 11 | const files = readdirSync(dirPath) 12 | 13 | for (const fileName of files) { 14 | const path = dirPath + '/' + fileName 15 | 16 | if (lstatSync(path).isFile()) { 17 | const file = createReadStream(path) 18 | archive.append(file, { name: fileName }) 19 | } else { 20 | archive.directory(path, fileName) 21 | } 22 | } 23 | 24 | archive.finalize() 25 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /src/ShareImage.ce.vue: -------------------------------------------------------------------------------- 1 | 80 | 81 | 110 | 111 | 178 | -------------------------------------------------------------------------------- /src/assets/引号.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/components/Overlay.ce.vue: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | 41 | -------------------------------------------------------------------------------- /src/content.ts: -------------------------------------------------------------------------------- 1 | import { createApp, defineCustomElement } from 'vue' 2 | import ShareImage from './ShareImage.ce.vue' 3 | import App from './App.vue' 4 | 5 | const ShareImageElement = defineCustomElement(ShareImage) 6 | 7 | window.customElements.define('text-camera', ShareImageElement) 8 | 9 | const container = document.createElement('div') 10 | container.setAttribute('id', 'text-camera-container') 11 | 12 | document.body.insertAdjacentElement('afterend', container) 13 | 14 | createApp(App).mount(container) -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | chrome.runtime.onInstalled.addListener(() => { 2 | chrome.contextMenus.create({ 3 | id: 'createImage', 4 | title: chrome.i18n.getMessage('rightClickDesc'), 5 | contexts: ['selection'] 6 | }) 7 | }) 8 | 9 | chrome.contextMenus.onClicked.addListener(async info => { 10 | if (info.menuItemId === 'createImage') { 11 | const [tab] = await chrome.tabs.query({ 12 | active: true, 13 | lastFocusedWindow: true 14 | }) 15 | chrome.tabs.sendMessage(tab.id || 0, { text: info.selectionText }) 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /src/popup/App.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 67 | 68 | 83 | -------------------------------------------------------------------------------- /src/popup/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import App from './App.vue' 3 | 4 | createApp(App).mount('#app') 5 | -------------------------------------------------------------------------------- /src/utils/canvas.ts: -------------------------------------------------------------------------------- 1 | type WrapTextOpt = Partial<{ 2 | x: number 3 | y: number 4 | }> 5 | /** Canvas渲染换行文字 */ 6 | export const wrapText = ( 7 | ctx: CanvasRenderingContext2D, 8 | text: string, 9 | opt: WrapTextOpt = {} 10 | ) => { 11 | let { x = 0, y = 0 } = opt 12 | 13 | let splitArr = text.split(''), 14 | line = splitArr[0] || '', 15 | maxWidth = 16 | (ctx.canvas.width 17 | ? ctx.canvas.width / (window.devicePixelRatio || 1) 18 | : 300) - x, 19 | lineHeight = Number( 20 | ( 21 | window.getComputedStyle(ctx.canvas).lineHeight ?? 22 | window.getComputedStyle(document.body).lineHeight 23 | ).replace('px', '') 24 | ) 25 | 26 | for (let i = 1; i < splitArr.length; i++) { 27 | let curLine = line + splitArr[i], 28 | w = ctx.measureText(curLine).width 29 | 30 | if (w > maxWidth) { 31 | ctx.fillText(line, x, y) 32 | line = splitArr[i] 33 | y += lineHeight 34 | } else { 35 | line = curLine 36 | } 37 | } 38 | 39 | ctx.fillText(line, x, y) 40 | } 41 | -------------------------------------------------------------------------------- /src/utils/info.ts: -------------------------------------------------------------------------------- 1 | const queryMetaEl = (attr: string) => 2 | document.head.querySelector(`meta[${attr}]`) 3 | 4 | const queryMetaContent = (name: string) => 5 | queryMetaEl(`property="og:${name}"`)?.getAttribute('content') 6 | 7 | export const getWebsiteInfo = () => { 8 | const title = 9 | queryMetaContent('title') || 10 | queryMetaContent('site_name') || 11 | document.title 12 | 13 | const origin = window.location.origin.replace('/$', '') 14 | const faviconUrl = new URL(chrome.runtime.getURL('/_favicon/')) 15 | faviconUrl.searchParams.set('pageUrl', origin) 16 | faviconUrl.searchParams.set('size', '64') 17 | const icon = faviconUrl.toString() 18 | 19 | const url = queryMetaContent('url') || window.location.href 20 | 21 | const description = 22 | queryMetaContent('description') || 23 | queryMetaEl('name="description"')?.getAttribute('content') 24 | 25 | return { 26 | title, 27 | icon, 28 | url, 29 | description 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/utils/text.ts: -------------------------------------------------------------------------------- 1 | import { CSSProperties } from 'vue' 2 | 3 | const measureWidth = (text: string, ctx: CanvasRenderingContext2D) => 4 | ctx.measureText(text).width 5 | 6 | const ellipsis = '...' 7 | export const cutText = ( 8 | text?: string, 9 | width: number = 200, 10 | lineNum: number = 2, 11 | fontStyle: CSSProperties = {} 12 | ) => { 13 | if (!text) return '' 14 | 15 | const totalWidth = width * lineNum 16 | const { fontSize, fontFamily, fontWeight } = fontStyle 17 | 18 | const ctx = document.createElement('canvas').getContext('2d') 19 | 20 | if (ctx) { 21 | ctx.font = `${fontWeight} ${fontSize} ${fontFamily}` 22 | if (measureWidth(text, ctx) <= totalWidth) return text 23 | 24 | let left = 0, 25 | right = text.length - 1 26 | while (left < right) { 27 | const mid = Math.floor((left + right) / 2), 28 | extractedText = text.substring(0, mid + 1) + ellipsis, 29 | textWidth = measureWidth(extractedText, ctx) 30 | 31 | if (textWidth === totalWidth) return extractedText 32 | 33 | if (textWidth > totalWidth) { 34 | right = mid - 1 35 | } else { 36 | left = mid + 1 37 | } 38 | } 39 | 40 | return text.substring(0, right - 1) + ellipsis 41 | } else { 42 | return text 43 | } 44 | } 45 | 46 | export const extractLink = (el?: DocumentFragment, content: string = '') => { 47 | let res = content 48 | 49 | el?.querySelectorAll('a').forEach(item => { 50 | let link = item.getAttribute('href'), text = item.innerText 51 | 52 | 53 | if (link && text) { 54 | if (/^\//.test(link || '')) { 55 | link = window.location.origin + link 56 | } 57 | res = res.replace(text, `${text} (${decodeURIComponent(link)}) `) 58 | } 59 | }) 60 | 61 | return res 62 | } 63 | 64 | export const separateParagraphs = (text: string) => text.replace(/\n/g, '\n\n') 65 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /text-camera-extension.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JavanShen/text-camera/a7c9a51a961893167ec98193fdf9988f70534993/text-camera-extension.zip -------------------------------------------------------------------------------- /tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", 4 | "target": "ES2020", 5 | "useDefineForClassFields": true, 6 | "module": "ESNext", 7 | "lib": ["ES2020", "DOM", "DOM.Iterable"], 8 | "skipLibCheck": true, 9 | 10 | /* Bundler mode */ 11 | "moduleResolution": "bundler", 12 | "allowImportingTsExtensions": true, 13 | "isolatedModules": true, 14 | "moduleDetection": "force", 15 | "noEmit": true, 16 | "jsx": "preserve", 17 | 18 | /* Linting */ 19 | "strict": true, 20 | "noUnusedLocals": true, 21 | "noUnusedParameters": true, 22 | "noFallthroughCasesInSwitch": true, 23 | "noUncheckedSideEffectImports": true 24 | }, 25 | "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] 26 | } 27 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", 4 | "target": "ES2022", 5 | "lib": ["ES2023"], 6 | "module": "ESNext", 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "isolatedModules": true, 13 | "moduleDetection": "force", 14 | "noEmit": true, 15 | 16 | /* Linting */ 17 | "strict": true, 18 | "noUnusedLocals": true, 19 | "noUnusedParameters": true, 20 | "noFallthroughCasesInSwitch": true, 21 | "noUncheckedSideEffectImports": true 22 | }, 23 | "include": ["vite.config.ts"] 24 | } 25 | -------------------------------------------------------------------------------- /vite.config.popup.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vite.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | build: { 8 | rollupOptions: { 9 | input: { 10 | 'popup': 'popup.html' 11 | }, 12 | }, 13 | } 14 | }) 15 | -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import vue from '@vitejs/plugin-vue' 3 | 4 | // https://vite.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue()], 7 | build: { 8 | rollupOptions: { 9 | input: { 10 | 'background': 'src/main.ts', 11 | 'content': 'src/content.ts' 12 | }, 13 | output: { 14 | entryFileNames: '[name].js', 15 | format: 'commonjs' 16 | } 17 | }, 18 | } 19 | }) 20 | --------------------------------------------------------------------------------