├── pnpm-workspace.yaml ├── .npmrc ├── .github └── FUNDING.yml ├── .npmignore ├── .prettierrc.json ├── demo ├── assets │ └── images │ │ ├── example.png │ │ ├── v3-logo.png │ │ └── google-drive.png ├── index.ts ├── package.json ├── index.html ├── vite.config.js ├── components │ ├── TextInput.vue │ ├── PrismCode.js │ └── Switch.vue ├── plugins │ └── vuetify.js ├── helpers │ ├── codeExamples.js │ └── sampleData.js ├── partials │ └── header.vue └── App.vue ├── postcss.config.js ├── src ├── global.d.ts ├── index.js ├── eventbus.js ├── service.js ├── Vue3Snackbar.vue ├── Vue3SnackbarMessage.vue ├── props.js └── style.postcss ├── .gitignore ├── vite.config.js ├── tsconfig.json ├── eslint.config.js ├── LICENCE ├── README.md ├── package.json └── pnpm-lock.yaml /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - demo 3 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | //registry.npmjs.org/:_authToken=${NPM_TOKEN_CR} 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: craigrileyuk 2 | buy_me_a_coffee: craigrileyuk 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | demo 2 | node_modules 3 | src 4 | .gitignore 5 | .github 6 | *.config.js 7 | *.tgz -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "tabWidth": 4, 4 | "printWidth": 120 5 | } 6 | -------------------------------------------------------------------------------- /demo/assets/images/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evo-mark/vue3-snackbar/HEAD/demo/assets/images/example.png -------------------------------------------------------------------------------- /demo/assets/images/v3-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evo-mark/vue3-snackbar/HEAD/demo/assets/images/v3-logo.png -------------------------------------------------------------------------------- /demo/assets/images/google-drive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/evo-mark/vue3-snackbar/HEAD/demo/assets/images/google-drive.png -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | import PostcssNested from "postcss-nested"; 2 | 3 | export default { 4 | plugins: [PostcssNested()], 5 | }; 6 | -------------------------------------------------------------------------------- /src/global.d.ts: -------------------------------------------------------------------------------- 1 | import { SnackbarService } from "./service"; 2 | 3 | declare module "vue" { 4 | interface ComponentCustomProperties { 5 | /** @type {SnackbarService} */ 6 | $snackbar: SnackbarService; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | /** @typedef { import("./props.js").SnackbarMessage} SnackbarMessage */ 2 | 3 | export { default as Vue3Snackbar } from "./Vue3Snackbar.vue"; 4 | export { useSnackbar, SnackbarService, messages as SnackbarMessages } from "./service.js"; 5 | -------------------------------------------------------------------------------- /demo/index.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import { SnackbarService } from "vue3-snackbar"; 3 | import App from "./App.vue"; 4 | 5 | import vuetify from "./plugins/vuetify"; 6 | import "vue3-snackbar/styles"; 7 | 8 | const app = createApp(App); 9 | 10 | app.use(SnackbarService); 11 | app.use(vuetify); 12 | 13 | app.mount("#app"); 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | dist 4 | src-next 5 | demo-next 6 | 7 | # local env files 8 | .env.local 9 | .env.*.local 10 | 11 | # Log files 12 | npm-debug.log* 13 | yarn-debug.log* 14 | yarn-error.log* 15 | pnpm-debug.log* 16 | 17 | # Editor directories and files 18 | .idea 19 | .vscode 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | *.tgz 26 | 27 | types 28 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import vue from "@vitejs/plugin-vue"; 2 | import path from "path"; 3 | 4 | export default { 5 | plugins: [vue()], 6 | build: { 7 | lib: { 8 | entry: path.resolve("./src/index.js"), 9 | name: "Vue3Snackbar", 10 | formats: ["es", "umd", "cjs", "iife"], 11 | }, 12 | rollupOptions: { 13 | external: ["vue"], 14 | output: { 15 | globals: { 16 | vue: "Vue", 17 | }, 18 | }, 19 | }, 20 | }, 21 | }; 22 | -------------------------------------------------------------------------------- /src/eventbus.js: -------------------------------------------------------------------------------- 1 | /* ********************************************************* 2 | * Creates an event bus for use within a Vue 3 application 3 | ********************************************************* */ 4 | 5 | import emitter from "tiny-emitter/instance"; 6 | 7 | export default { 8 | $on: (...args) => emitter.on(...args), 9 | $once: (...args) => emitter.once(...args), 10 | $off: (...args) => emitter.off(...args), 11 | $emit: (...args) => emitter.emit(...args), 12 | }; 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.js", "src/**/*.vue"], 3 | "compilerOptions": { 4 | "module": "esnext", 5 | "types": ["./src/global.d.ts"], 6 | "target": "esnext", 7 | "declaration": true, 8 | "esModuleInterop": true, 9 | "jsx": "preserve", 10 | "allowJs": true, 11 | "skipLibCheck": true, 12 | "moduleResolution": "node", 13 | "emitDeclarationOnly": true, 14 | "allowSyntheticDefaultImports": true, 15 | "outDir": "types", 16 | "declarationMap": true 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "vite build", 10 | "preview": "vite preview" 11 | }, 12 | "keywords": [], 13 | "author": "", 14 | "license": "ISC", 15 | "dependencies": { 16 | "vue": "^3.5.21", 17 | "vue3-snackbar": "link:..", 18 | "vuetify": "^3.9.6" 19 | }, 20 | "devDependencies": { 21 | "@vitejs/plugin-vue": "^6.0.1", 22 | "vite-plugin-vuetify": "^2.1.2" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Vue3-Snackbar: Demonstration 7 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import configPrettier from "eslint-config-prettier"; 2 | import pluginVue from "eslint-plugin-vue"; 3 | import globals from "globals"; 4 | import js from "@eslint/js"; 5 | import { defineConfig, globalIgnores } from "eslint/config"; 6 | 7 | export default defineConfig([ 8 | globalIgnores([".gitignore"]), 9 | { 10 | files: ["src/**/*.js", "src/**/*.vue"], 11 | }, 12 | js.configs.recommended, 13 | ...pluginVue.configs["flat/recommended"], 14 | configPrettier, 15 | { 16 | languageOptions: { 17 | globals: { 18 | ...globals.es2021, 19 | ...globals.browser, 20 | }, 21 | }, 22 | }, 23 | ]); 24 | -------------------------------------------------------------------------------- /demo/vite.config.js: -------------------------------------------------------------------------------- 1 | import vue from "@vitejs/plugin-vue"; 2 | import { defineConfig } from "vite"; 3 | import vuetify from "vite-plugin-vuetify"; 4 | import { resolve as resolvePath } from "node:path"; 5 | 6 | export default defineConfig(({ mode }) => { 7 | const resolve = 8 | mode === "development" 9 | ? { 10 | alias: { 11 | "vue3-snackbar/styles": resolvePath("../src/style.postcss"), 12 | "vue3-snackbar": resolvePath("../src"), 13 | }, 14 | } 15 | : {}; 16 | return { 17 | base: "/vue3-snackbar/", 18 | assetsDir: "", 19 | resolve, 20 | plugins: [vue(), vuetify({ autoImport: true })], 21 | }; 22 | }); 23 | -------------------------------------------------------------------------------- /demo/components/TextInput.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 30 | 31 | 38 | -------------------------------------------------------------------------------- /demo/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import "vuetify/styles"; 2 | import { createVuetify } from "vuetify"; 3 | import { aliases, mdi } from "vuetify/lib/iconsets/mdi-svg"; 4 | 5 | const vueLightTheme = { 6 | dark: false, 7 | colors: { 8 | primary: "#41b883", 9 | secondary: "#34495e", 10 | accent: "#fffde7", 11 | }, 12 | variables: {}, 13 | }; 14 | 15 | export default createVuetify({ 16 | icons: { 17 | defaultSet: "mdi", 18 | aliases, 19 | sets: { 20 | mdi, 21 | }, 22 | }, 23 | theme: { 24 | defaultTheme: "vueLightTheme", 25 | themes: { 26 | vueLightTheme, 27 | }, 28 | }, 29 | defaults: { 30 | VColorInput: { 31 | pipLocation: "prepend-inner", 32 | pipVariant: "outlined", 33 | colorPip: true, 34 | landscape: true, 35 | mode: "hexa", 36 | modes: ["hexa"], 37 | showSwatches: true, 38 | }, 39 | }, 40 | }); 41 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright © 2021 Craig Riley 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /demo/helpers/codeExamples.js: -------------------------------------------------------------------------------- 1 | export const mainJs = `// main.js 2 | import { createApp } from "vue"; 3 | import { SnackbarService, Vue3Snackbar } from "vue3-snackbar"; 4 | import "vue3-snackbar/styles"; 5 | import App from "./App.vue"; 6 | const app = createApp(App); 7 | app.use(SnackbarService); 8 | app.component("vue3-snackbar", Vue3Snackbar); 9 | app.mount("#app");`; 10 | 11 | export const appTemplate = ` 12 | `; 15 | 16 | export const appScriptOptions = `// App.vue - Options API 17 | `; 29 | 30 | export const appScriptComposition = `// App.vue - Composition API 31 | `; 39 | -------------------------------------------------------------------------------- /demo/components/PrismCode.js: -------------------------------------------------------------------------------- 1 | import Prism from "prismjs"; 2 | import { h } from "vue"; 3 | 4 | export default { 5 | props: { 6 | code: { 7 | type: String, 8 | default: "", 9 | }, 10 | inline: { 11 | type: Boolean, 12 | default: false, 13 | }, 14 | language: { 15 | type: String, 16 | default: "markup", 17 | }, 18 | }, 19 | setup(props, context) { 20 | const code = props.code || (context.children && context.children.length > 0 ? context.children[0].text : ""); 21 | const language = props.language; 22 | const prismLanguage = Prism.languages[language]; 23 | const className = `language-${language}`; 24 | 25 | if (process.env.NODE_ENV === "development" && !prismLanguage) { 26 | throw new Error( 27 | `Prism component for language "${language}" was not found, did you forget to register it? See all available ones: https://cdn.jsdelivr.net/npm/prismjs/components/`, 28 | ); 29 | } 30 | 31 | return () => 32 | h( 33 | "pre", 34 | { 35 | class: [context.attrs.class, className], 36 | }, 37 | [ 38 | h("code", { 39 | class: className, 40 | innerHTML: Prism.highlight(code, prismLanguage), 41 | }), 42 | ], 43 | ); 44 | }, 45 | }; 46 | -------------------------------------------------------------------------------- /demo/helpers/sampleData.js: -------------------------------------------------------------------------------- 1 | import { mdiImage } from "@mdi/js"; 2 | import { h } from "vue"; 3 | 4 | export default [ 5 | { 6 | type: "success", 7 | title: "Mission Accomplished", 8 | text: "Something was completed", 9 | }, 10 | { 11 | type: "info", 12 | title: "Important Information", 13 | text: "Some important information will appear here", 14 | dismissible: false, 15 | }, 16 | { 17 | type: "info", 18 | text: "This message doesn't have a title", 19 | duration: 15000, 20 | dismissible: false, 21 | }, 22 | { 23 | type: "warning", 24 | title: "Here Be Dragons", 25 | text: "This is a warning about something", 26 | }, 27 | { 28 | type: "error", 29 | title: "Oh Damn", 30 | text: "Something went horribly wrong. Bad luck.", 31 | }, 32 | { 33 | type: "info", 34 | title: "Added to Cart", 35 | text: "4x Brawndo 500ml added to cart", 36 | action: { 37 | props: { 38 | message: Object, 39 | }, 40 | setup() { 41 | return () => h("button", {}, "Go to Checkout"); 42 | }, 43 | }, 44 | }, 45 | { 46 | title: "Custom Message", 47 | text: "This is a message with a custom background and icon", 48 | background: "steelblue", 49 | icon: { 50 | path: mdiImage, 51 | type: "mdi", 52 | }, 53 | textColor: "#99ff99", 54 | iconColor: "#336633", 55 | }, 56 | ]; 57 | -------------------------------------------------------------------------------- /src/service.js: -------------------------------------------------------------------------------- 1 | import EventBus from "./eventbus"; 2 | import { inject, ref } from "vue"; 3 | 4 | /** 5 | * @type { import("vue").Ref} 6 | */ 7 | export const messages = ref([]); 8 | export const SnackbarSymbol = Symbol(); 9 | 10 | const hashCode = (s) => Math.abs(s.split("").reduce((a, b) => ((a << 5) - a + b.charCodeAt(0)) | 0, 0)); 11 | 12 | let messageId = 1; 13 | 14 | EventBus.$on("add", (ev) => { 15 | ev = { ...ev }; 16 | if (!ev.group) ev.group = hashCode(`${ev.type}${ev.title}${ev.text}`).toString(16); 17 | 18 | ev.id = messageId; 19 | messageId++; 20 | 21 | messages.value.push(ev); 22 | }); 23 | 24 | /** 25 | * @callback add 26 | * @param { import("./props").SnackbarMessage } message 27 | * @returns { void } 28 | */ 29 | 30 | /** 31 | * @callback clear 32 | * @returns { void } 33 | */ 34 | 35 | /** 36 | * @typedef { Object } SnackbarService 37 | * @property { add } add Add a message to the stack 38 | * @property { clear } clear Clear messages from the stack 39 | */ 40 | 41 | /** 42 | * Composable which allows accessing the Toast service in Composition API 43 | * @returns { SnackbarService } 44 | */ 45 | export function useSnackbar() { 46 | const Snackbar = inject(SnackbarSymbol); 47 | if (!Snackbar) { 48 | throw new Error("No Snackbar provided!"); 49 | } 50 | 51 | return Snackbar; 52 | } 53 | 54 | /** 55 | * Vue app install. Global property for Options API and provided service for Composition API 56 | */ 57 | export const SnackbarService = { 58 | install: (app, config = {}) => { 59 | const { disableGlobals = false } = config; 60 | 61 | const SnackbarService = { 62 | add: (message) => { 63 | EventBus.$emit("add", message); 64 | }, 65 | clear: () => { 66 | EventBus.$emit("clear"); 67 | }, 68 | }; 69 | if (disableGlobals !== true) { 70 | app.config.globalProperties.$snackbar = SnackbarService; 71 | if (typeof window !== "undefined") window.$snackbar = SnackbarService; 72 | } 73 | app.provide(SnackbarSymbol, SnackbarService); 74 | }, 75 | }; 76 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 | 6 | evoMark company logo 7 | 8 | 9 |

10 | 11 |

12 | Downloads 13 | Version 14 | Licence 15 |

16 | 17 | # Vue 3 Snackbar 18 | 19 | Add a snackbar/toast service to your Vue 3 application and easily alert users about app processes. 20 | 21 | ## Support Open-Source Software 22 | 23 | We're providing this package free-of-charge to the community. However, all development and maintenance costs time, energy and money. So please help fund this project if you can. 24 | 25 |

26 | 27 | 28 | 29 | Buy Me A Coffee 30 |

31 | 32 | --- 33 | 34 | For full installation instructions and documentation, visit [evoMark](https://evomark.co.uk/open-source-software/vue3-snackbar/). 35 | -------------------------------------------------------------------------------- /demo/components/Switch.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 31 | 32 | 112 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue3-snackbar", 3 | "version": "2.5.2", 4 | "author": "Craig Riley", 5 | "scripts": { 6 | "build": "npm run build:types && vite build", 7 | "build:types": "vue-tsc && cp ./src/global.d.ts ./types/global.d.ts && npm run copy-ref", 8 | "demo": "pnpm --filter=demo run dev", 9 | "demo:build": "pnpm --filter=demo run build", 10 | "demo:preview": "pnpm --filter=demo run preview", 11 | "demo:deploy": "gh-pages -d demo/dist", 12 | "prepublishOnly": "npm run build", 13 | "preinstall": "npx only-allow pnpm", 14 | "lint": "eslint --fix src", 15 | "format": "prettier . --write", 16 | "copy-ref": "echo '/// \n' | cat - ./types/index.d.ts > temp && mv temp ./types/index.d.ts" 17 | }, 18 | "type": "module", 19 | "types": "./types/index.d.ts", 20 | "main": "./dist/vue3-snackbar.cjs", 21 | "module": "./dist/vue3-snackbar.js", 22 | "exports": { 23 | ".": { 24 | "types": "./types/index.d.ts", 25 | "umd": "./dist/vue3-snackbar.umd.cjs", 26 | "import": "./dist/vue3-snackbar.js", 27 | "require": "./dist/vue3-snackbar.cjs" 28 | }, 29 | "./styles": "./dist/vue3-snackbar.css" 30 | }, 31 | "files": [ 32 | "dist", 33 | "types" 34 | ], 35 | "dependencies": { 36 | "tiny-emitter": "^2.1.0", 37 | "vue3-icon": "^3.0.3" 38 | }, 39 | "devDependencies": { 40 | "@eslint/js": "^9.34.0", 41 | "@mdi/js": "^7.4.47", 42 | "@vitejs/plugin-vue": "^6.0.1", 43 | "@vueuse/core": "^13.9.0", 44 | "eslint": "^9.34.0", 45 | "eslint-config-prettier": "^10.1.8", 46 | "eslint-plugin-vue": "^10.4.0", 47 | "gh-pages": "^6.3.0", 48 | "globals": "^16.3.0", 49 | "jsdoc": "^4.0.4", 50 | "jsdoc-vuejs": "^4.0.0", 51 | "postcss": "^8.5.6", 52 | "postcss-nested": "^7.0.2", 53 | "prettier": "^3.6.2", 54 | "prismjs": "^1.30.0", 55 | "roboto-fontface": "^0.10.0", 56 | "sass": "^1.92.0", 57 | "sass-loader": "^16.0.5", 58 | "typescript": "^5.9.2", 59 | "vite": "npm:rolldown-vite@^7.1.5", 60 | "vue": "^3.5.21", 61 | "vue-tsc": "^3.0.6" 62 | }, 63 | "peerDependencies": { 64 | "vue": "^3.0.0" 65 | }, 66 | "browserslist": [ 67 | "> 1%", 68 | "last 2 versions", 69 | "not dead" 70 | ], 71 | "bugs": { 72 | "url": "https://github.com/evo-mark/vue3-snackbar/issues" 73 | }, 74 | "homepage": "https://github.com/evo-mark/vue3-snackbar#readme", 75 | "keywords": [ 76 | "Vue", 77 | "Vue3", 78 | "snackbar", 79 | "toast", 80 | "alerts", 81 | "messages" 82 | ], 83 | "license": "MIT", 84 | "repository": { 85 | "type": "git", 86 | "url": "git+https://github.com/evo-mark/vue3-snackbar.git" 87 | }, 88 | "packageManager": "pnpm@8.14.3+sha256.2d0363bb6c314daa67087ef07743eea1ba2e2d360c835e8fec6b5575e4ed9484" 89 | } 90 | -------------------------------------------------------------------------------- /demo/partials/header.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 21 | 22 | 33 | -------------------------------------------------------------------------------- /src/Vue3Snackbar.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 168 | 169 | 172 | -------------------------------------------------------------------------------- /src/Vue3SnackbarMessage.vue: -------------------------------------------------------------------------------- 1 | 82 | 83 | 222 | -------------------------------------------------------------------------------- /src/props.js: -------------------------------------------------------------------------------- 1 | const HTMLElementShim = typeof window !== "undefined" ? HTMLElement : Object; 2 | 3 | /** 4 | * @typedef {import('vue').VNode} VNode 5 | * @typedef {import('vue').Component} Component 6 | * @typedef {import('vue').FunctionalComponent} FunctionalComponent 7 | * @typedef {VNode | Component | FunctionalComponent | (() => VNode)} Renderable 8 | */ 9 | 10 | /** 11 | * @typedef { Object } Vue3Icon 12 | * @property { string } type The icon type, e.g. "mdi" or "simple-icons" 13 | * @property { Object } faIcon A FontAwesome icon object 14 | * @property { Object|string|Array } path The SVG path for the icon 15 | * @property { number|string } size The size of the icon 16 | * @property { string } viewBox The SVG view-box size 17 | * @property { "horizontal"|"vertical"|"both"|null } flip Flip the icon on its given axis/axes 18 | * @property { number|string } rotate Degrees to rotate the icon 19 | */ 20 | 21 | /** 22 | * @typedef { "alert"|"log"|"marquee"|"status"|"timer" } LiveRegionRole 23 | */ 24 | 25 | /** 26 | * @typedef { Object } IconPresets 27 | * @property { Vue3Icon } success The vue3-icon props for a message type of success 28 | * @property { Vue3Icon } warning The vue3-icon props for a message type of warning 29 | * @property { Vue3Icon } info The vue3-icon props for a message type of info 30 | * @property { Vue3Icon } error The vue3-icon props for a message type of error 31 | */ 32 | 33 | /** 34 | * @typedef { Object } SnackbarMessage 35 | * @property { "warning"|"error"|"info"|"success"|null } [type] The classification of the message 36 | * @property { string } [title] An optional title string for the message 37 | * @property { string } text The text content of the message 38 | * @property { string } [background] The background colour of the message 39 | * @property { number } [duration] In ms, the time before the message expires 40 | * @property { boolean } [dismissible] Can the message be dismissed manually? 41 | * @property { LiveRegionRole } [role] The aria-role of the message 42 | * @property { Renderable } [action] Any valid Vue component to render in the action slot 43 | * @property {(ev: SnackbarMessage, wasDismissed: boolean) => void} [onRemoved] A callback for when the message is removed from the stack 44 | */ 45 | 46 | /** 47 | * @typedef { Object } SnackbarProps 48 | * @property { boolean } top Render the snackbar at the top of the screen 49 | * @property { boolean } bottom Render the snackbar at the bottom of the screen 50 | * @property { boolean } left Render the snackbar at the left of the screen 51 | * @property { boolean } right Render the snackbar at the right of the screen 52 | * @property { string } success Base colour to use for success messages 53 | * @property { string } error Base colour to use for error messages 54 | * @property { string } warning Base colour to use for warning messages 55 | * @property { string } info Base colour to use for info messages 56 | * @property { string } messageTextColor Text colour for the default message 57 | * @property { string } messageIconColor Icon colour for the default message 58 | * @property { string|HTMLElementShim } attach HTML element to attach the container to 59 | * @property { "top"|"bottom"|"left"|"right"|"start"|"end"} border Use the alternative border-style messages 60 | * @property { string|number } backgroundOpacity The background colour opacity when using border-style messages 61 | * @property { string } backgroundColor Background colour when using border-style messages 62 | * @property { string } baseBackgroundColor Base background colour when using border-style messages 63 | * @property { number } duration The default time in ms for messages to stay on the screen 64 | * @property { string } messageClass Class string to add to each message 65 | * @property { number } zIndex The z-index value of the snackbar container 66 | * @property { boolean } dense Reduce padding on the y-axis for snackbar messages 67 | * @property { boolean } reverse Reverse the display order of snackbar messages 68 | * @property { boolean } groups Use snackbar groups with messages with the same group-key 69 | * @property { boolean|"xs"|"sm"|"md"|"lg"|"xl"|"2xl" } shadow Add shadow effect to messages 70 | * @property { number } limit The maximum number of messages/message groups to show 71 | * @property { IconPresets } iconPresets The preset icon settings for standard message types 72 | * @property { string } contentWidth The CSS width string for the snackbar content 73 | */ 74 | export const propsModel = { 75 | /* ****************************************** 76 | * LOCATION PROPS 77 | ****************************************** */ 78 | top: { 79 | type: Boolean, 80 | default: false, 81 | }, 82 | bottom: { 83 | type: Boolean, 84 | default: false, 85 | }, 86 | left: { 87 | type: Boolean, 88 | default: false, 89 | }, 90 | right: { 91 | type: Boolean, 92 | default: false, 93 | }, 94 | start: { 95 | type: Boolean, 96 | default: false, 97 | }, 98 | end: { 99 | type: Boolean, 100 | default: false, 101 | }, 102 | /* ****************************************** 103 | * COLOUR PROPS 104 | ****************************************** */ 105 | success: { 106 | type: String, 107 | default: "#4caf50", 108 | }, 109 | error: { 110 | type: String, 111 | default: "#ff5252", 112 | }, 113 | warning: { 114 | type: String, 115 | default: "#fb8c00", 116 | }, 117 | info: { 118 | type: String, 119 | default: "#2196f3", 120 | }, 121 | iconPresets: { 122 | type: Object, 123 | default: () => ({}), 124 | }, 125 | messageTextColor: { 126 | type: String, 127 | default: "#fff", 128 | }, 129 | messageIconColor: { 130 | type: String, 131 | default: "currentColor", 132 | }, 133 | /* ********************************************* 134 | * BACKGROUND PROPS 135 | * ******************************************* */ 136 | backgroundOpacity: { 137 | type: [String, Number], 138 | default: 0.12, 139 | validator: (v) => { 140 | return !isNaN(parseFloat(v)) && isFinite(v); 141 | }, 142 | }, 143 | backgroundColor: { 144 | type: String, 145 | default: "currentColor", 146 | }, 147 | baseBackgroundColor: { 148 | type: String, 149 | default: "#fff", 150 | }, 151 | /* ********************************************* 152 | * BEHAVIOUR PROPS 153 | * ******************************************* */ 154 | duration: { 155 | type: [Number, String], 156 | default: null, 157 | }, 158 | reverse: { 159 | type: Boolean, 160 | default: false, 161 | }, 162 | limit: { 163 | type: Number, 164 | default: null, 165 | }, 166 | dismissOnActionClick: { 167 | type: Boolean, 168 | default: true, 169 | }, 170 | groups: { 171 | type: Boolean, 172 | default: false, 173 | }, 174 | attach: { 175 | type: [String, HTMLElementShim], 176 | default: "body", 177 | }, 178 | /* ****************************************** 179 | * OTHER PROPS 180 | ****************************************** */ 181 | border: { 182 | type: String, 183 | default: "", 184 | validator: (v) => ["top", "bottom", "left", "right", "start", "end", ""].includes(v), 185 | }, 186 | messageClass: { 187 | type: String, 188 | }, 189 | messageActionClass: { 190 | type: String, 191 | default: "vue3-snackbar-message-action", 192 | }, 193 | zIndex: { 194 | type: Number, 195 | default: 10000, 196 | }, 197 | dense: { 198 | type: Boolean, 199 | default: false, 200 | }, 201 | shadow: { 202 | type: [Boolean, String], 203 | default: false, 204 | validator: (v) => v === true || v === false || ["xs", "sm", "md", "lg", "xl", "2xl"].includes(v), 205 | }, 206 | contentWidth: { 207 | type: String, 208 | default: "min(50vw, 350px)", 209 | }, 210 | borderWidth: { 211 | type: [String, Number], 212 | default: 8, 213 | }, 214 | }; 215 | -------------------------------------------------------------------------------- /src/style.postcss: -------------------------------------------------------------------------------- 1 | #vue3-snackbar--container { 2 | position: fixed; 3 | margin: 16px 16px 0 16px; 4 | padding: 0; 5 | z-index: var(--snackbar-zindex); 6 | pointer-events: none; 7 | 8 | &.is-rtl { 9 | .vue3-snackbar-message-icon { 10 | margin-right: 0; 11 | margin-left: 16px; 12 | } 13 | } 14 | 15 | &.is-top { 16 | top: 0; 17 | } 18 | 19 | &.is-bottom { 20 | bottom: 0; 21 | } 22 | 23 | &.is-left { 24 | left: 0; 25 | } 26 | 27 | &.is-right { 28 | right: 0; 29 | } 30 | 31 | &.is-start { 32 | inset-inline-start: 0; 33 | } 34 | 35 | &.is-end { 36 | inset-inline-end: 0; 37 | } 38 | 39 | &.is-middle { 40 | top: 50%; 41 | transform: translateY(-50%); 42 | } 43 | 44 | &.is-centre { 45 | left: 50%; 46 | transform: translateX(-50%); 47 | } 48 | 49 | &.shadow-xs .vue3-snackbar-message { 50 | box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); 51 | } 52 | 53 | &.shadow-sm .vue3-snackbar-message { 54 | box-shadow: 55 | 0 1px 3px 0 rgb(0 0 0 / 0.1), 56 | 0 1px 2px -1px rgb(0 0 0 / 0.1); 57 | } 58 | 59 | &.shadow-md .vue3-snackbar-message { 60 | box-shadow: 61 | 0 4px 6px -1px rgb(0 0 0 / 0.1), 62 | 0 2px 4px -2px rgb(0 0 0 / 0.1); 63 | } 64 | 65 | &.shadow-lg .vue3-snackbar-message { 66 | box-shadow: 67 | 0 10px 15px -3px rgb(0 0 0 / 0.1), 68 | 0 4px 6px -4px rgb(0 0 0 / 0.1); 69 | } 70 | 71 | &.shadow-xl .vue3-snackbar-message { 72 | box-shadow: 73 | 0 20px 25px -5px rgb(0 0 0 / 0.1), 74 | 0 8px 10px -6px rgb(0 0 0 / 0.1); 75 | } 76 | 77 | &.shadow-2xl .vue3-snackbar-message { 78 | box-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); 79 | } 80 | } 81 | 82 | .vue3-snackbar-message { 83 | display: flex; 84 | color: var(--message-text-color, #fff); 85 | margin-bottom: 16px; 86 | position: relative; 87 | border-radius: 4px; 88 | pointer-events: all; 89 | 90 | &-action { 91 | display: flex; 92 | width: 100%; 93 | justify-content: flex-end; 94 | 95 | &:not(:empty) { 96 | padding-top: 0.5rem; 97 | } 98 | } 99 | 100 | &.has-border { 101 | position: relative; 102 | background-color: var(--base-background-color, #fff); 103 | border-style: solid; 104 | border-color: currentColor; 105 | border-width: 0; 106 | &::before { 107 | position: absolute; 108 | top: 0; 109 | bottom: 0; 110 | left: 0; 111 | right: 0; 112 | content: ""; 113 | background-color: var(--background-color); 114 | opacity: var(--background-opacity); 115 | pointer-events: none; 116 | } 117 | &.success { 118 | color: var(--success-colour); 119 | } 120 | &.error { 121 | color: var(--error-colour); 122 | } 123 | &.info { 124 | color: var(--info-colour); 125 | } 126 | &.warning { 127 | color: var(--warning-colour); 128 | } 129 | &.has-background { 130 | color: var(--message-background); 131 | } 132 | } 133 | 134 | &.border-left { 135 | border-left-width: var(--snackbar-border-width); 136 | &:before { 137 | border-top-right-radius: inherit; 138 | border-bottom-right-radius: inherit; 139 | } 140 | } 141 | &.border-right { 142 | border-right-width: var(--snackbar-border-width); 143 | &:before { 144 | border-top-left-radius: inherit; 145 | border-bottom-left-radius: inherit; 146 | } 147 | } 148 | &.border-top { 149 | border-top-width: var(--snackbar-border-width); 150 | &:before { 151 | border-bottom-left-radius: inherit; 152 | border-bottom-right-radius: inherit; 153 | } 154 | } 155 | &.border-bottom { 156 | border-bottom-width: var(--snackbar-border-width); 157 | &:before { 158 | border-top-left-radius: inherit; 159 | border-top-right-radius: inherit; 160 | } 161 | } 162 | &.border-start { 163 | border-inline-start-width: var(--snackbar-border-width); 164 | &::before { 165 | border-start-end-radius: inherit; 166 | border-end-end-radius: inherit; 167 | } 168 | } 169 | &.border-end { 170 | border-inline-end-width: var(--snackbar-border-width); 171 | &:before { 172 | border-start-start-radius: inherit; 173 | border-end-start-radius: inherit; 174 | } 175 | } 176 | 177 | &.success:not(.has-background):not(.has-border) { 178 | background-color: var(--success-colour); 179 | border-color: var(--success-colour); 180 | } 181 | &.error:not(.has-background):not(.has-border) { 182 | background-color: var(--error-colour); 183 | border-color: var(--error-colour); 184 | } 185 | &.warning:not(.has-background):not(.has-border) { 186 | background-color: var(--warning-colour); 187 | border-color: var(--warning-colour); 188 | } 189 | &.info:not(.has-background):not(.has-border) { 190 | background-color: var(--info-colour); 191 | border-color: var(--info-colour); 192 | } 193 | &.has-background:not(.has-border) { 194 | background-color: var(--message-background); 195 | border-color: var(--message-background); 196 | } 197 | 198 | &-wrapper { 199 | align-items: center; 200 | border-radius: inherit; 201 | display: flex; 202 | padding: 16px; 203 | } 204 | 205 | &.is-dense .vue3-snackbar-message-wrapper { 206 | padding: 8px 16px; 207 | } 208 | 209 | &-title { 210 | font-weight: bold; 211 | position: relative; 212 | } 213 | 214 | &-additional { 215 | position: relative; 216 | } 217 | 218 | &-icon { 219 | margin-right: 16px; 220 | display: flex; 221 | color: var(--message-icon-color, currentColor); 222 | } 223 | 224 | &-close { 225 | margin-left: 16px; 226 | min-width: 30px; 227 | 228 | button { 229 | -webkit-appearance: none; 230 | &:focus:not(:focus-visible) { 231 | outline: none; 232 | } 233 | &:focus:not(:-moz-focusring) { 234 | outline: none; 235 | } 236 | border: none; 237 | margin: 0; 238 | padding: 0; 239 | overflow: visible; 240 | background: transparent; 241 | color: inherit; 242 | font: inherit; 243 | line-height: normal; 244 | -webkit-font-smoothing: inherit; 245 | -moz-osx-font-smoothing: inherit; 246 | text-align: inherit; 247 | cursor: pointer; 248 | width: 30px; 249 | height: 30px; 250 | display: flex; 251 | align-items: center; 252 | justify-content: center; 253 | position: relative; 254 | 255 | &::before { 256 | position: absolute; 257 | content: ""; 258 | top: 0; 259 | left: 0; 260 | right: 0; 261 | bottom: 0; 262 | background: currentColor; 263 | opacity: 0; 264 | pointer-events: none; 265 | transition: opacity 300ms ease-in-out; 266 | border-radius: 50%; 267 | } 268 | 269 | &:hover::before { 270 | opacity: 0.22; 271 | } 272 | } 273 | } 274 | 275 | &-content { 276 | display: flex; 277 | flex-flow: column; 278 | width: var(--snackbar-content-width); 279 | } 280 | 281 | &-badge { 282 | font-size: 0.9em; 283 | font-weight: bold; 284 | padding: 0.125em 0.5em; 285 | border-radius: 8px; 286 | position: absolute; 287 | background: #c10015; 288 | border: 1px solid crimson; 289 | box-shadow: 290 | 0 1px 3px #0003, 291 | 0 1px 1px #00000024, 292 | 0 2px 1px -1px #0000001f; 293 | color: white; 294 | top: 0; 295 | left: 0; 296 | transform: translate(-25%, -25%); 297 | } 298 | 299 | &.border-left .vue3-snackbar-message-badge { 300 | left: 0; 301 | top: -5px; 302 | } 303 | } 304 | 305 | .vue3-snackbar-message-enter-from { 306 | opacity: 0; 307 | -webkit-transform: translateY(50%); 308 | -ms-transform: translateY(50%); 309 | transform: translateY(50%); 310 | } 311 | .vue3-snackbar-message-leave-from { 312 | max-height: 1000px; 313 | } 314 | .vue3-snackbar .vue3-snackbar-message.vue3-snackbar-message-leave-to { 315 | max-height: 0; 316 | opacity: 0; 317 | margin-bottom: 0; 318 | overflow: hidden; 319 | 320 | .vue3-snackbar-message-badge { 321 | opacity: 0; 322 | } 323 | } 324 | .vue3-snackbar-message-enter-active { 325 | transition: 326 | transform 0.3s, 327 | opacity 0.3s; 328 | } 329 | .vue3-snackbar-message-leave-active { 330 | transition: 331 | max-height 0.45s cubic-bezier(0, 1, 0, 1), 332 | opacity 0.3s, 333 | margin-bottom 0.3s; 334 | } 335 | 336 | @keyframes headShake { 337 | 0% { 338 | transform: translate(-25%, -25%); 339 | } 340 | 341 | 6.5% { 342 | transform: translate(calc(-25% - 6px), -25%) rotateY(-9deg); 343 | } 344 | 345 | 18.5% { 346 | transform: translate(calc(-25% + 5px), -25%) rotateY(7deg); 347 | } 348 | 349 | 31.5% { 350 | transform: translate(calc(-25% - 3px), -25%) rotateY(-5deg); 351 | } 352 | 353 | 43.5% { 354 | transform: translate(calc(-25% + 2px), -25%) rotateY(3deg); 355 | } 356 | 357 | 50% { 358 | transform: translate(-25%, -25%); 359 | } 360 | } 361 | .shake-baby-shake .vue3-snackbar-message-badge { 362 | animation-timing-function: ease-in-out; 363 | animation-name: headShake; 364 | animation-duration: 1s; 365 | animation-fill-mode: both; 366 | } 367 | -------------------------------------------------------------------------------- /demo/App.vue: -------------------------------------------------------------------------------- 1 | 246 | 247 | 370 | 371 | 398 | 399 | 406 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | tiny-emitter: 12 | specifier: ^2.1.0 13 | version: 2.1.0 14 | vue3-icon: 15 | specifier: ^3.0.3 16 | version: 3.0.3(vue@3.5.21) 17 | devDependencies: 18 | '@eslint/js': 19 | specifier: ^9.34.0 20 | version: 9.34.0 21 | '@mdi/js': 22 | specifier: ^7.4.47 23 | version: 7.4.47 24 | '@vitejs/plugin-vue': 25 | specifier: ^6.0.1 26 | version: 6.0.1(rolldown-vite@7.1.5)(vue@3.5.21) 27 | '@vueuse/core': 28 | specifier: ^13.9.0 29 | version: 13.9.0(vue@3.5.21) 30 | eslint: 31 | specifier: ^9.34.0 32 | version: 9.34.0 33 | eslint-config-prettier: 34 | specifier: ^10.1.8 35 | version: 10.1.8(eslint@9.34.0) 36 | eslint-plugin-vue: 37 | specifier: ^10.4.0 38 | version: 10.4.0(eslint@9.34.0)(vue-eslint-parser@10.2.0) 39 | gh-pages: 40 | specifier: ^6.3.0 41 | version: 6.3.0 42 | globals: 43 | specifier: ^16.3.0 44 | version: 16.3.0 45 | jsdoc: 46 | specifier: ^4.0.4 47 | version: 4.0.4 48 | jsdoc-vuejs: 49 | specifier: ^4.0.0 50 | version: 4.0.0(@vue/compiler-sfc@3.5.21)(jsdoc@4.0.4) 51 | postcss: 52 | specifier: ^8.5.6 53 | version: 8.5.6 54 | postcss-nested: 55 | specifier: ^7.0.2 56 | version: 7.0.2(postcss@8.5.6) 57 | prettier: 58 | specifier: ^3.6.2 59 | version: 3.6.2 60 | prismjs: 61 | specifier: ^1.30.0 62 | version: 1.30.0 63 | roboto-fontface: 64 | specifier: ^0.10.0 65 | version: 0.10.0 66 | sass: 67 | specifier: ^1.92.0 68 | version: 1.92.0 69 | sass-loader: 70 | specifier: ^16.0.5 71 | version: 16.0.5(sass@1.92.0) 72 | typescript: 73 | specifier: ^5.9.2 74 | version: 5.9.2 75 | vite: 76 | specifier: npm:rolldown-vite@^7.1.5 77 | version: /rolldown-vite@7.1.5(sass@1.92.0) 78 | vue: 79 | specifier: ^3.5.21 80 | version: 3.5.21(typescript@5.9.2) 81 | vue-tsc: 82 | specifier: ^3.0.6 83 | version: 3.0.6(typescript@5.9.2) 84 | 85 | demo: 86 | dependencies: 87 | vue: 88 | specifier: ^3.5.21 89 | version: 3.5.21(typescript@5.9.2) 90 | vue3-snackbar: 91 | specifier: link:.. 92 | version: link:.. 93 | vuetify: 94 | specifier: ^3.9.6 95 | version: 3.9.6(typescript@5.9.2)(vite-plugin-vuetify@2.1.2)(vue@3.5.21) 96 | devDependencies: 97 | '@vitejs/plugin-vue': 98 | specifier: ^6.0.1 99 | version: 6.0.1(vite@7.1.4)(vue@3.5.21) 100 | vite-plugin-vuetify: 101 | specifier: ^2.1.2 102 | version: 2.1.2(vite@7.1.4)(vue@3.5.21)(vuetify@3.9.6) 103 | 104 | packages: 105 | 106 | /@babel/helper-string-parser@7.27.1: 107 | resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 108 | engines: {node: '>=6.9.0'} 109 | 110 | /@babel/helper-validator-identifier@7.27.1: 111 | resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 112 | engines: {node: '>=6.9.0'} 113 | 114 | /@babel/parser@7.28.3: 115 | resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} 116 | engines: {node: '>=6.0.0'} 117 | hasBin: true 118 | dependencies: 119 | '@babel/types': 7.28.2 120 | 121 | /@babel/types@7.28.2: 122 | resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} 123 | engines: {node: '>=6.9.0'} 124 | dependencies: 125 | '@babel/helper-string-parser': 7.27.1 126 | '@babel/helper-validator-identifier': 7.27.1 127 | 128 | /@emnapi/core@1.5.0: 129 | resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} 130 | requiresBuild: true 131 | dependencies: 132 | '@emnapi/wasi-threads': 1.1.0 133 | tslib: 2.8.1 134 | dev: true 135 | optional: true 136 | 137 | /@emnapi/runtime@1.5.0: 138 | resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==} 139 | requiresBuild: true 140 | dependencies: 141 | tslib: 2.8.1 142 | dev: true 143 | optional: true 144 | 145 | /@emnapi/wasi-threads@1.1.0: 146 | resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} 147 | requiresBuild: true 148 | dependencies: 149 | tslib: 2.8.1 150 | dev: true 151 | optional: true 152 | 153 | /@esbuild/aix-ppc64@0.25.9: 154 | resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} 155 | engines: {node: '>=18'} 156 | cpu: [ppc64] 157 | os: [aix] 158 | requiresBuild: true 159 | optional: true 160 | 161 | /@esbuild/android-arm64@0.25.9: 162 | resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} 163 | engines: {node: '>=18'} 164 | cpu: [arm64] 165 | os: [android] 166 | requiresBuild: true 167 | optional: true 168 | 169 | /@esbuild/android-arm@0.25.9: 170 | resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} 171 | engines: {node: '>=18'} 172 | cpu: [arm] 173 | os: [android] 174 | requiresBuild: true 175 | optional: true 176 | 177 | /@esbuild/android-x64@0.25.9: 178 | resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} 179 | engines: {node: '>=18'} 180 | cpu: [x64] 181 | os: [android] 182 | requiresBuild: true 183 | optional: true 184 | 185 | /@esbuild/darwin-arm64@0.25.9: 186 | resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} 187 | engines: {node: '>=18'} 188 | cpu: [arm64] 189 | os: [darwin] 190 | requiresBuild: true 191 | optional: true 192 | 193 | /@esbuild/darwin-x64@0.25.9: 194 | resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} 195 | engines: {node: '>=18'} 196 | cpu: [x64] 197 | os: [darwin] 198 | requiresBuild: true 199 | optional: true 200 | 201 | /@esbuild/freebsd-arm64@0.25.9: 202 | resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} 203 | engines: {node: '>=18'} 204 | cpu: [arm64] 205 | os: [freebsd] 206 | requiresBuild: true 207 | optional: true 208 | 209 | /@esbuild/freebsd-x64@0.25.9: 210 | resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} 211 | engines: {node: '>=18'} 212 | cpu: [x64] 213 | os: [freebsd] 214 | requiresBuild: true 215 | optional: true 216 | 217 | /@esbuild/linux-arm64@0.25.9: 218 | resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} 219 | engines: {node: '>=18'} 220 | cpu: [arm64] 221 | os: [linux] 222 | requiresBuild: true 223 | optional: true 224 | 225 | /@esbuild/linux-arm@0.25.9: 226 | resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} 227 | engines: {node: '>=18'} 228 | cpu: [arm] 229 | os: [linux] 230 | requiresBuild: true 231 | optional: true 232 | 233 | /@esbuild/linux-ia32@0.25.9: 234 | resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} 235 | engines: {node: '>=18'} 236 | cpu: [ia32] 237 | os: [linux] 238 | requiresBuild: true 239 | optional: true 240 | 241 | /@esbuild/linux-loong64@0.25.9: 242 | resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} 243 | engines: {node: '>=18'} 244 | cpu: [loong64] 245 | os: [linux] 246 | requiresBuild: true 247 | optional: true 248 | 249 | /@esbuild/linux-mips64el@0.25.9: 250 | resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} 251 | engines: {node: '>=18'} 252 | cpu: [mips64el] 253 | os: [linux] 254 | requiresBuild: true 255 | optional: true 256 | 257 | /@esbuild/linux-ppc64@0.25.9: 258 | resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} 259 | engines: {node: '>=18'} 260 | cpu: [ppc64] 261 | os: [linux] 262 | requiresBuild: true 263 | optional: true 264 | 265 | /@esbuild/linux-riscv64@0.25.9: 266 | resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} 267 | engines: {node: '>=18'} 268 | cpu: [riscv64] 269 | os: [linux] 270 | requiresBuild: true 271 | optional: true 272 | 273 | /@esbuild/linux-s390x@0.25.9: 274 | resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} 275 | engines: {node: '>=18'} 276 | cpu: [s390x] 277 | os: [linux] 278 | requiresBuild: true 279 | optional: true 280 | 281 | /@esbuild/linux-x64@0.25.9: 282 | resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} 283 | engines: {node: '>=18'} 284 | cpu: [x64] 285 | os: [linux] 286 | requiresBuild: true 287 | optional: true 288 | 289 | /@esbuild/netbsd-arm64@0.25.9: 290 | resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} 291 | engines: {node: '>=18'} 292 | cpu: [arm64] 293 | os: [netbsd] 294 | requiresBuild: true 295 | optional: true 296 | 297 | /@esbuild/netbsd-x64@0.25.9: 298 | resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} 299 | engines: {node: '>=18'} 300 | cpu: [x64] 301 | os: [netbsd] 302 | requiresBuild: true 303 | optional: true 304 | 305 | /@esbuild/openbsd-arm64@0.25.9: 306 | resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} 307 | engines: {node: '>=18'} 308 | cpu: [arm64] 309 | os: [openbsd] 310 | requiresBuild: true 311 | optional: true 312 | 313 | /@esbuild/openbsd-x64@0.25.9: 314 | resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} 315 | engines: {node: '>=18'} 316 | cpu: [x64] 317 | os: [openbsd] 318 | requiresBuild: true 319 | optional: true 320 | 321 | /@esbuild/openharmony-arm64@0.25.9: 322 | resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} 323 | engines: {node: '>=18'} 324 | cpu: [arm64] 325 | os: [openharmony] 326 | requiresBuild: true 327 | optional: true 328 | 329 | /@esbuild/sunos-x64@0.25.9: 330 | resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} 331 | engines: {node: '>=18'} 332 | cpu: [x64] 333 | os: [sunos] 334 | requiresBuild: true 335 | optional: true 336 | 337 | /@esbuild/win32-arm64@0.25.9: 338 | resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} 339 | engines: {node: '>=18'} 340 | cpu: [arm64] 341 | os: [win32] 342 | requiresBuild: true 343 | optional: true 344 | 345 | /@esbuild/win32-ia32@0.25.9: 346 | resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} 347 | engines: {node: '>=18'} 348 | cpu: [ia32] 349 | os: [win32] 350 | requiresBuild: true 351 | optional: true 352 | 353 | /@esbuild/win32-x64@0.25.9: 354 | resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} 355 | engines: {node: '>=18'} 356 | cpu: [x64] 357 | os: [win32] 358 | requiresBuild: true 359 | optional: true 360 | 361 | /@eslint-community/eslint-utils@4.7.0(eslint@9.34.0): 362 | resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} 363 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 364 | peerDependencies: 365 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 366 | dependencies: 367 | eslint: 9.34.0 368 | eslint-visitor-keys: 3.4.3 369 | dev: true 370 | 371 | /@eslint-community/regexpp@4.12.1: 372 | resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} 373 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 374 | dev: true 375 | 376 | /@eslint/config-array@0.21.0: 377 | resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} 378 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 379 | dependencies: 380 | '@eslint/object-schema': 2.1.6 381 | debug: 4.4.1 382 | minimatch: 3.1.2 383 | transitivePeerDependencies: 384 | - supports-color 385 | dev: true 386 | 387 | /@eslint/config-helpers@0.3.1: 388 | resolution: {integrity: sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==} 389 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 390 | dev: true 391 | 392 | /@eslint/core@0.15.2: 393 | resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} 394 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 395 | dependencies: 396 | '@types/json-schema': 7.0.15 397 | dev: true 398 | 399 | /@eslint/eslintrc@3.3.1: 400 | resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} 401 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 402 | dependencies: 403 | ajv: 6.12.6 404 | debug: 4.4.1 405 | espree: 10.4.0 406 | globals: 14.0.0 407 | ignore: 5.3.2 408 | import-fresh: 3.3.1 409 | js-yaml: 4.1.0 410 | minimatch: 3.1.2 411 | strip-json-comments: 3.1.1 412 | transitivePeerDependencies: 413 | - supports-color 414 | dev: true 415 | 416 | /@eslint/js@9.34.0: 417 | resolution: {integrity: sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==} 418 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 419 | dev: true 420 | 421 | /@eslint/object-schema@2.1.6: 422 | resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} 423 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 424 | dev: true 425 | 426 | /@eslint/plugin-kit@0.3.5: 427 | resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} 428 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 429 | dependencies: 430 | '@eslint/core': 0.15.2 431 | levn: 0.4.1 432 | dev: true 433 | 434 | /@humanfs/core@0.19.1: 435 | resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} 436 | engines: {node: '>=18.18.0'} 437 | dev: true 438 | 439 | /@humanfs/node@0.16.6: 440 | resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} 441 | engines: {node: '>=18.18.0'} 442 | dependencies: 443 | '@humanfs/core': 0.19.1 444 | '@humanwhocodes/retry': 0.3.1 445 | dev: true 446 | 447 | /@humanwhocodes/module-importer@1.0.1: 448 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 449 | engines: {node: '>=12.22'} 450 | dev: true 451 | 452 | /@humanwhocodes/retry@0.3.1: 453 | resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} 454 | engines: {node: '>=18.18'} 455 | dev: true 456 | 457 | /@humanwhocodes/retry@0.4.3: 458 | resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} 459 | engines: {node: '>=18.18'} 460 | dev: true 461 | 462 | /@jridgewell/sourcemap-codec@1.5.5: 463 | resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} 464 | 465 | /@jsdoc/salty@0.2.9: 466 | resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} 467 | engines: {node: '>=v12.0.0'} 468 | dependencies: 469 | lodash: 4.17.21 470 | dev: true 471 | 472 | /@mdi/js@7.4.47: 473 | resolution: {integrity: sha512-KPnNOtm5i2pMabqZxpUz7iQf+mfrYZyKCZ8QNz85czgEt7cuHcGorWfdzUMWYA0SD+a6Hn4FmJ+YhzzzjkTZrQ==} 474 | dev: true 475 | 476 | /@napi-rs/wasm-runtime@1.0.3: 477 | resolution: {integrity: sha512-rZxtMsLwjdXkMUGC3WwsPwLNVqVqnTJT6MNIB6e+5fhMcSCPP0AOsNWuMQ5mdCq6HNjs/ZeWAEchpqeprqBD2Q==} 478 | requiresBuild: true 479 | dependencies: 480 | '@emnapi/core': 1.5.0 481 | '@emnapi/runtime': 1.5.0 482 | '@tybys/wasm-util': 0.10.0 483 | dev: true 484 | optional: true 485 | 486 | /@nodelib/fs.scandir@2.1.5: 487 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 488 | engines: {node: '>= 8'} 489 | dependencies: 490 | '@nodelib/fs.stat': 2.0.5 491 | run-parallel: 1.2.0 492 | dev: true 493 | 494 | /@nodelib/fs.stat@2.0.5: 495 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 496 | engines: {node: '>= 8'} 497 | dev: true 498 | 499 | /@nodelib/fs.walk@1.2.8: 500 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 501 | engines: {node: '>= 8'} 502 | dependencies: 503 | '@nodelib/fs.scandir': 2.1.5 504 | fastq: 1.19.1 505 | dev: true 506 | 507 | /@oxc-project/runtime@0.82.3: 508 | resolution: {integrity: sha512-LNh5GlJvYHAnMurO+EyA8jJwN1rki7l3PSHuosDh2I7h00T6/u9rCkUjg/SvPmT1CZzvhuW0y+gf7jcqUy/Usg==} 509 | engines: {node: '>=6.9.0'} 510 | dev: true 511 | 512 | /@oxc-project/types@0.82.3: 513 | resolution: {integrity: sha512-6nCUxBnGX0c6qfZW5MaF6/fmu5dHJDMiMPaioKHKs5mi5+8/FHQ7WGjgQIz1zxpmceMYfdIXkOaLYE+ejbuOtA==} 514 | dev: true 515 | 516 | /@parcel/watcher-android-arm64@2.5.1: 517 | resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} 518 | engines: {node: '>= 10.0.0'} 519 | cpu: [arm64] 520 | os: [android] 521 | requiresBuild: true 522 | optional: true 523 | 524 | /@parcel/watcher-darwin-arm64@2.5.1: 525 | resolution: {integrity: sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==} 526 | engines: {node: '>= 10.0.0'} 527 | cpu: [arm64] 528 | os: [darwin] 529 | requiresBuild: true 530 | optional: true 531 | 532 | /@parcel/watcher-darwin-x64@2.5.1: 533 | resolution: {integrity: sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==} 534 | engines: {node: '>= 10.0.0'} 535 | cpu: [x64] 536 | os: [darwin] 537 | requiresBuild: true 538 | optional: true 539 | 540 | /@parcel/watcher-freebsd-x64@2.5.1: 541 | resolution: {integrity: sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==} 542 | engines: {node: '>= 10.0.0'} 543 | cpu: [x64] 544 | os: [freebsd] 545 | requiresBuild: true 546 | optional: true 547 | 548 | /@parcel/watcher-linux-arm-glibc@2.5.1: 549 | resolution: {integrity: sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==} 550 | engines: {node: '>= 10.0.0'} 551 | cpu: [arm] 552 | os: [linux] 553 | requiresBuild: true 554 | optional: true 555 | 556 | /@parcel/watcher-linux-arm-musl@2.5.1: 557 | resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==} 558 | engines: {node: '>= 10.0.0'} 559 | cpu: [arm] 560 | os: [linux] 561 | requiresBuild: true 562 | optional: true 563 | 564 | /@parcel/watcher-linux-arm64-glibc@2.5.1: 565 | resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==} 566 | engines: {node: '>= 10.0.0'} 567 | cpu: [arm64] 568 | os: [linux] 569 | requiresBuild: true 570 | optional: true 571 | 572 | /@parcel/watcher-linux-arm64-musl@2.5.1: 573 | resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==} 574 | engines: {node: '>= 10.0.0'} 575 | cpu: [arm64] 576 | os: [linux] 577 | requiresBuild: true 578 | optional: true 579 | 580 | /@parcel/watcher-linux-x64-glibc@2.5.1: 581 | resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==} 582 | engines: {node: '>= 10.0.0'} 583 | cpu: [x64] 584 | os: [linux] 585 | requiresBuild: true 586 | optional: true 587 | 588 | /@parcel/watcher-linux-x64-musl@2.5.1: 589 | resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==} 590 | engines: {node: '>= 10.0.0'} 591 | cpu: [x64] 592 | os: [linux] 593 | requiresBuild: true 594 | optional: true 595 | 596 | /@parcel/watcher-win32-arm64@2.5.1: 597 | resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==} 598 | engines: {node: '>= 10.0.0'} 599 | cpu: [arm64] 600 | os: [win32] 601 | requiresBuild: true 602 | optional: true 603 | 604 | /@parcel/watcher-win32-ia32@2.5.1: 605 | resolution: {integrity: sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==} 606 | engines: {node: '>= 10.0.0'} 607 | cpu: [ia32] 608 | os: [win32] 609 | requiresBuild: true 610 | optional: true 611 | 612 | /@parcel/watcher-win32-x64@2.5.1: 613 | resolution: {integrity: sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==} 614 | engines: {node: '>= 10.0.0'} 615 | cpu: [x64] 616 | os: [win32] 617 | requiresBuild: true 618 | optional: true 619 | 620 | /@parcel/watcher@2.5.1: 621 | resolution: {integrity: sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==} 622 | engines: {node: '>= 10.0.0'} 623 | requiresBuild: true 624 | dependencies: 625 | detect-libc: 1.0.3 626 | is-glob: 4.0.3 627 | micromatch: 4.0.8 628 | node-addon-api: 7.1.1 629 | optionalDependencies: 630 | '@parcel/watcher-android-arm64': 2.5.1 631 | '@parcel/watcher-darwin-arm64': 2.5.1 632 | '@parcel/watcher-darwin-x64': 2.5.1 633 | '@parcel/watcher-freebsd-x64': 2.5.1 634 | '@parcel/watcher-linux-arm-glibc': 2.5.1 635 | '@parcel/watcher-linux-arm-musl': 2.5.1 636 | '@parcel/watcher-linux-arm64-glibc': 2.5.1 637 | '@parcel/watcher-linux-arm64-musl': 2.5.1 638 | '@parcel/watcher-linux-x64-glibc': 2.5.1 639 | '@parcel/watcher-linux-x64-musl': 2.5.1 640 | '@parcel/watcher-win32-arm64': 2.5.1 641 | '@parcel/watcher-win32-ia32': 2.5.1 642 | '@parcel/watcher-win32-x64': 2.5.1 643 | optional: true 644 | 645 | /@rolldown/binding-android-arm64@1.0.0-beta.34: 646 | resolution: {integrity: sha512-jf5GNe5jP3Sr1Tih0WKvg2bzvh5T/1TA0fn1u32xSH7ca/p5t+/QRr4VRFCV/na5vjwKEhwWrChsL2AWlY+eoA==} 647 | cpu: [arm64] 648 | os: [android] 649 | requiresBuild: true 650 | dev: true 651 | optional: true 652 | 653 | /@rolldown/binding-darwin-arm64@1.0.0-beta.34: 654 | resolution: {integrity: sha512-2F/TqH4QuJQ34tgWxqBjFL3XV1gMzeQgUO8YRtCPGBSP0GhxtoFzsp7KqmQEothsxztlv+KhhT9Dbg3HHwHViQ==} 655 | cpu: [arm64] 656 | os: [darwin] 657 | requiresBuild: true 658 | dev: true 659 | optional: true 660 | 661 | /@rolldown/binding-darwin-x64@1.0.0-beta.34: 662 | resolution: {integrity: sha512-E1QuFslgLWbHQ8Qli/AqUKdfg0pockQPwRxVbhNQ74SciZEZpzLaujkdmOLSccMlSXDfFCF8RPnMoRAzQ9JV8Q==} 663 | cpu: [x64] 664 | os: [darwin] 665 | requiresBuild: true 666 | dev: true 667 | optional: true 668 | 669 | /@rolldown/binding-freebsd-x64@1.0.0-beta.34: 670 | resolution: {integrity: sha512-VS8VInNCwnkpI9WeQaWu3kVBq9ty6g7KrHdLxYMzeqz24+w9hg712TcWdqzdY6sn+24lUoMD9jTZrZ/qfVpk0g==} 671 | cpu: [x64] 672 | os: [freebsd] 673 | requiresBuild: true 674 | dev: true 675 | optional: true 676 | 677 | /@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.34: 678 | resolution: {integrity: sha512-4St4emjcnULnxJYb/5ZDrH/kK/j6PcUgc3eAqH5STmTrcF+I9m/X2xvSF2a2bWv1DOQhxBewThu0KkwGHdgu5w==} 679 | cpu: [arm] 680 | os: [linux] 681 | requiresBuild: true 682 | dev: true 683 | optional: true 684 | 685 | /@rolldown/binding-linux-arm64-gnu@1.0.0-beta.34: 686 | resolution: {integrity: sha512-a737FTqhFUoWfnebS2SnQ2BS50p0JdukdkUBwy2J06j4hZ6Eej0zEB8vTfAqoCjn8BQKkXBy+3Sx0IRkgwz1gA==} 687 | cpu: [arm64] 688 | os: [linux] 689 | requiresBuild: true 690 | dev: true 691 | optional: true 692 | 693 | /@rolldown/binding-linux-arm64-musl@1.0.0-beta.34: 694 | resolution: {integrity: sha512-NH+FeQWKyuw0k+PbXqpFWNfvD8RPvfJk766B/njdaWz4TmiEcSB0Nb6guNw1rBpM1FmltQYb3fFnTumtC6pRfA==} 695 | cpu: [arm64] 696 | os: [linux] 697 | requiresBuild: true 698 | dev: true 699 | optional: true 700 | 701 | /@rolldown/binding-linux-x64-gnu@1.0.0-beta.34: 702 | resolution: {integrity: sha512-Q3RSCivp8pNadYK8ke3hLnQk08BkpZX9BmMjgwae2FWzdxhxxUiUzd9By7kneUL0vRQ4uRnhD9VkFQ+Haeqdvw==} 703 | cpu: [x64] 704 | os: [linux] 705 | requiresBuild: true 706 | dev: true 707 | optional: true 708 | 709 | /@rolldown/binding-linux-x64-musl@1.0.0-beta.34: 710 | resolution: {integrity: sha512-wDd/HrNcVoBhWWBUW3evJHoo7GJE/RofssBy3Dsiip05YUBmokQVrYAyrboOY4dzs/lJ7HYeBtWQ9hj8wlyF0A==} 711 | cpu: [x64] 712 | os: [linux] 713 | requiresBuild: true 714 | dev: true 715 | optional: true 716 | 717 | /@rolldown/binding-openharmony-arm64@1.0.0-beta.34: 718 | resolution: {integrity: sha512-dH3FTEV6KTNWpYSgjSXZzeX7vLty9oBYn6R3laEdhwZftQwq030LKL+5wyQdlbX5pnbh4h127hpv3Hl1+sj8dg==} 719 | cpu: [arm64] 720 | os: [openharmony] 721 | requiresBuild: true 722 | dev: true 723 | optional: true 724 | 725 | /@rolldown/binding-wasm32-wasi@1.0.0-beta.34: 726 | resolution: {integrity: sha512-y5BUf+QtO0JsIDKA51FcGwvhJmv89BYjUl8AmN7jqD6k/eU55mH6RJYnxwCsODq5m7KSSTigVb6O7/GqB8wbPw==} 727 | engines: {node: '>=14.0.0'} 728 | cpu: [wasm32] 729 | requiresBuild: true 730 | dependencies: 731 | '@napi-rs/wasm-runtime': 1.0.3 732 | dev: true 733 | optional: true 734 | 735 | /@rolldown/binding-win32-arm64-msvc@1.0.0-beta.34: 736 | resolution: {integrity: sha512-ga5hFhdTwpaNxEiuxZHWnD3ed0GBAzbgzS5tRHpe0ObptxM1a9Xrq6TVfNQirBLwb5Y7T/FJmJi3pmdLy95ljg==} 737 | cpu: [arm64] 738 | os: [win32] 739 | requiresBuild: true 740 | dev: true 741 | optional: true 742 | 743 | /@rolldown/binding-win32-ia32-msvc@1.0.0-beta.34: 744 | resolution: {integrity: sha512-4/MBp9T9eRnZskxWr8EXD/xHvLhdjWaeX/qY9LPRG1JdCGV3DphkLTy5AWwIQ5jhAy2ZNJR5z2fYRlpWU0sIyQ==} 745 | cpu: [ia32] 746 | os: [win32] 747 | requiresBuild: true 748 | dev: true 749 | optional: true 750 | 751 | /@rolldown/binding-win32-x64-msvc@1.0.0-beta.34: 752 | resolution: {integrity: sha512-7O5iUBX6HSBKlQU4WykpUoEmb0wQmonb6ziKFr3dJTHud2kzDnWMqk344T0qm3uGv9Ddq6Re/94pInxo1G2d4w==} 753 | cpu: [x64] 754 | os: [win32] 755 | requiresBuild: true 756 | dev: true 757 | optional: true 758 | 759 | /@rolldown/pluginutils@1.0.0-beta.29: 760 | resolution: {integrity: sha512-NIJgOsMjbxAXvoGq/X0gD7VPMQ8j9g0BiDaNjVNVjvl+iKXxL3Jre0v31RmBYeLEmkbj2s02v8vFTbUXi5XS2Q==} 761 | dev: true 762 | 763 | /@rolldown/pluginutils@1.0.0-beta.34: 764 | resolution: {integrity: sha512-LyAREkZHP5pMom7c24meKmJCdhf2hEyvam2q0unr3or9ydwDL+DJ8chTF6Av/RFPb3rH8UFBdMzO5MxTZW97oA==} 765 | dev: true 766 | 767 | /@rollup/rollup-android-arm-eabi@4.50.0: 768 | resolution: {integrity: sha512-lVgpeQyy4fWN5QYebtW4buT/4kn4p4IJ+kDNB4uYNT5b8c8DLJDg6titg20NIg7E8RWwdWZORW6vUFfrLyG3KQ==} 769 | cpu: [arm] 770 | os: [android] 771 | requiresBuild: true 772 | optional: true 773 | 774 | /@rollup/rollup-android-arm64@4.50.0: 775 | resolution: {integrity: sha512-2O73dR4Dc9bp+wSYhviP6sDziurB5/HCym7xILKifWdE9UsOe2FtNcM+I4xZjKrfLJnq5UR8k9riB87gauiQtw==} 776 | cpu: [arm64] 777 | os: [android] 778 | requiresBuild: true 779 | optional: true 780 | 781 | /@rollup/rollup-darwin-arm64@4.50.0: 782 | resolution: {integrity: sha512-vwSXQN8T4sKf1RHr1F0s98Pf8UPz7pS6P3LG9NSmuw0TVh7EmaE+5Ny7hJOZ0M2yuTctEsHHRTMi2wuHkdS6Hg==} 783 | cpu: [arm64] 784 | os: [darwin] 785 | requiresBuild: true 786 | optional: true 787 | 788 | /@rollup/rollup-darwin-x64@4.50.0: 789 | resolution: {integrity: sha512-cQp/WG8HE7BCGyFVuzUg0FNmupxC+EPZEwWu2FCGGw5WDT1o2/YlENbm5e9SMvfDFR6FRhVCBePLqj0o8MN7Vw==} 790 | cpu: [x64] 791 | os: [darwin] 792 | requiresBuild: true 793 | optional: true 794 | 795 | /@rollup/rollup-freebsd-arm64@4.50.0: 796 | resolution: {integrity: sha512-UR1uTJFU/p801DvvBbtDD7z9mQL8J80xB0bR7DqW7UGQHRm/OaKzp4is7sQSdbt2pjjSS72eAtRh43hNduTnnQ==} 797 | cpu: [arm64] 798 | os: [freebsd] 799 | requiresBuild: true 800 | optional: true 801 | 802 | /@rollup/rollup-freebsd-x64@4.50.0: 803 | resolution: {integrity: sha512-G/DKyS6PK0dD0+VEzH/6n/hWDNPDZSMBmqsElWnCRGrYOb2jC0VSupp7UAHHQ4+QILwkxSMaYIbQ72dktp8pKA==} 804 | cpu: [x64] 805 | os: [freebsd] 806 | requiresBuild: true 807 | optional: true 808 | 809 | /@rollup/rollup-linux-arm-gnueabihf@4.50.0: 810 | resolution: {integrity: sha512-u72Mzc6jyJwKjJbZZcIYmd9bumJu7KNmHYdue43vT1rXPm2rITwmPWF0mmPzLm9/vJWxIRbao/jrQmxTO0Sm9w==} 811 | cpu: [arm] 812 | os: [linux] 813 | requiresBuild: true 814 | optional: true 815 | 816 | /@rollup/rollup-linux-arm-musleabihf@4.50.0: 817 | resolution: {integrity: sha512-S4UefYdV0tnynDJV1mdkNawp0E5Qm2MtSs330IyHgaccOFrwqsvgigUD29uT+B/70PDY1eQ3t40+xf6wIvXJyg==} 818 | cpu: [arm] 819 | os: [linux] 820 | requiresBuild: true 821 | optional: true 822 | 823 | /@rollup/rollup-linux-arm64-gnu@4.50.0: 824 | resolution: {integrity: sha512-1EhkSvUQXJsIhk4msxP5nNAUWoB4MFDHhtc4gAYvnqoHlaL9V3F37pNHabndawsfy/Tp7BPiy/aSa6XBYbaD1g==} 825 | cpu: [arm64] 826 | os: [linux] 827 | requiresBuild: true 828 | optional: true 829 | 830 | /@rollup/rollup-linux-arm64-musl@4.50.0: 831 | resolution: {integrity: sha512-EtBDIZuDtVg75xIPIK1l5vCXNNCIRM0OBPUG+tbApDuJAy9mKago6QxX+tfMzbCI6tXEhMuZuN1+CU8iDW+0UQ==} 832 | cpu: [arm64] 833 | os: [linux] 834 | requiresBuild: true 835 | optional: true 836 | 837 | /@rollup/rollup-linux-loongarch64-gnu@4.50.0: 838 | resolution: {integrity: sha512-BGYSwJdMP0hT5CCmljuSNx7+k+0upweM2M4YGfFBjnFSZMHOLYR0gEEj/dxyYJ6Zc6AiSeaBY8dWOa11GF/ppQ==} 839 | cpu: [loong64] 840 | os: [linux] 841 | requiresBuild: true 842 | optional: true 843 | 844 | /@rollup/rollup-linux-ppc64-gnu@4.50.0: 845 | resolution: {integrity: sha512-I1gSMzkVe1KzAxKAroCJL30hA4DqSi+wGc5gviD0y3IL/VkvcnAqwBf4RHXHyvH66YVHxpKO8ojrgc4SrWAnLg==} 846 | cpu: [ppc64] 847 | os: [linux] 848 | requiresBuild: true 849 | optional: true 850 | 851 | /@rollup/rollup-linux-riscv64-gnu@4.50.0: 852 | resolution: {integrity: sha512-bSbWlY3jZo7molh4tc5dKfeSxkqnf48UsLqYbUhnkdnfgZjgufLS/NTA8PcP/dnvct5CCdNkABJ56CbclMRYCA==} 853 | cpu: [riscv64] 854 | os: [linux] 855 | requiresBuild: true 856 | optional: true 857 | 858 | /@rollup/rollup-linux-riscv64-musl@4.50.0: 859 | resolution: {integrity: sha512-LSXSGumSURzEQLT2e4sFqFOv3LWZsEF8FK7AAv9zHZNDdMnUPYH3t8ZlaeYYZyTXnsob3htwTKeWtBIkPV27iQ==} 860 | cpu: [riscv64] 861 | os: [linux] 862 | requiresBuild: true 863 | optional: true 864 | 865 | /@rollup/rollup-linux-s390x-gnu@4.50.0: 866 | resolution: {integrity: sha512-CxRKyakfDrsLXiCyucVfVWVoaPA4oFSpPpDwlMcDFQvrv3XY6KEzMtMZrA+e/goC8xxp2WSOxHQubP8fPmmjOQ==} 867 | cpu: [s390x] 868 | os: [linux] 869 | requiresBuild: true 870 | optional: true 871 | 872 | /@rollup/rollup-linux-x64-gnu@4.50.0: 873 | resolution: {integrity: sha512-8PrJJA7/VU8ToHVEPu14FzuSAqVKyo5gg/J8xUerMbyNkWkO9j2ExBho/68RnJsMGNJq4zH114iAttgm7BZVkA==} 874 | cpu: [x64] 875 | os: [linux] 876 | requiresBuild: true 877 | optional: true 878 | 879 | /@rollup/rollup-linux-x64-musl@4.50.0: 880 | resolution: {integrity: sha512-SkE6YQp+CzpyOrbw7Oc4MgXFvTw2UIBElvAvLCo230pyxOLmYwRPwZ/L5lBe/VW/qT1ZgND9wJfOsdy0XptRvw==} 881 | cpu: [x64] 882 | os: [linux] 883 | requiresBuild: true 884 | optional: true 885 | 886 | /@rollup/rollup-openharmony-arm64@4.50.0: 887 | resolution: {integrity: sha512-PZkNLPfvXeIOgJWA804zjSFH7fARBBCpCXxgkGDRjjAhRLOR8o0IGS01ykh5GYfod4c2yiiREuDM8iZ+pVsT+Q==} 888 | cpu: [arm64] 889 | os: [openharmony] 890 | requiresBuild: true 891 | optional: true 892 | 893 | /@rollup/rollup-win32-arm64-msvc@4.50.0: 894 | resolution: {integrity: sha512-q7cIIdFvWQoaCbLDUyUc8YfR3Jh2xx3unO8Dn6/TTogKjfwrax9SyfmGGK6cQhKtjePI7jRfd7iRYcxYs93esg==} 895 | cpu: [arm64] 896 | os: [win32] 897 | requiresBuild: true 898 | optional: true 899 | 900 | /@rollup/rollup-win32-ia32-msvc@4.50.0: 901 | resolution: {integrity: sha512-XzNOVg/YnDOmFdDKcxxK410PrcbcqZkBmz+0FicpW5jtjKQxcW1BZJEQOF0NJa6JO7CZhett8GEtRN/wYLYJuw==} 902 | cpu: [ia32] 903 | os: [win32] 904 | requiresBuild: true 905 | optional: true 906 | 907 | /@rollup/rollup-win32-x64-msvc@4.50.0: 908 | resolution: {integrity: sha512-xMmiWRR8sp72Zqwjgtf3QbZfF1wdh8X2ABu3EaozvZcyHJeU0r+XAnXdKgs4cCAp6ORoYoCygipYP1mjmbjrsg==} 909 | cpu: [x64] 910 | os: [win32] 911 | requiresBuild: true 912 | optional: true 913 | 914 | /@tybys/wasm-util@0.10.0: 915 | resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} 916 | requiresBuild: true 917 | dependencies: 918 | tslib: 2.8.1 919 | dev: true 920 | optional: true 921 | 922 | /@types/estree@1.0.8: 923 | resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} 924 | 925 | /@types/json-schema@7.0.15: 926 | resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} 927 | dev: true 928 | 929 | /@types/linkify-it@5.0.0: 930 | resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} 931 | dev: true 932 | 933 | /@types/markdown-it@14.1.2: 934 | resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} 935 | dependencies: 936 | '@types/linkify-it': 5.0.0 937 | '@types/mdurl': 2.0.0 938 | dev: true 939 | 940 | /@types/mdurl@2.0.0: 941 | resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} 942 | dev: true 943 | 944 | /@types/web-bluetooth@0.0.21: 945 | resolution: {integrity: sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==} 946 | dev: true 947 | 948 | /@vitejs/plugin-vue@6.0.1(rolldown-vite@7.1.5)(vue@3.5.21): 949 | resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} 950 | engines: {node: ^20.19.0 || >=22.12.0} 951 | peerDependencies: 952 | vite: ^5.0.0 || ^6.0.0 || ^7.0.0 953 | vue: ^3.2.25 954 | dependencies: 955 | '@rolldown/pluginutils': 1.0.0-beta.29 956 | vite: /rolldown-vite@7.1.5(sass@1.92.0) 957 | vue: 3.5.21(typescript@5.9.2) 958 | dev: true 959 | 960 | /@vitejs/plugin-vue@6.0.1(vite@7.1.4)(vue@3.5.21): 961 | resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==} 962 | engines: {node: ^20.19.0 || >=22.12.0} 963 | peerDependencies: 964 | vite: ^5.0.0 || ^6.0.0 || ^7.0.0 965 | vue: ^3.2.25 966 | dependencies: 967 | '@rolldown/pluginutils': 1.0.0-beta.29 968 | vite: 7.1.4(sass@1.92.0) 969 | vue: 3.5.21(typescript@5.9.2) 970 | dev: true 971 | 972 | /@volar/language-core@2.4.23: 973 | resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} 974 | dependencies: 975 | '@volar/source-map': 2.4.23 976 | dev: true 977 | 978 | /@volar/source-map@2.4.23: 979 | resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} 980 | dev: true 981 | 982 | /@volar/typescript@2.4.23: 983 | resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} 984 | dependencies: 985 | '@volar/language-core': 2.4.23 986 | path-browserify: 1.0.1 987 | vscode-uri: 3.1.0 988 | dev: true 989 | 990 | /@vue/compiler-core@3.5.21: 991 | resolution: {integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==} 992 | dependencies: 993 | '@babel/parser': 7.28.3 994 | '@vue/shared': 3.5.21 995 | entities: 4.5.0 996 | estree-walker: 2.0.2 997 | source-map-js: 1.2.1 998 | 999 | /@vue/compiler-dom@3.5.21: 1000 | resolution: {integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==} 1001 | dependencies: 1002 | '@vue/compiler-core': 3.5.21 1003 | '@vue/shared': 3.5.21 1004 | 1005 | /@vue/compiler-sfc@3.5.21: 1006 | resolution: {integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==} 1007 | dependencies: 1008 | '@babel/parser': 7.28.3 1009 | '@vue/compiler-core': 3.5.21 1010 | '@vue/compiler-dom': 3.5.21 1011 | '@vue/compiler-ssr': 3.5.21 1012 | '@vue/shared': 3.5.21 1013 | estree-walker: 2.0.2 1014 | magic-string: 0.30.18 1015 | postcss: 8.5.6 1016 | source-map-js: 1.2.1 1017 | 1018 | /@vue/compiler-ssr@3.5.21: 1019 | resolution: {integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==} 1020 | dependencies: 1021 | '@vue/compiler-dom': 3.5.21 1022 | '@vue/shared': 3.5.21 1023 | 1024 | /@vue/compiler-vue2@2.7.16: 1025 | resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} 1026 | dependencies: 1027 | de-indent: 1.0.2 1028 | he: 1.2.0 1029 | dev: true 1030 | 1031 | /@vue/language-core@3.0.6(typescript@5.9.2): 1032 | resolution: {integrity: sha512-e2RRzYWm+qGm8apUHW1wA5RQxzNhkqbbKdbKhiDUcmMrNAZGyM8aTiL3UrTqkaFI5s7wJRGGrp4u3jgusuBp2A==} 1033 | peerDependencies: 1034 | typescript: '*' 1035 | peerDependenciesMeta: 1036 | typescript: 1037 | optional: true 1038 | dependencies: 1039 | '@volar/language-core': 2.4.23 1040 | '@vue/compiler-dom': 3.5.21 1041 | '@vue/compiler-vue2': 2.7.16 1042 | '@vue/shared': 3.5.21 1043 | alien-signals: 2.0.7 1044 | muggle-string: 0.4.1 1045 | path-browserify: 1.0.1 1046 | picomatch: 4.0.3 1047 | typescript: 5.9.2 1048 | dev: true 1049 | 1050 | /@vue/reactivity@3.5.21: 1051 | resolution: {integrity: sha512-3ah7sa+Cwr9iiYEERt9JfZKPw4A2UlbY8RbbnH2mGCE8NwHkhmlZt2VsH0oDA3P08X3jJd29ohBDtX+TbD9AsA==} 1052 | dependencies: 1053 | '@vue/shared': 3.5.21 1054 | 1055 | /@vue/runtime-core@3.5.21: 1056 | resolution: {integrity: sha512-+DplQlRS4MXfIf9gfD1BOJpk5RSyGgGXD/R+cumhe8jdjUcq/qlxDawQlSI8hCKupBlvM+3eS1se5xW+SuNAwA==} 1057 | dependencies: 1058 | '@vue/reactivity': 3.5.21 1059 | '@vue/shared': 3.5.21 1060 | 1061 | /@vue/runtime-dom@3.5.21: 1062 | resolution: {integrity: sha512-3M2DZsOFwM5qI15wrMmNF5RJe1+ARijt2HM3TbzBbPSuBHOQpoidE+Pa+XEaVN+czbHf81ETRoG1ltztP2em8w==} 1063 | dependencies: 1064 | '@vue/reactivity': 3.5.21 1065 | '@vue/runtime-core': 3.5.21 1066 | '@vue/shared': 3.5.21 1067 | csstype: 3.1.3 1068 | 1069 | /@vue/server-renderer@3.5.21(vue@3.5.21): 1070 | resolution: {integrity: sha512-qr8AqgD3DJPJcGvLcJKQo2tAc8OnXRcfxhOJCPF+fcfn5bBGz7VCcO7t+qETOPxpWK1mgysXvVT/j+xWaHeMWA==} 1071 | peerDependencies: 1072 | vue: 3.5.21 1073 | dependencies: 1074 | '@vue/compiler-ssr': 3.5.21 1075 | '@vue/shared': 3.5.21 1076 | vue: 3.5.21(typescript@5.9.2) 1077 | 1078 | /@vue/shared@3.5.21: 1079 | resolution: {integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==} 1080 | 1081 | /@vuetify/loader-shared@2.1.1(vue@3.5.21)(vuetify@3.9.6): 1082 | resolution: {integrity: sha512-jSZTzTYaoiv8iwonFCVZQ0YYX/M+Uyl4ng+C4egMJT0Hcmh9gIxJL89qfZICDeo3g0IhqrvipW2FFKKRDMtVcA==} 1083 | peerDependencies: 1084 | vue: ^3.0.0 1085 | vuetify: ^3.0.0 1086 | dependencies: 1087 | upath: 2.0.1 1088 | vue: 3.5.21(typescript@5.9.2) 1089 | vuetify: 3.9.6(typescript@5.9.2)(vite-plugin-vuetify@2.1.2)(vue@3.5.21) 1090 | 1091 | /@vueuse/core@13.9.0(vue@3.5.21): 1092 | resolution: {integrity: sha512-ts3regBQyURfCE2BcytLqzm8+MmLlo5Ln/KLoxDVcsZ2gzIwVNnQpQOL/UKV8alUqjSZOlpFZcRNsLRqj+OzyA==} 1093 | peerDependencies: 1094 | vue: ^3.5.0 1095 | dependencies: 1096 | '@types/web-bluetooth': 0.0.21 1097 | '@vueuse/metadata': 13.9.0 1098 | '@vueuse/shared': 13.9.0(vue@3.5.21) 1099 | vue: 3.5.21(typescript@5.9.2) 1100 | dev: true 1101 | 1102 | /@vueuse/metadata@13.9.0: 1103 | resolution: {integrity: sha512-1AFRvuiGphfF7yWixZa0KwjYH8ulyjDCC0aFgrGRz8+P4kvDFSdXLVfTk5xAN9wEuD1J6z4/myMoYbnHoX07zg==} 1104 | dev: true 1105 | 1106 | /@vueuse/shared@13.9.0(vue@3.5.21): 1107 | resolution: {integrity: sha512-e89uuTLMh0U5cZ9iDpEI2senqPGfbPRTHM/0AaQkcxnpqjkZqDYP8rpfm7edOz8s+pOCOROEy1PIveSW8+fL5g==} 1108 | peerDependencies: 1109 | vue: ^3.5.0 1110 | dependencies: 1111 | vue: 3.5.21(typescript@5.9.2) 1112 | dev: true 1113 | 1114 | /acorn-jsx@5.3.2(acorn@8.15.0): 1115 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 1116 | peerDependencies: 1117 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 1118 | dependencies: 1119 | acorn: 8.15.0 1120 | dev: true 1121 | 1122 | /acorn@8.15.0: 1123 | resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} 1124 | engines: {node: '>=0.4.0'} 1125 | hasBin: true 1126 | dev: true 1127 | 1128 | /ajv@6.12.6: 1129 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 1130 | dependencies: 1131 | fast-deep-equal: 3.1.3 1132 | fast-json-stable-stringify: 2.1.0 1133 | json-schema-traverse: 0.4.1 1134 | uri-js: 4.4.1 1135 | dev: true 1136 | 1137 | /alien-signals@2.0.7: 1138 | resolution: {integrity: sha512-wE7y3jmYeb0+h6mr5BOovuqhFv22O/MV9j5p0ndJsa7z1zJNPGQ4ph5pQk/kTTCWRC3xsA4SmtwmkzQO+7NCNg==} 1139 | dev: true 1140 | 1141 | /ansi-styles@4.3.0: 1142 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 1143 | engines: {node: '>=8'} 1144 | dependencies: 1145 | color-convert: 2.0.1 1146 | dev: true 1147 | 1148 | /ansis@4.1.0: 1149 | resolution: {integrity: sha512-BGcItUBWSMRgOCe+SVZJ+S7yTRG0eGt9cXAHev72yuGcY23hnLA7Bky5L/xLyPINoSN95geovfBkqoTlNZYa7w==} 1150 | engines: {node: '>=14'} 1151 | dev: true 1152 | 1153 | /argparse@2.0.1: 1154 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 1155 | dev: true 1156 | 1157 | /array-union@2.1.0: 1158 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 1159 | engines: {node: '>=8'} 1160 | dev: true 1161 | 1162 | /async@3.2.6: 1163 | resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} 1164 | dev: true 1165 | 1166 | /balanced-match@1.0.2: 1167 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1168 | dev: true 1169 | 1170 | /bluebird@3.7.2: 1171 | resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} 1172 | dev: true 1173 | 1174 | /boolbase@1.0.0: 1175 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 1176 | dev: true 1177 | 1178 | /brace-expansion@1.1.12: 1179 | resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} 1180 | dependencies: 1181 | balanced-match: 1.0.2 1182 | concat-map: 0.0.1 1183 | dev: true 1184 | 1185 | /brace-expansion@2.0.2: 1186 | resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} 1187 | dependencies: 1188 | balanced-match: 1.0.2 1189 | dev: true 1190 | 1191 | /braces@3.0.3: 1192 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 1193 | engines: {node: '>=8'} 1194 | requiresBuild: true 1195 | dependencies: 1196 | fill-range: 7.1.1 1197 | 1198 | /callsites@3.1.0: 1199 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 1200 | engines: {node: '>=6'} 1201 | dev: true 1202 | 1203 | /catharsis@0.9.0: 1204 | resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} 1205 | engines: {node: '>= 10'} 1206 | dependencies: 1207 | lodash: 4.17.21 1208 | dev: true 1209 | 1210 | /chalk@4.1.2: 1211 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 1212 | engines: {node: '>=10'} 1213 | dependencies: 1214 | ansi-styles: 4.3.0 1215 | supports-color: 7.2.0 1216 | dev: true 1217 | 1218 | /chokidar@4.0.3: 1219 | resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} 1220 | engines: {node: '>= 14.16.0'} 1221 | dependencies: 1222 | readdirp: 4.1.2 1223 | 1224 | /color-convert@2.0.1: 1225 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 1226 | engines: {node: '>=7.0.0'} 1227 | dependencies: 1228 | color-name: 1.1.4 1229 | dev: true 1230 | 1231 | /color-name@1.1.4: 1232 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 1233 | dev: true 1234 | 1235 | /commander@13.1.0: 1236 | resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} 1237 | engines: {node: '>=18'} 1238 | dev: true 1239 | 1240 | /commondir@1.0.1: 1241 | resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} 1242 | dev: true 1243 | 1244 | /concat-map@0.0.1: 1245 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 1246 | dev: true 1247 | 1248 | /cross-spawn@7.0.6: 1249 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 1250 | engines: {node: '>= 8'} 1251 | dependencies: 1252 | path-key: 3.1.1 1253 | shebang-command: 2.0.0 1254 | which: 2.0.2 1255 | dev: true 1256 | 1257 | /cssesc@3.0.0: 1258 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 1259 | engines: {node: '>=4'} 1260 | hasBin: true 1261 | dev: true 1262 | 1263 | /csstype@3.1.3: 1264 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 1265 | 1266 | /de-indent@1.0.2: 1267 | resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} 1268 | dev: true 1269 | 1270 | /debug@4.4.1: 1271 | resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} 1272 | engines: {node: '>=6.0'} 1273 | peerDependencies: 1274 | supports-color: '*' 1275 | peerDependenciesMeta: 1276 | supports-color: 1277 | optional: true 1278 | dependencies: 1279 | ms: 2.1.3 1280 | 1281 | /deep-is@0.1.4: 1282 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 1283 | dev: true 1284 | 1285 | /detect-libc@1.0.3: 1286 | resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} 1287 | engines: {node: '>=0.10'} 1288 | hasBin: true 1289 | requiresBuild: true 1290 | optional: true 1291 | 1292 | /detect-libc@2.0.4: 1293 | resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} 1294 | engines: {node: '>=8'} 1295 | dev: true 1296 | 1297 | /dir-glob@3.0.1: 1298 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1299 | engines: {node: '>=8'} 1300 | dependencies: 1301 | path-type: 4.0.0 1302 | dev: true 1303 | 1304 | /ejs@3.1.10: 1305 | resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} 1306 | engines: {node: '>=0.10.0'} 1307 | hasBin: true 1308 | dependencies: 1309 | jake: 10.9.4 1310 | dev: true 1311 | 1312 | /email-addresses@5.0.0: 1313 | resolution: {integrity: sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==} 1314 | dev: true 1315 | 1316 | /entities@4.5.0: 1317 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 1318 | engines: {node: '>=0.12'} 1319 | 1320 | /esbuild@0.25.9: 1321 | resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} 1322 | engines: {node: '>=18'} 1323 | hasBin: true 1324 | requiresBuild: true 1325 | optionalDependencies: 1326 | '@esbuild/aix-ppc64': 0.25.9 1327 | '@esbuild/android-arm': 0.25.9 1328 | '@esbuild/android-arm64': 0.25.9 1329 | '@esbuild/android-x64': 0.25.9 1330 | '@esbuild/darwin-arm64': 0.25.9 1331 | '@esbuild/darwin-x64': 0.25.9 1332 | '@esbuild/freebsd-arm64': 0.25.9 1333 | '@esbuild/freebsd-x64': 0.25.9 1334 | '@esbuild/linux-arm': 0.25.9 1335 | '@esbuild/linux-arm64': 0.25.9 1336 | '@esbuild/linux-ia32': 0.25.9 1337 | '@esbuild/linux-loong64': 0.25.9 1338 | '@esbuild/linux-mips64el': 0.25.9 1339 | '@esbuild/linux-ppc64': 0.25.9 1340 | '@esbuild/linux-riscv64': 0.25.9 1341 | '@esbuild/linux-s390x': 0.25.9 1342 | '@esbuild/linux-x64': 0.25.9 1343 | '@esbuild/netbsd-arm64': 0.25.9 1344 | '@esbuild/netbsd-x64': 0.25.9 1345 | '@esbuild/openbsd-arm64': 0.25.9 1346 | '@esbuild/openbsd-x64': 0.25.9 1347 | '@esbuild/openharmony-arm64': 0.25.9 1348 | '@esbuild/sunos-x64': 0.25.9 1349 | '@esbuild/win32-arm64': 0.25.9 1350 | '@esbuild/win32-ia32': 0.25.9 1351 | '@esbuild/win32-x64': 0.25.9 1352 | 1353 | /escape-string-regexp@1.0.5: 1354 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1355 | engines: {node: '>=0.8.0'} 1356 | dev: true 1357 | 1358 | /escape-string-regexp@2.0.0: 1359 | resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} 1360 | engines: {node: '>=8'} 1361 | dev: true 1362 | 1363 | /escape-string-regexp@4.0.0: 1364 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1365 | engines: {node: '>=10'} 1366 | dev: true 1367 | 1368 | /eslint-config-prettier@10.1.8(eslint@9.34.0): 1369 | resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} 1370 | hasBin: true 1371 | peerDependencies: 1372 | eslint: '>=7.0.0' 1373 | dependencies: 1374 | eslint: 9.34.0 1375 | dev: true 1376 | 1377 | /eslint-plugin-vue@10.4.0(eslint@9.34.0)(vue-eslint-parser@10.2.0): 1378 | resolution: {integrity: sha512-K6tP0dW8FJVZLQxa2S7LcE1lLw3X8VvB3t887Q6CLrFVxHYBXGANbXvwNzYIu6Ughx1bSJ5BDT0YB3ybPT39lw==} 1379 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1380 | peerDependencies: 1381 | '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 1382 | eslint: ^8.57.0 || ^9.0.0 1383 | vue-eslint-parser: ^10.0.0 1384 | peerDependenciesMeta: 1385 | '@typescript-eslint/parser': 1386 | optional: true 1387 | dependencies: 1388 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0) 1389 | eslint: 9.34.0 1390 | natural-compare: 1.4.0 1391 | nth-check: 2.1.1 1392 | postcss-selector-parser: 6.1.2 1393 | semver: 7.7.2 1394 | vue-eslint-parser: 10.2.0(eslint@9.34.0) 1395 | xml-name-validator: 4.0.0 1396 | dev: true 1397 | 1398 | /eslint-scope@8.4.0: 1399 | resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} 1400 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1401 | dependencies: 1402 | esrecurse: 4.3.0 1403 | estraverse: 5.3.0 1404 | dev: true 1405 | 1406 | /eslint-visitor-keys@3.4.3: 1407 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1408 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1409 | dev: true 1410 | 1411 | /eslint-visitor-keys@4.2.1: 1412 | resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} 1413 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1414 | dev: true 1415 | 1416 | /eslint@9.34.0: 1417 | resolution: {integrity: sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==} 1418 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1419 | hasBin: true 1420 | peerDependencies: 1421 | jiti: '*' 1422 | peerDependenciesMeta: 1423 | jiti: 1424 | optional: true 1425 | dependencies: 1426 | '@eslint-community/eslint-utils': 4.7.0(eslint@9.34.0) 1427 | '@eslint-community/regexpp': 4.12.1 1428 | '@eslint/config-array': 0.21.0 1429 | '@eslint/config-helpers': 0.3.1 1430 | '@eslint/core': 0.15.2 1431 | '@eslint/eslintrc': 3.3.1 1432 | '@eslint/js': 9.34.0 1433 | '@eslint/plugin-kit': 0.3.5 1434 | '@humanfs/node': 0.16.6 1435 | '@humanwhocodes/module-importer': 1.0.1 1436 | '@humanwhocodes/retry': 0.4.3 1437 | '@types/estree': 1.0.8 1438 | '@types/json-schema': 7.0.15 1439 | ajv: 6.12.6 1440 | chalk: 4.1.2 1441 | cross-spawn: 7.0.6 1442 | debug: 4.4.1 1443 | escape-string-regexp: 4.0.0 1444 | eslint-scope: 8.4.0 1445 | eslint-visitor-keys: 4.2.1 1446 | espree: 10.4.0 1447 | esquery: 1.6.0 1448 | esutils: 2.0.3 1449 | fast-deep-equal: 3.1.3 1450 | file-entry-cache: 8.0.0 1451 | find-up: 5.0.0 1452 | glob-parent: 6.0.2 1453 | ignore: 5.3.2 1454 | imurmurhash: 0.1.4 1455 | is-glob: 4.0.3 1456 | json-stable-stringify-without-jsonify: 1.0.1 1457 | lodash.merge: 4.6.2 1458 | minimatch: 3.1.2 1459 | natural-compare: 1.4.0 1460 | optionator: 0.9.4 1461 | transitivePeerDependencies: 1462 | - supports-color 1463 | dev: true 1464 | 1465 | /espree@10.4.0: 1466 | resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} 1467 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 1468 | dependencies: 1469 | acorn: 8.15.0 1470 | acorn-jsx: 5.3.2(acorn@8.15.0) 1471 | eslint-visitor-keys: 4.2.1 1472 | dev: true 1473 | 1474 | /esquery@1.6.0: 1475 | resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} 1476 | engines: {node: '>=0.10'} 1477 | dependencies: 1478 | estraverse: 5.3.0 1479 | dev: true 1480 | 1481 | /esrecurse@4.3.0: 1482 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1483 | engines: {node: '>=4.0'} 1484 | dependencies: 1485 | estraverse: 5.3.0 1486 | dev: true 1487 | 1488 | /estraverse@5.3.0: 1489 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1490 | engines: {node: '>=4.0'} 1491 | dev: true 1492 | 1493 | /estree-walker@2.0.2: 1494 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1495 | 1496 | /esutils@2.0.3: 1497 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1498 | engines: {node: '>=0.10.0'} 1499 | dev: true 1500 | 1501 | /fast-deep-equal@3.1.3: 1502 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1503 | dev: true 1504 | 1505 | /fast-glob@3.3.3: 1506 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 1507 | engines: {node: '>=8.6.0'} 1508 | dependencies: 1509 | '@nodelib/fs.stat': 2.0.5 1510 | '@nodelib/fs.walk': 1.2.8 1511 | glob-parent: 5.1.2 1512 | merge2: 1.4.1 1513 | micromatch: 4.0.8 1514 | dev: true 1515 | 1516 | /fast-json-stable-stringify@2.1.0: 1517 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1518 | dev: true 1519 | 1520 | /fast-levenshtein@2.0.6: 1521 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1522 | dev: true 1523 | 1524 | /fastq@1.19.1: 1525 | resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} 1526 | dependencies: 1527 | reusify: 1.1.0 1528 | dev: true 1529 | 1530 | /fdir@6.5.0(picomatch@4.0.3): 1531 | resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} 1532 | engines: {node: '>=12.0.0'} 1533 | peerDependencies: 1534 | picomatch: ^3 || ^4 1535 | peerDependenciesMeta: 1536 | picomatch: 1537 | optional: true 1538 | dependencies: 1539 | picomatch: 4.0.3 1540 | 1541 | /file-entry-cache@8.0.0: 1542 | resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} 1543 | engines: {node: '>=16.0.0'} 1544 | dependencies: 1545 | flat-cache: 4.0.1 1546 | dev: true 1547 | 1548 | /filelist@1.0.4: 1549 | resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} 1550 | dependencies: 1551 | minimatch: 5.1.6 1552 | dev: true 1553 | 1554 | /filename-reserved-regex@2.0.0: 1555 | resolution: {integrity: sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==} 1556 | engines: {node: '>=4'} 1557 | dev: true 1558 | 1559 | /filenamify@4.3.0: 1560 | resolution: {integrity: sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==} 1561 | engines: {node: '>=8'} 1562 | dependencies: 1563 | filename-reserved-regex: 2.0.0 1564 | strip-outer: 1.0.1 1565 | trim-repeated: 1.0.0 1566 | dev: true 1567 | 1568 | /fill-range@7.1.1: 1569 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 1570 | engines: {node: '>=8'} 1571 | requiresBuild: true 1572 | dependencies: 1573 | to-regex-range: 5.0.1 1574 | 1575 | /find-cache-dir@3.3.2: 1576 | resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} 1577 | engines: {node: '>=8'} 1578 | dependencies: 1579 | commondir: 1.0.1 1580 | make-dir: 3.1.0 1581 | pkg-dir: 4.2.0 1582 | dev: true 1583 | 1584 | /find-up@4.1.0: 1585 | resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} 1586 | engines: {node: '>=8'} 1587 | dependencies: 1588 | locate-path: 5.0.0 1589 | path-exists: 4.0.0 1590 | dev: true 1591 | 1592 | /find-up@5.0.0: 1593 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1594 | engines: {node: '>=10'} 1595 | dependencies: 1596 | locate-path: 6.0.0 1597 | path-exists: 4.0.0 1598 | dev: true 1599 | 1600 | /flat-cache@4.0.1: 1601 | resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} 1602 | engines: {node: '>=16'} 1603 | dependencies: 1604 | flatted: 3.3.3 1605 | keyv: 4.5.4 1606 | dev: true 1607 | 1608 | /flatted@3.3.3: 1609 | resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1610 | dev: true 1611 | 1612 | /fs-extra@11.3.1: 1613 | resolution: {integrity: sha512-eXvGGwZ5CL17ZSwHWd3bbgk7UUpF6IFHtP57NYYakPvHOs8GDgDe5KJI36jIJzDkJ6eJjuzRA8eBQb6SkKue0g==} 1614 | engines: {node: '>=14.14'} 1615 | dependencies: 1616 | graceful-fs: 4.2.11 1617 | jsonfile: 6.2.0 1618 | universalify: 2.0.1 1619 | dev: true 1620 | 1621 | /fsevents@2.3.3: 1622 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1623 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1624 | os: [darwin] 1625 | requiresBuild: true 1626 | optional: true 1627 | 1628 | /gh-pages@6.3.0: 1629 | resolution: {integrity: sha512-Ot5lU6jK0Eb+sszG8pciXdjMXdBJ5wODvgjR+imihTqsUWF2K6dJ9HST55lgqcs8wWcw6o6wAsUzfcYRhJPXbA==} 1630 | engines: {node: '>=10'} 1631 | hasBin: true 1632 | dependencies: 1633 | async: 3.2.6 1634 | commander: 13.1.0 1635 | email-addresses: 5.0.0 1636 | filenamify: 4.3.0 1637 | find-cache-dir: 3.3.2 1638 | fs-extra: 11.3.1 1639 | globby: 11.1.0 1640 | dev: true 1641 | 1642 | /glob-parent@5.1.2: 1643 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1644 | engines: {node: '>= 6'} 1645 | dependencies: 1646 | is-glob: 4.0.3 1647 | dev: true 1648 | 1649 | /glob-parent@6.0.2: 1650 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1651 | engines: {node: '>=10.13.0'} 1652 | dependencies: 1653 | is-glob: 4.0.3 1654 | dev: true 1655 | 1656 | /globals@14.0.0: 1657 | resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1658 | engines: {node: '>=18'} 1659 | dev: true 1660 | 1661 | /globals@16.3.0: 1662 | resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} 1663 | engines: {node: '>=18'} 1664 | dev: true 1665 | 1666 | /globby@11.1.0: 1667 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1668 | engines: {node: '>=10'} 1669 | dependencies: 1670 | array-union: 2.1.0 1671 | dir-glob: 3.0.1 1672 | fast-glob: 3.3.3 1673 | ignore: 5.3.2 1674 | merge2: 1.4.1 1675 | slash: 3.0.0 1676 | dev: true 1677 | 1678 | /graceful-fs@4.2.11: 1679 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1680 | dev: true 1681 | 1682 | /has-flag@4.0.0: 1683 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1684 | engines: {node: '>=8'} 1685 | dev: true 1686 | 1687 | /he@1.2.0: 1688 | resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} 1689 | hasBin: true 1690 | dev: true 1691 | 1692 | /ignore@5.3.2: 1693 | resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1694 | engines: {node: '>= 4'} 1695 | dev: true 1696 | 1697 | /immutable@5.1.3: 1698 | resolution: {integrity: sha512-+chQdDfvscSF1SJqv2gn4SRO2ZyS3xL3r7IW/wWEEzrzLisnOlKiQu5ytC/BVNcS15C39WT2Hg/bjKjDMcu+zg==} 1699 | 1700 | /import-fresh@3.3.1: 1701 | resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} 1702 | engines: {node: '>=6'} 1703 | dependencies: 1704 | parent-module: 1.0.1 1705 | resolve-from: 4.0.0 1706 | dev: true 1707 | 1708 | /imurmurhash@0.1.4: 1709 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1710 | engines: {node: '>=0.8.19'} 1711 | dev: true 1712 | 1713 | /is-extglob@2.1.1: 1714 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1715 | engines: {node: '>=0.10.0'} 1716 | 1717 | /is-glob@4.0.3: 1718 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1719 | engines: {node: '>=0.10.0'} 1720 | dependencies: 1721 | is-extglob: 2.1.1 1722 | 1723 | /is-number@7.0.0: 1724 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1725 | engines: {node: '>=0.12.0'} 1726 | requiresBuild: true 1727 | 1728 | /isexe@2.0.0: 1729 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1730 | dev: true 1731 | 1732 | /jake@10.9.4: 1733 | resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==} 1734 | engines: {node: '>=10'} 1735 | hasBin: true 1736 | dependencies: 1737 | async: 3.2.6 1738 | filelist: 1.0.4 1739 | picocolors: 1.1.1 1740 | dev: true 1741 | 1742 | /js-yaml@4.1.0: 1743 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1744 | hasBin: true 1745 | dependencies: 1746 | argparse: 2.0.1 1747 | dev: true 1748 | 1749 | /js2xmlparser@4.0.2: 1750 | resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} 1751 | dependencies: 1752 | xmlcreate: 2.0.4 1753 | dev: true 1754 | 1755 | /jsdoc-vuejs@4.0.0(@vue/compiler-sfc@3.5.21)(jsdoc@4.0.4): 1756 | resolution: {integrity: sha512-wZveVFpC6sG9+g9qN0xi87zFmwFjeX/nqlKMK6ArXjOw2GCL7LUc87FE90yb9LZxbhBIOiNJbjlN+X52hfhpsA==} 1757 | engines: {node: ^10.13.0 || >=12.0.0} 1758 | peerDependencies: 1759 | '@vue/compiler-sfc': '>= 3.0.0' 1760 | jsdoc: '>=3.0.0' 1761 | dependencies: 1762 | '@vue/compiler-sfc': 3.5.21 1763 | ejs: 3.1.10 1764 | jsdoc: 4.0.4 1765 | dev: true 1766 | 1767 | /jsdoc@4.0.4: 1768 | resolution: {integrity: sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==} 1769 | engines: {node: '>=12.0.0'} 1770 | hasBin: true 1771 | dependencies: 1772 | '@babel/parser': 7.28.3 1773 | '@jsdoc/salty': 0.2.9 1774 | '@types/markdown-it': 14.1.2 1775 | bluebird: 3.7.2 1776 | catharsis: 0.9.0 1777 | escape-string-regexp: 2.0.0 1778 | js2xmlparser: 4.0.2 1779 | klaw: 3.0.0 1780 | markdown-it: 14.1.0 1781 | markdown-it-anchor: 8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0) 1782 | marked: 4.3.0 1783 | mkdirp: 1.0.4 1784 | requizzle: 0.2.4 1785 | strip-json-comments: 3.1.1 1786 | underscore: 1.13.7 1787 | dev: true 1788 | 1789 | /json-buffer@3.0.1: 1790 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1791 | dev: true 1792 | 1793 | /json-schema-traverse@0.4.1: 1794 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1795 | dev: true 1796 | 1797 | /json-stable-stringify-without-jsonify@1.0.1: 1798 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1799 | dev: true 1800 | 1801 | /jsonfile@6.2.0: 1802 | resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} 1803 | dependencies: 1804 | universalify: 2.0.1 1805 | optionalDependencies: 1806 | graceful-fs: 4.2.11 1807 | dev: true 1808 | 1809 | /keyv@4.5.4: 1810 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1811 | dependencies: 1812 | json-buffer: 3.0.1 1813 | dev: true 1814 | 1815 | /klaw@3.0.0: 1816 | resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} 1817 | dependencies: 1818 | graceful-fs: 4.2.11 1819 | dev: true 1820 | 1821 | /levn@0.4.1: 1822 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1823 | engines: {node: '>= 0.8.0'} 1824 | dependencies: 1825 | prelude-ls: 1.2.1 1826 | type-check: 0.4.0 1827 | dev: true 1828 | 1829 | /lightningcss-darwin-arm64@1.30.1: 1830 | resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} 1831 | engines: {node: '>= 12.0.0'} 1832 | cpu: [arm64] 1833 | os: [darwin] 1834 | requiresBuild: true 1835 | dev: true 1836 | optional: true 1837 | 1838 | /lightningcss-darwin-x64@1.30.1: 1839 | resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} 1840 | engines: {node: '>= 12.0.0'} 1841 | cpu: [x64] 1842 | os: [darwin] 1843 | requiresBuild: true 1844 | dev: true 1845 | optional: true 1846 | 1847 | /lightningcss-freebsd-x64@1.30.1: 1848 | resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} 1849 | engines: {node: '>= 12.0.0'} 1850 | cpu: [x64] 1851 | os: [freebsd] 1852 | requiresBuild: true 1853 | dev: true 1854 | optional: true 1855 | 1856 | /lightningcss-linux-arm-gnueabihf@1.30.1: 1857 | resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} 1858 | engines: {node: '>= 12.0.0'} 1859 | cpu: [arm] 1860 | os: [linux] 1861 | requiresBuild: true 1862 | dev: true 1863 | optional: true 1864 | 1865 | /lightningcss-linux-arm64-gnu@1.30.1: 1866 | resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} 1867 | engines: {node: '>= 12.0.0'} 1868 | cpu: [arm64] 1869 | os: [linux] 1870 | requiresBuild: true 1871 | dev: true 1872 | optional: true 1873 | 1874 | /lightningcss-linux-arm64-musl@1.30.1: 1875 | resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} 1876 | engines: {node: '>= 12.0.0'} 1877 | cpu: [arm64] 1878 | os: [linux] 1879 | requiresBuild: true 1880 | dev: true 1881 | optional: true 1882 | 1883 | /lightningcss-linux-x64-gnu@1.30.1: 1884 | resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} 1885 | engines: {node: '>= 12.0.0'} 1886 | cpu: [x64] 1887 | os: [linux] 1888 | requiresBuild: true 1889 | dev: true 1890 | optional: true 1891 | 1892 | /lightningcss-linux-x64-musl@1.30.1: 1893 | resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} 1894 | engines: {node: '>= 12.0.0'} 1895 | cpu: [x64] 1896 | os: [linux] 1897 | requiresBuild: true 1898 | dev: true 1899 | optional: true 1900 | 1901 | /lightningcss-win32-arm64-msvc@1.30.1: 1902 | resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} 1903 | engines: {node: '>= 12.0.0'} 1904 | cpu: [arm64] 1905 | os: [win32] 1906 | requiresBuild: true 1907 | dev: true 1908 | optional: true 1909 | 1910 | /lightningcss-win32-x64-msvc@1.30.1: 1911 | resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} 1912 | engines: {node: '>= 12.0.0'} 1913 | cpu: [x64] 1914 | os: [win32] 1915 | requiresBuild: true 1916 | dev: true 1917 | optional: true 1918 | 1919 | /lightningcss@1.30.1: 1920 | resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} 1921 | engines: {node: '>= 12.0.0'} 1922 | dependencies: 1923 | detect-libc: 2.0.4 1924 | optionalDependencies: 1925 | lightningcss-darwin-arm64: 1.30.1 1926 | lightningcss-darwin-x64: 1.30.1 1927 | lightningcss-freebsd-x64: 1.30.1 1928 | lightningcss-linux-arm-gnueabihf: 1.30.1 1929 | lightningcss-linux-arm64-gnu: 1.30.1 1930 | lightningcss-linux-arm64-musl: 1.30.1 1931 | lightningcss-linux-x64-gnu: 1.30.1 1932 | lightningcss-linux-x64-musl: 1.30.1 1933 | lightningcss-win32-arm64-msvc: 1.30.1 1934 | lightningcss-win32-x64-msvc: 1.30.1 1935 | dev: true 1936 | 1937 | /linkify-it@5.0.0: 1938 | resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} 1939 | dependencies: 1940 | uc.micro: 2.1.0 1941 | dev: true 1942 | 1943 | /locate-path@5.0.0: 1944 | resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} 1945 | engines: {node: '>=8'} 1946 | dependencies: 1947 | p-locate: 4.1.0 1948 | dev: true 1949 | 1950 | /locate-path@6.0.0: 1951 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1952 | engines: {node: '>=10'} 1953 | dependencies: 1954 | p-locate: 5.0.0 1955 | dev: true 1956 | 1957 | /lodash.merge@4.6.2: 1958 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1959 | dev: true 1960 | 1961 | /lodash@4.17.21: 1962 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1963 | dev: true 1964 | 1965 | /magic-string@0.30.18: 1966 | resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} 1967 | dependencies: 1968 | '@jridgewell/sourcemap-codec': 1.5.5 1969 | 1970 | /make-dir@3.1.0: 1971 | resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} 1972 | engines: {node: '>=8'} 1973 | dependencies: 1974 | semver: 6.3.1 1975 | dev: true 1976 | 1977 | /markdown-it-anchor@8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0): 1978 | resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} 1979 | peerDependencies: 1980 | '@types/markdown-it': '*' 1981 | markdown-it: '*' 1982 | dependencies: 1983 | '@types/markdown-it': 14.1.2 1984 | markdown-it: 14.1.0 1985 | dev: true 1986 | 1987 | /markdown-it@14.1.0: 1988 | resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} 1989 | hasBin: true 1990 | dependencies: 1991 | argparse: 2.0.1 1992 | entities: 4.5.0 1993 | linkify-it: 5.0.0 1994 | mdurl: 2.0.0 1995 | punycode.js: 2.3.1 1996 | uc.micro: 2.1.0 1997 | dev: true 1998 | 1999 | /marked@4.3.0: 2000 | resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} 2001 | engines: {node: '>= 12'} 2002 | hasBin: true 2003 | dev: true 2004 | 2005 | /mdurl@2.0.0: 2006 | resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} 2007 | dev: true 2008 | 2009 | /merge2@1.4.1: 2010 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2011 | engines: {node: '>= 8'} 2012 | dev: true 2013 | 2014 | /micromatch@4.0.8: 2015 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 2016 | engines: {node: '>=8.6'} 2017 | dependencies: 2018 | braces: 3.0.3 2019 | picomatch: 2.3.1 2020 | 2021 | /minimatch@3.1.2: 2022 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2023 | dependencies: 2024 | brace-expansion: 1.1.12 2025 | dev: true 2026 | 2027 | /minimatch@5.1.6: 2028 | resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} 2029 | engines: {node: '>=10'} 2030 | dependencies: 2031 | brace-expansion: 2.0.2 2032 | dev: true 2033 | 2034 | /mkdirp@1.0.4: 2035 | resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} 2036 | engines: {node: '>=10'} 2037 | hasBin: true 2038 | dev: true 2039 | 2040 | /ms@2.1.3: 2041 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2042 | 2043 | /muggle-string@0.4.1: 2044 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 2045 | dev: true 2046 | 2047 | /nanoid@3.3.11: 2048 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 2049 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2050 | hasBin: true 2051 | 2052 | /natural-compare@1.4.0: 2053 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2054 | dev: true 2055 | 2056 | /neo-async@2.6.2: 2057 | resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} 2058 | dev: true 2059 | 2060 | /node-addon-api@7.1.1: 2061 | resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} 2062 | requiresBuild: true 2063 | optional: true 2064 | 2065 | /nth-check@2.1.1: 2066 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 2067 | dependencies: 2068 | boolbase: 1.0.0 2069 | dev: true 2070 | 2071 | /optionator@0.9.4: 2072 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 2073 | engines: {node: '>= 0.8.0'} 2074 | dependencies: 2075 | deep-is: 0.1.4 2076 | fast-levenshtein: 2.0.6 2077 | levn: 0.4.1 2078 | prelude-ls: 1.2.1 2079 | type-check: 0.4.0 2080 | word-wrap: 1.2.5 2081 | dev: true 2082 | 2083 | /p-limit@2.3.0: 2084 | resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} 2085 | engines: {node: '>=6'} 2086 | dependencies: 2087 | p-try: 2.2.0 2088 | dev: true 2089 | 2090 | /p-limit@3.1.0: 2091 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2092 | engines: {node: '>=10'} 2093 | dependencies: 2094 | yocto-queue: 0.1.0 2095 | dev: true 2096 | 2097 | /p-locate@4.1.0: 2098 | resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} 2099 | engines: {node: '>=8'} 2100 | dependencies: 2101 | p-limit: 2.3.0 2102 | dev: true 2103 | 2104 | /p-locate@5.0.0: 2105 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2106 | engines: {node: '>=10'} 2107 | dependencies: 2108 | p-limit: 3.1.0 2109 | dev: true 2110 | 2111 | /p-try@2.2.0: 2112 | resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} 2113 | engines: {node: '>=6'} 2114 | dev: true 2115 | 2116 | /parent-module@1.0.1: 2117 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2118 | engines: {node: '>=6'} 2119 | dependencies: 2120 | callsites: 3.1.0 2121 | dev: true 2122 | 2123 | /path-browserify@1.0.1: 2124 | resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} 2125 | dev: true 2126 | 2127 | /path-exists@4.0.0: 2128 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2129 | engines: {node: '>=8'} 2130 | dev: true 2131 | 2132 | /path-key@3.1.1: 2133 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2134 | engines: {node: '>=8'} 2135 | dev: true 2136 | 2137 | /path-type@4.0.0: 2138 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2139 | engines: {node: '>=8'} 2140 | dev: true 2141 | 2142 | /picocolors@1.1.1: 2143 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 2144 | 2145 | /picomatch@2.3.1: 2146 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2147 | engines: {node: '>=8.6'} 2148 | requiresBuild: true 2149 | 2150 | /picomatch@4.0.3: 2151 | resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} 2152 | engines: {node: '>=12'} 2153 | 2154 | /pkg-dir@4.2.0: 2155 | resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} 2156 | engines: {node: '>=8'} 2157 | dependencies: 2158 | find-up: 4.1.0 2159 | dev: true 2160 | 2161 | /postcss-nested@7.0.2(postcss@8.5.6): 2162 | resolution: {integrity: sha512-5osppouFc0VR9/VYzYxO03VaDa3e8F23Kfd6/9qcZTUI8P58GIYlArOET2Wq0ywSl2o2PjELhYOFI4W7l5QHKw==} 2163 | engines: {node: '>=18.0'} 2164 | peerDependencies: 2165 | postcss: ^8.2.14 2166 | dependencies: 2167 | postcss: 8.5.6 2168 | postcss-selector-parser: 7.1.0 2169 | dev: true 2170 | 2171 | /postcss-selector-parser@6.1.2: 2172 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 2173 | engines: {node: '>=4'} 2174 | dependencies: 2175 | cssesc: 3.0.0 2176 | util-deprecate: 1.0.2 2177 | dev: true 2178 | 2179 | /postcss-selector-parser@7.1.0: 2180 | resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} 2181 | engines: {node: '>=4'} 2182 | dependencies: 2183 | cssesc: 3.0.0 2184 | util-deprecate: 1.0.2 2185 | dev: true 2186 | 2187 | /postcss@8.5.6: 2188 | resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} 2189 | engines: {node: ^10 || ^12 || >=14} 2190 | dependencies: 2191 | nanoid: 3.3.11 2192 | picocolors: 1.1.1 2193 | source-map-js: 1.2.1 2194 | 2195 | /prelude-ls@1.2.1: 2196 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2197 | engines: {node: '>= 0.8.0'} 2198 | dev: true 2199 | 2200 | /prettier@3.6.2: 2201 | resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} 2202 | engines: {node: '>=14'} 2203 | hasBin: true 2204 | dev: true 2205 | 2206 | /prismjs@1.30.0: 2207 | resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} 2208 | engines: {node: '>=6'} 2209 | dev: true 2210 | 2211 | /punycode.js@2.3.1: 2212 | resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} 2213 | engines: {node: '>=6'} 2214 | dev: true 2215 | 2216 | /punycode@2.3.1: 2217 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 2218 | engines: {node: '>=6'} 2219 | dev: true 2220 | 2221 | /queue-microtask@1.2.3: 2222 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2223 | dev: true 2224 | 2225 | /readdirp@4.1.2: 2226 | resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 2227 | engines: {node: '>= 14.18.0'} 2228 | 2229 | /requizzle@0.2.4: 2230 | resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} 2231 | dependencies: 2232 | lodash: 4.17.21 2233 | dev: true 2234 | 2235 | /resolve-from@4.0.0: 2236 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2237 | engines: {node: '>=4'} 2238 | dev: true 2239 | 2240 | /reusify@1.1.0: 2241 | resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} 2242 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2243 | dev: true 2244 | 2245 | /roboto-fontface@0.10.0: 2246 | resolution: {integrity: sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==} 2247 | dev: true 2248 | 2249 | /rolldown-vite@7.1.5(sass@1.92.0): 2250 | resolution: {integrity: sha512-NgHjKatQn1B5TjtNVS3+Uq3JBUPP8s70cMxLzGHpv/UyCGj0SQUtVYImNWbU2uqfOpNSnqhI+nbR7tmPPcb1qQ==} 2251 | engines: {node: ^20.19.0 || >=22.12.0} 2252 | hasBin: true 2253 | peerDependencies: 2254 | '@types/node': ^20.19.0 || >=22.12.0 2255 | esbuild: ^0.25.0 2256 | jiti: '>=1.21.0' 2257 | less: ^4.0.0 2258 | sass: ^1.70.0 2259 | sass-embedded: ^1.70.0 2260 | stylus: '>=0.54.8' 2261 | sugarss: ^5.0.0 2262 | terser: ^5.16.0 2263 | tsx: ^4.8.1 2264 | yaml: ^2.4.2 2265 | peerDependenciesMeta: 2266 | '@types/node': 2267 | optional: true 2268 | esbuild: 2269 | optional: true 2270 | jiti: 2271 | optional: true 2272 | less: 2273 | optional: true 2274 | sass: 2275 | optional: true 2276 | sass-embedded: 2277 | optional: true 2278 | stylus: 2279 | optional: true 2280 | sugarss: 2281 | optional: true 2282 | terser: 2283 | optional: true 2284 | tsx: 2285 | optional: true 2286 | yaml: 2287 | optional: true 2288 | dependencies: 2289 | fdir: 6.5.0(picomatch@4.0.3) 2290 | lightningcss: 1.30.1 2291 | picomatch: 4.0.3 2292 | postcss: 8.5.6 2293 | rolldown: 1.0.0-beta.34 2294 | sass: 1.92.0 2295 | tinyglobby: 0.2.14 2296 | optionalDependencies: 2297 | fsevents: 2.3.3 2298 | dev: true 2299 | 2300 | /rolldown@1.0.0-beta.34: 2301 | resolution: {integrity: sha512-Wwh7EwalMzzX3Yy3VN58VEajeR2Si8+HDNMf706jPLIqU7CxneRW+dQVfznf5O0TWTnJyu4npelwg2bzTXB1Nw==} 2302 | hasBin: true 2303 | dependencies: 2304 | '@oxc-project/runtime': 0.82.3 2305 | '@oxc-project/types': 0.82.3 2306 | '@rolldown/pluginutils': 1.0.0-beta.34 2307 | ansis: 4.1.0 2308 | optionalDependencies: 2309 | '@rolldown/binding-android-arm64': 1.0.0-beta.34 2310 | '@rolldown/binding-darwin-arm64': 1.0.0-beta.34 2311 | '@rolldown/binding-darwin-x64': 1.0.0-beta.34 2312 | '@rolldown/binding-freebsd-x64': 1.0.0-beta.34 2313 | '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.34 2314 | '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.34 2315 | '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.34 2316 | '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.34 2317 | '@rolldown/binding-linux-x64-musl': 1.0.0-beta.34 2318 | '@rolldown/binding-openharmony-arm64': 1.0.0-beta.34 2319 | '@rolldown/binding-wasm32-wasi': 1.0.0-beta.34 2320 | '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.34 2321 | '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.34 2322 | '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.34 2323 | dev: true 2324 | 2325 | /rollup@4.50.0: 2326 | resolution: {integrity: sha512-/Zl4D8zPifNmyGzJS+3kVoyXeDeT/GrsJM94sACNg9RtUE0hrHa1bNPtRSrfHTMH5HjRzce6K7rlTh3Khiw+pw==} 2327 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 2328 | hasBin: true 2329 | dependencies: 2330 | '@types/estree': 1.0.8 2331 | optionalDependencies: 2332 | '@rollup/rollup-android-arm-eabi': 4.50.0 2333 | '@rollup/rollup-android-arm64': 4.50.0 2334 | '@rollup/rollup-darwin-arm64': 4.50.0 2335 | '@rollup/rollup-darwin-x64': 4.50.0 2336 | '@rollup/rollup-freebsd-arm64': 4.50.0 2337 | '@rollup/rollup-freebsd-x64': 4.50.0 2338 | '@rollup/rollup-linux-arm-gnueabihf': 4.50.0 2339 | '@rollup/rollup-linux-arm-musleabihf': 4.50.0 2340 | '@rollup/rollup-linux-arm64-gnu': 4.50.0 2341 | '@rollup/rollup-linux-arm64-musl': 4.50.0 2342 | '@rollup/rollup-linux-loongarch64-gnu': 4.50.0 2343 | '@rollup/rollup-linux-ppc64-gnu': 4.50.0 2344 | '@rollup/rollup-linux-riscv64-gnu': 4.50.0 2345 | '@rollup/rollup-linux-riscv64-musl': 4.50.0 2346 | '@rollup/rollup-linux-s390x-gnu': 4.50.0 2347 | '@rollup/rollup-linux-x64-gnu': 4.50.0 2348 | '@rollup/rollup-linux-x64-musl': 4.50.0 2349 | '@rollup/rollup-openharmony-arm64': 4.50.0 2350 | '@rollup/rollup-win32-arm64-msvc': 4.50.0 2351 | '@rollup/rollup-win32-ia32-msvc': 4.50.0 2352 | '@rollup/rollup-win32-x64-msvc': 4.50.0 2353 | fsevents: 2.3.3 2354 | 2355 | /run-parallel@1.2.0: 2356 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2357 | dependencies: 2358 | queue-microtask: 1.2.3 2359 | dev: true 2360 | 2361 | /sass-loader@16.0.5(sass@1.92.0): 2362 | resolution: {integrity: sha512-oL+CMBXrj6BZ/zOq4os+UECPL+bWqt6OAC6DWS8Ln8GZRcMDjlJ4JC3FBDuHJdYaFWIdKNIBYmtZtK2MaMkNIw==} 2363 | engines: {node: '>= 18.12.0'} 2364 | peerDependencies: 2365 | '@rspack/core': 0.x || 1.x 2366 | node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 2367 | sass: ^1.3.0 2368 | sass-embedded: '*' 2369 | webpack: ^5.0.0 2370 | peerDependenciesMeta: 2371 | '@rspack/core': 2372 | optional: true 2373 | node-sass: 2374 | optional: true 2375 | sass: 2376 | optional: true 2377 | sass-embedded: 2378 | optional: true 2379 | webpack: 2380 | optional: true 2381 | dependencies: 2382 | neo-async: 2.6.2 2383 | sass: 1.92.0 2384 | dev: true 2385 | 2386 | /sass@1.92.0: 2387 | resolution: {integrity: sha512-KDNI0BxgIRDAfJgzNm5wuy+4yOCIZyrUbjSpiU/JItfih+KGXAVefKL53MTml054MmBA3DDKIBMSI/7XLxZJ3A==} 2388 | engines: {node: '>=14.0.0'} 2389 | hasBin: true 2390 | dependencies: 2391 | chokidar: 4.0.3 2392 | immutable: 5.1.3 2393 | source-map-js: 1.2.1 2394 | optionalDependencies: 2395 | '@parcel/watcher': 2.5.1 2396 | 2397 | /semver@6.3.1: 2398 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2399 | hasBin: true 2400 | dev: true 2401 | 2402 | /semver@7.7.2: 2403 | resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} 2404 | engines: {node: '>=10'} 2405 | hasBin: true 2406 | dev: true 2407 | 2408 | /shebang-command@2.0.0: 2409 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2410 | engines: {node: '>=8'} 2411 | dependencies: 2412 | shebang-regex: 3.0.0 2413 | dev: true 2414 | 2415 | /shebang-regex@3.0.0: 2416 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2417 | engines: {node: '>=8'} 2418 | dev: true 2419 | 2420 | /slash@3.0.0: 2421 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2422 | engines: {node: '>=8'} 2423 | dev: true 2424 | 2425 | /source-map-js@1.2.1: 2426 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 2427 | engines: {node: '>=0.10.0'} 2428 | 2429 | /strip-json-comments@3.1.1: 2430 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2431 | engines: {node: '>=8'} 2432 | dev: true 2433 | 2434 | /strip-outer@1.0.1: 2435 | resolution: {integrity: sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==} 2436 | engines: {node: '>=0.10.0'} 2437 | dependencies: 2438 | escape-string-regexp: 1.0.5 2439 | dev: true 2440 | 2441 | /supports-color@7.2.0: 2442 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2443 | engines: {node: '>=8'} 2444 | dependencies: 2445 | has-flag: 4.0.0 2446 | dev: true 2447 | 2448 | /tiny-emitter@2.1.0: 2449 | resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} 2450 | dev: false 2451 | 2452 | /tinyglobby@0.2.14: 2453 | resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} 2454 | engines: {node: '>=12.0.0'} 2455 | dependencies: 2456 | fdir: 6.5.0(picomatch@4.0.3) 2457 | picomatch: 4.0.3 2458 | 2459 | /to-regex-range@5.0.1: 2460 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2461 | engines: {node: '>=8.0'} 2462 | requiresBuild: true 2463 | dependencies: 2464 | is-number: 7.0.0 2465 | 2466 | /trim-repeated@1.0.0: 2467 | resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} 2468 | engines: {node: '>=0.10.0'} 2469 | dependencies: 2470 | escape-string-regexp: 1.0.5 2471 | dev: true 2472 | 2473 | /tslib@2.8.1: 2474 | resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} 2475 | requiresBuild: true 2476 | dev: true 2477 | optional: true 2478 | 2479 | /type-check@0.4.0: 2480 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2481 | engines: {node: '>= 0.8.0'} 2482 | dependencies: 2483 | prelude-ls: 1.2.1 2484 | dev: true 2485 | 2486 | /typescript@5.9.2: 2487 | resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} 2488 | engines: {node: '>=14.17'} 2489 | hasBin: true 2490 | 2491 | /uc.micro@2.1.0: 2492 | resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} 2493 | dev: true 2494 | 2495 | /underscore@1.13.7: 2496 | resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} 2497 | dev: true 2498 | 2499 | /universalify@2.0.1: 2500 | resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} 2501 | engines: {node: '>= 10.0.0'} 2502 | dev: true 2503 | 2504 | /upath@2.0.1: 2505 | resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} 2506 | engines: {node: '>=4'} 2507 | 2508 | /uri-js@4.4.1: 2509 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2510 | dependencies: 2511 | punycode: 2.3.1 2512 | dev: true 2513 | 2514 | /util-deprecate@1.0.2: 2515 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2516 | dev: true 2517 | 2518 | /vite-plugin-vuetify@2.1.2(vite@7.1.4)(vue@3.5.21)(vuetify@3.9.6): 2519 | resolution: {integrity: sha512-I/wd6QS+DO6lHmuGoi1UTyvvBTQ2KDzQZ9oowJQEJ6OcjWfJnscYXx2ptm6S7fJSASuZT8jGRBL3LV4oS3LpaA==} 2520 | engines: {node: ^18.0.0 || >=20.0.0} 2521 | peerDependencies: 2522 | vite: '>=5' 2523 | vue: ^3.0.0 2524 | vuetify: ^3.0.0 2525 | dependencies: 2526 | '@vuetify/loader-shared': 2.1.1(vue@3.5.21)(vuetify@3.9.6) 2527 | debug: 4.4.1 2528 | upath: 2.0.1 2529 | vite: 7.1.4(sass@1.92.0) 2530 | vue: 3.5.21(typescript@5.9.2) 2531 | vuetify: 3.9.6(typescript@5.9.2)(vite-plugin-vuetify@2.1.2)(vue@3.5.21) 2532 | transitivePeerDependencies: 2533 | - supports-color 2534 | 2535 | /vite@7.1.4(sass@1.92.0): 2536 | resolution: {integrity: sha512-X5QFK4SGynAeeIt+A7ZWnApdUyHYm+pzv/8/A57LqSGcI88U6R6ipOs3uCesdc6yl7nl+zNO0t8LmqAdXcQihw==} 2537 | engines: {node: ^20.19.0 || >=22.12.0} 2538 | hasBin: true 2539 | peerDependencies: 2540 | '@types/node': ^20.19.0 || >=22.12.0 2541 | jiti: '>=1.21.0' 2542 | less: ^4.0.0 2543 | lightningcss: ^1.21.0 2544 | sass: ^1.70.0 2545 | sass-embedded: ^1.70.0 2546 | stylus: '>=0.54.8' 2547 | sugarss: ^5.0.0 2548 | terser: ^5.16.0 2549 | tsx: ^4.8.1 2550 | yaml: ^2.4.2 2551 | peerDependenciesMeta: 2552 | '@types/node': 2553 | optional: true 2554 | jiti: 2555 | optional: true 2556 | less: 2557 | optional: true 2558 | lightningcss: 2559 | optional: true 2560 | sass: 2561 | optional: true 2562 | sass-embedded: 2563 | optional: true 2564 | stylus: 2565 | optional: true 2566 | sugarss: 2567 | optional: true 2568 | terser: 2569 | optional: true 2570 | tsx: 2571 | optional: true 2572 | yaml: 2573 | optional: true 2574 | dependencies: 2575 | esbuild: 0.25.9 2576 | fdir: 6.5.0(picomatch@4.0.3) 2577 | picomatch: 4.0.3 2578 | postcss: 8.5.6 2579 | rollup: 4.50.0 2580 | sass: 1.92.0 2581 | tinyglobby: 0.2.14 2582 | optionalDependencies: 2583 | fsevents: 2.3.3 2584 | 2585 | /vscode-uri@3.1.0: 2586 | resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 2587 | dev: true 2588 | 2589 | /vue-eslint-parser@10.2.0(eslint@9.34.0): 2590 | resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} 2591 | engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} 2592 | peerDependencies: 2593 | eslint: ^8.57.0 || ^9.0.0 2594 | dependencies: 2595 | debug: 4.4.1 2596 | eslint: 9.34.0 2597 | eslint-scope: 8.4.0 2598 | eslint-visitor-keys: 4.2.1 2599 | espree: 10.4.0 2600 | esquery: 1.6.0 2601 | semver: 7.7.2 2602 | transitivePeerDependencies: 2603 | - supports-color 2604 | dev: true 2605 | 2606 | /vue-tsc@3.0.6(typescript@5.9.2): 2607 | resolution: {integrity: sha512-Tbs8Whd43R2e2nxez4WXPvvdjGbW24rOSgRhLOHXzWiT4pcP4G7KeWh0YCn18rF4bVwv7tggLLZ6MJnO6jXPBg==} 2608 | hasBin: true 2609 | peerDependencies: 2610 | typescript: '>=5.0.0' 2611 | dependencies: 2612 | '@volar/typescript': 2.4.23 2613 | '@vue/language-core': 3.0.6(typescript@5.9.2) 2614 | typescript: 5.9.2 2615 | dev: true 2616 | 2617 | /vue3-icon@3.0.3(vue@3.5.21): 2618 | resolution: {integrity: sha512-B9/f/nwbVBUsBQVSNp7nFIsD/uM/M9MbK38FQFXs8IMSClrEG0gXWtyViQN28na25zpsoKH8Blrzcn/LbUV76Q==} 2619 | peerDependencies: 2620 | vue: ^3.0.0 2621 | dependencies: 2622 | vue: 3.5.21(typescript@5.9.2) 2623 | dev: false 2624 | 2625 | /vue@3.5.21(typescript@5.9.2): 2626 | resolution: {integrity: sha512-xxf9rum9KtOdwdRkiApWL+9hZEMWE90FHh8yS1+KJAiWYh+iGWV1FquPjoO9VUHQ+VIhsCXNNyZ5Sf4++RVZBA==} 2627 | peerDependencies: 2628 | typescript: '*' 2629 | peerDependenciesMeta: 2630 | typescript: 2631 | optional: true 2632 | dependencies: 2633 | '@vue/compiler-dom': 3.5.21 2634 | '@vue/compiler-sfc': 3.5.21 2635 | '@vue/runtime-dom': 3.5.21 2636 | '@vue/server-renderer': 3.5.21(vue@3.5.21) 2637 | '@vue/shared': 3.5.21 2638 | typescript: 5.9.2 2639 | 2640 | /vuetify@3.9.6(typescript@5.9.2)(vite-plugin-vuetify@2.1.2)(vue@3.5.21): 2641 | resolution: {integrity: sha512-jNs2yLYiM50kE16gBu58xmnh9t/MOvgnYcNvmLNps6TLq9rPvjTNFm2k2jWfe69hGg0gQf+MFXXDkf65fxi9gg==} 2642 | engines: {node: ^12.20 || >=14.13} 2643 | peerDependencies: 2644 | typescript: '>=4.7' 2645 | vite-plugin-vuetify: '>=2.1.0' 2646 | vue: ^3.5.0 2647 | webpack-plugin-vuetify: '>=3.1.0' 2648 | peerDependenciesMeta: 2649 | typescript: 2650 | optional: true 2651 | vite-plugin-vuetify: 2652 | optional: true 2653 | webpack-plugin-vuetify: 2654 | optional: true 2655 | dependencies: 2656 | typescript: 5.9.2 2657 | vite-plugin-vuetify: 2.1.2(vite@7.1.4)(vue@3.5.21)(vuetify@3.9.6) 2658 | vue: 3.5.21(typescript@5.9.2) 2659 | 2660 | /which@2.0.2: 2661 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 2662 | engines: {node: '>= 8'} 2663 | hasBin: true 2664 | dependencies: 2665 | isexe: 2.0.0 2666 | dev: true 2667 | 2668 | /word-wrap@1.2.5: 2669 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 2670 | engines: {node: '>=0.10.0'} 2671 | dev: true 2672 | 2673 | /xml-name-validator@4.0.0: 2674 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 2675 | engines: {node: '>=12'} 2676 | dev: true 2677 | 2678 | /xmlcreate@2.0.4: 2679 | resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} 2680 | dev: true 2681 | 2682 | /yocto-queue@0.1.0: 2683 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2684 | engines: {node: '>=10'} 2685 | dev: true 2686 | --------------------------------------------------------------------------------