├── .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 |
--------------------------------------------------------------------------------
/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 |
7 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # totp-wasm-zig
2 |
3 | [](./LICENSE)
4 | [](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 |
63 |
64 |
68 |
69 |
70 |
71 |
72 |
73 |
74 | totp-wasm-zig
75 |
76 |
77 |
78 |
79 |
80 | Secret Key
81 |
82 | Generate
83 |
84 |
85 |
86 | Digits
87 |
88 |
89 |
90 |
91 | Period
92 |
93 | sec
94 |
95 |
96 |
97 |
98 | HOTP Counter
99 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 | {{ tr }} sec
112 |
113 |
114 |
115 | HOTP Value
116 |
117 |
118 |
119 |
120 | TOTP Value
121 |
122 |
123 |
124 |
125 | Steam Value
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 | Issuer
135 |
136 |
137 |
138 |
139 | Account
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
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 |
--------------------------------------------------------------------------------