├── .prettierrc ├── examples ├── browser │ ├── README.md │ ├── public │ │ └── favicon.png │ ├── src │ │ ├── auto-imports.d.ts │ │ ├── main.ts │ │ ├── style.scss │ │ ├── totp.ts │ │ ├── vite-env.d.ts │ │ ├── assets │ │ │ └── github-corner-right.svg │ │ ├── utils.ts │ │ ├── components.d.ts │ │ ├── components │ │ │ └── GitHubCorners.vue │ │ └── App.vue │ ├── tsconfig.node.json │ ├── .gitignore │ ├── index.html │ ├── tsconfig.json │ ├── vite.config.ts │ ├── package.json │ └── pnpm-lock.yaml ├── node │ ├── tsconfig.json │ ├── package.json │ └── index.ts ├── deno │ ├── deps.ts │ └── mod.ts └── bun │ ├── package.json │ ├── tsconfig.json │ └── totp.test.ts ├── .vscode └── extensions.json ├── deno.json ├── pnpm-workspace.yaml ├── vercel.json ├── .gitignore ├── packages └── totp-wasm │ ├── mod.ts │ ├── dist │ ├── totp-wasm.wasm │ └── wasm_data.js │ ├── package.json │ ├── wasm.ts │ ├── index.js │ └── index.ts ├── deno.lock ├── package.json ├── LICENSE ├── src ├── main.zig ├── otp.zig └── base32.zig ├── README.md ├── .github └── workflows │ └── testing.yml └── pnpm-lock.yaml /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "printWidth": 100 5 | } 6 | -------------------------------------------------------------------------------- /examples/browser/README.md: -------------------------------------------------------------------------------- 1 | # Demo 2 | 3 | ```bash 4 | pnpm install 5 | pnpm run build 6 | ``` 7 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "ziglang.vscode-zig" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /deno.json: -------------------------------------------------------------------------------- 1 | { 2 | "imports": { 3 | "totp-wasm": "./packages/totp-wasm/mod.ts" 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - packages/totp-wasm 3 | - examples/browser 4 | - examples/node 5 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "github": { "silent": true }, 3 | "outputDirectory": "examples/browser/dist" 4 | } 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | zig-out/ 2 | zig-cache/ 3 | .zig-cache/ 4 | 5 | .vscode/* 6 | !.vscode/extensions.json 7 | node_modules 8 | -------------------------------------------------------------------------------- /examples/browser/public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gizmo-ds/totp-wasm-zig/main/examples/browser/public/favicon.png -------------------------------------------------------------------------------- /examples/browser/src/auto-imports.d.ts: -------------------------------------------------------------------------------- 1 | // Generated by 'unplugin-auto-import' 2 | export {} 3 | declare global { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /examples/node/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "allowJs": true, 4 | "types": ["node"] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/totp-wasm/mod.ts: -------------------------------------------------------------------------------- 1 | //@ts-nocheck 2 | export * from './index.js' 3 | export { wasm_data } from './dist/wasm_data.js' 4 | -------------------------------------------------------------------------------- /packages/totp-wasm/dist/totp-wasm.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gizmo-ds/totp-wasm-zig/main/packages/totp-wasm/dist/totp-wasm.wasm -------------------------------------------------------------------------------- /examples/browser/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue' 2 | import './style.scss' 3 | import App from './App.vue' 4 | 5 | createApp(App).mount('#app') 6 | -------------------------------------------------------------------------------- /examples/browser/src/style.scss: -------------------------------------------------------------------------------- 1 | .n-progress-graph-line-fill { 2 | transition: background-color 0.3s var(--n-bezier), max-width 1s linear !important; 3 | } 4 | -------------------------------------------------------------------------------- /examples/deno/deps.ts: -------------------------------------------------------------------------------- 1 | export { assertEquals } from 'https://deno.land/std@0.188.0/testing/asserts.ts'; 2 | export { decode as base64Decode } from 'https://deno.land/std@0.188.0/encoding/base64.ts'; 3 | -------------------------------------------------------------------------------- /packages/totp-wasm/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "totp-wasm", 3 | "version": "1.0.0", 4 | "description": "HOTP & TOTP & Steam Guard", 5 | "main": "dist/index.js", 6 | "author": "Gizmo", 7 | "license": "MIT" 8 | } 9 | -------------------------------------------------------------------------------- /examples/browser/src/totp.ts: -------------------------------------------------------------------------------- 1 | export { hotp, totp, steam_guard, init } from '../../../packages/totp-wasm/index' 2 | import _wasm_url from '../../../packages/totp-wasm/dist/totp-wasm.wasm?url' 3 | export const wasm_url = _wasm_url 4 | -------------------------------------------------------------------------------- /examples/browser/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare module '*.vue' { 4 | import type { DefineComponent } from 'vue' 5 | const component: DefineComponent<{}, {}, any> 6 | export default component 7 | } 8 | -------------------------------------------------------------------------------- /examples/browser/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /examples/bun/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "totp-wasm-bun", 3 | "module": "index.ts", 4 | "type": "module", 5 | "devDependencies": { 6 | "bun-types": "latest" 7 | }, 8 | "peerDependencies": { 9 | "typescript": "^5.0.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "totp-wasm-example", 3 | "version": "1.0.0", 4 | "description": "HOTP & TOTP & Steam Guard", 5 | "main": "index.js", 6 | "author": "Gizmo", 7 | "license": "MIT", 8 | "devDependencies": { 9 | "@types/node": "^20.2.3" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/browser/.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 | -------------------------------------------------------------------------------- /examples/browser/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | totp-wasm-zig 8 | 9 | 10 |
11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /examples/browser/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "sourceMap": true, 10 | "resolveJsonModule": true, 11 | "isolatedModules": true, 12 | "esModuleInterop": true, 13 | "lib": ["ESNext", "DOM"], 14 | "skipLibCheck": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [{ "path": "./tsconfig.node.json" }] 18 | } 19 | -------------------------------------------------------------------------------- /examples/bun/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["ESNext"], 4 | "module": "esnext", 5 | "target": "esnext", 6 | "moduleResolution": "bundler", 7 | "moduleDetection": "force", 8 | "allowImportingTsExtensions": true, 9 | "noEmit": true, 10 | "composite": true, 11 | "strict": true, 12 | "downlevelIteration": true, 13 | "skipLibCheck": true, 14 | "jsx": "react-jsx", 15 | "allowSyntheticDefaultImports": true, 16 | "forceConsistentCasingInFileNames": true, 17 | "allowJs": true, 18 | "types": [ 19 | "bun-types" // add Bun global 20 | ] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /examples/browser/src/assets/github-corner-right.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /packages/totp-wasm/wasm.ts: -------------------------------------------------------------------------------- 1 | export function malloc(instance: WebAssembly.Instance, size: number): number { 2 | return (instance.exports.malloc as (size: number) => number)(size + 1) 3 | } 4 | export function free(instance: WebAssembly.Instance, ptr: number): void { 5 | ;(instance.exports.free as (ptr: number) => number)(ptr) 6 | } 7 | export function to_cstr( 8 | instance: WebAssembly.Instance, 9 | memory: WebAssembly.Memory, 10 | s: string 11 | ): { ptr: number; len: number } { 12 | const buf = new TextEncoder().encode(s) 13 | const ptr = malloc(instance, buf.length) 14 | new Uint8Array(memory.buffer, ptr, buf.length).set(buf) 15 | new Uint8Array(memory.buffer, ptr + buf.length, 1).set([0]) 16 | return { ptr, len: buf.length } 17 | } 18 | -------------------------------------------------------------------------------- /examples/browser/vite.config.ts: -------------------------------------------------------------------------------- 1 | import path from 'path' 2 | import { defineConfig } from 'vite' 3 | import vue from '@vitejs/plugin-vue' 4 | import AutoImport from 'unplugin-auto-import/vite' 5 | import Components from 'unplugin-vue-components/vite' 6 | import { NaiveUiResolver } from 'unplugin-vue-components/resolvers' 7 | import svgLoader from 'vite-svg-loader' 8 | 9 | // https://vitejs.dev/config/ 10 | export default defineConfig({ 11 | plugins: [ 12 | vue(), 13 | svgLoader(), 14 | AutoImport({ 15 | resolvers: [NaiveUiResolver()], 16 | dts: path.resolve('src/auto-imports.d.ts'), 17 | }), 18 | Components({ 19 | resolvers: [NaiveUiResolver()], 20 | dts: path.resolve('src/components.d.ts'), 21 | }), 22 | ], 23 | }) 24 | -------------------------------------------------------------------------------- /examples/browser/src/utils.ts: -------------------------------------------------------------------------------- 1 | const RFC4648_ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; 2 | 3 | export function generateSecret(length: number = 32) { 4 | const result = new Array(length); 5 | for (let i = 0; i < length; i++) 6 | result[i] = RFC4648_ALPHABET[randomInt(0, RFC4648_ALPHABET.length - 1)]; 7 | return result.join(""); 8 | } 9 | 10 | export function randomInt(min: number, max: number) { 11 | min = Math.ceil(min); 12 | max = Math.floor(max); 13 | return Math.floor(Math.random() * (max - min + 1)) + min; 14 | } 15 | 16 | export function totpSearchParams(obj: Object) { 17 | return Object.entries(obj) 18 | .map( 19 | ([key, value]) => 20 | `${encodeURIComponent(key)}=${encodeURIComponent(value as string)}` 21 | ) 22 | .join("&"); 23 | } 24 | -------------------------------------------------------------------------------- /examples/browser/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "totp-wasm-browser", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "homepage": "https://github.com/gizmo-ds/totp-wasm-zig", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "vue-tsc --noEmit && vite build", 10 | "preview": "vite preview" 11 | }, 12 | "dependencies": { 13 | "@vueuse/components": "^9.2.0", 14 | "qrcode.vue": "^3.3.3", 15 | "vue": "^3.2.37" 16 | }, 17 | "devDependencies": { 18 | "@types/node": "^18.7.16", 19 | "@vitejs/plugin-vue": "^3.1.0", 20 | "naive-ui": "^2.33.2", 21 | "sass": "^1.54.9", 22 | "typescript": "^4.6.4", 23 | "unplugin-auto-import": "^0.11.2", 24 | "unplugin-vue-components": "^0.22.4", 25 | "vite": "^3.1.0", 26 | "vite-svg-loader": "^3.6.0", 27 | "vue-tsc": "^0.40.4" 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /examples/bun/totp.test.ts: -------------------------------------------------------------------------------- 1 | import { expect, test } from 'bun:test' 2 | import { init, hotp, totp, steam_guard } from '../../packages/totp-wasm' 3 | import { wasm_data } from '../../packages/totp-wasm/dist/wasm_data' 4 | 5 | const s2b = (s: string) => new TextEncoder().encode(s) 6 | 7 | const test_key = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 8 | 9 | test('HOTP', async () => { 10 | await init(Buffer.from(wasm_data, 'base64')) 11 | const code = hotp(test_key, 1662681600n, 6) 12 | expect(code).toBe('886679') 13 | }) 14 | 15 | test('TOTP', async () => { 16 | await init(Buffer.from(wasm_data, 'base64')) 17 | const code = totp(test_key, 1662681600n, 6, 30) 18 | expect(code).toBe('473526') 19 | }) 20 | 21 | test('Steam Guard', async () => { 22 | await init(Buffer.from(wasm_data, 'base64')) 23 | const code = steam_guard(test_key, 1662681600n) 24 | expect(code).toBe('4PRPM') 25 | }) 26 | -------------------------------------------------------------------------------- /deno.lock: -------------------------------------------------------------------------------- 1 | { 2 | "version": "3", 3 | "remote": { 4 | "https://deno.land/std@0.188.0/encoding/base64.ts": "144ae6234c1fbe5b68666c711dc15b1e9ee2aef6d42b3b4345bf9a6c91d70d0d", 5 | "https://deno.land/std@0.188.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 6 | "https://deno.land/std@0.188.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", 7 | "https://deno.land/std@0.188.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", 8 | "https://deno.land/std@0.188.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f" 9 | }, 10 | "workspace": { 11 | "packageJson": { 12 | "dependencies": [ 13 | "npm:binaryen@^118.0.0", 14 | "npm:esbuild@^0.23.0", 15 | "npm:esno@^0.16.3" 16 | ] 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "totp-wasm", 3 | "version": "1.0.0", 4 | "description": "HOTP & TOTP & Steam Guard ", 5 | "main": "index.js", 6 | "keywords": [], 7 | "author": "Gizmo", 8 | "license": "MIT", 9 | "workspaces": [ 10 | "packages/totp-wasm", 11 | "examples/browser", 12 | "examples/node" 13 | ], 14 | "scripts": { 15 | "build": "cd examples/browser && pnpm run build", 16 | "build:js": "esbuild packages/totp-wasm/index.ts --bundle --format=esm --platform=node --target=es2017 --minify --outfile=packages/totp-wasm/index.js", 17 | "build:wasm": "zig build && zig build bind", 18 | "test:browser": "cd examples/browser && pnpm run dev", 19 | "test:deno": "deno test -A -c deno.json examples/deno/mod.ts", 20 | "test:node": "esno examples/node/index.ts" 21 | }, 22 | "devDependencies": { 23 | "binaryen": "^118.0.0", 24 | "esbuild": "^0.23.0", 25 | "esno": "^0.16.3" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /examples/node/index.ts: -------------------------------------------------------------------------------- 1 | import { init, totp, hotp, steam_guard } from '../../packages/totp-wasm/index' 2 | import { wasm_data } from '../../packages/totp-wasm/dist/wasm_data' 3 | 4 | test() 5 | 6 | async function test() { 7 | await init(Buffer.from(wasm_data, 'base64').buffer) 8 | 9 | { 10 | const key = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 11 | const counter = BigInt(1662681600) 12 | const digit = 6 13 | const code = hotp(key, counter, digit) 14 | console.log(code === '886679') 15 | } 16 | { 17 | const secret = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 18 | const t = BigInt(1662681600) 19 | const digit = 6 20 | const period = 30 21 | const code = totp(secret, t, digit, period) 22 | console.log(code === '473526') 23 | } 24 | { 25 | const secret = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 26 | const t = BigInt(1662681600) 27 | const code = steam_guard(secret, t) 28 | console.log(code === '4PRPM') 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /packages/totp-wasm/index.js: -------------------------------------------------------------------------------- 1 | function p(e,n){return e.exports.malloc(n+1)}function u(e,n){e.exports.free(n)}function b(e,n,o){let r=new TextEncoder().encode(o),s=p(e,r.length);return new Uint8Array(n.buffer,s,r.length).set(r),new Uint8Array(n.buffer,s+r.length,1).set([0]),{ptr:s,len:r.length}}var c=new WebAssembly.Memory({initial:250}),m={env:{memory:c}},t;async function g(e){if(t)return;t=(e instanceof Promise||e instanceof Response?await WebAssembly.instantiateStreaming(e,m):await WebAssembly.instantiate(e,m)).instance}function d(e,n,o){if(!t)return"";let r=b(t,c,e),s=t.exports.hotp,i=s(r.ptr,r.len,n,o);return u(t,r.ptr),i.toString().padStart(o,"0")}function x(e,n,o,r){if(!t)return"";let s=b(t,c,e),i=t.exports.totp,a=i(s.ptr,s.len,n,o,r);return u(t,s.ptr),a.toString().padStart(o,"0")}function y(e,n){if(!t)return"";let o=b(t,c,e),r=t.exports.steam_guard,s=r(o.ptr,o.len,n),i=new TextDecoder().decode(new Uint8Array(c.buffer,s,5));return u(t,o.ptr),u(t,s),i}export{d as hotp,g as init,y as steam_guard,x as totp}; 2 | -------------------------------------------------------------------------------- /examples/deno/mod.ts: -------------------------------------------------------------------------------- 1 | import { init, wasm_data, totp, hotp, steam_guard } from 'totp-wasm' 2 | import { assertEquals, base64Decode } from './deps.ts' 3 | 4 | await init(base64Decode(wasm_data)) 5 | 6 | Deno.test({ 7 | name: 'HOTP test', 8 | fn() { 9 | const key = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 10 | const counter = BigInt(1662681600) 11 | const digit = 6 12 | const code = hotp(key, counter, digit) 13 | assertEquals(code, '886679') 14 | }, 15 | }) 16 | 17 | Deno.test({ 18 | name: 'TOTP test', 19 | fn() { 20 | const secret = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 21 | const t = BigInt(1662681600) 22 | const digit = 6 23 | const period = 30 24 | const code = totp(secret, t, digit, period) 25 | assertEquals(code, '473526') 26 | }, 27 | }) 28 | 29 | Deno.test({ 30 | name: 'Steam Guard test', 31 | fn() { 32 | const secret = 'GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW' 33 | const t = BigInt(1662681600) 34 | const code = steam_guard(secret, t) 35 | assertEquals(code, '4PRPM') 36 | }, 37 | }) 38 | -------------------------------------------------------------------------------- /examples/browser/src/components.d.ts: -------------------------------------------------------------------------------- 1 | // generated by unplugin-vue-components 2 | // We suggest you to commit this file into source control 3 | // Read more: https://github.com/vuejs/core/pull/3399 4 | import '@vue/runtime-core' 5 | 6 | export {} 7 | 8 | declare module '@vue/runtime-core' { 9 | export interface GlobalComponents { 10 | GitHubCorners: typeof import('./components/GitHubCorners.vue')['default'] 11 | NButton: typeof import('naive-ui')['NButton'] 12 | NConfigProvider: typeof import('naive-ui')['NConfigProvider'] 13 | NDivider: typeof import('naive-ui')['NDivider'] 14 | NInput: typeof import('naive-ui')['NInput'] 15 | NInputGroup: typeof import('naive-ui')['NInputGroup'] 16 | NInputGroupLabel: typeof import('naive-ui')['NInputGroupLabel'] 17 | NInputNumber: typeof import('naive-ui')['NInputNumber'] 18 | NLayout: typeof import('naive-ui')['NLayout'] 19 | NNotificationProvider: typeof import('naive-ui')['NNotificationProvider'] 20 | NProgress: typeof import('naive-ui')['NProgress'] 21 | NSpace: typeof import('naive-ui')['NSpace'] 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gizmo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/main.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const testing = std.testing; 3 | const allocator = std.heap.wasm_allocator; 4 | 5 | const otp = @import("./otp.zig"); 6 | 7 | export fn hotp(key_ptr: [*]const u8, key_len: usize, counter: u64, digits: u32) u32 { 8 | return otp.hotp(key_ptr[0..key_len], counter, digits); 9 | } 10 | 11 | export fn totp(secret_ptr: [*]const u8, secret_len: usize, t: i64, digit: u32, period: u32) u32 { 12 | return otp.totp(allocator, secret_ptr[0..secret_len], t, digit, period) catch @panic("failed to generate totp code"); 13 | } 14 | 15 | export fn steam_guard(secret_ptr: [*]const u8, secret_len: usize, t: i64) [*]u8 { 16 | var code = otp.steam_guard(allocator, secret_ptr[0..secret_len], t) catch @panic("failed to generate steam guard code"); 17 | const output: []u8 = allocator.alloc(u8, 5) catch @panic("failed to allocate memory"); 18 | @memcpy(output[0..5], code[0..5]); 19 | return output[0..5 :0].ptr; 20 | } 21 | 22 | export fn malloc(size: usize) ?[*]const u8 { 23 | const ret = allocator.alloc(u8, size + @sizeOf(usize)) catch return null; 24 | return ret.ptr; 25 | } 26 | 27 | export fn free(ptr: [*:0]u8) void { 28 | allocator.free(std.mem.span(ptr)); 29 | } 30 | -------------------------------------------------------------------------------- /examples/browser/src/components/GitHubCorners.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # totp-wasm-zig 2 | 3 | [![License](https://img.shields.io/github/license/gizmo-ds/totp-wasm-zig?style=flat-square)](./LICENSE) 4 | [![CI](https://img.shields.io/github/actions/workflow/status/gizmo-ds/totp-wasm-zig/testing.yml?branch=main&label=CI&style=flat-square)](https://github.com/gizmo-ds/totp-wasm-zig/actions/workflows/testing.yml) 5 | 6 | HOTP([RFC 4226](https://tools.ietf.org/html/rfc4226)) & TOTP([RFC 6238](https://tools.ietf.org/html/rfc6238)) & Steam Guard TOTP 7 | 8 | ## Demo 9 | 10 | [https://totp-wasm-zig.vercel.app](https://totp-wasm-zig.vercel.app) 11 | 12 | ## Usage 13 | 14 | ### Deno 15 | 16 | ```typescript 17 | import { totp, init, wasm_data } from 'https://deno.land/x/totp_wasm/deno/mod.ts' 18 | 19 | await init(wasm_data) 20 | const code = totp('GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW', 1662681600, 6, 30) 21 | console.log(code) 22 | // 473526 23 | ``` 24 | 25 | ### Browser 26 | 27 | [example](./examples/browser) 28 | 29 | ### Node.js 30 | 31 | [example](./examples/node) 32 | 33 | ### Bun 34 | 35 | [example](./examples/bun) 36 | 37 | ## Build 38 | 39 | ### Compiling WebAssembly 40 | 41 | Requirements: 42 | 43 | - [Zig](https://ziglang.org/download/) (0.13.0) 44 | - [Node.js](https://nodejs.org) (Optional) 45 | 46 | ```bash 47 | # pnpm install 48 | zig build 49 | zig build bind 50 | ``` 51 | 52 | ## Runing examples 53 | 54 | ```bash 55 | pnpm install 56 | pnpm test:browser 57 | ``` 58 | 59 | ## Related Projects 60 | 61 | Here are some related projects that you may find useful: 62 | 63 | - [totp-wasm](https://github.com/gizmo-ds/totp-wasm): Rust implementation of this project. 64 | - [UdonOTPLib](https://github.com/gizmo-ds/UdonOTPLib): C# implementation for the VRChat game. 65 | 66 | ## License 67 | 68 | Code is distributed under [MIT](./LICENSE) license, feel free to use it in your proprietary projects as well. 69 | -------------------------------------------------------------------------------- /.github/workflows/testing.yml: -------------------------------------------------------------------------------- 1 | name: Testing 2 | 3 | on: 4 | push: 5 | branches: ['main'] 6 | pull_request: 7 | branches: ['main'] 8 | 9 | permissions: 10 | contents: read 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v4 17 | 18 | - name: Setup Zig 19 | uses: goto-bus-stop/setup-zig@v2 20 | with: 21 | version: '0.13.0' 22 | 23 | - name: Test 24 | run: zig build test 25 | 26 | - name: Build 27 | run: | 28 | zig build 29 | zig build bind 30 | 31 | node: 32 | runs-on: ubuntu-latest 33 | needs: ['build'] 34 | 35 | steps: 36 | - uses: actions/checkout@v4 37 | 38 | - name: Install pnpm 39 | uses: pnpm/action-setup@v2 40 | with: 41 | version: 9.6.0 42 | 43 | - name: Setup Node 44 | uses: actions/setup-node@v4 45 | with: 46 | node-version: lts/* 47 | 48 | - name: Run tests 49 | run: | 50 | pnpm install 51 | pnpm run test:node 52 | 53 | deno: 54 | runs-on: ubuntu-latest 55 | needs: ['build'] 56 | 57 | steps: 58 | - uses: actions/checkout@v4 59 | 60 | - name: Setup Deno 61 | uses: denoland/setup-deno@v1 62 | with: 63 | deno-version: v1.45.2 64 | 65 | - name: Run tests 66 | run: | 67 | deno run -A npm:esbuild packages/totp-wasm/index.ts --bundle --format=esm --platform=node --target=es2017 --minify --outfile=packages/totp-wasm/index.js 68 | deno test -A -c deno.json examples/deno/mod.ts 69 | 70 | bun: 71 | runs-on: ubuntu-latest 72 | needs: ['build'] 73 | 74 | steps: 75 | - uses: actions/checkout@v4 76 | 77 | - name: Setup Bun 78 | uses: oven-sh/setup-bun@v2 79 | with: 80 | bun-version: latest 81 | 82 | - name: Run tests 83 | run: bun test 84 | -------------------------------------------------------------------------------- /packages/totp-wasm/index.ts: -------------------------------------------------------------------------------- 1 | import { to_cstr, free } from './wasm' 2 | 3 | const memory = new WebAssembly.Memory({ initial: 250 }) 4 | const imports = { env: { memory } } 5 | 6 | let instance: WebAssembly.Instance | undefined 7 | 8 | export async function init(r: BufferSource | Response | PromiseLike) { 9 | if (instance) return 10 | const m = 11 | r instanceof Promise || r instanceof Response 12 | ? await WebAssembly.instantiateStreaming(r, imports) 13 | : await WebAssembly.instantiate(r as BufferSource, imports) 14 | instance = m.instance 15 | } 16 | 17 | export function hotp(key: string, counter: bigint, digit: number): string { 18 | if (!instance) return '' 19 | const str = to_cstr(instance, memory, key) 20 | const hotp = instance.exports.hotp as hotp_func 21 | const code = hotp(str.ptr, str.len, counter, digit) 22 | free(instance, str.ptr) 23 | return code.toString().padStart(digit, '0') 24 | } 25 | 26 | export function totp(secret: string, t: bigint, digit: number, period: number): string { 27 | if (!instance) return '' 28 | const str = to_cstr(instance, memory, secret) 29 | const totp = instance.exports.totp as totp_func 30 | const code = totp(str.ptr, str.len, t, digit, period) 31 | free(instance, str.ptr) 32 | return code.toString().padStart(digit, '0') 33 | } 34 | 35 | export function steam_guard(secret: string, t: bigint): string { 36 | if (!instance) return '' 37 | const str = to_cstr(instance, memory, secret) 38 | const steam_guard = instance.exports.steam_guard as steam_guard_func 39 | const output_ptr = steam_guard(str.ptr, str.len, t) 40 | const code = new TextDecoder().decode(new Uint8Array(memory.buffer, output_ptr, 5)) 41 | free(instance, str.ptr) 42 | free(instance, output_ptr) 43 | return code 44 | } 45 | 46 | interface hotp_func { 47 | (ptr: number, len: number, counter: bigint, digit: number): number 48 | } 49 | interface totp_func { 50 | (ptr: number, len: number, t: bigint, digit: number, period: number): number 51 | } 52 | 53 | interface steam_guard_func { 54 | (ptr: number, len: number, t: bigint): number 55 | } 56 | -------------------------------------------------------------------------------- /src/otp.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const testing = std.testing; 3 | const Allocator = std.mem.Allocator; 4 | const HmacSha1 = std.crypto.auth.hmac.HmacSha1; 5 | 6 | const base32 = @import("./base32.zig"); 7 | 8 | pub fn hotp(key: []const u8, counter: u64, digit: u32) u32 { 9 | var hmac: [HmacSha1.mac_length]u8 = undefined; 10 | const counter_bytes = [8]u8{ 11 | @truncate(counter >> 56), 12 | @truncate(counter >> 48), 13 | @truncate(counter >> 40), 14 | @truncate(counter >> 32), 15 | @truncate(counter >> 24), 16 | @truncate(counter >> 16), 17 | @truncate(counter >> 8), 18 | @truncate(counter), 19 | }; 20 | 21 | HmacSha1.create(hmac[0..], counter_bytes[0..], key); 22 | 23 | const offset = hmac[hmac.len - 1] & 0xf; 24 | const bin_code = hmac[offset .. offset + 4]; 25 | const int_code = @as(u32, bin_code[3]) | 26 | @as(u32, bin_code[2]) << 8 | 27 | @as(u32, bin_code[1]) << 16 | 28 | @as(u32, bin_code[0]) << 24 & 0x7FFFFFFF; 29 | 30 | const code = int_code % (std.math.pow(u32, 10, digit)); 31 | return code; 32 | } 33 | 34 | test "hotp test" { 35 | const key: []const u8 = "GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW"; 36 | const counter: u64 = 1662681600; 37 | const digits: u32 = 6; 38 | const code: u32 = 886679; 39 | 40 | try testing.expectEqual(code, hotp(key, counter, digits)); 41 | } 42 | 43 | pub fn totp(alloc: std.mem.Allocator, secret: []const u8, t: i64, digit: u32, period: u32) !u32 { 44 | const counter = @divFloor(t, period); 45 | const data = try base32.decode(alloc, secret); 46 | defer alloc.free(data); 47 | const code = hotp(data, @bitCast(counter), digit); 48 | return code; 49 | } 50 | 51 | test "totp test" { 52 | const secret: []const u8 = "GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW"; 53 | const t: i64 = 1662681600; 54 | const digits: u32 = 6; 55 | const period: u32 = 30; 56 | const code: u32 = 473526; 57 | 58 | try testing.expectEqual(code, try totp(std.heap.page_allocator, secret, t, digits, period)); 59 | } 60 | 61 | const STEAM_CHARS: *const [26:0]u8 = "23456789BCDFGHJKMNPQRTVWXY"; 62 | 63 | pub fn steam_guard(alloc: std.mem.Allocator, secret: []const u8, t: i64) ![5]u8 { 64 | const counter: u64 = @intCast(@divFloor(t, 30)); 65 | const key = try base32.decode(alloc, secret); 66 | defer alloc.free(key); 67 | 68 | const counter_bytes = [8]u8{ 69 | @truncate(counter >> 56), 70 | @truncate(counter >> 48), 71 | @truncate(counter >> 40), 72 | @truncate(counter >> 32), 73 | @truncate(counter >> 24), 74 | @truncate(counter >> 16), 75 | @truncate(counter >> 8), 76 | @truncate(counter), 77 | }; 78 | 79 | var hmac: [HmacSha1.mac_length]u8 = undefined; 80 | 81 | HmacSha1.create(hmac[0..], counter_bytes[0..], key); 82 | 83 | const offset = hmac[hmac.len - 1] & 0xf; 84 | const bytes = hmac[offset .. offset + 4]; 85 | const result = @as(u32, bytes[3]) | 86 | @as(u32, bytes[2]) << 8 | 87 | @as(u32, bytes[1]) << 16 | 88 | @as(u32, bytes[0]) << 24 & 0x7FFFFFFF; 89 | 90 | var fc: u32 = result; 91 | var bin_code = [_]u8{0} ** 5; 92 | 93 | for (0..5) |i| { 94 | bin_code[i] = STEAM_CHARS[(fc % STEAM_CHARS.len)]; 95 | fc /= @intCast(STEAM_CHARS.len); 96 | } 97 | return bin_code; 98 | } 99 | 100 | test "Steam Guard test" { 101 | const secret: []const u8 = "GM4VC2CQN5UGS33ZJJVWYUSFMQ4HOQJW"; 102 | const t: i64 = 1662681600; 103 | const code = "4PRPM"; 104 | 105 | try testing.expectEqualSlices(u8, code[0..], (try steam_guard(std.heap.page_allocator, secret, t))[0..]); 106 | } 107 | -------------------------------------------------------------------------------- /src/base32.zig: -------------------------------------------------------------------------------- 1 | const std = @import("std"); 2 | const testing = std.testing; 3 | const Allocator = std.mem.Allocator; 4 | 5 | const RFC4648_ALPHABET: *const [32:0]u8 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"; 6 | 7 | pub fn encode(alloc: Allocator, input: []const u8, padding: bool) ![]u8 { 8 | var output = try std.ArrayList(u8).initCapacity(alloc, (input.len + 3) / 4 * 5); 9 | defer output.deinit(); 10 | 11 | const chunks = try slice_chunks(u8, alloc, input, 5); 12 | defer alloc.free(chunks); 13 | 14 | for (chunks) |chunk| { 15 | var buf = [_]u8{0} ** 5; 16 | for (chunk, 0..) |b, i| buf[i] = b; 17 | 18 | try output.append(RFC4648_ALPHABET[(buf[0] & 0xF8) >> 3]); 19 | try output.append(RFC4648_ALPHABET[((buf[0] & 0x07) << 2) | ((buf[1] & 0xC0) >> 6)]); 20 | try output.append(RFC4648_ALPHABET[(buf[1] & 0x3E) >> 1]); 21 | try output.append(RFC4648_ALPHABET[((buf[1] & 0x01) << 4) | ((buf[2] & 0xF0) >> 4)]); 22 | try output.append(RFC4648_ALPHABET[(buf[2] & 0x0F) << 1 | (buf[3] >> 7)]); 23 | try output.append(RFC4648_ALPHABET[(buf[3] & 0x7C) >> 2]); 24 | try output.append(RFC4648_ALPHABET[((buf[3] & 0x03) << 3) | ((buf[4] & 0xE0) >> 5)]); 25 | try output.append(RFC4648_ALPHABET[buf[4] & 0x1F]); 26 | } 27 | 28 | if (input.len % 5 != 0) { 29 | const len = output.items.len; 30 | const num_extra = 8 - (input.len % 5 * 8 + 4) / 5; 31 | if (padding) { 32 | for (1..num_extra + 1) |i| output.items[len - i] = '='; 33 | } else { 34 | try output.resize(len - num_extra); 35 | } 36 | } 37 | return output.toOwnedSlice(); 38 | } 39 | 40 | pub fn decode(alloc: Allocator, input: []const u8) ![]u8 { 41 | var unpad = input.len; 42 | for (1..@min(6, input.len) + 1) |i| { 43 | if (input[input.len - i] != '=') break; 44 | unpad -= 1; 45 | } 46 | 47 | const output_len = unpad * 5 / 8; 48 | 49 | var output = try std.ArrayList(u8).initCapacity(alloc, (output_len + 4) / 5 * 5); 50 | defer output.deinit(); 51 | 52 | const chunks = try slice_chunks(u8, alloc, input, 8); 53 | defer alloc.free(chunks); 54 | 55 | for (chunks) |chunk| { 56 | var buf = [_]u8{0} ** 8; 57 | for (chunk, 0..) |b, ci| { 58 | if (std.mem.indexOf(u8, RFC4648_ALPHABET, &[1]u8{b})) |v| buf[ci] = @intCast(v); 59 | } 60 | 61 | try output.append((buf[0] << 3) | (buf[1] >> 2)); 62 | try output.append((buf[1] << 6) | (buf[2] << 1) | (buf[3] >> 4)); 63 | try output.append((buf[3] << 4) | (buf[4] >> 1)); 64 | try output.append((buf[4] << 7) | (buf[5] << 2) | (buf[6] >> 3)); 65 | try output.append((buf[6] << 5) | (buf[7])); 66 | } 67 | try output.resize(output_len); 68 | return output.toOwnedSlice(); 69 | } 70 | 71 | test "base32 encode test" { 72 | const alloc = std.heap.page_allocator; 73 | 74 | const output = try encode(alloc, "Hello world", true); 75 | defer alloc.free(output); 76 | 77 | try testing.expectEqualSlices(u8, "JBSWY3DPEB3W64TMMQ======", output); 78 | } 79 | 80 | test "base32 decode test" { 81 | const alloc = std.heap.page_allocator; 82 | 83 | const output = try decode(alloc, "JBSWY3DPEB3W64TMMQ======"); 84 | defer alloc.free(output); 85 | 86 | try testing.expectEqualSlices(u8, "Hello world", output); 87 | } 88 | 89 | fn slice_chunks(comptime T: type, alloc: Allocator, input: []const T, size: usize) ![][]const T { 90 | const input_len = input.len; 91 | const chunk_count = (input_len + size - 1) / size; 92 | 93 | var chunk_list = try std.ArrayList([]const T).initCapacity(alloc, chunk_count); 94 | defer chunk_list.deinit(); 95 | 96 | for (0..chunk_count) |i| { 97 | const start = i * size; 98 | const end = start + size; 99 | if (start > input_len) break; 100 | try chunk_list.append(if (end < input_len) input[start..end] else input[start..]); 101 | } 102 | return chunk_list.toOwnedSlice(); 103 | } 104 | 105 | test "slice_chunks test" { 106 | const alloc = std.heap.page_allocator; 107 | 108 | const output = try slice_chunks(u8, alloc, "Hello", 3); 109 | defer alloc.free(output); 110 | 111 | try testing.expectEqualSlices(u8, "Hel", output[0]); 112 | try testing.expectEqualSlices(u8, "lo", output[1]); 113 | } 114 | -------------------------------------------------------------------------------- /examples/browser/src/App.vue: -------------------------------------------------------------------------------- 1 | 61 | 62 | 153 | 154 | 175 | -------------------------------------------------------------------------------- /packages/totp-wasm/dist/wasm_data.js: -------------------------------------------------------------------------------- 1 | // @ts-nocheck wasmdata 2 | export const wasm_data = "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gMAAai0AAEcEQCAEQQFqIQQMAQsLIANBGGogBWogBDoAAAsgBUEBaiEFDAELCyADIAMtABhBA3QgAy0AGSIEQQJ2chALIgVB//8DcQRAIANByIDAACkCADcDICADQSBqIAIgARAEIAMQDCAAIAU7AQgMBAsgAyADLQAaQQF0IARBBnRyIAMtABsiBEEEdnIQCyIFQf//A3EEQCADQciAwAApAgA3AyggA0EoaiACIAEQBCADEAwgACAFOwEIDAQLIAMgBEEEdCADLQAcIgRBAXZyEAsiBUH//wNxBEAgA0HIgMAAKQIANwMwIANBMGogAiABEAQgAxAMIAAgBTsBCAwECyADIAMtAB1BAnQgBEEHdHIgAy0AHiIEQQN2chALIgVB//8DcQRAIANByIDAACkCADcDOCADQThqIAIgARAEIAMQDCAAIAU7AQgMBAsgBkEBaiEGIAMgAy0AHyAEQQV0chALIgRB//8DcUUNAAsgA0HIgMAAKQIANwNAIANBQGsgAiABEAQgAxAMIAAgBDsBCAwCCyADIAoQDSIEQf//A3EEQCADQciAwAApAgA3A0ggA0HIAGogAiABEAQgAxAMIAAgBDsBCAwCCyADIAo2AgQgAyADKQIMIgs3A4gBAkAgA0GIAWogAygCACIEIAMoAggiBiAKEA5BAXEEQEEAIQcgA0EANgIIIANCqtWq1Qo3AwAMAQsgA0HsAGogA0GIAWogChAPIAMvAXQiBw0AIAMoAmwgBCADKAJwIgoQHSADIAs3A1ggA0HYAGogBCAGEBAgA0IANwIEQQAhByEECyADQciAwAApAgA3A1AgA0HQAGogAiABEAQgAxAMIAAgBzsBCCAAIAo2AgQgACAENgIADAELIAMQDCAAIAU7AQgLIANBkAFqJAALiAEBBX8jAEEQayICJAACQCAAKAIIIgQgAU8NACAAQQxqIgUgACgCACIGIAQgARAOQQFxRQRAIAJBBGogBSABEA8gAi8BDCIDDQEgAigCCCEBIAIoAgQgACgCACAAKAIEEB0hAyAFIAYgBBAQIAAgAzYCAAsgACABNgIIQQAhAwsgAkEQaiQAIAMLiwEBBX8jAEEQayICJAACQCAAKAIIIgQgAU8NACAAQQxqIgUgACgCACIGIAQgARAJQQFxRQRAIAJBBGogBSABEAogAi8BDCIDDQEgAigC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akGkhpGHB2siBkEedyIDaiAzIAdBHnciAmogBCApaiAFIAEgAnNxIAEgAnFzaiAGQQV3akGkhpGHB2siByADIAVBHnciBHNxIAMgBHFzaiABIC5qIAYgAiAEc3EgAiAEcXNqIAdBBXdqQaSGkYcHayIFQQV3akGkhpGHB2siBiAFQR53IgEgB0EedyICc3EgASACcXNqIAQgKmogBSACIANzcSACIANxc2ogBkEFd2pBpIaRhwdrIgVBBXdqQaSGkYcHayIHQR53IgNqIDogBkEedyIEaiACIDRqIAUgASAEc3EgASAEcXNqIAdBBXdqQaSGkYcHayIGIAMgBUEedyICc3EgAiADcXNqIAEgK2ogByACIARzcSACIARxc2ogBkEFd2pBpIaRhwdrIgVBBXdqQaSGkYcHayIHIAVBHnciASAGQR53IgRzcSABIARxc2ogAiA1aiAFIAMgBHNxIAMgBHFzaiAHQQV3akGkhpGHB2siBUEFd2pBpIaRhwdrIgZBHnciA2ogMSAHQR53IgJqIAQgO2ogBSABIAJzcSABIAJxc2ogBkEFd2pBpIaRhwdrIgcgAyAFQR53IgRzcSADIARxc2ogASA2aiAGIAIgBHNxIAIgBHFzaiAHQQV3akGkhpGHB2siBUEFd2pBpIaRhwdrIgYgBUEedyIBIAdBHnciAnNxIAEgAnFzaiAEID5qIAUgAiADc3EgAiADcXNqIAZBBXdqQaSGkYcHayIHQQV3akGkhpGHB2siDUEedyIDaiABID9qIA0gB0EedyIEIAZBHnciBXNxIAQgBXFzaiACIDxqIAcgASAFc3EgASAFcXNqIA1BBXdqQaSGkYcHayICQQV3akGkhpGHB2siBkEedyIHIAJBHnciAXMgBSA4aiACIAMgBHNxIAMgBHFzaiAGQQV3akGkhpGHB2siAnNqIAQgPWogBiABIANzcSABIANxc2ogAkEFd2pBpIaRhwdrIgNBBXdqQar89KwDayIEQR53IgVqIAcgQmogA0EedyIGIAJBHnciAnMgBHNqIAEgOWogAiAHcyADc2ogBEEFd2pBqvz0rANrIgFBBXdqQar89KwDayIDQR53IgQgAUEedyIHcyACIEFqIAUgBnMgAXNqIANBBXdqQar89KwDayIBc2ogBiBDaiAFIAdzIANzaiABQQV3akGq/PSsA2siA0EFd2pBqvz0rANrIgJBHnciBWogBCBGaiADQR53IgYgAUEedyIBcyACc2ogByBHaiABIARzIANzaiACQQV3akGq/PSsA2siA0EFd2pBqvz0rANrIgJBHnciBCADQR53IgdzIAEgNiA+cyBAcyBEc0EBdyIBaiAFIAZzIANzaiACQQV3akGq/PSsA2siA3NqIAYgSGogBSAHcyACc2ogA0EFd2pBqvz0rANrIgJBBXdqQar89KwDayIFQR53IgZqIAQgTWogAkEedyINIANBHnciA3MgBXNqIAcgNyA/cyBBcyABc0EBdyIHaiADIARzIAJzaiAFQQV3akGq/PSsA2siAkEFd2pBqvz0rANrIgRBHnciBSACQR53IghzID0gP3MgRHMgSXNBAXciDiADaiAGIA1zIAJzaiAEQQV3akGq/PSsA2siA3NqIA0gOCBAcyBHcyAHc0EBdyINaiAGIAhzIARzaiADQQV3akGq/PSsA2siAkEFd2pBqvz0rANrIgRBHnciBiBPajYCACBQIEogCCBAIEJzIAFzIA5zQQF3IghqIANBHnciASAFcyACc2ogBEEFd2pBqvz0rANrIgNBHnciDmo2AgAgUiAWIDkgQXMgSHMgDXNBAXcgBWogAkEedyICIAFzIARzaiADQQV3akGq/PSsA2siBEEed2o2AgAgUSAVIEIgQ3MgSXMgTnNBAXcgAWogAiAGcyADc2ogBEEFd2pBqvz0rANrIgFqNgIAIAAgEiBBIERzIAdzIAhzQQF3aiACaiAGIA5zIARzaiABQQV3akGq/PSsA2s2AggLIQAgAQRAA0AgAEEAOgAAIABBAWohACABQQFrIgENAAsLC0MBAX8CQCACRQ0AIAJBAWshAiAAIQMDQCADIAEtAAA6AAAgAkUNASACQQFrIQIgAUEBaiEBIANBAWohAwwACwALIAALC3QCAEGAgMAAC08yMzQ1Njc4OUJDREZHSEpLTU5QUVJUVldYWQBBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2NwABAAAAAgAAAAMAAAAAAAAAPAAQAEHYgMAACxQBI0VniavN7/7cuph2VDIQ8OHSww=="; -------------------------------------------------------------------------------- /examples/browser/pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@types/node': ^18.7.16 5 | '@vitejs/plugin-vue': ^3.1.0 6 | '@vueuse/components': ^9.2.0 7 | naive-ui: ^2.33.2 8 | qrcode.vue: ^3.3.3 9 | sass: ^1.54.9 10 | typescript: ^4.6.4 11 | unplugin-auto-import: ^0.11.2 12 | unplugin-vue-components: ^0.22.4 13 | vite: ^3.1.0 14 | vite-svg-loader: ^3.6.0 15 | vue: ^3.2.37 16 | vue-tsc: ^0.40.4 17 | 18 | dependencies: 19 | '@vueuse/components': 9.2.0_vue@3.2.39 20 | qrcode.vue: 3.3.3_vue@3.2.39 21 | vue: 3.2.39 22 | 23 | devDependencies: 24 | '@types/node': 18.7.16 25 | '@vitejs/plugin-vue': 3.1.0_vite@3.1.0+vue@3.2.39 26 | naive-ui: 2.33.2_vue@3.2.39 27 | sass: 1.54.9 28 | typescript: 4.8.3 29 | unplugin-auto-import: 0.11.2_vite@3.1.0 30 | unplugin-vue-components: 0.22.4_vite@3.1.0+vue@3.2.39 31 | vite: 3.1.0_sass@1.54.9 32 | vite-svg-loader: 3.6.0 33 | vue-tsc: 0.40.13_typescript@4.8.3 34 | 35 | packages: 36 | 37 | /@antfu/utils/0.5.2: 38 | resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} 39 | dev: true 40 | 41 | /@babel/helper-string-parser/7.18.10: 42 | resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==} 43 | engines: {node: '>=6.9.0'} 44 | 45 | /@babel/helper-validator-identifier/7.18.6: 46 | resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==} 47 | engines: {node: '>=6.9.0'} 48 | 49 | /@babel/parser/7.19.0: 50 | resolution: {integrity: sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==} 51 | engines: {node: '>=6.0.0'} 52 | hasBin: true 53 | dependencies: 54 | '@babel/types': 7.19.0 55 | 56 | /@babel/types/7.19.0: 57 | resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} 58 | engines: {node: '>=6.9.0'} 59 | dependencies: 60 | '@babel/helper-string-parser': 7.18.10 61 | '@babel/helper-validator-identifier': 7.18.6 62 | to-fast-properties: 2.0.0 63 | 64 | /@css-render/plugin-bem/0.15.11_css-render@0.15.11: 65 | resolution: {integrity: sha512-Bn8qadYPIz5DhZ4obTGHOJzeziQH6kY0+Fk5AEvwuuy378SLwwvXuuoechLjBHcgKkPCM03Oo4dDSGP/6NMdyw==} 66 | peerDependencies: 67 | css-render: ~0.15.11 68 | dependencies: 69 | css-render: 0.15.11 70 | dev: true 71 | 72 | /@css-render/vue3-ssr/0.15.11_vue@3.2.39: 73 | resolution: {integrity: sha512-n+SuqLPbY30FUTM8slX75OaEG+c8XlTOFrAklekX2XQGvBbz9XdBE6hTEgGlV5kPcTMqTJeCG7Vzhs9/29VC7w==} 74 | peerDependencies: 75 | vue: ^3.0.11 76 | dependencies: 77 | vue: 3.2.39 78 | dev: true 79 | 80 | /@emotion/hash/0.8.0: 81 | resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} 82 | dev: true 83 | 84 | /@esbuild/linux-loong64/0.15.7: 85 | resolution: {integrity: sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==} 86 | engines: {node: '>=12'} 87 | cpu: [loong64] 88 | os: [linux] 89 | requiresBuild: true 90 | dev: true 91 | optional: true 92 | 93 | /@juggle/resize-observer/3.4.0: 94 | resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} 95 | dev: true 96 | 97 | /@nodelib/fs.scandir/2.1.5: 98 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 99 | engines: {node: '>= 8'} 100 | dependencies: 101 | '@nodelib/fs.stat': 2.0.5 102 | run-parallel: 1.2.0 103 | dev: true 104 | 105 | /@nodelib/fs.stat/2.0.5: 106 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 107 | engines: {node: '>= 8'} 108 | dev: true 109 | 110 | /@nodelib/fs.walk/1.2.8: 111 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 112 | engines: {node: '>= 8'} 113 | dependencies: 114 | '@nodelib/fs.scandir': 2.1.5 115 | fastq: 1.13.0 116 | dev: true 117 | 118 | /@rollup/pluginutils/4.2.1: 119 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 120 | engines: {node: '>= 8.0.0'} 121 | dependencies: 122 | estree-walker: 2.0.2 123 | picomatch: 2.3.1 124 | dev: true 125 | 126 | /@trysound/sax/0.2.0: 127 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} 128 | engines: {node: '>=10.13.0'} 129 | dev: true 130 | 131 | /@types/lodash-es/4.17.6: 132 | resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} 133 | dependencies: 134 | '@types/lodash': 4.14.184 135 | dev: true 136 | 137 | /@types/lodash/4.14.184: 138 | resolution: {integrity: sha512-RoZphVtHbxPZizt4IcILciSWiC6dcn+eZ8oX9IWEYfDMcocdd42f7NPI6fQj+6zI8y4E0L7gu2pcZKLGTRaV9Q==} 139 | dev: true 140 | 141 | /@types/node/17.0.45: 142 | resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} 143 | dev: true 144 | 145 | /@types/node/18.7.16: 146 | resolution: {integrity: sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==} 147 | dev: true 148 | 149 | /@types/web-bluetooth/0.0.15: 150 | resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} 151 | dev: false 152 | 153 | /@vitejs/plugin-vue/3.1.0_vite@3.1.0+vue@3.2.39: 154 | resolution: {integrity: sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==} 155 | engines: {node: ^14.18.0 || >=16.0.0} 156 | peerDependencies: 157 | vite: ^3.0.0 158 | vue: ^3.2.25 159 | dependencies: 160 | vite: 3.1.0_sass@1.54.9 161 | vue: 3.2.39 162 | dev: true 163 | 164 | /@volar/code-gen/0.40.13: 165 | resolution: {integrity: sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==} 166 | dependencies: 167 | '@volar/source-map': 0.40.13 168 | dev: true 169 | 170 | /@volar/source-map/0.40.13: 171 | resolution: {integrity: sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==} 172 | dependencies: 173 | '@vue/reactivity': 3.2.38 174 | dev: true 175 | 176 | /@volar/typescript-faster/0.40.13: 177 | resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==} 178 | dependencies: 179 | semver: 7.3.7 180 | dev: true 181 | 182 | /@volar/vue-language-core/0.40.13: 183 | resolution: {integrity: sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==} 184 | dependencies: 185 | '@volar/code-gen': 0.40.13 186 | '@volar/source-map': 0.40.13 187 | '@vue/compiler-core': 3.2.39 188 | '@vue/compiler-dom': 3.2.39 189 | '@vue/compiler-sfc': 3.2.39 190 | '@vue/reactivity': 3.2.39 191 | '@vue/shared': 3.2.39 192 | dev: true 193 | 194 | /@volar/vue-typescript/0.40.13: 195 | resolution: {integrity: sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==} 196 | dependencies: 197 | '@volar/code-gen': 0.40.13 198 | '@volar/typescript-faster': 0.40.13 199 | '@volar/vue-language-core': 0.40.13 200 | dev: true 201 | 202 | /@vue/compiler-core/3.2.39: 203 | resolution: {integrity: sha512-mf/36OWXqWn0wsC40nwRRGheR/qoID+lZXbIuLnr4/AngM0ov8Xvv8GHunC0rKRIkh60bTqydlqTeBo49rlbqw==} 204 | dependencies: 205 | '@babel/parser': 7.19.0 206 | '@vue/shared': 3.2.39 207 | estree-walker: 2.0.2 208 | source-map: 0.6.1 209 | 210 | /@vue/compiler-dom/3.2.39: 211 | resolution: {integrity: sha512-HMFI25Be1C8vLEEv1hgEO1dWwG9QQ8LTTPmCkblVJY/O3OvWx6r1+zsox5mKPMGvqYEZa6l8j+xgOfUspgo7hw==} 212 | dependencies: 213 | '@vue/compiler-core': 3.2.39 214 | '@vue/shared': 3.2.39 215 | 216 | /@vue/compiler-sfc/3.2.39: 217 | resolution: {integrity: sha512-fqAQgFs1/BxTUZkd0Vakn3teKUt//J3c420BgnYgEOoVdTwYpBTSXCMJ88GOBCylmUBbtquGPli9tVs7LzsWIA==} 218 | dependencies: 219 | '@babel/parser': 7.19.0 220 | '@vue/compiler-core': 3.2.39 221 | '@vue/compiler-dom': 3.2.39 222 | '@vue/compiler-ssr': 3.2.39 223 | '@vue/reactivity-transform': 3.2.39 224 | '@vue/shared': 3.2.39 225 | estree-walker: 2.0.2 226 | magic-string: 0.25.9 227 | postcss: 8.4.16 228 | source-map: 0.6.1 229 | 230 | /@vue/compiler-ssr/3.2.39: 231 | resolution: {integrity: sha512-EoGCJ6lincKOZGW+0Ky4WOKsSmqL7hp1ZYgen8M7u/mlvvEQUaO9tKKOy7K43M9U2aA3tPv0TuYYQFrEbK2eFQ==} 232 | dependencies: 233 | '@vue/compiler-dom': 3.2.39 234 | '@vue/shared': 3.2.39 235 | 236 | /@vue/reactivity-transform/3.2.39: 237 | resolution: {integrity: sha512-HGuWu864zStiWs9wBC6JYOP1E00UjMdDWIG5W+FpUx28hV3uz9ODOKVNm/vdOy/Pvzg8+OcANxAVC85WFBbl3A==} 238 | dependencies: 239 | '@babel/parser': 7.19.0 240 | '@vue/compiler-core': 3.2.39 241 | '@vue/shared': 3.2.39 242 | estree-walker: 2.0.2 243 | magic-string: 0.25.9 244 | 245 | /@vue/reactivity/3.2.38: 246 | resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==} 247 | dependencies: 248 | '@vue/shared': 3.2.38 249 | dev: true 250 | 251 | /@vue/reactivity/3.2.39: 252 | resolution: {integrity: sha512-vlaYX2a3qMhIZfrw3Mtfd+BuU+TZmvDrPMa+6lpfzS9k/LnGxkSuf0fhkP0rMGfiOHPtyKoU9OJJJFGm92beVQ==} 253 | dependencies: 254 | '@vue/shared': 3.2.39 255 | 256 | /@vue/runtime-core/3.2.39: 257 | resolution: {integrity: sha512-xKH5XP57JW5JW+8ZG1khBbuLakINTgPuINKL01hStWLTTGFOrM49UfCFXBcFvWmSbci3gmJyLl2EAzCaZWsx8g==} 258 | dependencies: 259 | '@vue/reactivity': 3.2.39 260 | '@vue/shared': 3.2.39 261 | 262 | /@vue/runtime-dom/3.2.39: 263 | resolution: {integrity: sha512-4G9AEJP+sLhsqf5wXcyKVWQKUhI+iWfy0hWQgea+CpaTD7BR0KdQzvoQdZhwCY6B3oleSyNLkLAQwm0ya/wNoA==} 264 | dependencies: 265 | '@vue/runtime-core': 3.2.39 266 | '@vue/shared': 3.2.39 267 | csstype: 2.6.20 268 | 269 | /@vue/server-renderer/3.2.39_vue@3.2.39: 270 | resolution: {integrity: sha512-1yn9u2YBQWIgytFMjz4f/t0j43awKytTGVptfd3FtBk76t1pd8mxbek0G/DrnjJhd2V7mSTb5qgnxMYt8Z5iSQ==} 271 | peerDependencies: 272 | vue: 3.2.39 273 | dependencies: 274 | '@vue/compiler-ssr': 3.2.39 275 | '@vue/shared': 3.2.39 276 | vue: 3.2.39 277 | 278 | /@vue/shared/3.2.38: 279 | resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==} 280 | dev: true 281 | 282 | /@vue/shared/3.2.39: 283 | resolution: {integrity: sha512-D3dl2ZB9qE6mTuWPk9RlhDeP1dgNRUKC3NJxji74A4yL8M2MwlhLKUC/49WHjrNzSPug58fWx/yFbaTzGAQSBw==} 284 | 285 | /@vueuse/components/9.2.0_vue@3.2.39: 286 | resolution: {integrity: sha512-NgQRhq5v1LRZsQq21rJlY8VjEqYg5xWiGErBftY+HaBhHsLAn4PxJxtvbe9uZNdOQlRdWM3UPUF6NO/sWfnyWw==} 287 | dependencies: 288 | '@vueuse/core': 9.2.0_vue@3.2.39 289 | '@vueuse/shared': 9.2.0_vue@3.2.39 290 | vue-demi: 0.13.11_vue@3.2.39 291 | transitivePeerDependencies: 292 | - '@vue/composition-api' 293 | - vue 294 | dev: false 295 | 296 | /@vueuse/core/9.2.0_vue@3.2.39: 297 | resolution: {integrity: sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==} 298 | dependencies: 299 | '@types/web-bluetooth': 0.0.15 300 | '@vueuse/metadata': 9.2.0 301 | '@vueuse/shared': 9.2.0_vue@3.2.39 302 | vue-demi: 0.13.11_vue@3.2.39 303 | transitivePeerDependencies: 304 | - '@vue/composition-api' 305 | - vue 306 | dev: false 307 | 308 | /@vueuse/metadata/9.2.0: 309 | resolution: {integrity: sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==} 310 | dev: false 311 | 312 | /@vueuse/shared/9.2.0_vue@3.2.39: 313 | resolution: {integrity: sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==} 314 | dependencies: 315 | vue-demi: 0.13.11_vue@3.2.39 316 | transitivePeerDependencies: 317 | - '@vue/composition-api' 318 | - vue 319 | dev: false 320 | 321 | /acorn/8.8.0: 322 | resolution: {integrity: sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==} 323 | engines: {node: '>=0.4.0'} 324 | hasBin: true 325 | dev: true 326 | 327 | /anymatch/3.1.2: 328 | resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} 329 | engines: {node: '>= 8'} 330 | dependencies: 331 | normalize-path: 3.0.0 332 | picomatch: 2.3.1 333 | dev: true 334 | 335 | /async-validator/4.2.5: 336 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 337 | dev: true 338 | 339 | /balanced-match/1.0.2: 340 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 341 | dev: true 342 | 343 | /binary-extensions/2.2.0: 344 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 345 | engines: {node: '>=8'} 346 | dev: true 347 | 348 | /boolbase/1.0.0: 349 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 350 | dev: true 351 | 352 | /brace-expansion/2.0.1: 353 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 354 | dependencies: 355 | balanced-match: 1.0.2 356 | dev: true 357 | 358 | /braces/3.0.2: 359 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 360 | engines: {node: '>=8'} 361 | dependencies: 362 | fill-range: 7.0.1 363 | dev: true 364 | 365 | /chokidar/3.5.3: 366 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 367 | engines: {node: '>= 8.10.0'} 368 | dependencies: 369 | anymatch: 3.1.2 370 | braces: 3.0.2 371 | glob-parent: 5.1.2 372 | is-binary-path: 2.1.0 373 | is-glob: 4.0.3 374 | normalize-path: 3.0.0 375 | readdirp: 3.6.0 376 | optionalDependencies: 377 | fsevents: 2.3.2 378 | dev: true 379 | 380 | /commander/7.2.0: 381 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 382 | engines: {node: '>= 10'} 383 | dev: true 384 | 385 | /css-render/0.15.11: 386 | resolution: {integrity: sha512-hnLrHPUndVUTF5nmNPRey6hpixK02IPUGdEsm2xRjvJuewToyrVFx9Nmai8rgfVzhTFo5SJVh2PHAtzaIV8JKw==} 387 | dependencies: 388 | '@emotion/hash': 0.8.0 389 | '@types/node': 17.0.45 390 | csstype: 3.0.11 391 | dev: true 392 | 393 | /css-select/4.3.0: 394 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} 395 | dependencies: 396 | boolbase: 1.0.0 397 | css-what: 6.1.0 398 | domhandler: 4.3.1 399 | domutils: 2.8.0 400 | nth-check: 2.1.1 401 | dev: true 402 | 403 | /css-tree/1.1.3: 404 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} 405 | engines: {node: '>=8.0.0'} 406 | dependencies: 407 | mdn-data: 2.0.14 408 | source-map: 0.6.1 409 | dev: true 410 | 411 | /css-what/6.1.0: 412 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 413 | engines: {node: '>= 6'} 414 | dev: true 415 | 416 | /csso/4.2.0: 417 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} 418 | engines: {node: '>=8.0.0'} 419 | dependencies: 420 | css-tree: 1.1.3 421 | dev: true 422 | 423 | /csstype/2.6.20: 424 | resolution: {integrity: sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==} 425 | 426 | /csstype/3.0.11: 427 | resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} 428 | dev: true 429 | 430 | /date-fns-tz/1.3.7_date-fns@2.29.2: 431 | resolution: {integrity: sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g==} 432 | peerDependencies: 433 | date-fns: '>=2.0.0' 434 | dependencies: 435 | date-fns: 2.29.2 436 | dev: true 437 | 438 | /date-fns/2.29.2: 439 | resolution: {integrity: sha512-0VNbwmWJDS/G3ySwFSJA3ayhbURMTJLtwM2DTxf9CWondCnh6DTNlO9JgRSq6ibf4eD0lfMJNBxUdEAHHix+bA==} 440 | engines: {node: '>=0.11'} 441 | dev: true 442 | 443 | /debug/4.3.4: 444 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 445 | engines: {node: '>=6.0'} 446 | peerDependencies: 447 | supports-color: '*' 448 | peerDependenciesMeta: 449 | supports-color: 450 | optional: true 451 | dependencies: 452 | ms: 2.1.2 453 | dev: true 454 | 455 | /dom-serializer/1.4.1: 456 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 457 | dependencies: 458 | domelementtype: 2.3.0 459 | domhandler: 4.3.1 460 | entities: 2.2.0 461 | dev: true 462 | 463 | /domelementtype/2.3.0: 464 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 465 | dev: true 466 | 467 | /domhandler/4.3.1: 468 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 469 | engines: {node: '>= 4'} 470 | dependencies: 471 | domelementtype: 2.3.0 472 | dev: true 473 | 474 | /domutils/2.8.0: 475 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 476 | dependencies: 477 | dom-serializer: 1.4.1 478 | domelementtype: 2.3.0 479 | domhandler: 4.3.1 480 | dev: true 481 | 482 | /entities/2.2.0: 483 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 484 | dev: true 485 | 486 | /esbuild-android-64/0.15.7: 487 | resolution: {integrity: sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w==} 488 | engines: {node: '>=12'} 489 | cpu: [x64] 490 | os: [android] 491 | requiresBuild: true 492 | dev: true 493 | optional: true 494 | 495 | /esbuild-android-arm64/0.15.7: 496 | resolution: {integrity: sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ==} 497 | engines: {node: '>=12'} 498 | cpu: [arm64] 499 | os: [android] 500 | requiresBuild: true 501 | dev: true 502 | optional: true 503 | 504 | /esbuild-darwin-64/0.15.7: 505 | resolution: {integrity: sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg==} 506 | engines: {node: '>=12'} 507 | cpu: [x64] 508 | os: [darwin] 509 | requiresBuild: true 510 | dev: true 511 | optional: true 512 | 513 | /esbuild-darwin-arm64/0.15.7: 514 | resolution: {integrity: sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ==} 515 | engines: {node: '>=12'} 516 | cpu: [arm64] 517 | os: [darwin] 518 | requiresBuild: true 519 | dev: true 520 | optional: true 521 | 522 | /esbuild-freebsd-64/0.15.7: 523 | resolution: {integrity: sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ==} 524 | engines: {node: '>=12'} 525 | cpu: [x64] 526 | os: [freebsd] 527 | requiresBuild: true 528 | dev: true 529 | optional: true 530 | 531 | /esbuild-freebsd-arm64/0.15.7: 532 | resolution: {integrity: sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q==} 533 | engines: {node: '>=12'} 534 | cpu: [arm64] 535 | os: [freebsd] 536 | requiresBuild: true 537 | dev: true 538 | optional: true 539 | 540 | /esbuild-linux-32/0.15.7: 541 | resolution: {integrity: sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg==} 542 | engines: {node: '>=12'} 543 | cpu: [ia32] 544 | os: [linux] 545 | requiresBuild: true 546 | dev: true 547 | optional: true 548 | 549 | /esbuild-linux-64/0.15.7: 550 | resolution: {integrity: sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ==} 551 | engines: {node: '>=12'} 552 | cpu: [x64] 553 | os: [linux] 554 | requiresBuild: true 555 | dev: true 556 | optional: true 557 | 558 | /esbuild-linux-arm/0.15.7: 559 | resolution: {integrity: sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ==} 560 | engines: {node: '>=12'} 561 | cpu: [arm] 562 | os: [linux] 563 | requiresBuild: true 564 | dev: true 565 | optional: true 566 | 567 | /esbuild-linux-arm64/0.15.7: 568 | resolution: {integrity: sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw==} 569 | engines: {node: '>=12'} 570 | cpu: [arm64] 571 | os: [linux] 572 | requiresBuild: true 573 | dev: true 574 | optional: true 575 | 576 | /esbuild-linux-mips64le/0.15.7: 577 | resolution: {integrity: sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw==} 578 | engines: {node: '>=12'} 579 | cpu: [mips64el] 580 | os: [linux] 581 | requiresBuild: true 582 | dev: true 583 | optional: true 584 | 585 | /esbuild-linux-ppc64le/0.15.7: 586 | resolution: {integrity: sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw==} 587 | engines: {node: '>=12'} 588 | cpu: [ppc64] 589 | os: [linux] 590 | requiresBuild: true 591 | dev: true 592 | optional: true 593 | 594 | /esbuild-linux-riscv64/0.15.7: 595 | resolution: {integrity: sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g==} 596 | engines: {node: '>=12'} 597 | cpu: [riscv64] 598 | os: [linux] 599 | requiresBuild: true 600 | dev: true 601 | optional: true 602 | 603 | /esbuild-linux-s390x/0.15.7: 604 | resolution: {integrity: sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ==} 605 | engines: {node: '>=12'} 606 | cpu: [s390x] 607 | os: [linux] 608 | requiresBuild: true 609 | dev: true 610 | optional: true 611 | 612 | /esbuild-netbsd-64/0.15.7: 613 | resolution: {integrity: sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ==} 614 | engines: {node: '>=12'} 615 | cpu: [x64] 616 | os: [netbsd] 617 | requiresBuild: true 618 | dev: true 619 | optional: true 620 | 621 | /esbuild-openbsd-64/0.15.7: 622 | resolution: {integrity: sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ==} 623 | engines: {node: '>=12'} 624 | cpu: [x64] 625 | os: [openbsd] 626 | requiresBuild: true 627 | dev: true 628 | optional: true 629 | 630 | /esbuild-sunos-64/0.15.7: 631 | resolution: {integrity: sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag==} 632 | engines: {node: '>=12'} 633 | cpu: [x64] 634 | os: [sunos] 635 | requiresBuild: true 636 | dev: true 637 | optional: true 638 | 639 | /esbuild-windows-32/0.15.7: 640 | resolution: {integrity: sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA==} 641 | engines: {node: '>=12'} 642 | cpu: [ia32] 643 | os: [win32] 644 | requiresBuild: true 645 | dev: true 646 | optional: true 647 | 648 | /esbuild-windows-64/0.15.7: 649 | resolution: {integrity: sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q==} 650 | engines: {node: '>=12'} 651 | cpu: [x64] 652 | os: [win32] 653 | requiresBuild: true 654 | dev: true 655 | optional: true 656 | 657 | /esbuild-windows-arm64/0.15.7: 658 | resolution: {integrity: sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw==} 659 | engines: {node: '>=12'} 660 | cpu: [arm64] 661 | os: [win32] 662 | requiresBuild: true 663 | dev: true 664 | optional: true 665 | 666 | /esbuild/0.15.7: 667 | resolution: {integrity: sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw==} 668 | engines: {node: '>=12'} 669 | hasBin: true 670 | requiresBuild: true 671 | optionalDependencies: 672 | '@esbuild/linux-loong64': 0.15.7 673 | esbuild-android-64: 0.15.7 674 | esbuild-android-arm64: 0.15.7 675 | esbuild-darwin-64: 0.15.7 676 | esbuild-darwin-arm64: 0.15.7 677 | esbuild-freebsd-64: 0.15.7 678 | esbuild-freebsd-arm64: 0.15.7 679 | esbuild-linux-32: 0.15.7 680 | esbuild-linux-64: 0.15.7 681 | esbuild-linux-arm: 0.15.7 682 | esbuild-linux-arm64: 0.15.7 683 | esbuild-linux-mips64le: 0.15.7 684 | esbuild-linux-ppc64le: 0.15.7 685 | esbuild-linux-riscv64: 0.15.7 686 | esbuild-linux-s390x: 0.15.7 687 | esbuild-netbsd-64: 0.15.7 688 | esbuild-openbsd-64: 0.15.7 689 | esbuild-sunos-64: 0.15.7 690 | esbuild-windows-32: 0.15.7 691 | esbuild-windows-64: 0.15.7 692 | esbuild-windows-arm64: 0.15.7 693 | dev: true 694 | 695 | /escape-string-regexp/5.0.0: 696 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 697 | engines: {node: '>=12'} 698 | dev: true 699 | 700 | /estree-walker/2.0.2: 701 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 702 | 703 | /evtd/0.2.4: 704 | resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} 705 | dev: true 706 | 707 | /fast-glob/3.2.11: 708 | resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} 709 | engines: {node: '>=8.6.0'} 710 | dependencies: 711 | '@nodelib/fs.stat': 2.0.5 712 | '@nodelib/fs.walk': 1.2.8 713 | glob-parent: 5.1.2 714 | merge2: 1.4.1 715 | micromatch: 4.0.5 716 | dev: true 717 | 718 | /fastq/1.13.0: 719 | resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} 720 | dependencies: 721 | reusify: 1.0.4 722 | dev: true 723 | 724 | /fill-range/7.0.1: 725 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 726 | engines: {node: '>=8'} 727 | dependencies: 728 | to-regex-range: 5.0.1 729 | dev: true 730 | 731 | /fsevents/2.3.2: 732 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 733 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 734 | os: [darwin] 735 | requiresBuild: true 736 | dev: true 737 | optional: true 738 | 739 | /function-bind/1.1.1: 740 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 741 | dev: true 742 | 743 | /glob-parent/5.1.2: 744 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 745 | engines: {node: '>= 6'} 746 | dependencies: 747 | is-glob: 4.0.3 748 | dev: true 749 | 750 | /has/1.0.3: 751 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 752 | engines: {node: '>= 0.4.0'} 753 | dependencies: 754 | function-bind: 1.1.1 755 | dev: true 756 | 757 | /highlight.js/11.6.0: 758 | resolution: {integrity: sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==} 759 | engines: {node: '>=12.0.0'} 760 | dev: true 761 | 762 | /immutable/4.1.0: 763 | resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} 764 | dev: true 765 | 766 | /is-binary-path/2.1.0: 767 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 768 | engines: {node: '>=8'} 769 | dependencies: 770 | binary-extensions: 2.2.0 771 | dev: true 772 | 773 | /is-core-module/2.10.0: 774 | resolution: {integrity: sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==} 775 | dependencies: 776 | has: 1.0.3 777 | dev: true 778 | 779 | /is-extglob/2.1.1: 780 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 781 | engines: {node: '>=0.10.0'} 782 | dev: true 783 | 784 | /is-glob/4.0.3: 785 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 786 | engines: {node: '>=0.10.0'} 787 | dependencies: 788 | is-extglob: 2.1.1 789 | dev: true 790 | 791 | /is-number/7.0.0: 792 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 793 | engines: {node: '>=0.12.0'} 794 | dev: true 795 | 796 | /jsonc-parser/3.2.0: 797 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 798 | dev: true 799 | 800 | /local-pkg/0.4.2: 801 | resolution: {integrity: sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==} 802 | engines: {node: '>=14'} 803 | dev: true 804 | 805 | /lodash-es/4.17.21: 806 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 807 | dev: true 808 | 809 | /lodash/4.17.21: 810 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 811 | dev: true 812 | 813 | /lru-cache/6.0.0: 814 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 815 | engines: {node: '>=10'} 816 | dependencies: 817 | yallist: 4.0.0 818 | dev: true 819 | 820 | /magic-string/0.25.9: 821 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 822 | dependencies: 823 | sourcemap-codec: 1.4.8 824 | 825 | /magic-string/0.26.3: 826 | resolution: {integrity: sha512-u1Po0NDyFcwdg2nzHT88wSK0+Rih0N1M+Ph1Sp08k8yvFFU3KR72wryS7e1qMPJypt99WB7fIFVCA92mQrMjrg==} 827 | engines: {node: '>=12'} 828 | dependencies: 829 | sourcemap-codec: 1.4.8 830 | dev: true 831 | 832 | /mdn-data/2.0.14: 833 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} 834 | dev: true 835 | 836 | /merge2/1.4.1: 837 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 838 | engines: {node: '>= 8'} 839 | dev: true 840 | 841 | /micromatch/4.0.5: 842 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 843 | engines: {node: '>=8.6'} 844 | dependencies: 845 | braces: 3.0.2 846 | picomatch: 2.3.1 847 | dev: true 848 | 849 | /minimatch/5.1.0: 850 | resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==} 851 | engines: {node: '>=10'} 852 | dependencies: 853 | brace-expansion: 2.0.1 854 | dev: true 855 | 856 | /mlly/0.5.14: 857 | resolution: {integrity: sha512-DgRgNUSX9NIxxCxygX4Xeg9C7GX7OUx1wuQ8cXx9o9LE0e9wrH+OZ9fcnrlEedsC/rtqry3ZhUddC759XD/L0w==} 858 | dependencies: 859 | acorn: 8.8.0 860 | pathe: 0.3.7 861 | pkg-types: 0.3.5 862 | ufo: 0.8.5 863 | dev: true 864 | 865 | /ms/2.1.2: 866 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 867 | dev: true 868 | 869 | /naive-ui/2.33.2_vue@3.2.39: 870 | resolution: {integrity: sha512-XT18dOE7dK15xedO9MlrPsD3AXBKncr0lqlsxakHl/DckqOaAbdA7yxDl/qtVTBC+1Rlf29cFP/th7P7DSy5zg==} 871 | peerDependencies: 872 | vue: ^3.0.0 873 | dependencies: 874 | '@css-render/plugin-bem': 0.15.11_css-render@0.15.11 875 | '@css-render/vue3-ssr': 0.15.11_vue@3.2.39 876 | '@types/lodash': 4.14.184 877 | '@types/lodash-es': 4.17.6 878 | async-validator: 4.2.5 879 | css-render: 0.15.11 880 | date-fns: 2.29.2 881 | date-fns-tz: 1.3.7_date-fns@2.29.2 882 | evtd: 0.2.4 883 | highlight.js: 11.6.0 884 | lodash: 4.17.21 885 | lodash-es: 4.17.21 886 | seemly: 0.3.6 887 | treemate: 0.3.11 888 | vdirs: 0.1.8_vue@3.2.39 889 | vooks: 0.2.12_vue@3.2.39 890 | vue: 3.2.39 891 | vueuc: 0.4.48_vue@3.2.39 892 | dev: true 893 | 894 | /nanoid/3.3.4: 895 | resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} 896 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 897 | hasBin: true 898 | 899 | /normalize-path/3.0.0: 900 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 901 | engines: {node: '>=0.10.0'} 902 | dev: true 903 | 904 | /nth-check/2.1.1: 905 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 906 | dependencies: 907 | boolbase: 1.0.0 908 | dev: true 909 | 910 | /path-parse/1.0.7: 911 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 912 | dev: true 913 | 914 | /pathe/0.3.7: 915 | resolution: {integrity: sha512-yz7GK+kSsS27x727jtXpd5VT4dDfP/JDIQmaowfxyWCnFjOWtE1VIh7i6TzcSfzW0n4+bRQztj1VdKnITNq/MA==} 916 | dev: true 917 | 918 | /picocolors/1.0.0: 919 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 920 | 921 | /picomatch/2.3.1: 922 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 923 | engines: {node: '>=8.6'} 924 | dev: true 925 | 926 | /pkg-types/0.3.5: 927 | resolution: {integrity: sha512-VkxCBFVgQhNHYk9subx+HOhZ4jzynH11ah63LZsprTKwPCWG9pfWBlkElWFbvkP9BVR0dP1jS9xPdhaHQNK74Q==} 928 | dependencies: 929 | jsonc-parser: 3.2.0 930 | mlly: 0.5.14 931 | pathe: 0.3.7 932 | dev: true 933 | 934 | /postcss/8.4.16: 935 | resolution: {integrity: sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==} 936 | engines: {node: ^10 || ^12 || >=14} 937 | dependencies: 938 | nanoid: 3.3.4 939 | picocolors: 1.0.0 940 | source-map-js: 1.0.2 941 | 942 | /qrcode.vue/3.3.3_vue@3.2.39: 943 | resolution: {integrity: sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==} 944 | peerDependencies: 945 | vue: ^3.0.0 946 | dependencies: 947 | vue: 3.2.39 948 | dev: false 949 | 950 | /queue-microtask/1.2.3: 951 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 952 | dev: true 953 | 954 | /readdirp/3.6.0: 955 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 956 | engines: {node: '>=8.10.0'} 957 | dependencies: 958 | picomatch: 2.3.1 959 | dev: true 960 | 961 | /resolve/1.22.1: 962 | resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} 963 | hasBin: true 964 | dependencies: 965 | is-core-module: 2.10.0 966 | path-parse: 1.0.7 967 | supports-preserve-symlinks-flag: 1.0.0 968 | dev: true 969 | 970 | /reusify/1.0.4: 971 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 972 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 973 | dev: true 974 | 975 | /rollup/2.78.1: 976 | resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} 977 | engines: {node: '>=10.0.0'} 978 | hasBin: true 979 | optionalDependencies: 980 | fsevents: 2.3.2 981 | dev: true 982 | 983 | /run-parallel/1.2.0: 984 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 985 | dependencies: 986 | queue-microtask: 1.2.3 987 | dev: true 988 | 989 | /sass/1.54.9: 990 | resolution: {integrity: sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==} 991 | engines: {node: '>=12.0.0'} 992 | hasBin: true 993 | dependencies: 994 | chokidar: 3.5.3 995 | immutable: 4.1.0 996 | source-map-js: 1.0.2 997 | dev: true 998 | 999 | /scule/0.3.2: 1000 | resolution: {integrity: sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==} 1001 | dev: true 1002 | 1003 | /seemly/0.3.6: 1004 | resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} 1005 | dev: true 1006 | 1007 | /semver/7.3.7: 1008 | resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==} 1009 | engines: {node: '>=10'} 1010 | hasBin: true 1011 | dependencies: 1012 | lru-cache: 6.0.0 1013 | dev: true 1014 | 1015 | /source-map-js/1.0.2: 1016 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 1017 | engines: {node: '>=0.10.0'} 1018 | 1019 | /source-map/0.6.1: 1020 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1021 | engines: {node: '>=0.10.0'} 1022 | 1023 | /sourcemap-codec/1.4.8: 1024 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 1025 | 1026 | /stable/0.1.8: 1027 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} 1028 | deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' 1029 | dev: true 1030 | 1031 | /strip-literal/0.4.0: 1032 | resolution: {integrity: sha512-ql/sBDoJOybTKSIOWrrh8kgUEMjXMwRAkZTD0EwiwxQH/6tTPkZvMIEjp0CRlpi6V5FMiJyvxeRkEi1KrGISoA==} 1033 | dependencies: 1034 | acorn: 8.8.0 1035 | dev: true 1036 | 1037 | /supports-preserve-symlinks-flag/1.0.0: 1038 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1039 | engines: {node: '>= 0.4'} 1040 | dev: true 1041 | 1042 | /svgo/2.8.0: 1043 | resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} 1044 | engines: {node: '>=10.13.0'} 1045 | hasBin: true 1046 | dependencies: 1047 | '@trysound/sax': 0.2.0 1048 | commander: 7.2.0 1049 | css-select: 4.3.0 1050 | css-tree: 1.1.3 1051 | csso: 4.2.0 1052 | picocolors: 1.0.0 1053 | stable: 0.1.8 1054 | dev: true 1055 | 1056 | /to-fast-properties/2.0.0: 1057 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1058 | engines: {node: '>=4'} 1059 | 1060 | /to-regex-range/5.0.1: 1061 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1062 | engines: {node: '>=8.0'} 1063 | dependencies: 1064 | is-number: 7.0.0 1065 | dev: true 1066 | 1067 | /treemate/0.3.11: 1068 | resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} 1069 | dev: true 1070 | 1071 | /typescript/4.8.3: 1072 | resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==} 1073 | engines: {node: '>=4.2.0'} 1074 | hasBin: true 1075 | dev: true 1076 | 1077 | /ufo/0.8.5: 1078 | resolution: {integrity: sha512-e4+UtA5IRO+ha6hYklwj6r7BjiGMxS0O+UaSg9HbaTefg4kMkzj4tXzEBajRR+wkxf+golgAWKzLbytCUDMJAA==} 1079 | dev: true 1080 | 1081 | /unimport/0.6.7_vite@3.1.0: 1082 | resolution: {integrity: sha512-EMoVqDjswHkU+nD098QYHXH7Mkw7KwGDQAyeRF2lgairJnuO+wpkhIcmCqrD1OPJmsjkTbJ2tW6Ap8St0PuWZA==} 1083 | dependencies: 1084 | '@rollup/pluginutils': 4.2.1 1085 | escape-string-regexp: 5.0.0 1086 | fast-glob: 3.2.11 1087 | local-pkg: 0.4.2 1088 | magic-string: 0.26.3 1089 | mlly: 0.5.14 1090 | pathe: 0.3.7 1091 | scule: 0.3.2 1092 | strip-literal: 0.4.0 1093 | unplugin: 0.9.5_vite@3.1.0 1094 | transitivePeerDependencies: 1095 | - esbuild 1096 | - rollup 1097 | - vite 1098 | - webpack 1099 | dev: true 1100 | 1101 | /unplugin-auto-import/0.11.2_vite@3.1.0: 1102 | resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==} 1103 | engines: {node: '>=14'} 1104 | peerDependencies: 1105 | '@vueuse/core': '*' 1106 | peerDependenciesMeta: 1107 | '@vueuse/core': 1108 | optional: true 1109 | dependencies: 1110 | '@antfu/utils': 0.5.2 1111 | '@rollup/pluginutils': 4.2.1 1112 | local-pkg: 0.4.2 1113 | magic-string: 0.26.3 1114 | unimport: 0.6.7_vite@3.1.0 1115 | unplugin: 0.9.5_vite@3.1.0 1116 | transitivePeerDependencies: 1117 | - esbuild 1118 | - rollup 1119 | - vite 1120 | - webpack 1121 | dev: true 1122 | 1123 | /unplugin-vue-components/0.22.4_vite@3.1.0+vue@3.2.39: 1124 | resolution: {integrity: sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==} 1125 | engines: {node: '>=14'} 1126 | peerDependencies: 1127 | '@babel/parser': ^7.15.8 1128 | vue: 2 || 3 1129 | peerDependenciesMeta: 1130 | '@babel/parser': 1131 | optional: true 1132 | dependencies: 1133 | '@antfu/utils': 0.5.2 1134 | '@rollup/pluginutils': 4.2.1 1135 | chokidar: 3.5.3 1136 | debug: 4.3.4 1137 | fast-glob: 3.2.11 1138 | local-pkg: 0.4.2 1139 | magic-string: 0.26.3 1140 | minimatch: 5.1.0 1141 | resolve: 1.22.1 1142 | unplugin: 0.9.5_vite@3.1.0 1143 | vue: 3.2.39 1144 | transitivePeerDependencies: 1145 | - esbuild 1146 | - rollup 1147 | - supports-color 1148 | - vite 1149 | - webpack 1150 | dev: true 1151 | 1152 | /unplugin/0.9.5_vite@3.1.0: 1153 | resolution: {integrity: sha512-luraheyfxwtvkvHpsOvMNv7IjLdORTWKZp0gWYNHGLi2ImON3iIZOj464qEyyEwLA/EMt12fC415HW9zRpOfTg==} 1154 | peerDependencies: 1155 | esbuild: '>=0.13' 1156 | rollup: ^2.50.0 1157 | vite: ^2.3.0 || ^3.0.0-0 1158 | webpack: 4 || 5 1159 | peerDependenciesMeta: 1160 | esbuild: 1161 | optional: true 1162 | rollup: 1163 | optional: true 1164 | vite: 1165 | optional: true 1166 | webpack: 1167 | optional: true 1168 | dependencies: 1169 | acorn: 8.8.0 1170 | chokidar: 3.5.3 1171 | vite: 3.1.0_sass@1.54.9 1172 | webpack-sources: 3.2.3 1173 | webpack-virtual-modules: 0.4.4 1174 | dev: true 1175 | 1176 | /vdirs/0.1.8_vue@3.2.39: 1177 | resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} 1178 | peerDependencies: 1179 | vue: ^3.0.11 1180 | dependencies: 1181 | evtd: 0.2.4 1182 | vue: 3.2.39 1183 | dev: true 1184 | 1185 | /vite-svg-loader/3.6.0: 1186 | resolution: {integrity: sha512-bZJffcgCREW57kNkgMhuNqeDznWXyQwJ3wKrRhHLMMzwDnP5jr3vXW3cqsmquRR7VTP5mLdKj1/zzPPooGUuPw==} 1187 | dependencies: 1188 | '@vue/compiler-sfc': 3.2.39 1189 | svgo: 2.8.0 1190 | dev: true 1191 | 1192 | /vite/3.1.0_sass@1.54.9: 1193 | resolution: {integrity: sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==} 1194 | engines: {node: ^14.18.0 || >=16.0.0} 1195 | hasBin: true 1196 | peerDependencies: 1197 | less: '*' 1198 | sass: '*' 1199 | stylus: '*' 1200 | terser: ^5.4.0 1201 | peerDependenciesMeta: 1202 | less: 1203 | optional: true 1204 | sass: 1205 | optional: true 1206 | stylus: 1207 | optional: true 1208 | terser: 1209 | optional: true 1210 | dependencies: 1211 | esbuild: 0.15.7 1212 | postcss: 8.4.16 1213 | resolve: 1.22.1 1214 | rollup: 2.78.1 1215 | sass: 1.54.9 1216 | optionalDependencies: 1217 | fsevents: 2.3.2 1218 | dev: true 1219 | 1220 | /vooks/0.2.12_vue@3.2.39: 1221 | resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} 1222 | peerDependencies: 1223 | vue: ^3.0.0 1224 | dependencies: 1225 | evtd: 0.2.4 1226 | vue: 3.2.39 1227 | dev: true 1228 | 1229 | /vue-demi/0.13.11_vue@3.2.39: 1230 | resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} 1231 | engines: {node: '>=12'} 1232 | hasBin: true 1233 | requiresBuild: true 1234 | peerDependencies: 1235 | '@vue/composition-api': ^1.0.0-rc.1 1236 | vue: ^3.0.0-0 || ^2.6.0 1237 | peerDependenciesMeta: 1238 | '@vue/composition-api': 1239 | optional: true 1240 | dependencies: 1241 | vue: 3.2.39 1242 | dev: false 1243 | 1244 | /vue-tsc/0.40.13_typescript@4.8.3: 1245 | resolution: {integrity: sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==} 1246 | hasBin: true 1247 | peerDependencies: 1248 | typescript: '*' 1249 | dependencies: 1250 | '@volar/vue-language-core': 0.40.13 1251 | '@volar/vue-typescript': 0.40.13 1252 | typescript: 4.8.3 1253 | dev: true 1254 | 1255 | /vue/3.2.39: 1256 | resolution: {integrity: sha512-tRkguhRTw9NmIPXhzk21YFBqXHT2t+6C6wPOgQ50fcFVWnPdetmRqbmySRHznrYjX2E47u0cGlKGcxKZJ38R/g==} 1257 | dependencies: 1258 | '@vue/compiler-dom': 3.2.39 1259 | '@vue/compiler-sfc': 3.2.39 1260 | '@vue/runtime-dom': 3.2.39 1261 | '@vue/server-renderer': 3.2.39_vue@3.2.39 1262 | '@vue/shared': 3.2.39 1263 | 1264 | /vueuc/0.4.48_vue@3.2.39: 1265 | resolution: {integrity: sha512-dQTBLxCzfaPuzD3c4/dIxAULtnyY+xwdotCRFUDgf0DJiwuR3tI+txJ9K8uJKmaHwc1JDUVqhRAj9Jd/pvInWg==} 1266 | peerDependencies: 1267 | vue: ^3.0.11 1268 | dependencies: 1269 | '@css-render/vue3-ssr': 0.15.11_vue@3.2.39 1270 | '@juggle/resize-observer': 3.4.0 1271 | css-render: 0.15.11 1272 | evtd: 0.2.4 1273 | seemly: 0.3.6 1274 | vdirs: 0.1.8_vue@3.2.39 1275 | vooks: 0.2.12_vue@3.2.39 1276 | vue: 3.2.39 1277 | dev: true 1278 | 1279 | /webpack-sources/3.2.3: 1280 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1281 | engines: {node: '>=10.13.0'} 1282 | dev: true 1283 | 1284 | /webpack-virtual-modules/0.4.4: 1285 | resolution: {integrity: sha512-h9atBP/bsZohWpHnr+2sic8Iecb60GxftXsWNLLLSqewgIsGzByd2gcIID4nXcG+3tNe4GQG3dLcff3kXupdRA==} 1286 | dev: true 1287 | 1288 | /yallist/4.0.0: 1289 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1290 | dev: true 1291 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | devDependencies: 11 | binaryen: 12 | specifier: ^118.0.0 13 | version: 118.0.0 14 | esbuild: 15 | specifier: ^0.23.0 16 | version: 0.23.0 17 | esno: 18 | specifier: ^0.16.3 19 | version: 0.16.3 20 | 21 | examples/browser: 22 | dependencies: 23 | '@vueuse/components': 24 | specifier: ^9.2.0 25 | version: 9.2.0(vue@3.2.37) 26 | qrcode.vue: 27 | specifier: ^3.3.3 28 | version: 3.3.3(vue@3.2.37) 29 | vue: 30 | specifier: ^3.2.37 31 | version: 3.2.37 32 | devDependencies: 33 | '@types/node': 34 | specifier: ^18.7.16 35 | version: 18.7.16 36 | '@vitejs/plugin-vue': 37 | specifier: ^3.1.0 38 | version: 3.1.0(vite@3.1.0(sass@1.54.9))(vue@3.2.37) 39 | naive-ui: 40 | specifier: ^2.33.2 41 | version: 2.33.2(vue@3.2.37) 42 | sass: 43 | specifier: ^1.54.9 44 | version: 1.54.9 45 | typescript: 46 | specifier: ^4.6.4 47 | version: 4.6.4 48 | unplugin-auto-import: 49 | specifier: ^0.11.2 50 | version: 0.11.2(@vueuse/core@9.2.0(vue@3.2.37)) 51 | unplugin-vue-components: 52 | specifier: ^0.22.4 53 | version: 0.22.4(@babel/parser@7.21.9)(vue@3.2.37) 54 | vite: 55 | specifier: ^3.1.0 56 | version: 3.1.0(sass@1.54.9) 57 | vite-svg-loader: 58 | specifier: ^3.6.0 59 | version: 3.6.0 60 | vue-tsc: 61 | specifier: ^0.40.4 62 | version: 0.40.4(typescript@4.6.4) 63 | 64 | examples/node: 65 | devDependencies: 66 | '@types/node': 67 | specifier: ^20.2.3 68 | version: 20.2.3 69 | 70 | packages/totp-wasm: {} 71 | 72 | packages: 73 | 74 | '@antfu/utils@0.5.2': 75 | resolution: {integrity: sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==} 76 | 77 | '@babel/helper-string-parser@7.21.5': 78 | resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} 79 | engines: {node: '>=6.9.0'} 80 | 81 | '@babel/helper-validator-identifier@7.19.1': 82 | resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} 83 | engines: {node: '>=6.9.0'} 84 | 85 | '@babel/parser@7.21.9': 86 | resolution: {integrity: sha512-q5PNg/Bi1OpGgx5jYlvWZwAorZepEudDMCLtj967aeS7WMont7dUZI46M2XwcIQqvUlMxWfdLFu4S/qSxeUu5g==} 87 | engines: {node: '>=6.0.0'} 88 | hasBin: true 89 | 90 | '@babel/runtime@7.21.5': 91 | resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==} 92 | engines: {node: '>=6.9.0'} 93 | 94 | '@babel/types@7.21.5': 95 | resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} 96 | engines: {node: '>=6.9.0'} 97 | 98 | '@css-render/plugin-bem@0.15.12': 99 | resolution: {integrity: sha512-Lq2jSOZn+wYQtsyaFj6QRz2EzAnd3iW5fZeHO1WSXQdVYwvwGX0ZiH3X2JQgtgYLT1yeGtrwrqJdNdMEUD2xTw==} 100 | peerDependencies: 101 | css-render: ~0.15.12 102 | 103 | '@css-render/vue3-ssr@0.15.12': 104 | resolution: {integrity: sha512-AQLGhhaE0F+rwybRCkKUdzBdTEM/5PZBYy+fSYe1T9z9+yxMuV/k7ZRqa4M69X+EI1W8pa4kc9Iq2VjQkZx4rg==} 105 | peerDependencies: 106 | vue: ^3.0.11 107 | 108 | '@emotion/hash@0.8.0': 109 | resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} 110 | 111 | '@esbuild-kit/cjs-loader@2.4.2': 112 | resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} 113 | 114 | '@esbuild-kit/core-utils@3.1.0': 115 | resolution: {integrity: sha512-Uuk8RpCg/7fdHSceR1M6XbSZFSuMrxcePFuGgyvsBn+u339dk5OeL4jv2EojwTN2st/unJGsVm4qHWjWNmJ/tw==} 116 | 117 | '@esbuild-kit/esm-loader@2.5.5': 118 | resolution: {integrity: sha512-Qwfvj/qoPbClxCRNuac1Du01r9gvNOT+pMYtJDapfB1eoGN1YlJ1BixLyL9WVENRx5RXgNLdfYdx/CuswlGhMw==} 119 | 120 | '@esbuild/aix-ppc64@0.23.0': 121 | resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} 122 | engines: {node: '>=18'} 123 | cpu: [ppc64] 124 | os: [aix] 125 | 126 | '@esbuild/android-arm64@0.17.19': 127 | resolution: {integrity: sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==} 128 | engines: {node: '>=12'} 129 | cpu: [arm64] 130 | os: [android] 131 | 132 | '@esbuild/android-arm64@0.23.0': 133 | resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} 134 | engines: {node: '>=18'} 135 | cpu: [arm64] 136 | os: [android] 137 | 138 | '@esbuild/android-arm@0.15.18': 139 | resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} 140 | engines: {node: '>=12'} 141 | cpu: [arm] 142 | os: [android] 143 | 144 | '@esbuild/android-arm@0.17.19': 145 | resolution: {integrity: sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==} 146 | engines: {node: '>=12'} 147 | cpu: [arm] 148 | os: [android] 149 | 150 | '@esbuild/android-arm@0.23.0': 151 | resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} 152 | engines: {node: '>=18'} 153 | cpu: [arm] 154 | os: [android] 155 | 156 | '@esbuild/android-x64@0.17.19': 157 | resolution: {integrity: sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==} 158 | engines: {node: '>=12'} 159 | cpu: [x64] 160 | os: [android] 161 | 162 | '@esbuild/android-x64@0.23.0': 163 | resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} 164 | engines: {node: '>=18'} 165 | cpu: [x64] 166 | os: [android] 167 | 168 | '@esbuild/darwin-arm64@0.17.19': 169 | resolution: {integrity: sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==} 170 | engines: {node: '>=12'} 171 | cpu: [arm64] 172 | os: [darwin] 173 | 174 | '@esbuild/darwin-arm64@0.23.0': 175 | resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} 176 | engines: {node: '>=18'} 177 | cpu: [arm64] 178 | os: [darwin] 179 | 180 | '@esbuild/darwin-x64@0.17.19': 181 | resolution: {integrity: sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==} 182 | engines: {node: '>=12'} 183 | cpu: [x64] 184 | os: [darwin] 185 | 186 | '@esbuild/darwin-x64@0.23.0': 187 | resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} 188 | engines: {node: '>=18'} 189 | cpu: [x64] 190 | os: [darwin] 191 | 192 | '@esbuild/freebsd-arm64@0.17.19': 193 | resolution: {integrity: sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==} 194 | engines: {node: '>=12'} 195 | cpu: [arm64] 196 | os: [freebsd] 197 | 198 | '@esbuild/freebsd-arm64@0.23.0': 199 | resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} 200 | engines: {node: '>=18'} 201 | cpu: [arm64] 202 | os: [freebsd] 203 | 204 | '@esbuild/freebsd-x64@0.17.19': 205 | resolution: {integrity: sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==} 206 | engines: {node: '>=12'} 207 | cpu: [x64] 208 | os: [freebsd] 209 | 210 | '@esbuild/freebsd-x64@0.23.0': 211 | resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} 212 | engines: {node: '>=18'} 213 | cpu: [x64] 214 | os: [freebsd] 215 | 216 | '@esbuild/linux-arm64@0.17.19': 217 | resolution: {integrity: sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==} 218 | engines: {node: '>=12'} 219 | cpu: [arm64] 220 | os: [linux] 221 | 222 | '@esbuild/linux-arm64@0.23.0': 223 | resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} 224 | engines: {node: '>=18'} 225 | cpu: [arm64] 226 | os: [linux] 227 | 228 | '@esbuild/linux-arm@0.17.19': 229 | resolution: {integrity: sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==} 230 | engines: {node: '>=12'} 231 | cpu: [arm] 232 | os: [linux] 233 | 234 | '@esbuild/linux-arm@0.23.0': 235 | resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} 236 | engines: {node: '>=18'} 237 | cpu: [arm] 238 | os: [linux] 239 | 240 | '@esbuild/linux-ia32@0.17.19': 241 | resolution: {integrity: sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==} 242 | engines: {node: '>=12'} 243 | cpu: [ia32] 244 | os: [linux] 245 | 246 | '@esbuild/linux-ia32@0.23.0': 247 | resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} 248 | engines: {node: '>=18'} 249 | cpu: [ia32] 250 | os: [linux] 251 | 252 | '@esbuild/linux-loong64@0.15.18': 253 | resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} 254 | engines: {node: '>=12'} 255 | cpu: [loong64] 256 | os: [linux] 257 | 258 | '@esbuild/linux-loong64@0.17.19': 259 | resolution: {integrity: sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==} 260 | engines: {node: '>=12'} 261 | cpu: [loong64] 262 | os: [linux] 263 | 264 | '@esbuild/linux-loong64@0.23.0': 265 | resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} 266 | engines: {node: '>=18'} 267 | cpu: [loong64] 268 | os: [linux] 269 | 270 | '@esbuild/linux-mips64el@0.17.19': 271 | resolution: {integrity: sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==} 272 | engines: {node: '>=12'} 273 | cpu: [mips64el] 274 | os: [linux] 275 | 276 | '@esbuild/linux-mips64el@0.23.0': 277 | resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} 278 | engines: {node: '>=18'} 279 | cpu: [mips64el] 280 | os: [linux] 281 | 282 | '@esbuild/linux-ppc64@0.17.19': 283 | resolution: {integrity: sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==} 284 | engines: {node: '>=12'} 285 | cpu: [ppc64] 286 | os: [linux] 287 | 288 | '@esbuild/linux-ppc64@0.23.0': 289 | resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} 290 | engines: {node: '>=18'} 291 | cpu: [ppc64] 292 | os: [linux] 293 | 294 | '@esbuild/linux-riscv64@0.17.19': 295 | resolution: {integrity: sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==} 296 | engines: {node: '>=12'} 297 | cpu: [riscv64] 298 | os: [linux] 299 | 300 | '@esbuild/linux-riscv64@0.23.0': 301 | resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} 302 | engines: {node: '>=18'} 303 | cpu: [riscv64] 304 | os: [linux] 305 | 306 | '@esbuild/linux-s390x@0.17.19': 307 | resolution: {integrity: sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==} 308 | engines: {node: '>=12'} 309 | cpu: [s390x] 310 | os: [linux] 311 | 312 | '@esbuild/linux-s390x@0.23.0': 313 | resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} 314 | engines: {node: '>=18'} 315 | cpu: [s390x] 316 | os: [linux] 317 | 318 | '@esbuild/linux-x64@0.17.19': 319 | resolution: {integrity: sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==} 320 | engines: {node: '>=12'} 321 | cpu: [x64] 322 | os: [linux] 323 | 324 | '@esbuild/linux-x64@0.23.0': 325 | resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} 326 | engines: {node: '>=18'} 327 | cpu: [x64] 328 | os: [linux] 329 | 330 | '@esbuild/netbsd-x64@0.17.19': 331 | resolution: {integrity: sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==} 332 | engines: {node: '>=12'} 333 | cpu: [x64] 334 | os: [netbsd] 335 | 336 | '@esbuild/netbsd-x64@0.23.0': 337 | resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} 338 | engines: {node: '>=18'} 339 | cpu: [x64] 340 | os: [netbsd] 341 | 342 | '@esbuild/openbsd-arm64@0.23.0': 343 | resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} 344 | engines: {node: '>=18'} 345 | cpu: [arm64] 346 | os: [openbsd] 347 | 348 | '@esbuild/openbsd-x64@0.17.19': 349 | resolution: {integrity: sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==} 350 | engines: {node: '>=12'} 351 | cpu: [x64] 352 | os: [openbsd] 353 | 354 | '@esbuild/openbsd-x64@0.23.0': 355 | resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} 356 | engines: {node: '>=18'} 357 | cpu: [x64] 358 | os: [openbsd] 359 | 360 | '@esbuild/sunos-x64@0.17.19': 361 | resolution: {integrity: sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==} 362 | engines: {node: '>=12'} 363 | cpu: [x64] 364 | os: [sunos] 365 | 366 | '@esbuild/sunos-x64@0.23.0': 367 | resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} 368 | engines: {node: '>=18'} 369 | cpu: [x64] 370 | os: [sunos] 371 | 372 | '@esbuild/win32-arm64@0.17.19': 373 | resolution: {integrity: sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==} 374 | engines: {node: '>=12'} 375 | cpu: [arm64] 376 | os: [win32] 377 | 378 | '@esbuild/win32-arm64@0.23.0': 379 | resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} 380 | engines: {node: '>=18'} 381 | cpu: [arm64] 382 | os: [win32] 383 | 384 | '@esbuild/win32-ia32@0.17.19': 385 | resolution: {integrity: sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==} 386 | engines: {node: '>=12'} 387 | cpu: [ia32] 388 | os: [win32] 389 | 390 | '@esbuild/win32-ia32@0.23.0': 391 | resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} 392 | engines: {node: '>=18'} 393 | cpu: [ia32] 394 | os: [win32] 395 | 396 | '@esbuild/win32-x64@0.17.19': 397 | resolution: {integrity: sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==} 398 | engines: {node: '>=12'} 399 | cpu: [x64] 400 | os: [win32] 401 | 402 | '@esbuild/win32-x64@0.23.0': 403 | resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} 404 | engines: {node: '>=18'} 405 | cpu: [x64] 406 | os: [win32] 407 | 408 | '@jridgewell/sourcemap-codec@1.4.15': 409 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 410 | 411 | '@juggle/resize-observer@3.4.0': 412 | resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} 413 | 414 | '@nodelib/fs.scandir@2.1.5': 415 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 416 | engines: {node: '>= 8'} 417 | 418 | '@nodelib/fs.stat@2.0.5': 419 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 420 | engines: {node: '>= 8'} 421 | 422 | '@nodelib/fs.walk@1.2.8': 423 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 424 | engines: {node: '>= 8'} 425 | 426 | '@rollup/pluginutils@4.2.1': 427 | resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} 428 | engines: {node: '>= 8.0.0'} 429 | 430 | '@trysound/sax@0.2.0': 431 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} 432 | engines: {node: '>=10.13.0'} 433 | 434 | '@types/lodash-es@4.17.7': 435 | resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==} 436 | 437 | '@types/lodash@4.14.194': 438 | resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==} 439 | 440 | '@types/node@18.7.16': 441 | resolution: {integrity: sha512-EQHhixfu+mkqHMZl1R2Ovuvn47PUw18azMJOTwSZr9/fhzHNGXAJ0ma0dayRVchprpCj0Kc1K1xKoWaATWF1qg==} 442 | 443 | '@types/node@20.2.3': 444 | resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==} 445 | 446 | '@types/web-bluetooth@0.0.15': 447 | resolution: {integrity: sha512-w7hEHXnPMEZ+4nGKl/KDRVpxkwYxYExuHOYXyzIzCDzEZ9ZCGMAewulr9IqJu2LR4N37fcnb1XVeuZ09qgOxhA==} 448 | 449 | '@vitejs/plugin-vue@3.1.0': 450 | resolution: {integrity: sha512-fmxtHPjSOEIRg6vHYDaem+97iwCUg/uSIaTzp98lhELt2ISOQuDo2hbkBdXod0g15IhfPMQmAxh4heUks2zvDA==} 451 | engines: {node: ^14.18.0 || >=16.0.0} 452 | peerDependencies: 453 | vite: ^3.0.0 454 | vue: ^3.2.25 455 | 456 | '@volar/code-gen@0.40.4': 457 | resolution: {integrity: sha512-APTt9DWgMejaSCxaoqqhSODALFOgkMWJ72PbB7NAb7eiYhfB4//RkExLfSJgZEXijJmWIpPsKGENoCDlr0cLZA==} 458 | 459 | '@volar/source-map@0.40.4': 460 | resolution: {integrity: sha512-urODM9J7SH8Xcj5DU6SxvL0TQV8H/HsMZ+Y9fSNQqlYJw2vRzSTYQP/wJuY3xAkE8oWBh4EubJ5pyx8ghARuBg==} 461 | 462 | '@volar/typescript-faster@0.40.4': 463 | resolution: {integrity: sha512-xmuaHNRC0rgvJ5yMDRTjpmqNts4XSU2rOUDt8+slYz2InAK8gzn1qdD2rpzc51oip0RiqJ8XXQKpjDhOwodhog==} 464 | 465 | '@volar/vue-language-core@0.40.4': 466 | resolution: {integrity: sha512-NCWTmUruEOeOOcgjsUbrSN4mmBLFeWdFIA3lzTnrlGQ+93WryW8M6wyaSLCTsL9hjRmSHOJjvp67w8AAsskEJw==} 467 | 468 | '@volar/vue-typescript@0.40.4': 469 | resolution: {integrity: sha512-2ZnmEtRHDv5rqzqM7qr1pAZmaBHkMW6mfpEzW0uchRP3QHhZ3XhNv45B+uVgmwCCJH8Ke7H0nL6yVcpwC/TiDw==} 470 | deprecated: 'WARNING: This project has been renamed to @vue/typescript. Install using @vue/typescript instead.' 471 | 472 | '@vue/compiler-core@3.2.37': 473 | resolution: {integrity: sha512-81KhEjo7YAOh0vQJoSmAD68wLfYqJvoiD4ulyedzF+OEk/bk6/hx3fTNVfuzugIIaTrOx4PGx6pAiBRe5e9Zmg==} 474 | 475 | '@vue/compiler-core@3.3.4': 476 | resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==} 477 | 478 | '@vue/compiler-dom@3.2.37': 479 | resolution: {integrity: sha512-yxJLH167fucHKxaqXpYk7x8z7mMEnXOw3G2q62FTkmsvNxu4FQSu5+3UMb+L7fjKa26DEzhrmCxAgFLLIzVfqQ==} 480 | 481 | '@vue/compiler-dom@3.3.4': 482 | resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==} 483 | 484 | '@vue/compiler-sfc@3.2.37': 485 | resolution: {integrity: sha512-+7i/2+9LYlpqDv+KTtWhOZH+pa8/HnX/905MdVmAcI/mPQOBwkHHIzrsEsucyOIZQYMkXUiTkmZq5am/NyXKkg==} 486 | 487 | '@vue/compiler-sfc@3.3.4': 488 | resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==} 489 | 490 | '@vue/compiler-ssr@3.2.37': 491 | resolution: {integrity: sha512-7mQJD7HdXxQjktmsWp/J67lThEIcxLemz1Vb5I6rYJHR5vI+lON3nPGOH3ubmbvYGt8xEUaAr1j7/tIFWiEOqw==} 492 | 493 | '@vue/compiler-ssr@3.3.4': 494 | resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==} 495 | 496 | '@vue/reactivity-transform@3.2.37': 497 | resolution: {integrity: sha512-IWopkKEb+8qpu/1eMKVeXrK0NLw9HicGviJzhJDEyfxTR9e1WtpnnbYkJWurX6WwoFP0sz10xQg8yL8lgskAZg==} 498 | 499 | '@vue/reactivity-transform@3.3.4': 500 | resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==} 501 | 502 | '@vue/reactivity@3.2.37': 503 | resolution: {integrity: sha512-/7WRafBOshOc6m3F7plwzPeCu/RCVv9uMpOwa/5PiY1Zz+WLVRWiy0MYKwmg19KBdGtFWsmZ4cD+LOdVPcs52A==} 504 | 505 | '@vue/reactivity@3.3.4': 506 | resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==} 507 | 508 | '@vue/runtime-core@3.2.37': 509 | resolution: {integrity: sha512-JPcd9kFyEdXLl/i0ClS7lwgcs0QpUAWj+SKX2ZC3ANKi1U4DOtiEr6cRqFXsPwY5u1L9fAjkinIdB8Rz3FoYNQ==} 510 | 511 | '@vue/runtime-dom@3.2.37': 512 | resolution: {integrity: sha512-HimKdh9BepShW6YozwRKAYjYQWg9mQn63RGEiSswMbW+ssIht1MILYlVGkAGGQbkhSh31PCdoUcfiu4apXJoPw==} 513 | 514 | '@vue/server-renderer@3.2.37': 515 | resolution: {integrity: sha512-kLITEJvaYgZQ2h47hIzPh2K3jG8c1zCVbp/o/bzQOyvzaKiCquKS7AaioPI28GNxIsE/zSx+EwWYsNxDCX95MA==} 516 | peerDependencies: 517 | vue: 3.2.37 518 | 519 | '@vue/shared@3.2.37': 520 | resolution: {integrity: sha512-4rSJemR2NQIo9Klm1vabqWjD8rs/ZaJSzMxkMNeJS6lHiUjjUeYFbooN19NgFjztubEKh3WlZUeOLVdbbUWHsw==} 521 | 522 | '@vue/shared@3.3.4': 523 | resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==} 524 | 525 | '@vueuse/components@9.2.0': 526 | resolution: {integrity: sha512-NgQRhq5v1LRZsQq21rJlY8VjEqYg5xWiGErBftY+HaBhHsLAn4PxJxtvbe9uZNdOQlRdWM3UPUF6NO/sWfnyWw==} 527 | 528 | '@vueuse/core@9.2.0': 529 | resolution: {integrity: sha512-/MZ6qpz6uSyaXrtoeBWQzAKRG3N7CvfVWvQxiM3ei3Xe5ydOjjtVbo7lGl9p8dECV93j7W8s63A8H0kFLpLyxg==} 530 | 531 | '@vueuse/metadata@9.2.0': 532 | resolution: {integrity: sha512-exN4KE6iquxDCdt72BgEhb3tlOpECtD61AUdXnUqBTIUCl70x1Ar/QXo3bYcvxmdMS2/peQyfeTzBjRTpvL5xw==} 533 | 534 | '@vueuse/shared@9.2.0': 535 | resolution: {integrity: sha512-NnRp/noSWuXW0dKhZK5D0YLrDi0nmZ18UeEgwXQq7Ul5TTP93lcNnKjrHtd68j2xFB/l59yPGFlCryL692bnrA==} 536 | 537 | acorn@8.8.2: 538 | resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} 539 | engines: {node: '>=0.4.0'} 540 | hasBin: true 541 | 542 | anymatch@3.1.3: 543 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 544 | engines: {node: '>= 8'} 545 | 546 | async-validator@4.2.5: 547 | resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} 548 | 549 | balanced-match@1.0.2: 550 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 551 | 552 | binary-extensions@2.2.0: 553 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 554 | engines: {node: '>=8'} 555 | 556 | binaryen@118.0.0: 557 | resolution: {integrity: sha512-KzekjPjpLE1zk29BKQSHNWLSHPYAfa80lcsIi5bDnev8vyfDyiMCVFPjaplhfXIKs7LI3r1RPyhoAj4qsRQwwg==} 558 | hasBin: true 559 | 560 | boolbase@1.0.0: 561 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 562 | 563 | brace-expansion@2.0.1: 564 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 565 | 566 | braces@3.0.2: 567 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 568 | engines: {node: '>=8'} 569 | 570 | buffer-from@1.1.2: 571 | resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} 572 | 573 | chokidar@3.5.3: 574 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 575 | engines: {node: '>= 8.10.0'} 576 | 577 | commander@7.2.0: 578 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 579 | engines: {node: '>= 10'} 580 | 581 | css-render@0.15.12: 582 | resolution: {integrity: sha512-eWzS66patiGkTTik+ipO9qNGZ+uNuGyTmnz6/+EJIiFg8+3yZRpnMwgFo8YdXhQRsiePzehnusrxVvugNjXzbw==} 583 | 584 | css-select@4.3.0: 585 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} 586 | 587 | css-tree@1.1.3: 588 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} 589 | engines: {node: '>=8.0.0'} 590 | 591 | css-what@6.1.0: 592 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 593 | engines: {node: '>= 6'} 594 | 595 | csso@4.2.0: 596 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} 597 | engines: {node: '>=8.0.0'} 598 | 599 | csstype@2.6.21: 600 | resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==} 601 | 602 | csstype@3.0.11: 603 | resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} 604 | 605 | date-fns-tz@1.3.8: 606 | resolution: {integrity: sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==} 607 | peerDependencies: 608 | date-fns: '>=2.0.0' 609 | 610 | date-fns@2.30.0: 611 | resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==} 612 | engines: {node: '>=0.11'} 613 | 614 | debug@4.3.4: 615 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 616 | engines: {node: '>=6.0'} 617 | peerDependencies: 618 | supports-color: '*' 619 | peerDependenciesMeta: 620 | supports-color: 621 | optional: true 622 | 623 | dom-serializer@1.4.1: 624 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 625 | 626 | domelementtype@2.3.0: 627 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 628 | 629 | domhandler@4.3.1: 630 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 631 | engines: {node: '>= 4'} 632 | 633 | domutils@2.8.0: 634 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 635 | 636 | entities@2.2.0: 637 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 638 | 639 | esbuild-android-64@0.15.18: 640 | resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} 641 | engines: {node: '>=12'} 642 | cpu: [x64] 643 | os: [android] 644 | 645 | esbuild-android-arm64@0.15.18: 646 | resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} 647 | engines: {node: '>=12'} 648 | cpu: [arm64] 649 | os: [android] 650 | 651 | esbuild-darwin-64@0.15.18: 652 | resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} 653 | engines: {node: '>=12'} 654 | cpu: [x64] 655 | os: [darwin] 656 | 657 | esbuild-darwin-arm64@0.15.18: 658 | resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} 659 | engines: {node: '>=12'} 660 | cpu: [arm64] 661 | os: [darwin] 662 | 663 | esbuild-freebsd-64@0.15.18: 664 | resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} 665 | engines: {node: '>=12'} 666 | cpu: [x64] 667 | os: [freebsd] 668 | 669 | esbuild-freebsd-arm64@0.15.18: 670 | resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} 671 | engines: {node: '>=12'} 672 | cpu: [arm64] 673 | os: [freebsd] 674 | 675 | esbuild-linux-32@0.15.18: 676 | resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} 677 | engines: {node: '>=12'} 678 | cpu: [ia32] 679 | os: [linux] 680 | 681 | esbuild-linux-64@0.15.18: 682 | resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} 683 | engines: {node: '>=12'} 684 | cpu: [x64] 685 | os: [linux] 686 | 687 | esbuild-linux-arm64@0.15.18: 688 | resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} 689 | engines: {node: '>=12'} 690 | cpu: [arm64] 691 | os: [linux] 692 | 693 | esbuild-linux-arm@0.15.18: 694 | resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} 695 | engines: {node: '>=12'} 696 | cpu: [arm] 697 | os: [linux] 698 | 699 | esbuild-linux-mips64le@0.15.18: 700 | resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} 701 | engines: {node: '>=12'} 702 | cpu: [mips64el] 703 | os: [linux] 704 | 705 | esbuild-linux-ppc64le@0.15.18: 706 | resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} 707 | engines: {node: '>=12'} 708 | cpu: [ppc64] 709 | os: [linux] 710 | 711 | esbuild-linux-riscv64@0.15.18: 712 | resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} 713 | engines: {node: '>=12'} 714 | cpu: [riscv64] 715 | os: [linux] 716 | 717 | esbuild-linux-s390x@0.15.18: 718 | resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} 719 | engines: {node: '>=12'} 720 | cpu: [s390x] 721 | os: [linux] 722 | 723 | esbuild-netbsd-64@0.15.18: 724 | resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} 725 | engines: {node: '>=12'} 726 | cpu: [x64] 727 | os: [netbsd] 728 | 729 | esbuild-openbsd-64@0.15.18: 730 | resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} 731 | engines: {node: '>=12'} 732 | cpu: [x64] 733 | os: [openbsd] 734 | 735 | esbuild-sunos-64@0.15.18: 736 | resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} 737 | engines: {node: '>=12'} 738 | cpu: [x64] 739 | os: [sunos] 740 | 741 | esbuild-windows-32@0.15.18: 742 | resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} 743 | engines: {node: '>=12'} 744 | cpu: [ia32] 745 | os: [win32] 746 | 747 | esbuild-windows-64@0.15.18: 748 | resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} 749 | engines: {node: '>=12'} 750 | cpu: [x64] 751 | os: [win32] 752 | 753 | esbuild-windows-arm64@0.15.18: 754 | resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} 755 | engines: {node: '>=12'} 756 | cpu: [arm64] 757 | os: [win32] 758 | 759 | esbuild@0.15.18: 760 | resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} 761 | engines: {node: '>=12'} 762 | hasBin: true 763 | 764 | esbuild@0.17.19: 765 | resolution: {integrity: sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==} 766 | engines: {node: '>=12'} 767 | hasBin: true 768 | 769 | esbuild@0.23.0: 770 | resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} 771 | engines: {node: '>=18'} 772 | hasBin: true 773 | 774 | escape-string-regexp@5.0.0: 775 | resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} 776 | engines: {node: '>=12'} 777 | 778 | esno@0.16.3: 779 | resolution: {integrity: sha512-6slSBEV1lMKcX13DBifvnDFpNno5WXhw4j/ff7RI0y51BZiDqEe5dNhhjhIQ3iCOQuzsm2MbVzmwqbN78BBhPg==} 780 | hasBin: true 781 | 782 | estree-walker@2.0.2: 783 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 784 | 785 | evtd@0.2.4: 786 | resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==} 787 | 788 | fast-glob@3.2.12: 789 | resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} 790 | engines: {node: '>=8.6.0'} 791 | 792 | fastq@1.15.0: 793 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 794 | 795 | fill-range@7.0.1: 796 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 797 | engines: {node: '>=8'} 798 | 799 | fsevents@2.3.2: 800 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 801 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 802 | os: [darwin] 803 | 804 | function-bind@1.1.1: 805 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 806 | 807 | get-tsconfig@4.5.0: 808 | resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} 809 | 810 | glob-parent@5.1.2: 811 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 812 | engines: {node: '>= 6'} 813 | 814 | has@1.0.3: 815 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 816 | engines: {node: '>= 0.4.0'} 817 | 818 | highlight.js@11.8.0: 819 | resolution: {integrity: sha512-MedQhoqVdr0U6SSnWPzfiadUcDHfN/Wzq25AkXiQv9oiOO/sG0S7XkvpFIqWBl9Yq1UYyYOOVORs5UW2XlPyzg==} 820 | engines: {node: '>=12.0.0'} 821 | 822 | immutable@4.3.0: 823 | resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==} 824 | 825 | is-binary-path@2.1.0: 826 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 827 | engines: {node: '>=8'} 828 | 829 | is-core-module@2.12.1: 830 | resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} 831 | 832 | is-extglob@2.1.1: 833 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 834 | engines: {node: '>=0.10.0'} 835 | 836 | is-glob@4.0.3: 837 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 838 | engines: {node: '>=0.10.0'} 839 | 840 | is-number@7.0.0: 841 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 842 | engines: {node: '>=0.12.0'} 843 | 844 | jsonc-parser@3.2.0: 845 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 846 | 847 | local-pkg@0.4.3: 848 | resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} 849 | engines: {node: '>=14'} 850 | 851 | lodash-es@4.17.21: 852 | resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} 853 | 854 | lodash@4.17.21: 855 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 856 | 857 | lru-cache@6.0.0: 858 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 859 | engines: {node: '>=10'} 860 | 861 | magic-string@0.25.9: 862 | resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} 863 | 864 | magic-string@0.26.7: 865 | resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==} 866 | engines: {node: '>=12'} 867 | 868 | magic-string@0.30.0: 869 | resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==} 870 | engines: {node: '>=12'} 871 | 872 | mdn-data@2.0.14: 873 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} 874 | 875 | merge2@1.4.1: 876 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 877 | engines: {node: '>= 8'} 878 | 879 | micromatch@4.0.5: 880 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 881 | engines: {node: '>=8.6'} 882 | 883 | minimatch@5.1.6: 884 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 885 | engines: {node: '>=10'} 886 | 887 | mlly@0.5.17: 888 | resolution: {integrity: sha512-Rn+ai4G+CQXptDFSRNnChEgNr+xAEauYhwRvpPl/UHStTlgkIftplgJRsA2OXPuoUn86K4XAjB26+x5CEvVb6A==} 889 | 890 | mlly@1.3.0: 891 | resolution: {integrity: sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==} 892 | 893 | ms@2.1.2: 894 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 895 | 896 | naive-ui@2.33.2: 897 | resolution: {integrity: sha512-XT18dOE7dK15xedO9MlrPsD3AXBKncr0lqlsxakHl/DckqOaAbdA7yxDl/qtVTBC+1Rlf29cFP/th7P7DSy5zg==} 898 | peerDependencies: 899 | vue: ^3.0.0 900 | 901 | nanoid@3.3.6: 902 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 903 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 904 | hasBin: true 905 | 906 | normalize-path@3.0.0: 907 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 908 | engines: {node: '>=0.10.0'} 909 | 910 | nth-check@2.1.1: 911 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 912 | 913 | path-parse@1.0.7: 914 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 915 | 916 | pathe@0.3.9: 917 | resolution: {integrity: sha512-6Y6s0vT112P3jD8dGfuS6r+lpa0qqNrLyHPOwvXMnyNTQaYiwgau2DP3aNDsR13xqtGj7rrPo+jFUATpU6/s+g==} 918 | 919 | pathe@1.1.0: 920 | resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} 921 | 922 | picocolors@1.0.0: 923 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 924 | 925 | picomatch@2.3.1: 926 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 927 | engines: {node: '>=8.6'} 928 | 929 | pkg-types@1.0.3: 930 | resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} 931 | 932 | postcss@8.4.23: 933 | resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} 934 | engines: {node: ^10 || ^12 || >=14} 935 | 936 | qrcode.vue@3.3.3: 937 | resolution: {integrity: sha512-OsD4tQjIbxg/K6D5ZkWjBdYI9eg9K2i8qeYILdEAX5mdAydSAxV7xKmmZSP/hA12olLqEMZ9ryqDQrwa9jEMgw==} 938 | peerDependencies: 939 | vue: ^3.0.0 940 | 941 | queue-microtask@1.2.3: 942 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 943 | 944 | readdirp@3.6.0: 945 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 946 | engines: {node: '>=8.10.0'} 947 | 948 | regenerator-runtime@0.13.11: 949 | resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} 950 | 951 | resolve@1.22.2: 952 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 953 | hasBin: true 954 | 955 | reusify@1.0.4: 956 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 957 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 958 | 959 | rollup@2.78.1: 960 | resolution: {integrity: sha512-VeeCgtGi4P+o9hIg+xz4qQpRl6R401LWEXBmxYKOV4zlF82lyhgh2hTZnheFUbANE8l2A41F458iwj2vEYaXJg==} 961 | engines: {node: '>=10.0.0'} 962 | hasBin: true 963 | 964 | run-parallel@1.2.0: 965 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 966 | 967 | sass@1.54.9: 968 | resolution: {integrity: sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==} 969 | engines: {node: '>=12.0.0'} 970 | hasBin: true 971 | 972 | scule@0.3.2: 973 | resolution: {integrity: sha512-zIvPdjOH8fv8CgrPT5eqtxHQXmPNnV/vHJYffZhE43KZkvULvpCTvOt1HPlFaCZx287INL9qaqrZg34e8NgI4g==} 974 | 975 | seemly@0.3.6: 976 | resolution: {integrity: sha512-lEV5VB8BUKTo/AfktXJcy+JeXns26ylbMkIUco8CYREsQijuz4mrXres2Q+vMLdwkuLxJdIPQ8IlCIxLYm71Yw==} 977 | 978 | semver@7.5.1: 979 | resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==} 980 | engines: {node: '>=10'} 981 | hasBin: true 982 | 983 | source-map-js@1.0.2: 984 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 985 | engines: {node: '>=0.10.0'} 986 | 987 | source-map-support@0.5.21: 988 | resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} 989 | 990 | source-map@0.6.1: 991 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 992 | engines: {node: '>=0.10.0'} 993 | 994 | sourcemap-codec@1.4.8: 995 | resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} 996 | deprecated: Please use @jridgewell/sourcemap-codec instead 997 | 998 | stable@0.1.8: 999 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} 1000 | deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' 1001 | 1002 | strip-literal@0.4.2: 1003 | resolution: {integrity: sha512-pv48ybn4iE1O9RLgCAN0iU4Xv7RlBTiit6DKmMiErbs9x1wH6vXBs45tWc0H5wUIF6TLTrKweqkmYF/iraQKNw==} 1004 | 1005 | supports-preserve-symlinks-flag@1.0.0: 1006 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1007 | engines: {node: '>= 0.4'} 1008 | 1009 | svgo@2.8.0: 1010 | resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} 1011 | engines: {node: '>=10.13.0'} 1012 | hasBin: true 1013 | 1014 | to-fast-properties@2.0.0: 1015 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1016 | engines: {node: '>=4'} 1017 | 1018 | to-regex-range@5.0.1: 1019 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1020 | engines: {node: '>=8.0'} 1021 | 1022 | treemate@0.3.11: 1023 | resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==} 1024 | 1025 | tsx@3.12.7: 1026 | resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} 1027 | hasBin: true 1028 | 1029 | typescript@4.6.4: 1030 | resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} 1031 | engines: {node: '>=4.2.0'} 1032 | hasBin: true 1033 | 1034 | ufo@1.1.2: 1035 | resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} 1036 | 1037 | unimport@0.6.8: 1038 | resolution: {integrity: sha512-MWkaPYvN0j+6jfEuiVFhfmy+aOtgAP11CozSbu/I3Cx+8ybjXIueB7GVlKofHabtjzSlPeAvWKJSFjHWsG2JaA==} 1039 | 1040 | unplugin-auto-import@0.11.2: 1041 | resolution: {integrity: sha512-1+VwBfn9dtiYv9SQLKP1AvZolUbK9xTVeAT+iOcEk4EHSFUlmIqBVLEKI76cifSQTLOJ3rZyPrEgptf3SZNLlQ==} 1042 | engines: {node: '>=14'} 1043 | peerDependencies: 1044 | '@vueuse/core': '*' 1045 | peerDependenciesMeta: 1046 | '@vueuse/core': 1047 | optional: true 1048 | 1049 | unplugin-vue-components@0.22.4: 1050 | resolution: {integrity: sha512-2rRZcM9OnJGXnYxQNfaceEYuPeVACcWySIjy8WBwIiN3onr980TmA3XE5pRJFt8zoQrUA+c46oyIq96noLqrEQ==} 1051 | engines: {node: '>=14'} 1052 | peerDependencies: 1053 | '@babel/parser': ^7.15.8 1054 | vue: 2 || 3 1055 | peerDependenciesMeta: 1056 | '@babel/parser': 1057 | optional: true 1058 | 1059 | unplugin@0.9.6: 1060 | resolution: {integrity: sha512-YYLtfoNiie/lxswy1GOsKXgnLJTE27la/PeCGznSItk+8METYZErO+zzV9KQ/hXhPwzIJsfJ4s0m1Rl7ZCWZ4Q==} 1061 | 1062 | vdirs@0.1.8: 1063 | resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==} 1064 | peerDependencies: 1065 | vue: ^3.0.11 1066 | 1067 | vite-svg-loader@3.6.0: 1068 | resolution: {integrity: sha512-bZJffcgCREW57kNkgMhuNqeDznWXyQwJ3wKrRhHLMMzwDnP5jr3vXW3cqsmquRR7VTP5mLdKj1/zzPPooGUuPw==} 1069 | 1070 | vite@3.1.0: 1071 | resolution: {integrity: sha512-YBg3dUicDpDWFCGttmvMbVyS9ydjntwEjwXRj2KBFwSB8SxmGcudo1yb8FW5+M/G86aS8x828ujnzUVdsLjs9g==} 1072 | engines: {node: ^14.18.0 || >=16.0.0} 1073 | hasBin: true 1074 | peerDependencies: 1075 | less: '*' 1076 | sass: '*' 1077 | stylus: '*' 1078 | terser: ^5.4.0 1079 | peerDependenciesMeta: 1080 | less: 1081 | optional: true 1082 | sass: 1083 | optional: true 1084 | stylus: 1085 | optional: true 1086 | terser: 1087 | optional: true 1088 | 1089 | vooks@0.2.12: 1090 | resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==} 1091 | peerDependencies: 1092 | vue: ^3.0.0 1093 | 1094 | vue-demi@0.14.5: 1095 | resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==} 1096 | engines: {node: '>=12'} 1097 | hasBin: true 1098 | peerDependencies: 1099 | '@vue/composition-api': ^1.0.0-rc.1 1100 | vue: ^3.0.0-0 || ^2.6.0 1101 | peerDependenciesMeta: 1102 | '@vue/composition-api': 1103 | optional: true 1104 | 1105 | vue-tsc@0.40.4: 1106 | resolution: {integrity: sha512-UpK0GlGZHlS+G+LKl6+/f+78GY9MA38vHKBLh/6L/Cfa8NQEH4D5H/EpqcSHXZ7wRRFjzp9LWgj5vc5q1iEClA==} 1107 | hasBin: true 1108 | peerDependencies: 1109 | typescript: '*' 1110 | 1111 | vue@3.2.37: 1112 | resolution: {integrity: sha512-bOKEZxrm8Eh+fveCqS1/NkG/n6aMidsI6hahas7pa0w/l7jkbssJVsRhVDs07IdDq7h9KHswZOgItnwJAgtVtQ==} 1113 | 1114 | vueuc@0.4.51: 1115 | resolution: {integrity: sha512-pLiMChM4f+W8czlIClGvGBYo656lc2Y0/mXFSCydcSmnCR1izlKPGMgiYBGjbY9FDkFG8a2HEVz7t0DNzBWbDw==} 1116 | peerDependencies: 1117 | vue: ^3.0.11 1118 | 1119 | webpack-sources@3.2.3: 1120 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 1121 | engines: {node: '>=10.13.0'} 1122 | 1123 | webpack-virtual-modules@0.4.6: 1124 | resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==} 1125 | 1126 | yallist@4.0.0: 1127 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 1128 | 1129 | snapshots: 1130 | 1131 | '@antfu/utils@0.5.2': {} 1132 | 1133 | '@babel/helper-string-parser@7.21.5': {} 1134 | 1135 | '@babel/helper-validator-identifier@7.19.1': {} 1136 | 1137 | '@babel/parser@7.21.9': 1138 | dependencies: 1139 | '@babel/types': 7.21.5 1140 | 1141 | '@babel/runtime@7.21.5': 1142 | dependencies: 1143 | regenerator-runtime: 0.13.11 1144 | 1145 | '@babel/types@7.21.5': 1146 | dependencies: 1147 | '@babel/helper-string-parser': 7.21.5 1148 | '@babel/helper-validator-identifier': 7.19.1 1149 | to-fast-properties: 2.0.0 1150 | 1151 | '@css-render/plugin-bem@0.15.12(css-render@0.15.12)': 1152 | dependencies: 1153 | css-render: 0.15.12 1154 | 1155 | '@css-render/vue3-ssr@0.15.12(vue@3.2.37)': 1156 | dependencies: 1157 | vue: 3.2.37 1158 | 1159 | '@emotion/hash@0.8.0': {} 1160 | 1161 | '@esbuild-kit/cjs-loader@2.4.2': 1162 | dependencies: 1163 | '@esbuild-kit/core-utils': 3.1.0 1164 | get-tsconfig: 4.5.0 1165 | 1166 | '@esbuild-kit/core-utils@3.1.0': 1167 | dependencies: 1168 | esbuild: 0.17.19 1169 | source-map-support: 0.5.21 1170 | 1171 | '@esbuild-kit/esm-loader@2.5.5': 1172 | dependencies: 1173 | '@esbuild-kit/core-utils': 3.1.0 1174 | get-tsconfig: 4.5.0 1175 | 1176 | '@esbuild/aix-ppc64@0.23.0': 1177 | optional: true 1178 | 1179 | '@esbuild/android-arm64@0.17.19': 1180 | optional: true 1181 | 1182 | '@esbuild/android-arm64@0.23.0': 1183 | optional: true 1184 | 1185 | '@esbuild/android-arm@0.15.18': 1186 | optional: true 1187 | 1188 | '@esbuild/android-arm@0.17.19': 1189 | optional: true 1190 | 1191 | '@esbuild/android-arm@0.23.0': 1192 | optional: true 1193 | 1194 | '@esbuild/android-x64@0.17.19': 1195 | optional: true 1196 | 1197 | '@esbuild/android-x64@0.23.0': 1198 | optional: true 1199 | 1200 | '@esbuild/darwin-arm64@0.17.19': 1201 | optional: true 1202 | 1203 | '@esbuild/darwin-arm64@0.23.0': 1204 | optional: true 1205 | 1206 | '@esbuild/darwin-x64@0.17.19': 1207 | optional: true 1208 | 1209 | '@esbuild/darwin-x64@0.23.0': 1210 | optional: true 1211 | 1212 | '@esbuild/freebsd-arm64@0.17.19': 1213 | optional: true 1214 | 1215 | '@esbuild/freebsd-arm64@0.23.0': 1216 | optional: true 1217 | 1218 | '@esbuild/freebsd-x64@0.17.19': 1219 | optional: true 1220 | 1221 | '@esbuild/freebsd-x64@0.23.0': 1222 | optional: true 1223 | 1224 | '@esbuild/linux-arm64@0.17.19': 1225 | optional: true 1226 | 1227 | '@esbuild/linux-arm64@0.23.0': 1228 | optional: true 1229 | 1230 | '@esbuild/linux-arm@0.17.19': 1231 | optional: true 1232 | 1233 | '@esbuild/linux-arm@0.23.0': 1234 | optional: true 1235 | 1236 | '@esbuild/linux-ia32@0.17.19': 1237 | optional: true 1238 | 1239 | '@esbuild/linux-ia32@0.23.0': 1240 | optional: true 1241 | 1242 | '@esbuild/linux-loong64@0.15.18': 1243 | optional: true 1244 | 1245 | '@esbuild/linux-loong64@0.17.19': 1246 | optional: true 1247 | 1248 | '@esbuild/linux-loong64@0.23.0': 1249 | optional: true 1250 | 1251 | '@esbuild/linux-mips64el@0.17.19': 1252 | optional: true 1253 | 1254 | '@esbuild/linux-mips64el@0.23.0': 1255 | optional: true 1256 | 1257 | '@esbuild/linux-ppc64@0.17.19': 1258 | optional: true 1259 | 1260 | '@esbuild/linux-ppc64@0.23.0': 1261 | optional: true 1262 | 1263 | '@esbuild/linux-riscv64@0.17.19': 1264 | optional: true 1265 | 1266 | '@esbuild/linux-riscv64@0.23.0': 1267 | optional: true 1268 | 1269 | '@esbuild/linux-s390x@0.17.19': 1270 | optional: true 1271 | 1272 | '@esbuild/linux-s390x@0.23.0': 1273 | optional: true 1274 | 1275 | '@esbuild/linux-x64@0.17.19': 1276 | optional: true 1277 | 1278 | '@esbuild/linux-x64@0.23.0': 1279 | optional: true 1280 | 1281 | '@esbuild/netbsd-x64@0.17.19': 1282 | optional: true 1283 | 1284 | '@esbuild/netbsd-x64@0.23.0': 1285 | optional: true 1286 | 1287 | '@esbuild/openbsd-arm64@0.23.0': 1288 | optional: true 1289 | 1290 | '@esbuild/openbsd-x64@0.17.19': 1291 | optional: true 1292 | 1293 | '@esbuild/openbsd-x64@0.23.0': 1294 | optional: true 1295 | 1296 | '@esbuild/sunos-x64@0.17.19': 1297 | optional: true 1298 | 1299 | '@esbuild/sunos-x64@0.23.0': 1300 | optional: true 1301 | 1302 | '@esbuild/win32-arm64@0.17.19': 1303 | optional: true 1304 | 1305 | '@esbuild/win32-arm64@0.23.0': 1306 | optional: true 1307 | 1308 | '@esbuild/win32-ia32@0.17.19': 1309 | optional: true 1310 | 1311 | '@esbuild/win32-ia32@0.23.0': 1312 | optional: true 1313 | 1314 | '@esbuild/win32-x64@0.17.19': 1315 | optional: true 1316 | 1317 | '@esbuild/win32-x64@0.23.0': 1318 | optional: true 1319 | 1320 | '@jridgewell/sourcemap-codec@1.4.15': {} 1321 | 1322 | '@juggle/resize-observer@3.4.0': {} 1323 | 1324 | '@nodelib/fs.scandir@2.1.5': 1325 | dependencies: 1326 | '@nodelib/fs.stat': 2.0.5 1327 | run-parallel: 1.2.0 1328 | 1329 | '@nodelib/fs.stat@2.0.5': {} 1330 | 1331 | '@nodelib/fs.walk@1.2.8': 1332 | dependencies: 1333 | '@nodelib/fs.scandir': 2.1.5 1334 | fastq: 1.15.0 1335 | 1336 | '@rollup/pluginutils@4.2.1': 1337 | dependencies: 1338 | estree-walker: 2.0.2 1339 | picomatch: 2.3.1 1340 | 1341 | '@trysound/sax@0.2.0': {} 1342 | 1343 | '@types/lodash-es@4.17.7': 1344 | dependencies: 1345 | '@types/lodash': 4.14.194 1346 | 1347 | '@types/lodash@4.14.194': {} 1348 | 1349 | '@types/node@18.7.16': {} 1350 | 1351 | '@types/node@20.2.3': {} 1352 | 1353 | '@types/web-bluetooth@0.0.15': {} 1354 | 1355 | '@vitejs/plugin-vue@3.1.0(vite@3.1.0(sass@1.54.9))(vue@3.2.37)': 1356 | dependencies: 1357 | vite: 3.1.0(sass@1.54.9) 1358 | vue: 3.2.37 1359 | 1360 | '@volar/code-gen@0.40.4': 1361 | dependencies: 1362 | '@volar/source-map': 0.40.4 1363 | 1364 | '@volar/source-map@0.40.4': 1365 | dependencies: 1366 | '@vue/reactivity': 3.2.37 1367 | 1368 | '@volar/typescript-faster@0.40.4': 1369 | dependencies: 1370 | semver: 7.5.1 1371 | 1372 | '@volar/vue-language-core@0.40.4': 1373 | dependencies: 1374 | '@volar/code-gen': 0.40.4 1375 | '@volar/source-map': 0.40.4 1376 | '@vue/compiler-core': 3.3.4 1377 | '@vue/compiler-dom': 3.3.4 1378 | '@vue/compiler-sfc': 3.3.4 1379 | '@vue/reactivity': 3.3.4 1380 | '@vue/shared': 3.3.4 1381 | 1382 | '@volar/vue-typescript@0.40.4': 1383 | dependencies: 1384 | '@volar/code-gen': 0.40.4 1385 | '@volar/typescript-faster': 0.40.4 1386 | '@volar/vue-language-core': 0.40.4 1387 | 1388 | '@vue/compiler-core@3.2.37': 1389 | dependencies: 1390 | '@babel/parser': 7.21.9 1391 | '@vue/shared': 3.2.37 1392 | estree-walker: 2.0.2 1393 | source-map: 0.6.1 1394 | 1395 | '@vue/compiler-core@3.3.4': 1396 | dependencies: 1397 | '@babel/parser': 7.21.9 1398 | '@vue/shared': 3.3.4 1399 | estree-walker: 2.0.2 1400 | source-map-js: 1.0.2 1401 | 1402 | '@vue/compiler-dom@3.2.37': 1403 | dependencies: 1404 | '@vue/compiler-core': 3.2.37 1405 | '@vue/shared': 3.2.37 1406 | 1407 | '@vue/compiler-dom@3.3.4': 1408 | dependencies: 1409 | '@vue/compiler-core': 3.3.4 1410 | '@vue/shared': 3.3.4 1411 | 1412 | '@vue/compiler-sfc@3.2.37': 1413 | dependencies: 1414 | '@babel/parser': 7.21.9 1415 | '@vue/compiler-core': 3.2.37 1416 | '@vue/compiler-dom': 3.2.37 1417 | '@vue/compiler-ssr': 3.2.37 1418 | '@vue/reactivity-transform': 3.2.37 1419 | '@vue/shared': 3.2.37 1420 | estree-walker: 2.0.2 1421 | magic-string: 0.25.9 1422 | postcss: 8.4.23 1423 | source-map: 0.6.1 1424 | 1425 | '@vue/compiler-sfc@3.3.4': 1426 | dependencies: 1427 | '@babel/parser': 7.21.9 1428 | '@vue/compiler-core': 3.3.4 1429 | '@vue/compiler-dom': 3.3.4 1430 | '@vue/compiler-ssr': 3.3.4 1431 | '@vue/reactivity-transform': 3.3.4 1432 | '@vue/shared': 3.3.4 1433 | estree-walker: 2.0.2 1434 | magic-string: 0.30.0 1435 | postcss: 8.4.23 1436 | source-map-js: 1.0.2 1437 | 1438 | '@vue/compiler-ssr@3.2.37': 1439 | dependencies: 1440 | '@vue/compiler-dom': 3.2.37 1441 | '@vue/shared': 3.2.37 1442 | 1443 | '@vue/compiler-ssr@3.3.4': 1444 | dependencies: 1445 | '@vue/compiler-dom': 3.3.4 1446 | '@vue/shared': 3.3.4 1447 | 1448 | '@vue/reactivity-transform@3.2.37': 1449 | dependencies: 1450 | '@babel/parser': 7.21.9 1451 | '@vue/compiler-core': 3.2.37 1452 | '@vue/shared': 3.2.37 1453 | estree-walker: 2.0.2 1454 | magic-string: 0.25.9 1455 | 1456 | '@vue/reactivity-transform@3.3.4': 1457 | dependencies: 1458 | '@babel/parser': 7.21.9 1459 | '@vue/compiler-core': 3.3.4 1460 | '@vue/shared': 3.3.4 1461 | estree-walker: 2.0.2 1462 | magic-string: 0.30.0 1463 | 1464 | '@vue/reactivity@3.2.37': 1465 | dependencies: 1466 | '@vue/shared': 3.2.37 1467 | 1468 | '@vue/reactivity@3.3.4': 1469 | dependencies: 1470 | '@vue/shared': 3.3.4 1471 | 1472 | '@vue/runtime-core@3.2.37': 1473 | dependencies: 1474 | '@vue/reactivity': 3.2.37 1475 | '@vue/shared': 3.2.37 1476 | 1477 | '@vue/runtime-dom@3.2.37': 1478 | dependencies: 1479 | '@vue/runtime-core': 3.2.37 1480 | '@vue/shared': 3.2.37 1481 | csstype: 2.6.21 1482 | 1483 | '@vue/server-renderer@3.2.37(vue@3.2.37)': 1484 | dependencies: 1485 | '@vue/compiler-ssr': 3.2.37 1486 | '@vue/shared': 3.2.37 1487 | vue: 3.2.37 1488 | 1489 | '@vue/shared@3.2.37': {} 1490 | 1491 | '@vue/shared@3.3.4': {} 1492 | 1493 | '@vueuse/components@9.2.0(vue@3.2.37)': 1494 | dependencies: 1495 | '@vueuse/core': 9.2.0(vue@3.2.37) 1496 | '@vueuse/shared': 9.2.0(vue@3.2.37) 1497 | vue-demi: 0.14.5(vue@3.2.37) 1498 | transitivePeerDependencies: 1499 | - '@vue/composition-api' 1500 | - vue 1501 | 1502 | '@vueuse/core@9.2.0(vue@3.2.37)': 1503 | dependencies: 1504 | '@types/web-bluetooth': 0.0.15 1505 | '@vueuse/metadata': 9.2.0 1506 | '@vueuse/shared': 9.2.0(vue@3.2.37) 1507 | vue-demi: 0.14.5(vue@3.2.37) 1508 | transitivePeerDependencies: 1509 | - '@vue/composition-api' 1510 | - vue 1511 | 1512 | '@vueuse/metadata@9.2.0': {} 1513 | 1514 | '@vueuse/shared@9.2.0(vue@3.2.37)': 1515 | dependencies: 1516 | vue-demi: 0.14.5(vue@3.2.37) 1517 | transitivePeerDependencies: 1518 | - '@vue/composition-api' 1519 | - vue 1520 | 1521 | acorn@8.8.2: {} 1522 | 1523 | anymatch@3.1.3: 1524 | dependencies: 1525 | normalize-path: 3.0.0 1526 | picomatch: 2.3.1 1527 | 1528 | async-validator@4.2.5: {} 1529 | 1530 | balanced-match@1.0.2: {} 1531 | 1532 | binary-extensions@2.2.0: {} 1533 | 1534 | binaryen@118.0.0: {} 1535 | 1536 | boolbase@1.0.0: {} 1537 | 1538 | brace-expansion@2.0.1: 1539 | dependencies: 1540 | balanced-match: 1.0.2 1541 | 1542 | braces@3.0.2: 1543 | dependencies: 1544 | fill-range: 7.0.1 1545 | 1546 | buffer-from@1.1.2: {} 1547 | 1548 | chokidar@3.5.3: 1549 | dependencies: 1550 | anymatch: 3.1.3 1551 | braces: 3.0.2 1552 | glob-parent: 5.1.2 1553 | is-binary-path: 2.1.0 1554 | is-glob: 4.0.3 1555 | normalize-path: 3.0.0 1556 | readdirp: 3.6.0 1557 | optionalDependencies: 1558 | fsevents: 2.3.2 1559 | 1560 | commander@7.2.0: {} 1561 | 1562 | css-render@0.15.12: 1563 | dependencies: 1564 | '@emotion/hash': 0.8.0 1565 | csstype: 3.0.11 1566 | 1567 | css-select@4.3.0: 1568 | dependencies: 1569 | boolbase: 1.0.0 1570 | css-what: 6.1.0 1571 | domhandler: 4.3.1 1572 | domutils: 2.8.0 1573 | nth-check: 2.1.1 1574 | 1575 | css-tree@1.1.3: 1576 | dependencies: 1577 | mdn-data: 2.0.14 1578 | source-map: 0.6.1 1579 | 1580 | css-what@6.1.0: {} 1581 | 1582 | csso@4.2.0: 1583 | dependencies: 1584 | css-tree: 1.1.3 1585 | 1586 | csstype@2.6.21: {} 1587 | 1588 | csstype@3.0.11: {} 1589 | 1590 | date-fns-tz@1.3.8(date-fns@2.30.0): 1591 | dependencies: 1592 | date-fns: 2.30.0 1593 | 1594 | date-fns@2.30.0: 1595 | dependencies: 1596 | '@babel/runtime': 7.21.5 1597 | 1598 | debug@4.3.4: 1599 | dependencies: 1600 | ms: 2.1.2 1601 | 1602 | dom-serializer@1.4.1: 1603 | dependencies: 1604 | domelementtype: 2.3.0 1605 | domhandler: 4.3.1 1606 | entities: 2.2.0 1607 | 1608 | domelementtype@2.3.0: {} 1609 | 1610 | domhandler@4.3.1: 1611 | dependencies: 1612 | domelementtype: 2.3.0 1613 | 1614 | domutils@2.8.0: 1615 | dependencies: 1616 | dom-serializer: 1.4.1 1617 | domelementtype: 2.3.0 1618 | domhandler: 4.3.1 1619 | 1620 | entities@2.2.0: {} 1621 | 1622 | esbuild-android-64@0.15.18: 1623 | optional: true 1624 | 1625 | esbuild-android-arm64@0.15.18: 1626 | optional: true 1627 | 1628 | esbuild-darwin-64@0.15.18: 1629 | optional: true 1630 | 1631 | esbuild-darwin-arm64@0.15.18: 1632 | optional: true 1633 | 1634 | esbuild-freebsd-64@0.15.18: 1635 | optional: true 1636 | 1637 | esbuild-freebsd-arm64@0.15.18: 1638 | optional: true 1639 | 1640 | esbuild-linux-32@0.15.18: 1641 | optional: true 1642 | 1643 | esbuild-linux-64@0.15.18: 1644 | optional: true 1645 | 1646 | esbuild-linux-arm64@0.15.18: 1647 | optional: true 1648 | 1649 | esbuild-linux-arm@0.15.18: 1650 | optional: true 1651 | 1652 | esbuild-linux-mips64le@0.15.18: 1653 | optional: true 1654 | 1655 | esbuild-linux-ppc64le@0.15.18: 1656 | optional: true 1657 | 1658 | esbuild-linux-riscv64@0.15.18: 1659 | optional: true 1660 | 1661 | esbuild-linux-s390x@0.15.18: 1662 | optional: true 1663 | 1664 | esbuild-netbsd-64@0.15.18: 1665 | optional: true 1666 | 1667 | esbuild-openbsd-64@0.15.18: 1668 | optional: true 1669 | 1670 | esbuild-sunos-64@0.15.18: 1671 | optional: true 1672 | 1673 | esbuild-windows-32@0.15.18: 1674 | optional: true 1675 | 1676 | esbuild-windows-64@0.15.18: 1677 | optional: true 1678 | 1679 | esbuild-windows-arm64@0.15.18: 1680 | optional: true 1681 | 1682 | esbuild@0.15.18: 1683 | optionalDependencies: 1684 | '@esbuild/android-arm': 0.15.18 1685 | '@esbuild/linux-loong64': 0.15.18 1686 | esbuild-android-64: 0.15.18 1687 | esbuild-android-arm64: 0.15.18 1688 | esbuild-darwin-64: 0.15.18 1689 | esbuild-darwin-arm64: 0.15.18 1690 | esbuild-freebsd-64: 0.15.18 1691 | esbuild-freebsd-arm64: 0.15.18 1692 | esbuild-linux-32: 0.15.18 1693 | esbuild-linux-64: 0.15.18 1694 | esbuild-linux-arm: 0.15.18 1695 | esbuild-linux-arm64: 0.15.18 1696 | esbuild-linux-mips64le: 0.15.18 1697 | esbuild-linux-ppc64le: 0.15.18 1698 | esbuild-linux-riscv64: 0.15.18 1699 | esbuild-linux-s390x: 0.15.18 1700 | esbuild-netbsd-64: 0.15.18 1701 | esbuild-openbsd-64: 0.15.18 1702 | esbuild-sunos-64: 0.15.18 1703 | esbuild-windows-32: 0.15.18 1704 | esbuild-windows-64: 0.15.18 1705 | esbuild-windows-arm64: 0.15.18 1706 | 1707 | esbuild@0.17.19: 1708 | optionalDependencies: 1709 | '@esbuild/android-arm': 0.17.19 1710 | '@esbuild/android-arm64': 0.17.19 1711 | '@esbuild/android-x64': 0.17.19 1712 | '@esbuild/darwin-arm64': 0.17.19 1713 | '@esbuild/darwin-x64': 0.17.19 1714 | '@esbuild/freebsd-arm64': 0.17.19 1715 | '@esbuild/freebsd-x64': 0.17.19 1716 | '@esbuild/linux-arm': 0.17.19 1717 | '@esbuild/linux-arm64': 0.17.19 1718 | '@esbuild/linux-ia32': 0.17.19 1719 | '@esbuild/linux-loong64': 0.17.19 1720 | '@esbuild/linux-mips64el': 0.17.19 1721 | '@esbuild/linux-ppc64': 0.17.19 1722 | '@esbuild/linux-riscv64': 0.17.19 1723 | '@esbuild/linux-s390x': 0.17.19 1724 | '@esbuild/linux-x64': 0.17.19 1725 | '@esbuild/netbsd-x64': 0.17.19 1726 | '@esbuild/openbsd-x64': 0.17.19 1727 | '@esbuild/sunos-x64': 0.17.19 1728 | '@esbuild/win32-arm64': 0.17.19 1729 | '@esbuild/win32-ia32': 0.17.19 1730 | '@esbuild/win32-x64': 0.17.19 1731 | 1732 | esbuild@0.23.0: 1733 | optionalDependencies: 1734 | '@esbuild/aix-ppc64': 0.23.0 1735 | '@esbuild/android-arm': 0.23.0 1736 | '@esbuild/android-arm64': 0.23.0 1737 | '@esbuild/android-x64': 0.23.0 1738 | '@esbuild/darwin-arm64': 0.23.0 1739 | '@esbuild/darwin-x64': 0.23.0 1740 | '@esbuild/freebsd-arm64': 0.23.0 1741 | '@esbuild/freebsd-x64': 0.23.0 1742 | '@esbuild/linux-arm': 0.23.0 1743 | '@esbuild/linux-arm64': 0.23.0 1744 | '@esbuild/linux-ia32': 0.23.0 1745 | '@esbuild/linux-loong64': 0.23.0 1746 | '@esbuild/linux-mips64el': 0.23.0 1747 | '@esbuild/linux-ppc64': 0.23.0 1748 | '@esbuild/linux-riscv64': 0.23.0 1749 | '@esbuild/linux-s390x': 0.23.0 1750 | '@esbuild/linux-x64': 0.23.0 1751 | '@esbuild/netbsd-x64': 0.23.0 1752 | '@esbuild/openbsd-arm64': 0.23.0 1753 | '@esbuild/openbsd-x64': 0.23.0 1754 | '@esbuild/sunos-x64': 0.23.0 1755 | '@esbuild/win32-arm64': 0.23.0 1756 | '@esbuild/win32-ia32': 0.23.0 1757 | '@esbuild/win32-x64': 0.23.0 1758 | 1759 | escape-string-regexp@5.0.0: {} 1760 | 1761 | esno@0.16.3: 1762 | dependencies: 1763 | tsx: 3.12.7 1764 | 1765 | estree-walker@2.0.2: {} 1766 | 1767 | evtd@0.2.4: {} 1768 | 1769 | fast-glob@3.2.12: 1770 | dependencies: 1771 | '@nodelib/fs.stat': 2.0.5 1772 | '@nodelib/fs.walk': 1.2.8 1773 | glob-parent: 5.1.2 1774 | merge2: 1.4.1 1775 | micromatch: 4.0.5 1776 | 1777 | fastq@1.15.0: 1778 | dependencies: 1779 | reusify: 1.0.4 1780 | 1781 | fill-range@7.0.1: 1782 | dependencies: 1783 | to-regex-range: 5.0.1 1784 | 1785 | fsevents@2.3.2: 1786 | optional: true 1787 | 1788 | function-bind@1.1.1: {} 1789 | 1790 | get-tsconfig@4.5.0: {} 1791 | 1792 | glob-parent@5.1.2: 1793 | dependencies: 1794 | is-glob: 4.0.3 1795 | 1796 | has@1.0.3: 1797 | dependencies: 1798 | function-bind: 1.1.1 1799 | 1800 | highlight.js@11.8.0: {} 1801 | 1802 | immutable@4.3.0: {} 1803 | 1804 | is-binary-path@2.1.0: 1805 | dependencies: 1806 | binary-extensions: 2.2.0 1807 | 1808 | is-core-module@2.12.1: 1809 | dependencies: 1810 | has: 1.0.3 1811 | 1812 | is-extglob@2.1.1: {} 1813 | 1814 | is-glob@4.0.3: 1815 | dependencies: 1816 | is-extglob: 2.1.1 1817 | 1818 | is-number@7.0.0: {} 1819 | 1820 | jsonc-parser@3.2.0: {} 1821 | 1822 | local-pkg@0.4.3: {} 1823 | 1824 | lodash-es@4.17.21: {} 1825 | 1826 | lodash@4.17.21: {} 1827 | 1828 | lru-cache@6.0.0: 1829 | dependencies: 1830 | yallist: 4.0.0 1831 | 1832 | magic-string@0.25.9: 1833 | dependencies: 1834 | sourcemap-codec: 1.4.8 1835 | 1836 | magic-string@0.26.7: 1837 | dependencies: 1838 | sourcemap-codec: 1.4.8 1839 | 1840 | magic-string@0.30.0: 1841 | dependencies: 1842 | '@jridgewell/sourcemap-codec': 1.4.15 1843 | 1844 | mdn-data@2.0.14: {} 1845 | 1846 | merge2@1.4.1: {} 1847 | 1848 | micromatch@4.0.5: 1849 | dependencies: 1850 | braces: 3.0.2 1851 | picomatch: 2.3.1 1852 | 1853 | minimatch@5.1.6: 1854 | dependencies: 1855 | brace-expansion: 2.0.1 1856 | 1857 | mlly@0.5.17: 1858 | dependencies: 1859 | acorn: 8.8.2 1860 | pathe: 1.1.0 1861 | pkg-types: 1.0.3 1862 | ufo: 1.1.2 1863 | 1864 | mlly@1.3.0: 1865 | dependencies: 1866 | acorn: 8.8.2 1867 | pathe: 1.1.0 1868 | pkg-types: 1.0.3 1869 | ufo: 1.1.2 1870 | 1871 | ms@2.1.2: {} 1872 | 1873 | naive-ui@2.33.2(vue@3.2.37): 1874 | dependencies: 1875 | '@css-render/plugin-bem': 0.15.12(css-render@0.15.12) 1876 | '@css-render/vue3-ssr': 0.15.12(vue@3.2.37) 1877 | '@types/lodash': 4.14.194 1878 | '@types/lodash-es': 4.17.7 1879 | async-validator: 4.2.5 1880 | css-render: 0.15.12 1881 | date-fns: 2.30.0 1882 | date-fns-tz: 1.3.8(date-fns@2.30.0) 1883 | evtd: 0.2.4 1884 | highlight.js: 11.8.0 1885 | lodash: 4.17.21 1886 | lodash-es: 4.17.21 1887 | seemly: 0.3.6 1888 | treemate: 0.3.11 1889 | vdirs: 0.1.8(vue@3.2.37) 1890 | vooks: 0.2.12(vue@3.2.37) 1891 | vue: 3.2.37 1892 | vueuc: 0.4.51(vue@3.2.37) 1893 | 1894 | nanoid@3.3.6: {} 1895 | 1896 | normalize-path@3.0.0: {} 1897 | 1898 | nth-check@2.1.1: 1899 | dependencies: 1900 | boolbase: 1.0.0 1901 | 1902 | path-parse@1.0.7: {} 1903 | 1904 | pathe@0.3.9: {} 1905 | 1906 | pathe@1.1.0: {} 1907 | 1908 | picocolors@1.0.0: {} 1909 | 1910 | picomatch@2.3.1: {} 1911 | 1912 | pkg-types@1.0.3: 1913 | dependencies: 1914 | jsonc-parser: 3.2.0 1915 | mlly: 1.3.0 1916 | pathe: 1.1.0 1917 | 1918 | postcss@8.4.23: 1919 | dependencies: 1920 | nanoid: 3.3.6 1921 | picocolors: 1.0.0 1922 | source-map-js: 1.0.2 1923 | 1924 | qrcode.vue@3.3.3(vue@3.2.37): 1925 | dependencies: 1926 | vue: 3.2.37 1927 | 1928 | queue-microtask@1.2.3: {} 1929 | 1930 | readdirp@3.6.0: 1931 | dependencies: 1932 | picomatch: 2.3.1 1933 | 1934 | regenerator-runtime@0.13.11: {} 1935 | 1936 | resolve@1.22.2: 1937 | dependencies: 1938 | is-core-module: 2.12.1 1939 | path-parse: 1.0.7 1940 | supports-preserve-symlinks-flag: 1.0.0 1941 | 1942 | reusify@1.0.4: {} 1943 | 1944 | rollup@2.78.1: 1945 | optionalDependencies: 1946 | fsevents: 2.3.2 1947 | 1948 | run-parallel@1.2.0: 1949 | dependencies: 1950 | queue-microtask: 1.2.3 1951 | 1952 | sass@1.54.9: 1953 | dependencies: 1954 | chokidar: 3.5.3 1955 | immutable: 4.3.0 1956 | source-map-js: 1.0.2 1957 | 1958 | scule@0.3.2: {} 1959 | 1960 | seemly@0.3.6: {} 1961 | 1962 | semver@7.5.1: 1963 | dependencies: 1964 | lru-cache: 6.0.0 1965 | 1966 | source-map-js@1.0.2: {} 1967 | 1968 | source-map-support@0.5.21: 1969 | dependencies: 1970 | buffer-from: 1.1.2 1971 | source-map: 0.6.1 1972 | 1973 | source-map@0.6.1: {} 1974 | 1975 | sourcemap-codec@1.4.8: {} 1976 | 1977 | stable@0.1.8: {} 1978 | 1979 | strip-literal@0.4.2: 1980 | dependencies: 1981 | acorn: 8.8.2 1982 | 1983 | supports-preserve-symlinks-flag@1.0.0: {} 1984 | 1985 | svgo@2.8.0: 1986 | dependencies: 1987 | '@trysound/sax': 0.2.0 1988 | commander: 7.2.0 1989 | css-select: 4.3.0 1990 | css-tree: 1.1.3 1991 | csso: 4.2.0 1992 | picocolors: 1.0.0 1993 | stable: 0.1.8 1994 | 1995 | to-fast-properties@2.0.0: {} 1996 | 1997 | to-regex-range@5.0.1: 1998 | dependencies: 1999 | is-number: 7.0.0 2000 | 2001 | treemate@0.3.11: {} 2002 | 2003 | tsx@3.12.7: 2004 | dependencies: 2005 | '@esbuild-kit/cjs-loader': 2.4.2 2006 | '@esbuild-kit/core-utils': 3.1.0 2007 | '@esbuild-kit/esm-loader': 2.5.5 2008 | optionalDependencies: 2009 | fsevents: 2.3.2 2010 | 2011 | typescript@4.6.4: {} 2012 | 2013 | ufo@1.1.2: {} 2014 | 2015 | unimport@0.6.8: 2016 | dependencies: 2017 | '@rollup/pluginutils': 4.2.1 2018 | escape-string-regexp: 5.0.0 2019 | fast-glob: 3.2.12 2020 | local-pkg: 0.4.3 2021 | magic-string: 0.26.7 2022 | mlly: 0.5.17 2023 | pathe: 0.3.9 2024 | scule: 0.3.2 2025 | strip-literal: 0.4.2 2026 | unplugin: 0.9.6 2027 | 2028 | unplugin-auto-import@0.11.2(@vueuse/core@9.2.0(vue@3.2.37)): 2029 | dependencies: 2030 | '@antfu/utils': 0.5.2 2031 | '@rollup/pluginutils': 4.2.1 2032 | local-pkg: 0.4.3 2033 | magic-string: 0.26.7 2034 | unimport: 0.6.8 2035 | unplugin: 0.9.6 2036 | optionalDependencies: 2037 | '@vueuse/core': 9.2.0(vue@3.2.37) 2038 | 2039 | unplugin-vue-components@0.22.4(@babel/parser@7.21.9)(vue@3.2.37): 2040 | dependencies: 2041 | '@antfu/utils': 0.5.2 2042 | '@rollup/pluginutils': 4.2.1 2043 | chokidar: 3.5.3 2044 | debug: 4.3.4 2045 | fast-glob: 3.2.12 2046 | local-pkg: 0.4.3 2047 | magic-string: 0.26.7 2048 | minimatch: 5.1.6 2049 | resolve: 1.22.2 2050 | unplugin: 0.9.6 2051 | vue: 3.2.37 2052 | optionalDependencies: 2053 | '@babel/parser': 7.21.9 2054 | transitivePeerDependencies: 2055 | - supports-color 2056 | 2057 | unplugin@0.9.6: 2058 | dependencies: 2059 | acorn: 8.8.2 2060 | chokidar: 3.5.3 2061 | webpack-sources: 3.2.3 2062 | webpack-virtual-modules: 0.4.6 2063 | 2064 | vdirs@0.1.8(vue@3.2.37): 2065 | dependencies: 2066 | evtd: 0.2.4 2067 | vue: 3.2.37 2068 | 2069 | vite-svg-loader@3.6.0: 2070 | dependencies: 2071 | '@vue/compiler-sfc': 3.3.4 2072 | svgo: 2.8.0 2073 | 2074 | vite@3.1.0(sass@1.54.9): 2075 | dependencies: 2076 | esbuild: 0.15.18 2077 | postcss: 8.4.23 2078 | resolve: 1.22.2 2079 | rollup: 2.78.1 2080 | optionalDependencies: 2081 | fsevents: 2.3.2 2082 | sass: 1.54.9 2083 | 2084 | vooks@0.2.12(vue@3.2.37): 2085 | dependencies: 2086 | evtd: 0.2.4 2087 | vue: 3.2.37 2088 | 2089 | vue-demi@0.14.5(vue@3.2.37): 2090 | dependencies: 2091 | vue: 3.2.37 2092 | 2093 | vue-tsc@0.40.4(typescript@4.6.4): 2094 | dependencies: 2095 | '@volar/vue-language-core': 0.40.4 2096 | '@volar/vue-typescript': 0.40.4 2097 | typescript: 4.6.4 2098 | 2099 | vue@3.2.37: 2100 | dependencies: 2101 | '@vue/compiler-dom': 3.2.37 2102 | '@vue/compiler-sfc': 3.2.37 2103 | '@vue/runtime-dom': 3.2.37 2104 | '@vue/server-renderer': 3.2.37(vue@3.2.37) 2105 | '@vue/shared': 3.2.37 2106 | 2107 | vueuc@0.4.51(vue@3.2.37): 2108 | dependencies: 2109 | '@css-render/vue3-ssr': 0.15.12(vue@3.2.37) 2110 | '@juggle/resize-observer': 3.4.0 2111 | css-render: 0.15.12 2112 | evtd: 0.2.4 2113 | seemly: 0.3.6 2114 | vdirs: 0.1.8(vue@3.2.37) 2115 | vooks: 0.2.12(vue@3.2.37) 2116 | vue: 3.2.37 2117 | 2118 | webpack-sources@3.2.3: {} 2119 | 2120 | webpack-virtual-modules@0.4.6: {} 2121 | 2122 | yallist@4.0.0: {} 2123 | --------------------------------------------------------------------------------