├── .eslintignore ├── .npmrc ├── .gitignore ├── screenshot ├── 1.png └── 2.png ├── src ├── assets │ ├── img │ │ ├── file.gif │ │ ├── minus.gif │ │ ├── plus.gif │ │ ├── folder.gif │ │ ├── folder-closed.gif │ │ ├── treeview-default.gif │ │ └── treeview-default-line.gif │ └── css │ │ └── common.styl ├── components │ ├── TorrentDownloadHeader.vue │ ├── CheckboxHeader.vue │ ├── TreeRoot.vue │ ├── CheckboxItem.vue │ ├── ToastItem.vue │ ├── ToolBar.vue │ ├── PopupWrapper.vue │ ├── TorrentDownloadItem.vue │ ├── LinksPopup.vue │ └── TreeItem.vue ├── utils │ └── misc.js ├── main.js └── pages │ ├── view.js │ └── list.js ├── .vscode └── extensions.json ├── jsconfig.json ├── .github └── workflows │ └── ci.yml ├── .eslintrc.cjs ├── LICENSE ├── package.json ├── userscript.config.js ├── userscript.js ├── vite.config.js ├── tests └── torrent.spec.js └── pnpm-lock.yaml /.eslintignore: -------------------------------------------------------------------------------- 1 | dist/ 2 | node_modules/ 3 | !.*.js 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry = https://registry.npmmirror.com/ 2 | 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | dist/ 3 | BUILD 4 | .DS_Store 5 | *.log 6 | -------------------------------------------------------------------------------- /screenshot/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/screenshot/1.png -------------------------------------------------------------------------------- /screenshot/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/screenshot/2.png -------------------------------------------------------------------------------- /src/assets/img/file.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/file.gif -------------------------------------------------------------------------------- /src/assets/img/minus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/minus.gif -------------------------------------------------------------------------------- /src/assets/img/plus.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/plus.gif -------------------------------------------------------------------------------- /src/assets/img/folder.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/folder.gif -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "sysoev.language-stylus", 4 | "vue.volar" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/assets/img/folder-closed.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/folder-closed.gif -------------------------------------------------------------------------------- /src/assets/img/treeview-default.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/treeview-default.gif -------------------------------------------------------------------------------- /src/assets/img/treeview-default-line.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kuoruan/dmhy-download-helper/HEAD/src/assets/img/treeview-default-line.gif -------------------------------------------------------------------------------- /src/assets/css/common.styl: -------------------------------------------------------------------------------- 1 | body 2 | position: relative 3 | 4 | #topic_list 5 | .odd:hover 6 | .even:hover 7 | background-color:#0eb9e7 8 | td 9 | background-color:#0eb9e7 10 | -------------------------------------------------------------------------------- /src/components/TorrentDownloadHeader.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@/*": [ 6 | "src/*" 7 | ], 8 | } 9 | }, 10 | "include": ["src/**/*.js", "src/**/*.vue", "tests/**/*.js", "tests/**/*.vue"], 11 | "vueCompilerOptions": { 12 | "target": 2.7, 13 | "plugins": [ 14 | "@vue/language-plugin-pug" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Node.js Package CI 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@v4 10 | with: 11 | fetch-depth: 1 12 | - uses: actions/setup-node@v4 13 | with: 14 | node-version: '18.x' 15 | - uses: pnpm/action-setup@v2 16 | with: 17 | version: 8 18 | - run: pnpm install 19 | - run: pnpm lint 20 | - run: pnpm build 21 | -------------------------------------------------------------------------------- /src/components/CheckboxHeader.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 20 | 21 | 27 | -------------------------------------------------------------------------------- /src/components/TreeRoot.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 30 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | node: true, 4 | browser: true, 5 | }, 6 | extends: [ 7 | "plugin:prettier/recommended", 8 | "plugin:vue/recommended", 9 | "@vue/prettier", 10 | ], 11 | plugins: ["vue", "prettier", "simple-import-sort"], 12 | rules: { 13 | "no-console": "off", 14 | "no-debugger": "off", 15 | "no-undef": "off", 16 | 17 | "simple-import-sort/imports": "error", 18 | "simple-import-sort/exports": "error", 19 | }, 20 | overrides: [ 21 | { 22 | files: ["tests/**"], 23 | env: { 24 | "vitest/env": true, 25 | }, 26 | plugins: ["vitest"], 27 | extends: ["plugin:vitest/recommended"], 28 | }, 29 | ], 30 | }; 31 | -------------------------------------------------------------------------------- /src/components/CheckboxItem.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 31 | 32 | 38 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Xingwang Liao 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/utils/misc.js: -------------------------------------------------------------------------------- 1 | export function magnetLinksWithOptions(magnetLinks, opts) { 2 | if (!magnetLinks || magnetLinks.length <= 0) { 3 | return []; 4 | } 5 | 6 | if (opts.clean) { 7 | return magnetLinks.map((l) => l.substring(0, l.indexOf("&"))); 8 | } 9 | return [...magnetLinks]; 10 | } 11 | 12 | export function getDefaultLinebreak() { 13 | let linebreak = "\n"; 14 | if (navigator.userAgent.indexOf("Windows") > -1) { 15 | linebreak = "\r\n"; 16 | } 17 | 18 | return linebreak; 19 | } 20 | 21 | export function hashCode(str) { 22 | let hash = 0; 23 | if (!str || str.length <= 0) return hash; 24 | 25 | for (let i = 0, len = str.length; i < len; i++) { 26 | let chr = str.charCodeAt(i); 27 | hash = (hash << 5) - hash + chr; 28 | hash |= 0; 29 | } 30 | 31 | return hash; 32 | } 33 | 34 | const TORRENT_LINK_TAG_REGEX = 35 | /(.+)?<\/a>/; 36 | 37 | export function getTorrentLinkFromHTML(html) { 38 | const matches = html.match(TORRENT_LINK_TAG_REGEX); 39 | if (matches && matches.length === 3) { 40 | return { href: matches[1].replace(/\n/g, ""), title: matches[2] }; 41 | } 42 | return null; 43 | } 44 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import "@/assets/css/common.styl"; 2 | 3 | import Vue from "vue"; 4 | 5 | import ToastItem from "@/components/ToastItem.vue"; 6 | import { mountListElement } from "@/pages/list"; 7 | import { mountFileListElement } from "@/pages/view"; 8 | 9 | // Init toast item 10 | const ToastItemVM = Vue.extend(ToastItem); 11 | 12 | const toast = new ToastItemVM().$mount(); 13 | document.body.appendChild(toast.$el); 14 | 15 | Object.defineProperty(Vue.prototype, "$toast", { value: toast }); 16 | 17 | let topicListEl, fileListEl; 18 | 19 | if ((topicListEl = document.querySelector("#topic_list"))) { 20 | mountListElement(topicListEl); 21 | 22 | if ( 23 | typeof jQuery !== "undefined" && 24 | typeof jQuery.tablesorter !== "undefined" 25 | ) { 26 | jQuery("#topic_list").tablesorter({ widgets: ["zebra"] }); 27 | jQuery("#topic_list") 28 | .bind("sortStart", function () { 29 | jQuery("#overlay").show(); 30 | }) 31 | .bind("sortEnd", function () { 32 | jQuery("#overlay").hide(); 33 | }); 34 | } 35 | } 36 | 37 | if ((fileListEl = document.querySelector("#resource-tabs .file_list"))) { 38 | let title = ""; 39 | 40 | let titleEl; 41 | if ((titleEl = document.querySelector(".topic-title h3"))) { 42 | title = titleEl.innerText.trim(); 43 | } 44 | mountFileListElement(fileListEl, title); 45 | } 46 | -------------------------------------------------------------------------------- /src/components/ToastItem.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 36 | 37 | 76 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dmhy-download-helper", 3 | "version": "1.6.2", 4 | "description": "A userscript for share.dmhy.org.", 5 | "private": true, 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite build --watch --mode dev", 9 | "build": "vite build", 10 | "serve": "vite preview", 11 | "test": "vitest --run", 12 | "lint": "eslint --ext .js,.cjs,.vue .", 13 | "lint:fix": "eslint --fix --ext .js,.cjs,.vue ." 14 | }, 15 | "repository": { 16 | "type": "git", 17 | "url": "git+https://github.com/kuoruan/dmhy-download-helper.git" 18 | }, 19 | "author": "Xingwang Liao", 20 | "license": "MIT", 21 | "bugs": { 22 | "url": "https://github.com/kuoruan/dmhy-download-helper/issues" 23 | }, 24 | "homepage": "https://github.com/kuoruan/dmhy-download-helper#readme", 25 | "dependencies": { 26 | "vue": "^2.7.16", 27 | "xbytes": "^1.9.1" 28 | }, 29 | "devDependencies": { 30 | "@vitejs/plugin-vue2": "^2.3.1", 31 | "@vue/eslint-config-prettier": "^9.0.0", 32 | "@vue/language-plugin-pug": "^2.0.19", 33 | "chalk": "^5.3.0", 34 | "eslint": "^8.57.0", 35 | "eslint-plugin-prettier": "^5.1.3", 36 | "eslint-plugin-simple-import-sort": "^12.1.0", 37 | "eslint-plugin-vitest": "^0.3.26", 38 | "eslint-plugin-vue": "^9.26.0", 39 | "prettier": "^3.2.5", 40 | "pug": "^3.0.3", 41 | "stylus": "^0.63.0", 42 | "vite": "^5.4.18", 43 | "vite-plugin-banner": "^0.7.1", 44 | "vite-plugin-css-injected-by-js": "^3.5.1", 45 | "vitest": "^1.6.1" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /userscript.config.js: -------------------------------------------------------------------------------- 1 | import packageConfig from "./package.json"; 2 | 3 | export default { 4 | pkgName: packageConfig.name, 5 | name: "DMHY download helper", 6 | "name:zh-CN": "动漫花园下载助手", 7 | description: packageConfig.description, 8 | "description:zh-CN": 9 | "动漫花园(share.dmhy.org)扩展,提供批量选择、列表下载种子文件及详情页树状展示等功能。", 10 | author: packageConfig.author, 11 | namespace: "https://github.com/kuoruan", 12 | homepage: packageConfig.homepage, 13 | supportURL: packageConfig.bugs ? packageConfig.bugs.url : "", 14 | match: [ 15 | "*://dmhy.org/", 16 | "*://dmhy.org/topics/list/*", 17 | "*://dmhy.org/topics/list?*", 18 | "*://dmhy.org/topics/view/*", 19 | "*://www.dmhy.org/", 20 | "*://www.dmhy.org/topics/list/*", 21 | "*://www.dmhy.org/topics/list?*", 22 | "*://www.dmhy.org/topics/view/*", 23 | "*://share.dmhy.org/", 24 | "*://share.dmhy.org/topics/list/*", 25 | "*://share.dmhy.org/topics/list?*", 26 | "*://share.dmhy.org/topics/view/*", 27 | "*://dmhy.b168.net/", 28 | "*://dmhy.b168.net/topics/list/*", 29 | "*://dmhy.b168.net/topics/list?*", 30 | "*://dmhy.b168.net/topics/view/*", 31 | ], 32 | require: [ 33 | "https://cdn.jsdelivr.net/npm/vue@2.7.16/dist/vue.min.js", 34 | "https://cdn.jsdelivr.net/npm/xbytes@1.9.1/dist/index.min.js", 35 | ], 36 | connect: ["dmhy.org", "b168.net"], 37 | grant: ["GM_addStyle", "GM_setClipboard", "GM_xmlhttpRequest"], 38 | source: "https://github.com/kuoruan/dmhy-download-helper.git", 39 | license: packageConfig.license, 40 | "run-at": "document-end", 41 | version: packageConfig.version || "1.0.0", 42 | icon: "https://share.dmhy.org/favicon.ico", 43 | }; 44 | -------------------------------------------------------------------------------- /userscript.js: -------------------------------------------------------------------------------- 1 | import userscriptConfig from "./userscript.config"; 2 | 3 | const ArrayKeys = [ 4 | "include", 5 | "match", 6 | "exclude", 7 | "require", 8 | "resource", 9 | "connect", 10 | "grant", 11 | ]; 12 | 13 | const IgnoreKeys = ["pkgName"]; 14 | 15 | export const config = userscriptConfig; 16 | export function createBanner(isDev, buildNumber) { 17 | const keys = Object.keys(userscriptConfig); 18 | 19 | const filteredKeys = []; 20 | let maxKeyLength = 0; 21 | 22 | for (let i = 0, len = keys.length; i < len; i++) { 23 | let key = keys[i]; 24 | if (IgnoreKeys.indexOf(key) > -1) { 25 | continue; 26 | } 27 | 28 | filteredKeys.push(key); 29 | if (key.length > maxKeyLength) { 30 | maxKeyLength = key.length; 31 | } 32 | } 33 | 34 | const headers = []; 35 | headers.push("// ==UserScript=="); 36 | 37 | for (let i = 0, len = filteredKeys.length; i < len; i++) { 38 | let key = filteredKeys[i]; 39 | 40 | const config = userscriptConfig[key]; 41 | 42 | if (ArrayKeys.indexOf(key) > -1) { 43 | if (Array.isArray(config) && config.length > 0) { 44 | config.forEach((c) => { 45 | headers.push(`// @${key.padEnd(maxKeyLength + 1)} ${c}`); 46 | }); 47 | } else if (typeof config === "string") { 48 | headers.push(`// @${key.padEnd(maxKeyLength + 1)} ${config}`); 49 | } 50 | } else if (key === "version" && isDev) { 51 | headers.push( 52 | `// @${key.padEnd(maxKeyLength + 1)} ${config}-alpha.${buildNumber}`, 53 | ); 54 | } else { 55 | headers.push(`// @${key.padEnd(maxKeyLength + 1)} ${config}`); 56 | } 57 | } 58 | 59 | headers.push("// ==/UserScript=="); 60 | headers.push(""); 61 | 62 | return headers.join("\n"); 63 | } 64 | -------------------------------------------------------------------------------- /src/components/ToolBar.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 54 | 55 | 99 | -------------------------------------------------------------------------------- /src/components/PopupWrapper.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 56 | 57 | 87 | -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | import vue2 from "@vitejs/plugin-vue2"; 2 | import chalk from "chalk"; 3 | import fs from "fs"; 4 | import { fileURLToPath } from "url"; 5 | import { defineConfig } from "vite"; 6 | import banner from "vite-plugin-banner"; 7 | import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js"; 8 | 9 | import { createBanner } from "./userscript"; 10 | 11 | const buildNumberFile = fileURLToPath(new URL("./BUILD", import.meta.url)); 12 | 13 | // Write new build number to file. 14 | function writeNewBuildNumber(number) { 15 | fs.writeFile(buildNumberFile, String(number), function (err) { 16 | if (!err) { 17 | console.log(chalk.yellowBright(`build number set to ${number}`)); 18 | } 19 | }); 20 | } 21 | 22 | let buildNumber = 0; 23 | 24 | // Read build number from local file. 25 | if (fs.existsSync(buildNumberFile)) { 26 | const data = fs.readFileSync(buildNumberFile, "UTF-8"); 27 | buildNumber = +data || 0; 28 | } 29 | 30 | export default defineConfig(({ mode }) => { 31 | const isDev = mode === "dev"; 32 | 33 | return { 34 | resolve: { 35 | alias: { 36 | "@": "/src", 37 | }, 38 | }, 39 | build: { 40 | minify: false, 41 | cssMinify: true, 42 | cssCodeSplit: false, 43 | sourcemap: false, 44 | assetsInlineLimit: Number.POSITIVE_INFINITY, // always inline assets 45 | rollupOptions: { 46 | input: { 47 | [process.env.npm_package_name]: fileURLToPath( 48 | new URL("./src/main.js", import.meta.url), 49 | ), 50 | }, 51 | output: { 52 | entryFileNames: "[name].user.js", 53 | format: "iife", 54 | globals: { 55 | vue: "Vue", 56 | xbytes: "xbytes", 57 | }, 58 | }, 59 | external: ["vue", "xbytes", /^\/images/], 60 | }, 61 | }, 62 | plugins: [ 63 | vue2(), 64 | banner({ 65 | content: (fileName) => { 66 | if (isDev) { 67 | writeNewBuildNumber(++buildNumber); 68 | } 69 | 70 | return fileName.endsWith(".js") 71 | ? createBanner(isDev, buildNumber) 72 | : ""; 73 | }, 74 | verify: false, 75 | }), 76 | cssInjectedByJsPlugin({ 77 | injectCode: (cssCode) => { 78 | return `GM_addStyle(${cssCode})`; 79 | }, 80 | }), 81 | ], 82 | 83 | test: { 84 | include: ["tests/*.{test,spec}.js"], 85 | globals: true, 86 | }, 87 | }; 88 | }); 89 | -------------------------------------------------------------------------------- /src/pages/view.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | import XBytes from "xbytes"; 3 | 4 | import TreeRoot from "@/components/TreeRoot.vue"; 5 | import { hashCode } from "@/utils/misc"; 6 | 7 | const TreeRootVM = Vue.extend(TreeRoot); 8 | 9 | function folderTreeFromNodeList(fileNodeList) { 10 | const map = {}; 11 | const list = []; 12 | 13 | for (let i = 0, len = fileNodeList.length; i < len; i++) { 14 | const fileNode = fileNodeList[i]; 15 | 16 | const fileSizeNode = fileNode.querySelector(".bt_file_size"); 17 | const nodeText = fileNode.innerText; 18 | 19 | let fileSizeStr; 20 | 21 | if (fileSizeNode) { 22 | fileSizeStr = fileSizeNode.innerText.trim(); 23 | } 24 | 25 | let filePath; 26 | let fileBytes = 0; 27 | 28 | if (fileSizeStr) { 29 | const bytes = fileSizeStr.replace(/(\d+)bytes?/i, "$1"); 30 | if (!isNaN(+bytes)) { 31 | fileBytes = +bytes; 32 | } else { 33 | fileBytes = XBytes.parseSize(fileSizeStr, { iec: false }); 34 | } 35 | filePath = nodeText.substring(0, nodeText.indexOf(fileSizeStr)).trim(); 36 | } else { 37 | filePath = nodeText.trim(); 38 | } 39 | 40 | if (!filePath) { 41 | filePath = `No. ${i + 1} - Unknown filename`; 42 | } 43 | 44 | let slice = filePath.split("/"); 45 | 46 | let parentKey = 0; 47 | for (let j = 0, sLen = slice.length; j < sLen; j++) { 48 | let fileName = slice[j]; 49 | let level = j + 1; 50 | 51 | let baseName = filePath.substring( 52 | 0, 53 | filePath.indexOf(fileName) + fileName.length, 54 | ); 55 | let key = hashCode(baseName); 56 | 57 | if (!map[key]) { 58 | let file = { 59 | key: key, 60 | parentKey: parentKey, 61 | name: fileName, 62 | level: level, 63 | size: level === sLen ? fileBytes : 0, 64 | children: level === sLen ? null : [], 65 | }; 66 | map[key] = file; 67 | list.push(file); 68 | } 69 | 70 | parentKey = key; 71 | } 72 | } 73 | 74 | const root = []; 75 | for (let i = 0, len = list.length; i < len; i++) { 76 | let file = list[i]; 77 | 78 | if (!file.parentKey) { 79 | root.push(file); 80 | } else { 81 | map[file.parentKey].children.push(file); 82 | } 83 | } 84 | 85 | return root; 86 | } 87 | 88 | export function mountFileListElement(el, title) { 89 | const fileListNode = el.querySelector("ul"); 90 | const fileItemNodeList = el.querySelectorAll("ul > li"); 91 | 92 | if (!fileListNode || fileItemNodeList.length <= 0) { 93 | return; 94 | } 95 | 96 | const folders = folderTreeFromNodeList(fileItemNodeList); 97 | 98 | if (folders.length <= 0) { 99 | return; 100 | } 101 | 102 | const tree = new TreeRootVM({ 103 | propsData: { 104 | folders: 105 | (folders.length > 1 || folders[0].size) && title 106 | ? [ 107 | { 108 | key: 0, 109 | parentKey: -1, 110 | name: title, 111 | children: folders, 112 | }, 113 | ] 114 | : folders, 115 | }, 116 | }); 117 | 118 | tree.$mount(fileListNode); 119 | } 120 | -------------------------------------------------------------------------------- /tests/torrent.spec.js: -------------------------------------------------------------------------------- 1 | import { it } from "vitest"; 2 | import { expect } from "vitest"; 3 | 4 | import { getTorrentLinkFromHTML } from "@/utils/misc"; 5 | 6 | describe("Torrent", () => { 7 | it("should match dmhy torrent link tag", () => { 8 | const torrentLinkTag = 9 | '[2024.01.24] プロジェクトセカイ カラフルステージ! feat.初音ミク ワンダーランズ×ショウタイム SEKAI ALBUM Vol.2 [MP3 320K]'; 10 | const torrentLinkTag2 = 11 | '會員專用連接: [MagicStar] SHUT UP EP07 [WEBDL] [1080p]【生】'; 12 | const torrentLinkTag3 = 13 | '【ASMR】舔耳朵♪[WAV/MP3/MP4]'; 14 | const torrentLinkTag4 = 15 | '【ASMR】舔耳朵♪[WAV/MP3/MP4]'; 16 | 17 | expect(getTorrentLinkFromHTML(torrentLinkTag)).toEqual({ 18 | href: "//dl.dmhy.org/2024/01/23/66e247e9ed66b639a46f2472a2f9fd46f2025fec.torrent", 19 | title: 20 | "[2024.01.24] プロジェクトセカイ カラフルステージ! feat.初音ミク ワンダーランズ×ショウタイム SEKAI ALBUM Vol.2 [MP3 320K]", 21 | }); 22 | expect(getTorrentLinkFromHTML(torrentLinkTag2)).toEqual({ 23 | href: "http://dl.dmhy.org/2024/01/23/06abefc6121c0428b6abdddf1b24744fba6f3738.torrent", 24 | title: "[MagicStar] SHUT UP EP07 [WEBDL] [1080p]【生】", 25 | }); 26 | expect(getTorrentLinkFromHTML(torrentLinkTag3)).toEqual({ 27 | href: "https://dl.dmhy.org/2024/01/23/7731c887aeb285ca0373a595c520b3b0cef448e1.torrent", 28 | title: "【ASMR】舔耳朵♪[WAV/MP3/MP4]", 29 | }); 30 | expect(getTorrentLinkFromHTML(torrentLinkTag4)).toEqual({ 31 | href: "https://dl.dmhy.org/2024/01/23/7731c887aeb285ca0373a595c520b3b0cef448e1.torrent", 32 | title: "【ASMR】舔耳朵♪[WAV/MP3/MP4]", 33 | }); 34 | }); 35 | 36 | it("should match mirror site torrent link tag", () => { 37 | const link1 = 38 | '會員專用連接: 【喵萌奶茶屋】★10月新番★[腼腆英雄 / SHY][10][1080p][简日双语][招募翻译]'; 39 | 40 | const link2 = 41 | '會員專用連接: 【喵萌奶茶屋】★10月新番★[腼腆英雄 / SHY][10][1080p][简日双语][招募翻译]'; 42 | 43 | expect(getTorrentLinkFromHTML(link1)).toEqual({ 44 | href: "//dmhytorrents.b168.net/2023/12/11/61e671afe573d1de89dfbfc24e1cea86c2efac04.torrent", 45 | title: 46 | "【喵萌奶茶屋】★10月新番★[腼腆英雄 / SHY][10][1080p][简日双语][招募翻译]", 47 | }); 48 | expect(getTorrentLinkFromHTML(link2)).toEqual({ 49 | href: "https://dmhytorrents.b168.net/2023/12/11/61e671afe573d1de89dfbfc24e1cea86c2efac04.torrent", 50 | title: 51 | "【喵萌奶茶屋】★10月新番★[腼腆英雄 / SHY][10][1080p][简日双语][招募翻译]", 52 | }); 53 | }); 54 | 55 | it("should not match other link tag", () => { 56 | const link1 = 57 | '123'; 58 | const link2 = ''; 59 | 60 | expect(getTorrentLinkFromHTML(link1)).toBeNull(); 61 | expect(getTorrentLinkFromHTML(link2)).toBeNull(); 62 | }); 63 | }); 64 | -------------------------------------------------------------------------------- /src/components/TorrentDownloadItem.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 140 | 141 | 157 | -------------------------------------------------------------------------------- /src/components/LinksPopup.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 141 | 142 | 196 | -------------------------------------------------------------------------------- /src/components/TreeItem.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 152 | 153 | 256 | -------------------------------------------------------------------------------- /src/pages/list.js: -------------------------------------------------------------------------------- 1 | import Vue from "vue"; 2 | 3 | import CheckboxHeader from "@/components/CheckboxHeader.vue"; 4 | import CheckboxItem from "@/components/CheckboxItem.vue"; 5 | import LinksPopup from "@/components/LinksPopup.vue"; 6 | import ToolBar from "@/components/ToolBar.vue"; 7 | import TorrentDownloadHeader from "@/components/TorrentDownloadHeader.vue"; 8 | import TorrentDownloadItem from "@/components/TorrentDownloadItem.vue"; 9 | import { magnetLinksWithOptions } from "@/utils/misc"; 10 | 11 | const CheckboxHeaderVM = Vue.extend(CheckboxHeader); 12 | const CheckboxItemVM = Vue.extend(CheckboxItem); 13 | 14 | const TorrentDownloadHeaderVM = Vue.extend(TorrentDownloadHeader); 15 | const TorrentDownloadItemVM = Vue.extend(TorrentDownloadItem); 16 | 17 | const ToolBarVM = Vue.extend(ToolBar); 18 | const LinksPopupVM = Vue.extend(LinksPopup); 19 | 20 | export function mountListElement(el) { 21 | const list = new Vue({ 22 | data() { 23 | return { 24 | header: null, 25 | all: [], 26 | selected: [], 27 | popupIndex: 10, 28 | toolbars: [], 29 | }; 30 | }, 31 | computed: { 32 | links() { 33 | return this.selected.map((item) => item.magnet).filter((m) => !!m); 34 | }, 35 | }, 36 | watch: { 37 | links(val) { 38 | const isEmpty = !val || val.length <= 0; 39 | this.toolbars.forEach((t) => { 40 | t.visible = !isEmpty; 41 | }); 42 | }, 43 | }, 44 | mounted() { 45 | this.$nextTick(function () { 46 | const table = this.$el; 47 | let tableContainer; 48 | if ( 49 | !table.parentNode || 50 | ((tableContainer = table.parentNode.parentNode), 51 | !tableContainer || tableContainer.className.indexOf("table") < 0) 52 | ) { 53 | // Not in list page or list not in table container .table 54 | return; 55 | } 56 | 57 | if (table.tHead && table.tBodies) { 58 | if (table.tHead.rows && table.tHead.rows.length > 0) { 59 | this.insertHeaderToRow(table.tHead.rows[0]); 60 | } 61 | 62 | let index = 0; 63 | for (let i = 0, len = table.tBodies.length; i < len; i++) { 64 | let body = table.tBodies[i]; 65 | 66 | for (let j = 0, rowLen = body.rows.length; j < rowLen; j++) { 67 | this.insertItemToRow(body.rows[j], index++); 68 | } 69 | } 70 | } else { 71 | if (table.rows) { 72 | for (let i = 0, len = table.rows.length; i < len; i++) { 73 | let row = table.rows[i]; 74 | if (i === 0) { 75 | this.insertHeaderToRow(row); 76 | } else { 77 | this.insertItemToRow(row, i - 1); 78 | } 79 | } 80 | } 81 | } 82 | 83 | this.initToolBars(tableContainer); 84 | }); 85 | }, 86 | beforeDestroy() { 87 | if (this.header) { 88 | this.header.$off("change"); 89 | this.header = null; 90 | } 91 | 92 | this.all.forEach((item) => { 93 | item.$off("change"); 94 | }); 95 | this.toolbars.forEach((t) => { 96 | t.$off("copy"); 97 | t.$off("show"); 98 | }); 99 | 100 | this.all.splice(0, this.all.length); 101 | this.selected.splice(0, this.selected.length); 102 | this.toolbars.splice(0, this.toolbars.length); 103 | }, 104 | methods: { 105 | initToolBars(tableContainer) { 106 | const headerToolbar = new ToolBarVM({ 107 | propsData: { 108 | position: "top", 109 | }, 110 | }).$mount(); 111 | 112 | headerToolbar.$on("copy", this.onCopyLinks); 113 | headerToolbar.$on("show", this.onShowLinks); 114 | 115 | const bottomToobar = new ToolBarVM({ 116 | propsData: { 117 | position: "bottom", 118 | }, 119 | }).$mount(); 120 | bottomToobar.$on("copy", this.onCopyLinks); 121 | bottomToobar.$on("show", this.onShowLinks); 122 | 123 | tableContainer.insertBefore( 124 | headerToolbar.$el, 125 | tableContainer.firstChild, 126 | ); 127 | tableContainer.appendChild(bottomToobar.$el); 128 | 129 | this.toolbars.push(headerToolbar, bottomToobar); 130 | }, 131 | insertHeaderToRow(row) { 132 | if (row.cells.length <= 0) return; 133 | 134 | const firstCell = row.cells[0]; 135 | let sizeCell; 136 | if (row.cells.length >= 5) { 137 | sizeCell = row.cells[4]; 138 | } 139 | 140 | const checkboxTH = new CheckboxHeaderVM().$mount(); 141 | checkboxTH.$on("change", this.onSelectAllChange); 142 | 143 | row.insertBefore(checkboxTH.$el, firstCell); 144 | this.header = checkboxTH; 145 | 146 | if (sizeCell) { 147 | const bittorrentDownloadTH = new TorrentDownloadHeaderVM().$mount(); 148 | row.insertBefore(bittorrentDownloadTH.$el, sizeCell); 149 | } 150 | }, 151 | insertItemToRow(row, index) { 152 | if (row.cells.length <= 0) return; 153 | 154 | const firstCell = row.cells[0]; 155 | let sizeCell; 156 | if (row.cells.length >= 5) { 157 | sizeCell = row.cells[4]; 158 | } 159 | 160 | const magnetLinkDOM = row.querySelector("td > .arrow-magnet"); 161 | 162 | const checkboxTD = new CheckboxItemVM({ 163 | propsData: { 164 | index: index, 165 | magnet: magnetLinkDOM ? magnetLinkDOM.href : "", 166 | }, 167 | }).$mount(); 168 | 169 | const _self = this; 170 | checkboxTD.$on("change", function (checked) { 171 | _self.onItemSelectChange(checkboxTD, checked); 172 | }); 173 | row.insertBefore(checkboxTD.$el, firstCell); 174 | 175 | this.all.push(checkboxTD); 176 | 177 | if (sizeCell) { 178 | const detailLinkDom = row.querySelector("td.title > a"); 179 | 180 | const bittorrentDownloadTD = new TorrentDownloadItemVM({ 181 | propsData: { 182 | index: index, 183 | detailLink: detailLinkDom ? detailLinkDom.href : "", 184 | title: detailLinkDom ? detailLinkDom.innerText : "", 185 | }, 186 | }).$mount(); 187 | row.insertBefore(bittorrentDownloadTD.$el, sizeCell); 188 | } 189 | }, 190 | onSelectAllChange(checked) { 191 | this.all.forEach(function (item) { 192 | item.checked = checked; 193 | }); 194 | if (checked) { 195 | this.selected = [...this.all]; 196 | } else { 197 | this.selected.splice(0, this.selected.length); 198 | } 199 | }, 200 | onItemSelectChange(item, checked) { 201 | const selectedIndex = this.selected.indexOf(item); 202 | if (checked && selectedIndex < 0) { 203 | this.selected.push(item); 204 | } else if (!checked && selectedIndex > -1) { 205 | this.selected.splice(selectedIndex, 1); 206 | } 207 | 208 | if (this.header) { 209 | this.header.checked = this.all.length === this.selected.length; 210 | } 211 | }, 212 | onCopyLinks(opts) { 213 | const links = magnetLinksWithOptions(this.links, opts); 214 | 215 | if (links.length > 0) { 216 | try { 217 | const content = links.join(opts.separator); 218 | GM_setClipboard(content, "{ type: 'text', mimetype: 'text/plain'}"); 219 | this.$toast.display("复制成功!"); 220 | } catch (e) { 221 | this.$toast.display("复制失败,请重试。"); 222 | } 223 | } 224 | }, 225 | onShowLinks(opts) { 226 | const links = magnetLinksWithOptions(this.links, opts); 227 | if (links.length > 0) { 228 | const popup = new LinksPopupVM({ 229 | propsData: { 230 | zIndex: this.popupIndex++, 231 | links: links, 232 | options: opts, 233 | }, 234 | }).$mount(); 235 | popup.$on("close", function () { 236 | popup.$off("close"); 237 | try { 238 | popup.$el.remove(); 239 | } catch (e) { 240 | document.body.removeChild(popup.$el); 241 | } 242 | }); 243 | document.body.appendChild(popup.$el); 244 | } 245 | }, 246 | }, 247 | }); 248 | 249 | list.$mount(el); 250 | } 251 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | vue: 12 | specifier: ^2.7.16 13 | version: 2.7.16 14 | xbytes: 15 | specifier: ^1.9.1 16 | version: 1.9.1 17 | devDependencies: 18 | '@vitejs/plugin-vue2': 19 | specifier: ^2.3.1 20 | version: 2.3.1(vite@5.4.18(stylus@0.63.0))(vue@2.7.16) 21 | '@vue/eslint-config-prettier': 22 | specifier: ^9.0.0 23 | version: 9.0.0(eslint@8.57.0)(prettier@3.2.5) 24 | '@vue/language-plugin-pug': 25 | specifier: ^2.0.19 26 | version: 2.0.19 27 | chalk: 28 | specifier: ^5.3.0 29 | version: 5.3.0 30 | eslint: 31 | specifier: ^8.57.0 32 | version: 8.57.0 33 | eslint-plugin-prettier: 34 | specifier: ^5.1.3 35 | version: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) 36 | eslint-plugin-simple-import-sort: 37 | specifier: ^12.1.0 38 | version: 12.1.0(eslint@8.57.0) 39 | eslint-plugin-vitest: 40 | specifier: ^0.3.26 41 | version: 0.3.26(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.1(stylus@0.63.0)) 42 | eslint-plugin-vue: 43 | specifier: ^9.26.0 44 | version: 9.26.0(eslint@8.57.0) 45 | prettier: 46 | specifier: ^3.2.5 47 | version: 3.2.5 48 | pug: 49 | specifier: ^3.0.3 50 | version: 3.0.3 51 | stylus: 52 | specifier: ^0.63.0 53 | version: 0.63.0 54 | vite: 55 | specifier: ^5.4.18 56 | version: 5.4.18(stylus@0.63.0) 57 | vite-plugin-banner: 58 | specifier: ^0.7.1 59 | version: 0.7.1 60 | vite-plugin-css-injected-by-js: 61 | specifier: ^3.5.1 62 | version: 3.5.1(vite@5.4.18(stylus@0.63.0)) 63 | vitest: 64 | specifier: ^1.6.1 65 | version: 1.6.1(stylus@0.63.0) 66 | 67 | packages: 68 | 69 | '@adobe/css-tools@4.3.3': 70 | resolution: {integrity: sha512-rE0Pygv0sEZ4vBWHlAgJLGDU7Pm8xoO6p3wsEceb7GYAjScrOHpEo8KK/eVkAcnSM+slAEtXjA2JpdjLp4fJQQ==} 71 | 72 | '@babel/helper-string-parser@7.24.1': 73 | resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} 74 | engines: {node: '>=6.9.0'} 75 | 76 | '@babel/helper-string-parser@7.25.9': 77 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 78 | engines: {node: '>=6.9.0'} 79 | 80 | '@babel/helper-validator-identifier@7.24.5': 81 | resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} 82 | engines: {node: '>=6.9.0'} 83 | 84 | '@babel/helper-validator-identifier@7.25.9': 85 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 86 | engines: {node: '>=6.9.0'} 87 | 88 | '@babel/parser@7.24.5': 89 | resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} 90 | engines: {node: '>=6.0.0'} 91 | hasBin: true 92 | 93 | '@babel/parser@7.27.0': 94 | resolution: {integrity: sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==} 95 | engines: {node: '>=6.0.0'} 96 | hasBin: true 97 | 98 | '@babel/types@7.24.5': 99 | resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} 100 | engines: {node: '>=6.9.0'} 101 | 102 | '@babel/types@7.27.0': 103 | resolution: {integrity: sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==} 104 | engines: {node: '>=6.9.0'} 105 | 106 | '@esbuild/aix-ppc64@0.21.5': 107 | resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} 108 | engines: {node: '>=12'} 109 | cpu: [ppc64] 110 | os: [aix] 111 | 112 | '@esbuild/android-arm64@0.21.5': 113 | resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} 114 | engines: {node: '>=12'} 115 | cpu: [arm64] 116 | os: [android] 117 | 118 | '@esbuild/android-arm@0.21.5': 119 | resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} 120 | engines: {node: '>=12'} 121 | cpu: [arm] 122 | os: [android] 123 | 124 | '@esbuild/android-x64@0.21.5': 125 | resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} 126 | engines: {node: '>=12'} 127 | cpu: [x64] 128 | os: [android] 129 | 130 | '@esbuild/darwin-arm64@0.21.5': 131 | resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} 132 | engines: {node: '>=12'} 133 | cpu: [arm64] 134 | os: [darwin] 135 | 136 | '@esbuild/darwin-x64@0.21.5': 137 | resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} 138 | engines: {node: '>=12'} 139 | cpu: [x64] 140 | os: [darwin] 141 | 142 | '@esbuild/freebsd-arm64@0.21.5': 143 | resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} 144 | engines: {node: '>=12'} 145 | cpu: [arm64] 146 | os: [freebsd] 147 | 148 | '@esbuild/freebsd-x64@0.21.5': 149 | resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} 150 | engines: {node: '>=12'} 151 | cpu: [x64] 152 | os: [freebsd] 153 | 154 | '@esbuild/linux-arm64@0.21.5': 155 | resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} 156 | engines: {node: '>=12'} 157 | cpu: [arm64] 158 | os: [linux] 159 | 160 | '@esbuild/linux-arm@0.21.5': 161 | resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} 162 | engines: {node: '>=12'} 163 | cpu: [arm] 164 | os: [linux] 165 | 166 | '@esbuild/linux-ia32@0.21.5': 167 | resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} 168 | engines: {node: '>=12'} 169 | cpu: [ia32] 170 | os: [linux] 171 | 172 | '@esbuild/linux-loong64@0.21.5': 173 | resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} 174 | engines: {node: '>=12'} 175 | cpu: [loong64] 176 | os: [linux] 177 | 178 | '@esbuild/linux-mips64el@0.21.5': 179 | resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} 180 | engines: {node: '>=12'} 181 | cpu: [mips64el] 182 | os: [linux] 183 | 184 | '@esbuild/linux-ppc64@0.21.5': 185 | resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} 186 | engines: {node: '>=12'} 187 | cpu: [ppc64] 188 | os: [linux] 189 | 190 | '@esbuild/linux-riscv64@0.21.5': 191 | resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} 192 | engines: {node: '>=12'} 193 | cpu: [riscv64] 194 | os: [linux] 195 | 196 | '@esbuild/linux-s390x@0.21.5': 197 | resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} 198 | engines: {node: '>=12'} 199 | cpu: [s390x] 200 | os: [linux] 201 | 202 | '@esbuild/linux-x64@0.21.5': 203 | resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} 204 | engines: {node: '>=12'} 205 | cpu: [x64] 206 | os: [linux] 207 | 208 | '@esbuild/netbsd-x64@0.21.5': 209 | resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} 210 | engines: {node: '>=12'} 211 | cpu: [x64] 212 | os: [netbsd] 213 | 214 | '@esbuild/openbsd-x64@0.21.5': 215 | resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} 216 | engines: {node: '>=12'} 217 | cpu: [x64] 218 | os: [openbsd] 219 | 220 | '@esbuild/sunos-x64@0.21.5': 221 | resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} 222 | engines: {node: '>=12'} 223 | cpu: [x64] 224 | os: [sunos] 225 | 226 | '@esbuild/win32-arm64@0.21.5': 227 | resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} 228 | engines: {node: '>=12'} 229 | cpu: [arm64] 230 | os: [win32] 231 | 232 | '@esbuild/win32-ia32@0.21.5': 233 | resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} 234 | engines: {node: '>=12'} 235 | cpu: [ia32] 236 | os: [win32] 237 | 238 | '@esbuild/win32-x64@0.21.5': 239 | resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} 240 | engines: {node: '>=12'} 241 | cpu: [x64] 242 | os: [win32] 243 | 244 | '@eslint-community/eslint-utils@4.4.0': 245 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 246 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 247 | peerDependencies: 248 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 249 | 250 | '@eslint-community/regexpp@4.10.0': 251 | resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} 252 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 253 | 254 | '@eslint/eslintrc@2.1.4': 255 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 256 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 257 | 258 | '@eslint/js@8.57.0': 259 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 260 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 261 | 262 | '@humanwhocodes/config-array@0.11.14': 263 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 264 | engines: {node: '>=10.10.0'} 265 | deprecated: Use @eslint/config-array instead 266 | 267 | '@humanwhocodes/module-importer@1.0.1': 268 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 269 | engines: {node: '>=12.22'} 270 | 271 | '@humanwhocodes/object-schema@2.0.3': 272 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 273 | deprecated: Use @eslint/object-schema instead 274 | 275 | '@jest/schemas@29.6.3': 276 | resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} 277 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 278 | 279 | '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': 280 | resolution: {integrity: sha512-etqLfpSJ5zaw76KUNF603be6d6QsiQPmaHr9FKEp4zhLZJzWCCMH6Icak7MtLUFLZLMpL761mZNImi/joBo1ZA==} 281 | 282 | '@jridgewell/sourcemap-codec@1.5.0': 283 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 284 | 285 | '@nodelib/fs.scandir@2.1.5': 286 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 287 | engines: {node: '>= 8'} 288 | 289 | '@nodelib/fs.stat@2.0.5': 290 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 291 | engines: {node: '>= 8'} 292 | 293 | '@nodelib/fs.walk@1.2.8': 294 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 295 | engines: {node: '>= 8'} 296 | 297 | '@pkgr/core@0.1.1': 298 | resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} 299 | engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} 300 | 301 | '@rollup/rollup-android-arm-eabi@4.39.0': 302 | resolution: {integrity: sha512-lGVys55Qb00Wvh8DMAocp5kIcaNzEFTmGhfFd88LfaogYTRKrdxgtlO5H6S49v2Nd8R2C6wLOal0qv6/kCkOwA==} 303 | cpu: [arm] 304 | os: [android] 305 | 306 | '@rollup/rollup-android-arm64@4.39.0': 307 | resolution: {integrity: sha512-It9+M1zE31KWfqh/0cJLrrsCPiF72PoJjIChLX+rEcujVRCb4NLQ5QzFkzIZW8Kn8FTbvGQBY5TkKBau3S8cCQ==} 308 | cpu: [arm64] 309 | os: [android] 310 | 311 | '@rollup/rollup-darwin-arm64@4.39.0': 312 | resolution: {integrity: sha512-lXQnhpFDOKDXiGxsU9/l8UEGGM65comrQuZ+lDcGUx+9YQ9dKpF3rSEGepyeR5AHZ0b5RgiligsBhWZfSSQh8Q==} 313 | cpu: [arm64] 314 | os: [darwin] 315 | 316 | '@rollup/rollup-darwin-x64@4.39.0': 317 | resolution: {integrity: sha512-mKXpNZLvtEbgu6WCkNij7CGycdw9cJi2k9v0noMb++Vab12GZjFgUXD69ilAbBh034Zwn95c2PNSz9xM7KYEAQ==} 318 | cpu: [x64] 319 | os: [darwin] 320 | 321 | '@rollup/rollup-freebsd-arm64@4.39.0': 322 | resolution: {integrity: sha512-jivRRlh2Lod/KvDZx2zUR+I4iBfHcu2V/BA2vasUtdtTN2Uk3jfcZczLa81ESHZHPHy4ih3T/W5rPFZ/hX7RtQ==} 323 | cpu: [arm64] 324 | os: [freebsd] 325 | 326 | '@rollup/rollup-freebsd-x64@4.39.0': 327 | resolution: {integrity: sha512-8RXIWvYIRK9nO+bhVz8DwLBepcptw633gv/QT4015CpJ0Ht8punmoHU/DuEd3iw9Hr8UwUV+t+VNNuZIWYeY7Q==} 328 | cpu: [x64] 329 | os: [freebsd] 330 | 331 | '@rollup/rollup-linux-arm-gnueabihf@4.39.0': 332 | resolution: {integrity: sha512-mz5POx5Zu58f2xAG5RaRRhp3IZDK7zXGk5sdEDj4o96HeaXhlUwmLFzNlc4hCQi5sGdR12VDgEUqVSHer0lI9g==} 333 | cpu: [arm] 334 | os: [linux] 335 | libc: [glibc] 336 | 337 | '@rollup/rollup-linux-arm-musleabihf@4.39.0': 338 | resolution: {integrity: sha512-+YDwhM6gUAyakl0CD+bMFpdmwIoRDzZYaTWV3SDRBGkMU/VpIBYXXEvkEcTagw/7VVkL2vA29zU4UVy1mP0/Yw==} 339 | cpu: [arm] 340 | os: [linux] 341 | libc: [musl] 342 | 343 | '@rollup/rollup-linux-arm64-gnu@4.39.0': 344 | resolution: {integrity: sha512-EKf7iF7aK36eEChvlgxGnk7pdJfzfQbNvGV/+l98iiMwU23MwvmV0Ty3pJ0p5WQfm3JRHOytSIqD9LB7Bq7xdQ==} 345 | cpu: [arm64] 346 | os: [linux] 347 | libc: [glibc] 348 | 349 | '@rollup/rollup-linux-arm64-musl@4.39.0': 350 | resolution: {integrity: sha512-vYanR6MtqC7Z2SNr8gzVnzUul09Wi1kZqJaek3KcIlI/wq5Xtq4ZPIZ0Mr/st/sv/NnaPwy/D4yXg5x0B3aUUA==} 351 | cpu: [arm64] 352 | os: [linux] 353 | libc: [musl] 354 | 355 | '@rollup/rollup-linux-loongarch64-gnu@4.39.0': 356 | resolution: {integrity: sha512-NMRUT40+h0FBa5fb+cpxtZoGAggRem16ocVKIv5gDB5uLDgBIwrIsXlGqYbLwW8YyO3WVTk1FkFDjMETYlDqiw==} 357 | cpu: [loong64] 358 | os: [linux] 359 | libc: [glibc] 360 | 361 | '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': 362 | resolution: {integrity: sha512-0pCNnmxgduJ3YRt+D+kJ6Ai/r+TaePu9ZLENl+ZDV/CdVczXl95CbIiwwswu4L+K7uOIGf6tMo2vm8uadRaICQ==} 363 | cpu: [ppc64] 364 | os: [linux] 365 | libc: [glibc] 366 | 367 | '@rollup/rollup-linux-riscv64-gnu@4.39.0': 368 | resolution: {integrity: sha512-t7j5Zhr7S4bBtksT73bO6c3Qa2AV/HqiGlj9+KB3gNF5upcVkx+HLgxTm8DK4OkzsOYqbdqbLKwvGMhylJCPhQ==} 369 | cpu: [riscv64] 370 | os: [linux] 371 | libc: [glibc] 372 | 373 | '@rollup/rollup-linux-riscv64-musl@4.39.0': 374 | resolution: {integrity: sha512-m6cwI86IvQ7M93MQ2RF5SP8tUjD39Y7rjb1qjHgYh28uAPVU8+k/xYWvxRO3/tBN2pZkSMa5RjnPuUIbrwVxeA==} 375 | cpu: [riscv64] 376 | os: [linux] 377 | libc: [musl] 378 | 379 | '@rollup/rollup-linux-s390x-gnu@4.39.0': 380 | resolution: {integrity: sha512-iRDJd2ebMunnk2rsSBYlsptCyuINvxUfGwOUldjv5M4tpa93K8tFMeYGpNk2+Nxl+OBJnBzy2/JCscGeO507kA==} 381 | cpu: [s390x] 382 | os: [linux] 383 | libc: [glibc] 384 | 385 | '@rollup/rollup-linux-x64-gnu@4.39.0': 386 | resolution: {integrity: sha512-t9jqYw27R6Lx0XKfEFe5vUeEJ5pF3SGIM6gTfONSMb7DuG6z6wfj2yjcoZxHg129veTqU7+wOhY6GX8wmf90dA==} 387 | cpu: [x64] 388 | os: [linux] 389 | libc: [glibc] 390 | 391 | '@rollup/rollup-linux-x64-musl@4.39.0': 392 | resolution: {integrity: sha512-ThFdkrFDP55AIsIZDKSBWEt/JcWlCzydbZHinZ0F/r1h83qbGeenCt/G/wG2O0reuENDD2tawfAj2s8VK7Bugg==} 393 | cpu: [x64] 394 | os: [linux] 395 | libc: [musl] 396 | 397 | '@rollup/rollup-win32-arm64-msvc@4.39.0': 398 | resolution: {integrity: sha512-jDrLm6yUtbOg2TYB3sBF3acUnAwsIksEYjLeHL+TJv9jg+TmTwdyjnDex27jqEMakNKf3RwwPahDIt7QXCSqRQ==} 399 | cpu: [arm64] 400 | os: [win32] 401 | 402 | '@rollup/rollup-win32-ia32-msvc@4.39.0': 403 | resolution: {integrity: sha512-6w9uMuza+LbLCVoNKL5FSLE7yvYkq9laSd09bwS0tMjkwXrmib/4KmoJcrKhLWHvw19mwU+33ndC69T7weNNjQ==} 404 | cpu: [ia32] 405 | os: [win32] 406 | 407 | '@rollup/rollup-win32-x64-msvc@4.39.0': 408 | resolution: {integrity: sha512-yAkUOkIKZlK5dl7u6dg897doBgLXmUHhIINM2c+sND3DZwnrdQkkSiDh7N75Ll4mM4dxSkYfXqU9fW3lLkMFug==} 409 | cpu: [x64] 410 | os: [win32] 411 | 412 | '@sinclair/typebox@0.27.8': 413 | resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} 414 | 415 | '@types/estree@1.0.7': 416 | resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} 417 | 418 | '@typescript-eslint/scope-manager@7.9.0': 419 | resolution: {integrity: sha512-ZwPK4DeCDxr3GJltRz5iZejPFAAr4Wk3+2WIBaj1L5PYK5RgxExu/Y68FFVclN0y6GGwH8q+KgKRCvaTmFBbgQ==} 420 | engines: {node: ^18.18.0 || >=20.0.0} 421 | 422 | '@typescript-eslint/types@7.9.0': 423 | resolution: {integrity: sha512-oZQD9HEWQanl9UfsbGVcZ2cGaR0YT5476xfWE0oE5kQa2sNK2frxOlkeacLOTh9po4AlUT5rtkGyYM5kew0z5w==} 424 | engines: {node: ^18.18.0 || >=20.0.0} 425 | 426 | '@typescript-eslint/typescript-estree@7.9.0': 427 | resolution: {integrity: sha512-zBCMCkrb2YjpKV3LA0ZJubtKCDxLttxfdGmwZvTqqWevUPN0FZvSI26FalGFFUZU/9YQK/A4xcQF9o/VVaCKAg==} 428 | engines: {node: ^18.18.0 || >=20.0.0} 429 | peerDependencies: 430 | typescript: '*' 431 | peerDependenciesMeta: 432 | typescript: 433 | optional: true 434 | 435 | '@typescript-eslint/utils@7.9.0': 436 | resolution: {integrity: sha512-5KVRQCzZajmT4Ep+NEgjXCvjuypVvYHUW7RHlXzNPuak2oWpVoD1jf5xCP0dPAuNIchjC7uQyvbdaSTFaLqSdA==} 437 | engines: {node: ^18.18.0 || >=20.0.0} 438 | peerDependencies: 439 | eslint: ^8.56.0 440 | 441 | '@typescript-eslint/visitor-keys@7.9.0': 442 | resolution: {integrity: sha512-iESPx2TNLDNGQLyjKhUvIKprlP49XNEK+MvIf9nIO7ZZaZdbnfWKHnXAgufpxqfA0YryH8XToi4+CjBgVnFTSQ==} 443 | engines: {node: ^18.18.0 || >=20.0.0} 444 | 445 | '@ungap/structured-clone@1.2.0': 446 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 447 | 448 | '@vitejs/plugin-vue2@2.3.1': 449 | resolution: {integrity: sha512-/ksaaz2SRLN11JQhLdEUhDzOn909WEk99q9t9w+N12GjQCljzv7GyvAbD/p20aBUjHkvpGOoQ+FCOkG+mjDF4A==} 450 | engines: {node: ^14.18.0 || >= 16.0.0} 451 | peerDependencies: 452 | vite: ^3.0.0 || ^4.0.0 || ^5.0.0 453 | vue: ^2.7.0-0 454 | 455 | '@vitest/expect@1.6.1': 456 | resolution: {integrity: sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==} 457 | 458 | '@vitest/runner@1.6.1': 459 | resolution: {integrity: sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==} 460 | 461 | '@vitest/snapshot@1.6.1': 462 | resolution: {integrity: sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==} 463 | 464 | '@vitest/spy@1.6.1': 465 | resolution: {integrity: sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==} 466 | 467 | '@vitest/utils@1.6.1': 468 | resolution: {integrity: sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==} 469 | 470 | '@volar/language-core@2.2.4': 471 | resolution: {integrity: sha512-7As47GndxGxsqqYnbreLrfB5NDUeQioPM2LJKUuB4/34c0NpEJ2byVl3c9KYdjIdiEstWZ9JLtLKNTaPWb5jtA==} 472 | 473 | '@volar/language-service@2.2.4': 474 | resolution: {integrity: sha512-3OxJFADEsAZp1RoTS3SX2GY9SeVnB9mbd3N/Faz45IvnT2EFAyVJGPOyrz5bJDvKuCtjdoTNNWS1GX1bHGytrA==} 475 | 476 | '@volar/source-map@2.2.4': 477 | resolution: {integrity: sha512-m92FLpR9vB1YEZfiZ+bfgpLrToL/DNkOrorWVep3pffHrwwI4Tx2oIQN+sqHJfKkiT5N3J1owC+8crhAEinfjg==} 478 | 479 | '@vscode/l10n@0.0.18': 480 | resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} 481 | 482 | '@vue/compiler-sfc@2.7.16': 483 | resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==} 484 | 485 | '@vue/eslint-config-prettier@9.0.0': 486 | resolution: {integrity: sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==} 487 | peerDependencies: 488 | eslint: '>= 8.0.0' 489 | prettier: '>= 3.0.0' 490 | 491 | '@vue/language-plugin-pug@2.0.19': 492 | resolution: {integrity: sha512-Ee++xWL6/w9ImcYms5++lK5NXv4jxsTC6dtJgsNRYJh4jC3judGK4yEa7vryXaP/DaBxsCD1ihwi/CMUkTHuzg==} 493 | 494 | acorn-jsx@5.3.2: 495 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 496 | peerDependencies: 497 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 498 | 499 | acorn-walk@8.3.4: 500 | resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} 501 | engines: {node: '>=0.4.0'} 502 | 503 | acorn@7.4.1: 504 | resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} 505 | engines: {node: '>=0.4.0'} 506 | hasBin: true 507 | 508 | acorn@8.14.1: 509 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 510 | engines: {node: '>=0.4.0'} 511 | hasBin: true 512 | 513 | acorn@8.14.1: 514 | resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} 515 | engines: {node: '>=0.4.0'} 516 | hasBin: true 517 | 518 | ajv@6.12.6: 519 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 520 | 521 | ansi-regex@5.0.1: 522 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 523 | engines: {node: '>=8'} 524 | 525 | ansi-styles@4.3.0: 526 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 527 | engines: {node: '>=8'} 528 | 529 | ansi-styles@5.2.0: 530 | resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 531 | engines: {node: '>=10'} 532 | 533 | argparse@2.0.1: 534 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 535 | 536 | array-union@2.1.0: 537 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 538 | engines: {node: '>=8'} 539 | 540 | asap@2.0.6: 541 | resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} 542 | 543 | assert-never@1.4.0: 544 | resolution: {integrity: sha512-5oJg84os6NMQNl27T9LnZkvvqzvAnHu03ShCnoj6bsJwS7L8AO4lf+C/XjK/nvzEqQB744moC6V128RucQd1jA==} 545 | 546 | assertion-error@1.1.0: 547 | resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} 548 | 549 | babel-walk@3.0.0-canary-5: 550 | resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==} 551 | engines: {node: '>= 10.0.0'} 552 | 553 | balanced-match@1.0.2: 554 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 555 | 556 | boolbase@1.0.0: 557 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 558 | 559 | brace-expansion@1.1.11: 560 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 561 | 562 | brace-expansion@2.0.1: 563 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 564 | 565 | braces@3.0.2: 566 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 567 | engines: {node: '>=8'} 568 | 569 | cac@6.7.14: 570 | resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 571 | engines: {node: '>=8'} 572 | 573 | call-bind-apply-helpers@1.0.2: 574 | resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 575 | engines: {node: '>= 0.4'} 576 | 577 | call-bound@1.0.4: 578 | resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} 579 | engines: {node: '>= 0.4'} 580 | 581 | callsites@3.1.0: 582 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 583 | engines: {node: '>=6'} 584 | 585 | chai@4.5.0: 586 | resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} 587 | engines: {node: '>=4'} 588 | 589 | chalk@4.1.2: 590 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 591 | engines: {node: '>=10'} 592 | 593 | chalk@5.3.0: 594 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} 595 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} 596 | 597 | character-parser@2.2.0: 598 | resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} 599 | 600 | check-error@1.0.3: 601 | resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} 602 | 603 | color-convert@2.0.1: 604 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 605 | engines: {node: '>=7.0.0'} 606 | 607 | color-name@1.1.4: 608 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 609 | 610 | concat-map@0.0.1: 611 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 612 | 613 | confbox@0.1.8: 614 | resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} 615 | 616 | constantinople@4.0.1: 617 | resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==} 618 | 619 | cross-spawn@7.0.3: 620 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 621 | engines: {node: '>= 8'} 622 | 623 | cross-spawn@7.0.6: 624 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 625 | engines: {node: '>= 8'} 626 | 627 | cssesc@3.0.0: 628 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 629 | engines: {node: '>=4'} 630 | hasBin: true 631 | 632 | csstype@3.1.3: 633 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 634 | 635 | debug@4.3.4: 636 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 637 | engines: {node: '>=6.0'} 638 | peerDependencies: 639 | supports-color: '*' 640 | peerDependenciesMeta: 641 | supports-color: 642 | optional: true 643 | 644 | debug@4.4.0: 645 | resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} 646 | engines: {node: '>=6.0'} 647 | peerDependencies: 648 | supports-color: '*' 649 | peerDependenciesMeta: 650 | supports-color: 651 | optional: true 652 | 653 | deep-eql@4.1.4: 654 | resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} 655 | engines: {node: '>=6'} 656 | 657 | deep-is@0.1.4: 658 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 659 | 660 | diff-sequences@29.6.3: 661 | resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} 662 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 663 | 664 | dir-glob@3.0.1: 665 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 666 | engines: {node: '>=8'} 667 | 668 | doctrine@3.0.0: 669 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 670 | engines: {node: '>=6.0.0'} 671 | 672 | doctypes@1.1.0: 673 | resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==} 674 | 675 | dunder-proto@1.0.1: 676 | resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 677 | engines: {node: '>= 0.4'} 678 | 679 | es-define-property@1.0.1: 680 | resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 681 | engines: {node: '>= 0.4'} 682 | 683 | es-errors@1.3.0: 684 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 685 | engines: {node: '>= 0.4'} 686 | 687 | es-object-atoms@1.1.1: 688 | resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 689 | engines: {node: '>= 0.4'} 690 | 691 | esbuild@0.21.5: 692 | resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} 693 | engines: {node: '>=12'} 694 | hasBin: true 695 | 696 | escape-string-regexp@4.0.0: 697 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 698 | engines: {node: '>=10'} 699 | 700 | eslint-config-prettier@9.1.0: 701 | resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} 702 | hasBin: true 703 | peerDependencies: 704 | eslint: '>=7.0.0' 705 | 706 | eslint-plugin-prettier@5.1.3: 707 | resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} 708 | engines: {node: ^14.18.0 || >=16.0.0} 709 | peerDependencies: 710 | '@types/eslint': '>=8.0.0' 711 | eslint: '>=8.0.0' 712 | eslint-config-prettier: '*' 713 | prettier: '>=3.0.0' 714 | peerDependenciesMeta: 715 | '@types/eslint': 716 | optional: true 717 | eslint-config-prettier: 718 | optional: true 719 | 720 | eslint-plugin-simple-import-sort@12.1.0: 721 | resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} 722 | peerDependencies: 723 | eslint: '>=5.0.0' 724 | 725 | eslint-plugin-vitest@0.3.26: 726 | resolution: {integrity: sha512-oxe5JSPgRjco8caVLTh7Ti8PxpwJdhSV0hTQAmkFcNcmy/9DnqLB/oNVRA11RmVRP//2+jIIT6JuBEcpW3obYg==} 727 | engines: {node: ^18.0.0 || >= 20.0.0} 728 | peerDependencies: 729 | '@typescript-eslint/eslint-plugin': '*' 730 | eslint: '>=8.0.0' 731 | vitest: '*' 732 | peerDependenciesMeta: 733 | '@typescript-eslint/eslint-plugin': 734 | optional: true 735 | vitest: 736 | optional: true 737 | 738 | eslint-plugin-vue@9.26.0: 739 | resolution: {integrity: sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==} 740 | engines: {node: ^14.17.0 || >=16.0.0} 741 | peerDependencies: 742 | eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 743 | 744 | eslint-scope@7.2.2: 745 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 746 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 747 | 748 | eslint-visitor-keys@3.4.3: 749 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 750 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 751 | 752 | eslint@8.57.0: 753 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 754 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 755 | deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. 756 | hasBin: true 757 | 758 | espree@9.6.1: 759 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 760 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 761 | 762 | esquery@1.5.0: 763 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 764 | engines: {node: '>=0.10'} 765 | 766 | esrecurse@4.3.0: 767 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 768 | engines: {node: '>=4.0'} 769 | 770 | estraverse@5.3.0: 771 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 772 | engines: {node: '>=4.0'} 773 | 774 | estree-walker@3.0.3: 775 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} 776 | 777 | esutils@2.0.3: 778 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 779 | engines: {node: '>=0.10.0'} 780 | 781 | execa@8.0.1: 782 | resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} 783 | engines: {node: '>=16.17'} 784 | 785 | fast-deep-equal@3.1.3: 786 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 787 | 788 | fast-diff@1.3.0: 789 | resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} 790 | 791 | fast-glob@3.3.2: 792 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 793 | engines: {node: '>=8.6.0'} 794 | 795 | fast-json-stable-stringify@2.1.0: 796 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 797 | 798 | fast-levenshtein@2.0.6: 799 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 800 | 801 | fastq@1.17.1: 802 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 803 | 804 | file-entry-cache@6.0.1: 805 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 806 | engines: {node: ^10.12.0 || >=12.0.0} 807 | 808 | fill-range@7.0.1: 809 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 810 | engines: {node: '>=8'} 811 | 812 | find-up@5.0.0: 813 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 814 | engines: {node: '>=10'} 815 | 816 | flat-cache@3.2.0: 817 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 818 | engines: {node: ^10.12.0 || >=12.0.0} 819 | 820 | flatted@3.3.1: 821 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 822 | 823 | fs.realpath@1.0.0: 824 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 825 | 826 | fsevents@2.3.3: 827 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 828 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 829 | os: [darwin] 830 | 831 | function-bind@1.1.2: 832 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 833 | 834 | get-func-name@2.0.2: 835 | resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} 836 | 837 | get-intrinsic@1.3.0: 838 | resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 839 | engines: {node: '>= 0.4'} 840 | 841 | get-proto@1.0.1: 842 | resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 843 | engines: {node: '>= 0.4'} 844 | 845 | get-stream@8.0.1: 846 | resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} 847 | engines: {node: '>=16'} 848 | 849 | glob-parent@5.1.2: 850 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 851 | engines: {node: '>= 6'} 852 | 853 | glob-parent@6.0.2: 854 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 855 | engines: {node: '>=10.13.0'} 856 | 857 | glob@7.2.3: 858 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 859 | deprecated: Glob versions prior to v9 are no longer supported 860 | 861 | globals@13.24.0: 862 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 863 | engines: {node: '>=8'} 864 | 865 | globby@11.1.0: 866 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 867 | engines: {node: '>=10'} 868 | 869 | gopd@1.2.0: 870 | resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 871 | engines: {node: '>= 0.4'} 872 | 873 | graphemer@1.4.0: 874 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 875 | 876 | has-flag@4.0.0: 877 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 878 | engines: {node: '>=8'} 879 | 880 | has-symbols@1.1.0: 881 | resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 882 | engines: {node: '>= 0.4'} 883 | 884 | has-tostringtag@1.0.2: 885 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 886 | engines: {node: '>= 0.4'} 887 | 888 | hasown@2.0.2: 889 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 890 | engines: {node: '>= 0.4'} 891 | 892 | human-signals@5.0.0: 893 | resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} 894 | engines: {node: '>=16.17.0'} 895 | 896 | ignore@5.3.1: 897 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 898 | engines: {node: '>= 4'} 899 | 900 | import-fresh@3.3.0: 901 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 902 | engines: {node: '>=6'} 903 | 904 | imurmurhash@0.1.4: 905 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 906 | engines: {node: '>=0.8.19'} 907 | 908 | inflight@1.0.6: 909 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 910 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 911 | 912 | inherits@2.0.4: 913 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 914 | 915 | is-core-module@2.16.1: 916 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 917 | engines: {node: '>= 0.4'} 918 | 919 | is-expression@4.0.0: 920 | resolution: {integrity: sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==} 921 | 922 | is-extglob@2.1.1: 923 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 924 | engines: {node: '>=0.10.0'} 925 | 926 | is-glob@4.0.3: 927 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 928 | engines: {node: '>=0.10.0'} 929 | 930 | is-number@7.0.0: 931 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 932 | engines: {node: '>=0.12.0'} 933 | 934 | is-path-inside@3.0.3: 935 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 936 | engines: {node: '>=8'} 937 | 938 | is-promise@2.2.2: 939 | resolution: {integrity: sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==} 940 | 941 | is-regex@1.2.1: 942 | resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} 943 | engines: {node: '>= 0.4'} 944 | 945 | is-stream@3.0.0: 946 | resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} 947 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 948 | 949 | isexe@2.0.0: 950 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 951 | 952 | js-stringify@1.0.2: 953 | resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==} 954 | 955 | js-tokens@9.0.1: 956 | resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 957 | 958 | js-yaml@4.1.0: 959 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 960 | hasBin: true 961 | 962 | json-buffer@3.0.1: 963 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 964 | 965 | json-schema-traverse@0.4.1: 966 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 967 | 968 | json-stable-stringify-without-jsonify@1.0.1: 969 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 970 | 971 | jstransformer@1.0.0: 972 | resolution: {integrity: sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==} 973 | 974 | keyv@4.5.4: 975 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 976 | 977 | levn@0.4.1: 978 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 979 | engines: {node: '>= 0.8.0'} 980 | 981 | local-pkg@0.5.1: 982 | resolution: {integrity: sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==} 983 | engines: {node: '>=14'} 984 | 985 | locate-path@6.0.0: 986 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 987 | engines: {node: '>=10'} 988 | 989 | lodash.merge@4.6.2: 990 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 991 | 992 | lodash@4.17.21: 993 | resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 994 | 995 | loupe@2.3.7: 996 | resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} 997 | 998 | magic-string@0.30.17: 999 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 1000 | 1001 | math-intrinsics@1.1.0: 1002 | resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1003 | engines: {node: '>= 0.4'} 1004 | 1005 | merge-stream@2.0.0: 1006 | resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} 1007 | 1008 | merge2@1.4.1: 1009 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1010 | engines: {node: '>= 8'} 1011 | 1012 | micromatch@4.0.5: 1013 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 1014 | engines: {node: '>=8.6'} 1015 | 1016 | mimic-fn@4.0.0: 1017 | resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} 1018 | engines: {node: '>=12'} 1019 | 1020 | minimatch@3.1.2: 1021 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1022 | 1023 | minimatch@9.0.4: 1024 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1025 | engines: {node: '>=16 || 14 >=14.17'} 1026 | 1027 | mlly@1.7.4: 1028 | resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} 1029 | 1030 | ms@2.1.2: 1031 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1032 | 1033 | ms@2.1.3: 1034 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1035 | 1036 | muggle-string@0.4.1: 1037 | resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} 1038 | 1039 | nanoid@3.3.11: 1040 | resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} 1041 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1042 | hasBin: true 1043 | 1044 | natural-compare@1.4.0: 1045 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1046 | 1047 | npm-run-path@5.3.0: 1048 | resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} 1049 | engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} 1050 | 1051 | nth-check@2.1.1: 1052 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1053 | 1054 | object-assign@4.1.1: 1055 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1056 | engines: {node: '>=0.10.0'} 1057 | 1058 | once@1.4.0: 1059 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1060 | 1061 | onetime@6.0.0: 1062 | resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} 1063 | engines: {node: '>=12'} 1064 | 1065 | optionator@0.9.4: 1066 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1067 | engines: {node: '>= 0.8.0'} 1068 | 1069 | p-limit@3.1.0: 1070 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1071 | engines: {node: '>=10'} 1072 | 1073 | p-limit@5.0.0: 1074 | resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} 1075 | engines: {node: '>=18'} 1076 | 1077 | p-locate@5.0.0: 1078 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1079 | engines: {node: '>=10'} 1080 | 1081 | parent-module@1.0.1: 1082 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1083 | engines: {node: '>=6'} 1084 | 1085 | path-exists@4.0.0: 1086 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1087 | engines: {node: '>=8'} 1088 | 1089 | path-is-absolute@1.0.1: 1090 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1091 | engines: {node: '>=0.10.0'} 1092 | 1093 | path-key@3.1.1: 1094 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1095 | engines: {node: '>=8'} 1096 | 1097 | path-key@4.0.0: 1098 | resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} 1099 | engines: {node: '>=12'} 1100 | 1101 | path-parse@1.0.7: 1102 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1103 | 1104 | path-type@4.0.0: 1105 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1106 | engines: {node: '>=8'} 1107 | 1108 | pathe@1.1.2: 1109 | resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} 1110 | 1111 | pathe@2.0.3: 1112 | resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} 1113 | 1114 | pathval@1.1.1: 1115 | resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} 1116 | 1117 | picocolors@1.1.1: 1118 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 1119 | 1120 | picomatch@2.3.1: 1121 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1122 | engines: {node: '>=8.6'} 1123 | 1124 | pkg-types@1.3.1: 1125 | resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} 1126 | 1127 | postcss-selector-parser@6.0.16: 1128 | resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} 1129 | engines: {node: '>=4'} 1130 | 1131 | postcss@8.5.3: 1132 | resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} 1133 | engines: {node: ^10 || ^12 || >=14} 1134 | 1135 | prelude-ls@1.2.1: 1136 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1137 | engines: {node: '>= 0.8.0'} 1138 | 1139 | prettier-linter-helpers@1.0.0: 1140 | resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} 1141 | engines: {node: '>=6.0.0'} 1142 | 1143 | prettier@2.8.8: 1144 | resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} 1145 | engines: {node: '>=10.13.0'} 1146 | hasBin: true 1147 | 1148 | prettier@3.2.5: 1149 | resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} 1150 | engines: {node: '>=14'} 1151 | hasBin: true 1152 | 1153 | pretty-format@29.7.0: 1154 | resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} 1155 | engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} 1156 | 1157 | promise@7.3.1: 1158 | resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} 1159 | 1160 | pug-attrs@3.0.0: 1161 | resolution: {integrity: sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==} 1162 | 1163 | pug-code-gen@3.0.3: 1164 | resolution: {integrity: sha512-cYQg0JW0w32Ux+XTeZnBEeuWrAY7/HNE6TWnhiHGnnRYlCgyAUPoyh9KzCMa9WhcJlJ1AtQqpEYHc+vbCzA+Aw==} 1165 | 1166 | pug-error@2.1.0: 1167 | resolution: {integrity: sha512-lv7sU9e5Jk8IeUheHata6/UThZ7RK2jnaaNztxfPYUY+VxZyk/ePVaNZ/vwmH8WqGvDz3LrNYt/+gA55NDg6Pg==} 1168 | 1169 | pug-filters@4.0.0: 1170 | resolution: {integrity: sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==} 1171 | 1172 | pug-lexer@5.0.1: 1173 | resolution: {integrity: sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==} 1174 | 1175 | pug-linker@4.0.0: 1176 | resolution: {integrity: sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==} 1177 | 1178 | pug-load@3.0.0: 1179 | resolution: {integrity: sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==} 1180 | 1181 | pug-parser@6.0.0: 1182 | resolution: {integrity: sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==} 1183 | 1184 | pug-runtime@3.0.1: 1185 | resolution: {integrity: sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==} 1186 | 1187 | pug-strip-comments@2.0.0: 1188 | resolution: {integrity: sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==} 1189 | 1190 | pug-walk@2.0.0: 1191 | resolution: {integrity: sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==} 1192 | 1193 | pug@3.0.3: 1194 | resolution: {integrity: sha512-uBi6kmc9f3SZ3PXxqcHiUZLmIXgfgWooKWXcwSGwQd2Zi5Rb0bT14+8CJjJgI8AB+nndLaNgHGrcc6bPIB665g==} 1195 | 1196 | punycode@2.3.1: 1197 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1198 | engines: {node: '>=6'} 1199 | 1200 | queue-microtask@1.2.3: 1201 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1202 | 1203 | react-is@18.3.1: 1204 | resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} 1205 | 1206 | resolve-from@4.0.0: 1207 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1208 | engines: {node: '>=4'} 1209 | 1210 | resolve@1.22.10: 1211 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 1212 | engines: {node: '>= 0.4'} 1213 | hasBin: true 1214 | 1215 | reusify@1.0.4: 1216 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1217 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1218 | 1219 | rimraf@3.0.2: 1220 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1221 | deprecated: Rimraf versions prior to v4 are no longer supported 1222 | hasBin: true 1223 | 1224 | rollup@4.39.0: 1225 | resolution: {integrity: sha512-thI8kNc02yNvnmJp8dr3fNWJ9tCONDhp6TV35X6HkKGGs9E6q7YWCHbe5vKiTa7TAiNcFEmXKj3X/pG2b3ci0g==} 1226 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1227 | hasBin: true 1228 | 1229 | run-parallel@1.2.0: 1230 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1231 | 1232 | sax@1.3.0: 1233 | resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} 1234 | 1235 | semver@7.6.2: 1236 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1237 | engines: {node: '>=10'} 1238 | hasBin: true 1239 | 1240 | shebang-command@2.0.0: 1241 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1242 | engines: {node: '>=8'} 1243 | 1244 | shebang-regex@3.0.0: 1245 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1246 | engines: {node: '>=8'} 1247 | 1248 | siginfo@2.0.0: 1249 | resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} 1250 | 1251 | signal-exit@4.1.0: 1252 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1253 | engines: {node: '>=14'} 1254 | 1255 | slash@3.0.0: 1256 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1257 | engines: {node: '>=8'} 1258 | 1259 | source-map-js@1.2.1: 1260 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 1261 | engines: {node: '>=0.10.0'} 1262 | 1263 | source-map@0.6.1: 1264 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 1265 | engines: {node: '>=0.10.0'} 1266 | 1267 | source-map@0.7.4: 1268 | resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} 1269 | engines: {node: '>= 8'} 1270 | 1271 | stackback@0.0.2: 1272 | resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1273 | 1274 | std-env@3.9.0: 1275 | resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 1276 | 1277 | strip-ansi@6.0.1: 1278 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1279 | engines: {node: '>=8'} 1280 | 1281 | strip-final-newline@3.0.0: 1282 | resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} 1283 | engines: {node: '>=12'} 1284 | 1285 | strip-json-comments@3.1.1: 1286 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1287 | engines: {node: '>=8'} 1288 | 1289 | strip-literal@2.1.1: 1290 | resolution: {integrity: sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==} 1291 | 1292 | stylus@0.63.0: 1293 | resolution: {integrity: sha512-OMlgrTCPzE/ibtRMoeLVhOY0RcNuNWh0rhAVqeKnk/QwcuUKQbnqhZ1kg2vzD8VU/6h3FoPTq4RJPHgLBvX6Bw==} 1294 | hasBin: true 1295 | 1296 | supports-color@7.2.0: 1297 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1298 | engines: {node: '>=8'} 1299 | 1300 | supports-preserve-symlinks-flag@1.0.0: 1301 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1302 | engines: {node: '>= 0.4'} 1303 | 1304 | synckit@0.8.8: 1305 | resolution: {integrity: sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==} 1306 | engines: {node: ^14.18.0 || >=16.0.0} 1307 | 1308 | text-table@0.2.0: 1309 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1310 | 1311 | tinybench@2.9.0: 1312 | resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} 1313 | 1314 | tinypool@0.8.4: 1315 | resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} 1316 | engines: {node: '>=14.0.0'} 1317 | 1318 | tinyspy@2.2.1: 1319 | resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} 1320 | engines: {node: '>=14.0.0'} 1321 | 1322 | to-fast-properties@2.0.0: 1323 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} 1324 | engines: {node: '>=4'} 1325 | 1326 | to-regex-range@5.0.1: 1327 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1328 | engines: {node: '>=8.0'} 1329 | 1330 | token-stream@1.0.0: 1331 | resolution: {integrity: sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==} 1332 | 1333 | ts-api-utils@1.3.0: 1334 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1335 | engines: {node: '>=16'} 1336 | peerDependencies: 1337 | typescript: '>=4.2.0' 1338 | 1339 | tslib@2.6.2: 1340 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 1341 | 1342 | type-check@0.4.0: 1343 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1344 | engines: {node: '>= 0.8.0'} 1345 | 1346 | type-detect@4.1.0: 1347 | resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} 1348 | engines: {node: '>=4'} 1349 | 1350 | type-fest@0.20.2: 1351 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1352 | engines: {node: '>=10'} 1353 | 1354 | typescript@5.4.5: 1355 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 1356 | engines: {node: '>=14.17'} 1357 | hasBin: true 1358 | 1359 | ufo@1.6.1: 1360 | resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} 1361 | 1362 | uri-js@4.4.1: 1363 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1364 | 1365 | util-deprecate@1.0.2: 1366 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1367 | 1368 | vite-node@1.6.1: 1369 | resolution: {integrity: sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==} 1370 | engines: {node: ^18.0.0 || >=20.0.0} 1371 | hasBin: true 1372 | 1373 | vite-plugin-banner@0.7.1: 1374 | resolution: {integrity: sha512-Bww2Xd5tOGsZ1yZ9rQiGneryvsL1u86znPrqeQjCsXPsG72pnSdV5lcQA+cy8UNDguMqyTJiCevlNUbLnT85UA==} 1375 | 1376 | vite-plugin-css-injected-by-js@3.5.1: 1377 | resolution: {integrity: sha512-9ioqwDuEBxW55gNoWFEDhfLTrVKXEEZgl5adhWmmqa88EQGKfTmexy4v1Rh0pAS6RhKQs2bUYQArprB32JpUZQ==} 1378 | peerDependencies: 1379 | vite: '>2.0.0-0' 1380 | 1381 | vite@5.4.18: 1382 | resolution: {integrity: sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==} 1383 | engines: {node: ^18.0.0 || >=20.0.0} 1384 | hasBin: true 1385 | peerDependencies: 1386 | '@types/node': ^18.0.0 || >=20.0.0 1387 | less: '*' 1388 | lightningcss: ^1.21.0 1389 | sass: '*' 1390 | sass-embedded: '*' 1391 | stylus: '*' 1392 | sugarss: '*' 1393 | terser: ^5.4.0 1394 | peerDependenciesMeta: 1395 | '@types/node': 1396 | optional: true 1397 | less: 1398 | optional: true 1399 | lightningcss: 1400 | optional: true 1401 | sass: 1402 | optional: true 1403 | sass-embedded: 1404 | optional: true 1405 | stylus: 1406 | optional: true 1407 | sugarss: 1408 | optional: true 1409 | terser: 1410 | optional: true 1411 | 1412 | vitest@1.6.1: 1413 | resolution: {integrity: sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==} 1414 | engines: {node: ^18.0.0 || >=20.0.0} 1415 | hasBin: true 1416 | peerDependencies: 1417 | '@edge-runtime/vm': '*' 1418 | '@types/node': ^18.0.0 || >=20.0.0 1419 | '@vitest/browser': 1.6.1 1420 | '@vitest/ui': 1.6.1 1421 | happy-dom: '*' 1422 | jsdom: '*' 1423 | peerDependenciesMeta: 1424 | '@edge-runtime/vm': 1425 | optional: true 1426 | '@types/node': 1427 | optional: true 1428 | '@vitest/browser': 1429 | optional: true 1430 | '@vitest/ui': 1431 | optional: true 1432 | happy-dom: 1433 | optional: true 1434 | jsdom: 1435 | optional: true 1436 | 1437 | void-elements@3.1.0: 1438 | resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} 1439 | engines: {node: '>=0.10.0'} 1440 | 1441 | volar-service-html@0.0.45: 1442 | resolution: {integrity: sha512-tLTJqfy1v5C4nmeAsfekFIKPl4r4qDMyL0L9MWywr/EApZzPCsbeUGxCqdzxSMC2q7PMCfX2i167txDo+J0LVA==} 1443 | peerDependencies: 1444 | '@volar/language-service': ~2.2.3 1445 | peerDependenciesMeta: 1446 | '@volar/language-service': 1447 | optional: true 1448 | 1449 | volar-service-pug@0.0.45: 1450 | resolution: {integrity: sha512-Xr45hVTMzt6NI2xgA69+Evzmes6pePqR2X4wl6io76M70M3W+QDbvHH3u8+5QrvVvbQGY0HledQcT29bCWRADQ==} 1451 | 1452 | vscode-jsonrpc@8.2.0: 1453 | resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} 1454 | engines: {node: '>=14.0.0'} 1455 | 1456 | vscode-languageserver-protocol@3.17.5: 1457 | resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} 1458 | 1459 | vscode-languageserver-textdocument@1.0.11: 1460 | resolution: {integrity: sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==} 1461 | 1462 | vscode-languageserver-types@3.17.5: 1463 | resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} 1464 | 1465 | vscode-uri@3.0.8: 1466 | resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} 1467 | 1468 | vscode-uri@3.1.0: 1469 | resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} 1470 | 1471 | vue-eslint-parser@9.4.2: 1472 | resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==} 1473 | engines: {node: ^14.17.0 || >=16.0.0} 1474 | peerDependencies: 1475 | eslint: '>=6.0.0' 1476 | 1477 | vue@2.7.16: 1478 | resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==} 1479 | deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details. 1480 | 1481 | which@2.0.2: 1482 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1483 | engines: {node: '>= 8'} 1484 | hasBin: true 1485 | 1486 | why-is-node-running@2.3.0: 1487 | resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} 1488 | engines: {node: '>=8'} 1489 | hasBin: true 1490 | 1491 | with@7.0.2: 1492 | resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==} 1493 | engines: {node: '>= 10.0.0'} 1494 | 1495 | word-wrap@1.2.5: 1496 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1497 | engines: {node: '>=0.10.0'} 1498 | 1499 | wrappy@1.0.2: 1500 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1501 | 1502 | xbytes@1.9.1: 1503 | resolution: {integrity: sha512-29E0ygMFWrM5JW2W1ypmezjyR2FOS5aCszdLe620ymSJBoZzL0/RCLJKCoUFu3DfQGhZ/FWykEBp5dfEy6+hjA==} 1504 | engines: {node: '>=1'} 1505 | 1506 | xml-name-validator@4.0.0: 1507 | resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} 1508 | engines: {node: '>=12'} 1509 | 1510 | yocto-queue@0.1.0: 1511 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1512 | engines: {node: '>=10'} 1513 | 1514 | yocto-queue@1.2.1: 1515 | resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} 1516 | engines: {node: '>=12.20'} 1517 | 1518 | snapshots: 1519 | 1520 | '@adobe/css-tools@4.3.3': {} 1521 | 1522 | '@babel/helper-string-parser@7.24.1': {} 1523 | 1524 | '@babel/helper-string-parser@7.25.9': {} 1525 | 1526 | '@babel/helper-validator-identifier@7.24.5': {} 1527 | 1528 | '@babel/helper-validator-identifier@7.25.9': {} 1529 | 1530 | '@babel/parser@7.24.5': 1531 | dependencies: 1532 | '@babel/types': 7.24.5 1533 | 1534 | '@babel/parser@7.27.0': 1535 | dependencies: 1536 | '@babel/types': 7.27.0 1537 | 1538 | '@babel/types@7.24.5': 1539 | dependencies: 1540 | '@babel/helper-string-parser': 7.24.1 1541 | '@babel/helper-validator-identifier': 7.24.5 1542 | to-fast-properties: 2.0.0 1543 | 1544 | '@babel/types@7.27.0': 1545 | dependencies: 1546 | '@babel/helper-string-parser': 7.25.9 1547 | '@babel/helper-validator-identifier': 7.25.9 1548 | 1549 | '@esbuild/aix-ppc64@0.21.5': 1550 | optional: true 1551 | 1552 | '@esbuild/android-arm64@0.21.5': 1553 | optional: true 1554 | 1555 | '@esbuild/android-arm@0.21.5': 1556 | optional: true 1557 | 1558 | '@esbuild/android-x64@0.21.5': 1559 | optional: true 1560 | 1561 | '@esbuild/darwin-arm64@0.21.5': 1562 | optional: true 1563 | 1564 | '@esbuild/darwin-x64@0.21.5': 1565 | optional: true 1566 | 1567 | '@esbuild/freebsd-arm64@0.21.5': 1568 | optional: true 1569 | 1570 | '@esbuild/freebsd-x64@0.21.5': 1571 | optional: true 1572 | 1573 | '@esbuild/linux-arm64@0.21.5': 1574 | optional: true 1575 | 1576 | '@esbuild/linux-arm@0.21.5': 1577 | optional: true 1578 | 1579 | '@esbuild/linux-ia32@0.21.5': 1580 | optional: true 1581 | 1582 | '@esbuild/linux-loong64@0.21.5': 1583 | optional: true 1584 | 1585 | '@esbuild/linux-mips64el@0.21.5': 1586 | optional: true 1587 | 1588 | '@esbuild/linux-ppc64@0.21.5': 1589 | optional: true 1590 | 1591 | '@esbuild/linux-riscv64@0.21.5': 1592 | optional: true 1593 | 1594 | '@esbuild/linux-s390x@0.21.5': 1595 | optional: true 1596 | 1597 | '@esbuild/linux-x64@0.21.5': 1598 | optional: true 1599 | 1600 | '@esbuild/netbsd-x64@0.21.5': 1601 | optional: true 1602 | 1603 | '@esbuild/openbsd-x64@0.21.5': 1604 | optional: true 1605 | 1606 | '@esbuild/sunos-x64@0.21.5': 1607 | optional: true 1608 | 1609 | '@esbuild/win32-arm64@0.21.5': 1610 | optional: true 1611 | 1612 | '@esbuild/win32-ia32@0.21.5': 1613 | optional: true 1614 | 1615 | '@esbuild/win32-x64@0.21.5': 1616 | optional: true 1617 | 1618 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 1619 | dependencies: 1620 | eslint: 8.57.0 1621 | eslint-visitor-keys: 3.4.3 1622 | 1623 | '@eslint-community/regexpp@4.10.0': {} 1624 | 1625 | '@eslint/eslintrc@2.1.4': 1626 | dependencies: 1627 | ajv: 6.12.6 1628 | debug: 4.3.4 1629 | espree: 9.6.1 1630 | globals: 13.24.0 1631 | ignore: 5.3.1 1632 | import-fresh: 3.3.0 1633 | js-yaml: 4.1.0 1634 | minimatch: 3.1.2 1635 | strip-json-comments: 3.1.1 1636 | transitivePeerDependencies: 1637 | - supports-color 1638 | 1639 | '@eslint/js@8.57.0': {} 1640 | 1641 | '@humanwhocodes/config-array@0.11.14': 1642 | dependencies: 1643 | '@humanwhocodes/object-schema': 2.0.3 1644 | debug: 4.3.4 1645 | minimatch: 3.1.2 1646 | transitivePeerDependencies: 1647 | - supports-color 1648 | 1649 | '@humanwhocodes/module-importer@1.0.1': {} 1650 | 1651 | '@humanwhocodes/object-schema@2.0.3': {} 1652 | 1653 | '@jest/schemas@29.6.3': 1654 | dependencies: 1655 | '@sinclair/typebox': 0.27.8 1656 | 1657 | '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462': 1658 | dependencies: 1659 | '@vscode/l10n': 0.0.18 1660 | vscode-languageserver-textdocument: 1.0.11 1661 | vscode-languageserver-types: 3.17.5 1662 | vscode-uri: 3.1.0 1663 | 1664 | '@jridgewell/sourcemap-codec@1.5.0': {} 1665 | 1666 | '@nodelib/fs.scandir@2.1.5': 1667 | dependencies: 1668 | '@nodelib/fs.stat': 2.0.5 1669 | run-parallel: 1.2.0 1670 | 1671 | '@nodelib/fs.stat@2.0.5': {} 1672 | 1673 | '@nodelib/fs.walk@1.2.8': 1674 | dependencies: 1675 | '@nodelib/fs.scandir': 2.1.5 1676 | fastq: 1.17.1 1677 | 1678 | '@pkgr/core@0.1.1': {} 1679 | 1680 | '@rollup/rollup-android-arm-eabi@4.39.0': 1681 | optional: true 1682 | 1683 | '@rollup/rollup-android-arm64@4.39.0': 1684 | optional: true 1685 | 1686 | '@rollup/rollup-darwin-arm64@4.39.0': 1687 | optional: true 1688 | 1689 | '@rollup/rollup-darwin-x64@4.39.0': 1690 | optional: true 1691 | 1692 | '@rollup/rollup-freebsd-arm64@4.39.0': 1693 | optional: true 1694 | 1695 | '@rollup/rollup-freebsd-x64@4.39.0': 1696 | optional: true 1697 | 1698 | '@rollup/rollup-linux-arm-gnueabihf@4.39.0': 1699 | optional: true 1700 | 1701 | '@rollup/rollup-linux-arm-musleabihf@4.39.0': 1702 | optional: true 1703 | 1704 | '@rollup/rollup-linux-arm64-gnu@4.39.0': 1705 | optional: true 1706 | 1707 | '@rollup/rollup-linux-arm64-musl@4.39.0': 1708 | optional: true 1709 | 1710 | '@rollup/rollup-linux-loongarch64-gnu@4.39.0': 1711 | optional: true 1712 | 1713 | '@rollup/rollup-linux-powerpc64le-gnu@4.39.0': 1714 | optional: true 1715 | 1716 | '@rollup/rollup-linux-riscv64-gnu@4.39.0': 1717 | optional: true 1718 | 1719 | '@rollup/rollup-linux-riscv64-musl@4.39.0': 1720 | optional: true 1721 | 1722 | '@rollup/rollup-linux-s390x-gnu@4.39.0': 1723 | optional: true 1724 | 1725 | '@rollup/rollup-linux-x64-gnu@4.39.0': 1726 | optional: true 1727 | 1728 | '@rollup/rollup-linux-x64-musl@4.39.0': 1729 | optional: true 1730 | 1731 | '@rollup/rollup-win32-arm64-msvc@4.39.0': 1732 | optional: true 1733 | 1734 | '@rollup/rollup-win32-ia32-msvc@4.39.0': 1735 | optional: true 1736 | 1737 | '@rollup/rollup-win32-x64-msvc@4.39.0': 1738 | optional: true 1739 | 1740 | '@sinclair/typebox@0.27.8': {} 1741 | 1742 | '@types/estree@1.0.7': {} 1743 | 1744 | '@typescript-eslint/scope-manager@7.9.0': 1745 | dependencies: 1746 | '@typescript-eslint/types': 7.9.0 1747 | '@typescript-eslint/visitor-keys': 7.9.0 1748 | 1749 | '@typescript-eslint/types@7.9.0': {} 1750 | 1751 | '@typescript-eslint/typescript-estree@7.9.0(typescript@5.4.5)': 1752 | dependencies: 1753 | '@typescript-eslint/types': 7.9.0 1754 | '@typescript-eslint/visitor-keys': 7.9.0 1755 | debug: 4.4.0 1756 | globby: 11.1.0 1757 | is-glob: 4.0.3 1758 | minimatch: 9.0.4 1759 | semver: 7.6.2 1760 | ts-api-utils: 1.3.0(typescript@5.4.5) 1761 | optionalDependencies: 1762 | typescript: 5.4.5 1763 | transitivePeerDependencies: 1764 | - supports-color 1765 | 1766 | '@typescript-eslint/utils@7.9.0(eslint@8.57.0)(typescript@5.4.5)': 1767 | dependencies: 1768 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 1769 | '@typescript-eslint/scope-manager': 7.9.0 1770 | '@typescript-eslint/types': 7.9.0 1771 | '@typescript-eslint/typescript-estree': 7.9.0(typescript@5.4.5) 1772 | eslint: 8.57.0 1773 | transitivePeerDependencies: 1774 | - supports-color 1775 | - typescript 1776 | 1777 | '@typescript-eslint/visitor-keys@7.9.0': 1778 | dependencies: 1779 | '@typescript-eslint/types': 7.9.0 1780 | eslint-visitor-keys: 3.4.3 1781 | 1782 | '@ungap/structured-clone@1.2.0': {} 1783 | 1784 | '@vitejs/plugin-vue2@2.3.1(vite@5.4.18(stylus@0.63.0))(vue@2.7.16)': 1785 | dependencies: 1786 | vite: 5.4.18(stylus@0.63.0) 1787 | vue: 2.7.16 1788 | 1789 | '@vitest/expect@1.6.1': 1790 | dependencies: 1791 | '@vitest/spy': 1.6.1 1792 | '@vitest/utils': 1.6.1 1793 | chai: 4.5.0 1794 | 1795 | '@vitest/runner@1.6.1': 1796 | dependencies: 1797 | '@vitest/utils': 1.6.1 1798 | p-limit: 5.0.0 1799 | pathe: 1.1.2 1800 | 1801 | '@vitest/snapshot@1.6.1': 1802 | dependencies: 1803 | magic-string: 0.30.17 1804 | pathe: 1.1.2 1805 | pretty-format: 29.7.0 1806 | 1807 | '@vitest/spy@1.6.1': 1808 | dependencies: 1809 | tinyspy: 2.2.1 1810 | 1811 | '@vitest/utils@1.6.1': 1812 | dependencies: 1813 | diff-sequences: 29.6.3 1814 | estree-walker: 3.0.3 1815 | loupe: 2.3.7 1816 | pretty-format: 29.7.0 1817 | 1818 | '@volar/language-core@2.2.4': 1819 | dependencies: 1820 | '@volar/source-map': 2.2.4 1821 | 1822 | '@volar/language-service@2.2.4': 1823 | dependencies: 1824 | '@volar/language-core': 2.2.4 1825 | vscode-languageserver-protocol: 3.17.5 1826 | vscode-languageserver-textdocument: 1.0.11 1827 | vscode-uri: 3.0.8 1828 | 1829 | '@volar/source-map@2.2.4': 1830 | dependencies: 1831 | muggle-string: 0.4.1 1832 | 1833 | '@vscode/l10n@0.0.18': {} 1834 | 1835 | '@vue/compiler-sfc@2.7.16': 1836 | dependencies: 1837 | '@babel/parser': 7.24.5 1838 | postcss: 8.5.3 1839 | source-map: 0.6.1 1840 | optionalDependencies: 1841 | prettier: 2.8.8 1842 | 1843 | '@vue/eslint-config-prettier@9.0.0(eslint@8.57.0)(prettier@3.2.5)': 1844 | dependencies: 1845 | eslint: 8.57.0 1846 | eslint-config-prettier: 9.1.0(eslint@8.57.0) 1847 | eslint-plugin-prettier: 5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5) 1848 | prettier: 3.2.5 1849 | transitivePeerDependencies: 1850 | - '@types/eslint' 1851 | 1852 | '@vue/language-plugin-pug@2.0.19': 1853 | dependencies: 1854 | '@volar/source-map': 2.2.4 1855 | volar-service-pug: 0.0.45 1856 | 1857 | acorn-jsx@5.3.2(acorn@8.14.1): 1858 | dependencies: 1859 | acorn: 8.14.1 1860 | 1861 | acorn-walk@8.3.4: 1862 | dependencies: 1863 | acorn: 8.14.1 1864 | 1865 | acorn@7.4.1: {} 1866 | 1867 | acorn@8.14.1: {} 1868 | 1869 | acorn@8.14.1: {} 1870 | 1871 | ajv@6.12.6: 1872 | dependencies: 1873 | fast-deep-equal: 3.1.3 1874 | fast-json-stable-stringify: 2.1.0 1875 | json-schema-traverse: 0.4.1 1876 | uri-js: 4.4.1 1877 | 1878 | ansi-regex@5.0.1: {} 1879 | 1880 | ansi-styles@4.3.0: 1881 | dependencies: 1882 | color-convert: 2.0.1 1883 | 1884 | ansi-styles@5.2.0: {} 1885 | 1886 | argparse@2.0.1: {} 1887 | 1888 | array-union@2.1.0: {} 1889 | 1890 | asap@2.0.6: {} 1891 | 1892 | assert-never@1.4.0: {} 1893 | 1894 | assertion-error@1.1.0: {} 1895 | 1896 | babel-walk@3.0.0-canary-5: 1897 | dependencies: 1898 | '@babel/types': 7.27.0 1899 | 1900 | balanced-match@1.0.2: {} 1901 | 1902 | boolbase@1.0.0: {} 1903 | 1904 | brace-expansion@1.1.11: 1905 | dependencies: 1906 | balanced-match: 1.0.2 1907 | concat-map: 0.0.1 1908 | 1909 | brace-expansion@2.0.1: 1910 | dependencies: 1911 | balanced-match: 1.0.2 1912 | 1913 | braces@3.0.2: 1914 | dependencies: 1915 | fill-range: 7.0.1 1916 | 1917 | cac@6.7.14: {} 1918 | 1919 | call-bind-apply-helpers@1.0.2: 1920 | dependencies: 1921 | es-errors: 1.3.0 1922 | function-bind: 1.1.2 1923 | 1924 | call-bound@1.0.4: 1925 | dependencies: 1926 | call-bind-apply-helpers: 1.0.2 1927 | get-intrinsic: 1.3.0 1928 | 1929 | callsites@3.1.0: {} 1930 | 1931 | chai@4.5.0: 1932 | dependencies: 1933 | assertion-error: 1.1.0 1934 | check-error: 1.0.3 1935 | deep-eql: 4.1.4 1936 | get-func-name: 2.0.2 1937 | loupe: 2.3.7 1938 | pathval: 1.1.1 1939 | type-detect: 4.1.0 1940 | 1941 | chalk@4.1.2: 1942 | dependencies: 1943 | ansi-styles: 4.3.0 1944 | supports-color: 7.2.0 1945 | 1946 | chalk@5.3.0: {} 1947 | 1948 | character-parser@2.2.0: 1949 | dependencies: 1950 | is-regex: 1.2.1 1951 | 1952 | check-error@1.0.3: 1953 | dependencies: 1954 | get-func-name: 2.0.2 1955 | 1956 | color-convert@2.0.1: 1957 | dependencies: 1958 | color-name: 1.1.4 1959 | 1960 | color-name@1.1.4: {} 1961 | 1962 | concat-map@0.0.1: {} 1963 | 1964 | confbox@0.1.8: {} 1965 | 1966 | constantinople@4.0.1: 1967 | dependencies: 1968 | '@babel/parser': 7.27.0 1969 | '@babel/types': 7.27.0 1970 | 1971 | cross-spawn@7.0.3: 1972 | dependencies: 1973 | path-key: 3.1.1 1974 | shebang-command: 2.0.0 1975 | which: 2.0.2 1976 | 1977 | cross-spawn@7.0.6: 1978 | dependencies: 1979 | path-key: 3.1.1 1980 | shebang-command: 2.0.0 1981 | which: 2.0.2 1982 | 1983 | cssesc@3.0.0: {} 1984 | 1985 | csstype@3.1.3: {} 1986 | 1987 | debug@4.3.4: 1988 | dependencies: 1989 | ms: 2.1.2 1990 | 1991 | debug@4.4.0: 1992 | dependencies: 1993 | ms: 2.1.3 1994 | 1995 | deep-eql@4.1.4: 1996 | dependencies: 1997 | type-detect: 4.1.0 1998 | 1999 | deep-is@0.1.4: {} 2000 | 2001 | diff-sequences@29.6.3: {} 2002 | 2003 | dir-glob@3.0.1: 2004 | dependencies: 2005 | path-type: 4.0.0 2006 | 2007 | doctrine@3.0.0: 2008 | dependencies: 2009 | esutils: 2.0.3 2010 | 2011 | doctypes@1.1.0: {} 2012 | 2013 | dunder-proto@1.0.1: 2014 | dependencies: 2015 | call-bind-apply-helpers: 1.0.2 2016 | es-errors: 1.3.0 2017 | gopd: 1.2.0 2018 | 2019 | es-define-property@1.0.1: {} 2020 | 2021 | es-errors@1.3.0: {} 2022 | 2023 | es-object-atoms@1.1.1: 2024 | dependencies: 2025 | es-errors: 1.3.0 2026 | 2027 | esbuild@0.21.5: 2028 | optionalDependencies: 2029 | '@esbuild/aix-ppc64': 0.21.5 2030 | '@esbuild/android-arm': 0.21.5 2031 | '@esbuild/android-arm64': 0.21.5 2032 | '@esbuild/android-x64': 0.21.5 2033 | '@esbuild/darwin-arm64': 0.21.5 2034 | '@esbuild/darwin-x64': 0.21.5 2035 | '@esbuild/freebsd-arm64': 0.21.5 2036 | '@esbuild/freebsd-x64': 0.21.5 2037 | '@esbuild/linux-arm': 0.21.5 2038 | '@esbuild/linux-arm64': 0.21.5 2039 | '@esbuild/linux-ia32': 0.21.5 2040 | '@esbuild/linux-loong64': 0.21.5 2041 | '@esbuild/linux-mips64el': 0.21.5 2042 | '@esbuild/linux-ppc64': 0.21.5 2043 | '@esbuild/linux-riscv64': 0.21.5 2044 | '@esbuild/linux-s390x': 0.21.5 2045 | '@esbuild/linux-x64': 0.21.5 2046 | '@esbuild/netbsd-x64': 0.21.5 2047 | '@esbuild/openbsd-x64': 0.21.5 2048 | '@esbuild/sunos-x64': 0.21.5 2049 | '@esbuild/win32-arm64': 0.21.5 2050 | '@esbuild/win32-ia32': 0.21.5 2051 | '@esbuild/win32-x64': 0.21.5 2052 | 2053 | escape-string-regexp@4.0.0: {} 2054 | 2055 | eslint-config-prettier@9.1.0(eslint@8.57.0): 2056 | dependencies: 2057 | eslint: 8.57.0 2058 | 2059 | eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5): 2060 | dependencies: 2061 | eslint: 8.57.0 2062 | prettier: 3.2.5 2063 | prettier-linter-helpers: 1.0.0 2064 | synckit: 0.8.8 2065 | optionalDependencies: 2066 | eslint-config-prettier: 9.1.0(eslint@8.57.0) 2067 | 2068 | eslint-plugin-simple-import-sort@12.1.0(eslint@8.57.0): 2069 | dependencies: 2070 | eslint: 8.57.0 2071 | 2072 | eslint-plugin-vitest@0.3.26(eslint@8.57.0)(typescript@5.4.5)(vitest@1.6.1(stylus@0.63.0)): 2073 | dependencies: 2074 | '@typescript-eslint/utils': 7.9.0(eslint@8.57.0)(typescript@5.4.5) 2075 | eslint: 8.57.0 2076 | optionalDependencies: 2077 | vitest: 1.6.1(stylus@0.63.0) 2078 | transitivePeerDependencies: 2079 | - supports-color 2080 | - typescript 2081 | 2082 | eslint-plugin-vue@9.26.0(eslint@8.57.0): 2083 | dependencies: 2084 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2085 | eslint: 8.57.0 2086 | globals: 13.24.0 2087 | natural-compare: 1.4.0 2088 | nth-check: 2.1.1 2089 | postcss-selector-parser: 6.0.16 2090 | semver: 7.6.2 2091 | vue-eslint-parser: 9.4.2(eslint@8.57.0) 2092 | xml-name-validator: 4.0.0 2093 | transitivePeerDependencies: 2094 | - supports-color 2095 | 2096 | eslint-scope@7.2.2: 2097 | dependencies: 2098 | esrecurse: 4.3.0 2099 | estraverse: 5.3.0 2100 | 2101 | eslint-visitor-keys@3.4.3: {} 2102 | 2103 | eslint@8.57.0: 2104 | dependencies: 2105 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2106 | '@eslint-community/regexpp': 4.10.0 2107 | '@eslint/eslintrc': 2.1.4 2108 | '@eslint/js': 8.57.0 2109 | '@humanwhocodes/config-array': 0.11.14 2110 | '@humanwhocodes/module-importer': 1.0.1 2111 | '@nodelib/fs.walk': 1.2.8 2112 | '@ungap/structured-clone': 1.2.0 2113 | ajv: 6.12.6 2114 | chalk: 4.1.2 2115 | cross-spawn: 7.0.3 2116 | debug: 4.3.4 2117 | doctrine: 3.0.0 2118 | escape-string-regexp: 4.0.0 2119 | eslint-scope: 7.2.2 2120 | eslint-visitor-keys: 3.4.3 2121 | espree: 9.6.1 2122 | esquery: 1.5.0 2123 | esutils: 2.0.3 2124 | fast-deep-equal: 3.1.3 2125 | file-entry-cache: 6.0.1 2126 | find-up: 5.0.0 2127 | glob-parent: 6.0.2 2128 | globals: 13.24.0 2129 | graphemer: 1.4.0 2130 | ignore: 5.3.1 2131 | imurmurhash: 0.1.4 2132 | is-glob: 4.0.3 2133 | is-path-inside: 3.0.3 2134 | js-yaml: 4.1.0 2135 | json-stable-stringify-without-jsonify: 1.0.1 2136 | levn: 0.4.1 2137 | lodash.merge: 4.6.2 2138 | minimatch: 3.1.2 2139 | natural-compare: 1.4.0 2140 | optionator: 0.9.4 2141 | strip-ansi: 6.0.1 2142 | text-table: 0.2.0 2143 | transitivePeerDependencies: 2144 | - supports-color 2145 | 2146 | espree@9.6.1: 2147 | dependencies: 2148 | acorn: 8.14.1 2149 | acorn-jsx: 5.3.2(acorn@8.14.1) 2150 | eslint-visitor-keys: 3.4.3 2151 | 2152 | esquery@1.5.0: 2153 | dependencies: 2154 | estraverse: 5.3.0 2155 | 2156 | esrecurse@4.3.0: 2157 | dependencies: 2158 | estraverse: 5.3.0 2159 | 2160 | estraverse@5.3.0: {} 2161 | 2162 | estree-walker@3.0.3: 2163 | dependencies: 2164 | '@types/estree': 1.0.7 2165 | 2166 | esutils@2.0.3: {} 2167 | 2168 | execa@8.0.1: 2169 | dependencies: 2170 | cross-spawn: 7.0.6 2171 | get-stream: 8.0.1 2172 | human-signals: 5.0.0 2173 | is-stream: 3.0.0 2174 | merge-stream: 2.0.0 2175 | npm-run-path: 5.3.0 2176 | onetime: 6.0.0 2177 | signal-exit: 4.1.0 2178 | strip-final-newline: 3.0.0 2179 | 2180 | fast-deep-equal@3.1.3: {} 2181 | 2182 | fast-diff@1.3.0: {} 2183 | 2184 | fast-glob@3.3.2: 2185 | dependencies: 2186 | '@nodelib/fs.stat': 2.0.5 2187 | '@nodelib/fs.walk': 1.2.8 2188 | glob-parent: 5.1.2 2189 | merge2: 1.4.1 2190 | micromatch: 4.0.5 2191 | 2192 | fast-json-stable-stringify@2.1.0: {} 2193 | 2194 | fast-levenshtein@2.0.6: {} 2195 | 2196 | fastq@1.17.1: 2197 | dependencies: 2198 | reusify: 1.0.4 2199 | 2200 | file-entry-cache@6.0.1: 2201 | dependencies: 2202 | flat-cache: 3.2.0 2203 | 2204 | fill-range@7.0.1: 2205 | dependencies: 2206 | to-regex-range: 5.0.1 2207 | 2208 | find-up@5.0.0: 2209 | dependencies: 2210 | locate-path: 6.0.0 2211 | path-exists: 4.0.0 2212 | 2213 | flat-cache@3.2.0: 2214 | dependencies: 2215 | flatted: 3.3.1 2216 | keyv: 4.5.4 2217 | rimraf: 3.0.2 2218 | 2219 | flatted@3.3.1: {} 2220 | 2221 | fs.realpath@1.0.0: {} 2222 | 2223 | fsevents@2.3.3: 2224 | optional: true 2225 | 2226 | function-bind@1.1.2: {} 2227 | 2228 | get-func-name@2.0.2: {} 2229 | 2230 | get-intrinsic@1.3.0: 2231 | dependencies: 2232 | call-bind-apply-helpers: 1.0.2 2233 | es-define-property: 1.0.1 2234 | es-errors: 1.3.0 2235 | es-object-atoms: 1.1.1 2236 | function-bind: 1.1.2 2237 | get-proto: 1.0.1 2238 | gopd: 1.2.0 2239 | has-symbols: 1.1.0 2240 | hasown: 2.0.2 2241 | math-intrinsics: 1.1.0 2242 | 2243 | get-proto@1.0.1: 2244 | dependencies: 2245 | dunder-proto: 1.0.1 2246 | es-object-atoms: 1.1.1 2247 | 2248 | get-stream@8.0.1: {} 2249 | 2250 | glob-parent@5.1.2: 2251 | dependencies: 2252 | is-glob: 4.0.3 2253 | 2254 | glob-parent@6.0.2: 2255 | dependencies: 2256 | is-glob: 4.0.3 2257 | 2258 | glob@7.2.3: 2259 | dependencies: 2260 | fs.realpath: 1.0.0 2261 | inflight: 1.0.6 2262 | inherits: 2.0.4 2263 | minimatch: 3.1.2 2264 | once: 1.4.0 2265 | path-is-absolute: 1.0.1 2266 | 2267 | globals@13.24.0: 2268 | dependencies: 2269 | type-fest: 0.20.2 2270 | 2271 | globby@11.1.0: 2272 | dependencies: 2273 | array-union: 2.1.0 2274 | dir-glob: 3.0.1 2275 | fast-glob: 3.3.2 2276 | ignore: 5.3.1 2277 | merge2: 1.4.1 2278 | slash: 3.0.0 2279 | 2280 | gopd@1.2.0: {} 2281 | 2282 | graphemer@1.4.0: {} 2283 | 2284 | has-flag@4.0.0: {} 2285 | 2286 | has-symbols@1.1.0: {} 2287 | 2288 | has-tostringtag@1.0.2: 2289 | dependencies: 2290 | has-symbols: 1.1.0 2291 | 2292 | hasown@2.0.2: 2293 | dependencies: 2294 | function-bind: 1.1.2 2295 | 2296 | human-signals@5.0.0: {} 2297 | 2298 | ignore@5.3.1: {} 2299 | 2300 | import-fresh@3.3.0: 2301 | dependencies: 2302 | parent-module: 1.0.1 2303 | resolve-from: 4.0.0 2304 | 2305 | imurmurhash@0.1.4: {} 2306 | 2307 | inflight@1.0.6: 2308 | dependencies: 2309 | once: 1.4.0 2310 | wrappy: 1.0.2 2311 | 2312 | inherits@2.0.4: {} 2313 | 2314 | is-core-module@2.16.1: 2315 | dependencies: 2316 | hasown: 2.0.2 2317 | 2318 | is-expression@4.0.0: 2319 | dependencies: 2320 | acorn: 7.4.1 2321 | object-assign: 4.1.1 2322 | 2323 | is-extglob@2.1.1: {} 2324 | 2325 | is-glob@4.0.3: 2326 | dependencies: 2327 | is-extglob: 2.1.1 2328 | 2329 | is-number@7.0.0: {} 2330 | 2331 | is-path-inside@3.0.3: {} 2332 | 2333 | is-promise@2.2.2: {} 2334 | 2335 | is-regex@1.2.1: 2336 | dependencies: 2337 | call-bound: 1.0.4 2338 | gopd: 1.2.0 2339 | has-tostringtag: 1.0.2 2340 | hasown: 2.0.2 2341 | 2342 | is-stream@3.0.0: {} 2343 | 2344 | isexe@2.0.0: {} 2345 | 2346 | js-stringify@1.0.2: {} 2347 | 2348 | js-tokens@9.0.1: {} 2349 | 2350 | js-yaml@4.1.0: 2351 | dependencies: 2352 | argparse: 2.0.1 2353 | 2354 | json-buffer@3.0.1: {} 2355 | 2356 | json-schema-traverse@0.4.1: {} 2357 | 2358 | json-stable-stringify-without-jsonify@1.0.1: {} 2359 | 2360 | jstransformer@1.0.0: 2361 | dependencies: 2362 | is-promise: 2.2.2 2363 | promise: 7.3.1 2364 | 2365 | keyv@4.5.4: 2366 | dependencies: 2367 | json-buffer: 3.0.1 2368 | 2369 | levn@0.4.1: 2370 | dependencies: 2371 | prelude-ls: 1.2.1 2372 | type-check: 0.4.0 2373 | 2374 | local-pkg@0.5.1: 2375 | dependencies: 2376 | mlly: 1.7.4 2377 | pkg-types: 1.3.1 2378 | 2379 | locate-path@6.0.0: 2380 | dependencies: 2381 | p-locate: 5.0.0 2382 | 2383 | lodash.merge@4.6.2: {} 2384 | 2385 | lodash@4.17.21: {} 2386 | 2387 | loupe@2.3.7: 2388 | dependencies: 2389 | get-func-name: 2.0.2 2390 | 2391 | magic-string@0.30.17: 2392 | dependencies: 2393 | '@jridgewell/sourcemap-codec': 1.5.0 2394 | 2395 | math-intrinsics@1.1.0: {} 2396 | 2397 | merge-stream@2.0.0: {} 2398 | 2399 | merge2@1.4.1: {} 2400 | 2401 | micromatch@4.0.5: 2402 | dependencies: 2403 | braces: 3.0.2 2404 | picomatch: 2.3.1 2405 | 2406 | mimic-fn@4.0.0: {} 2407 | 2408 | minimatch@3.1.2: 2409 | dependencies: 2410 | brace-expansion: 1.1.11 2411 | 2412 | minimatch@9.0.4: 2413 | dependencies: 2414 | brace-expansion: 2.0.1 2415 | 2416 | mlly@1.7.4: 2417 | dependencies: 2418 | acorn: 8.14.1 2419 | pathe: 2.0.3 2420 | pkg-types: 1.3.1 2421 | ufo: 1.6.1 2422 | 2423 | ms@2.1.2: {} 2424 | 2425 | ms@2.1.3: {} 2426 | 2427 | muggle-string@0.4.1: {} 2428 | 2429 | nanoid@3.3.11: {} 2430 | 2431 | natural-compare@1.4.0: {} 2432 | 2433 | npm-run-path@5.3.0: 2434 | dependencies: 2435 | path-key: 4.0.0 2436 | 2437 | nth-check@2.1.1: 2438 | dependencies: 2439 | boolbase: 1.0.0 2440 | 2441 | object-assign@4.1.1: {} 2442 | 2443 | once@1.4.0: 2444 | dependencies: 2445 | wrappy: 1.0.2 2446 | 2447 | onetime@6.0.0: 2448 | dependencies: 2449 | mimic-fn: 4.0.0 2450 | 2451 | optionator@0.9.4: 2452 | dependencies: 2453 | deep-is: 0.1.4 2454 | fast-levenshtein: 2.0.6 2455 | levn: 0.4.1 2456 | prelude-ls: 1.2.1 2457 | type-check: 0.4.0 2458 | word-wrap: 1.2.5 2459 | 2460 | p-limit@3.1.0: 2461 | dependencies: 2462 | yocto-queue: 0.1.0 2463 | 2464 | p-limit@5.0.0: 2465 | dependencies: 2466 | yocto-queue: 1.2.1 2467 | 2468 | p-locate@5.0.0: 2469 | dependencies: 2470 | p-limit: 3.1.0 2471 | 2472 | parent-module@1.0.1: 2473 | dependencies: 2474 | callsites: 3.1.0 2475 | 2476 | path-exists@4.0.0: {} 2477 | 2478 | path-is-absolute@1.0.1: {} 2479 | 2480 | path-key@3.1.1: {} 2481 | 2482 | path-key@4.0.0: {} 2483 | 2484 | path-parse@1.0.7: {} 2485 | 2486 | path-type@4.0.0: {} 2487 | 2488 | pathe@1.1.2: {} 2489 | 2490 | pathe@2.0.3: {} 2491 | 2492 | pathval@1.1.1: {} 2493 | 2494 | picocolors@1.1.1: {} 2495 | 2496 | picomatch@2.3.1: {} 2497 | 2498 | pkg-types@1.3.1: 2499 | dependencies: 2500 | confbox: 0.1.8 2501 | mlly: 1.7.4 2502 | pathe: 2.0.3 2503 | 2504 | postcss-selector-parser@6.0.16: 2505 | dependencies: 2506 | cssesc: 3.0.0 2507 | util-deprecate: 1.0.2 2508 | 2509 | postcss@8.5.3: 2510 | dependencies: 2511 | nanoid: 3.3.11 2512 | picocolors: 1.1.1 2513 | source-map-js: 1.2.1 2514 | 2515 | prelude-ls@1.2.1: {} 2516 | 2517 | prettier-linter-helpers@1.0.0: 2518 | dependencies: 2519 | fast-diff: 1.3.0 2520 | 2521 | prettier@2.8.8: 2522 | optional: true 2523 | 2524 | prettier@3.2.5: {} 2525 | 2526 | pretty-format@29.7.0: 2527 | dependencies: 2528 | '@jest/schemas': 29.6.3 2529 | ansi-styles: 5.2.0 2530 | react-is: 18.3.1 2531 | 2532 | promise@7.3.1: 2533 | dependencies: 2534 | asap: 2.0.6 2535 | 2536 | pug-attrs@3.0.0: 2537 | dependencies: 2538 | constantinople: 4.0.1 2539 | js-stringify: 1.0.2 2540 | pug-runtime: 3.0.1 2541 | 2542 | pug-code-gen@3.0.3: 2543 | dependencies: 2544 | constantinople: 4.0.1 2545 | doctypes: 1.1.0 2546 | js-stringify: 1.0.2 2547 | pug-attrs: 3.0.0 2548 | pug-error: 2.1.0 2549 | pug-runtime: 3.0.1 2550 | void-elements: 3.1.0 2551 | with: 7.0.2 2552 | 2553 | pug-error@2.1.0: {} 2554 | 2555 | pug-filters@4.0.0: 2556 | dependencies: 2557 | constantinople: 4.0.1 2558 | jstransformer: 1.0.0 2559 | pug-error: 2.1.0 2560 | pug-walk: 2.0.0 2561 | resolve: 1.22.10 2562 | 2563 | pug-lexer@5.0.1: 2564 | dependencies: 2565 | character-parser: 2.2.0 2566 | is-expression: 4.0.0 2567 | pug-error: 2.1.0 2568 | 2569 | pug-linker@4.0.0: 2570 | dependencies: 2571 | pug-error: 2.1.0 2572 | pug-walk: 2.0.0 2573 | 2574 | pug-load@3.0.0: 2575 | dependencies: 2576 | object-assign: 4.1.1 2577 | pug-walk: 2.0.0 2578 | 2579 | pug-parser@6.0.0: 2580 | dependencies: 2581 | pug-error: 2.1.0 2582 | token-stream: 1.0.0 2583 | 2584 | pug-runtime@3.0.1: {} 2585 | 2586 | pug-strip-comments@2.0.0: 2587 | dependencies: 2588 | pug-error: 2.1.0 2589 | 2590 | pug-walk@2.0.0: {} 2591 | 2592 | pug@3.0.3: 2593 | dependencies: 2594 | pug-code-gen: 3.0.3 2595 | pug-filters: 4.0.0 2596 | pug-lexer: 5.0.1 2597 | pug-linker: 4.0.0 2598 | pug-load: 3.0.0 2599 | pug-parser: 6.0.0 2600 | pug-runtime: 3.0.1 2601 | pug-strip-comments: 2.0.0 2602 | 2603 | punycode@2.3.1: {} 2604 | 2605 | queue-microtask@1.2.3: {} 2606 | 2607 | react-is@18.3.1: {} 2608 | 2609 | resolve-from@4.0.0: {} 2610 | 2611 | resolve@1.22.10: 2612 | dependencies: 2613 | is-core-module: 2.16.1 2614 | path-parse: 1.0.7 2615 | supports-preserve-symlinks-flag: 1.0.0 2616 | 2617 | reusify@1.0.4: {} 2618 | 2619 | rimraf@3.0.2: 2620 | dependencies: 2621 | glob: 7.2.3 2622 | 2623 | rollup@4.39.0: 2624 | dependencies: 2625 | '@types/estree': 1.0.7 2626 | optionalDependencies: 2627 | '@rollup/rollup-android-arm-eabi': 4.39.0 2628 | '@rollup/rollup-android-arm64': 4.39.0 2629 | '@rollup/rollup-darwin-arm64': 4.39.0 2630 | '@rollup/rollup-darwin-x64': 4.39.0 2631 | '@rollup/rollup-freebsd-arm64': 4.39.0 2632 | '@rollup/rollup-freebsd-x64': 4.39.0 2633 | '@rollup/rollup-linux-arm-gnueabihf': 4.39.0 2634 | '@rollup/rollup-linux-arm-musleabihf': 4.39.0 2635 | '@rollup/rollup-linux-arm64-gnu': 4.39.0 2636 | '@rollup/rollup-linux-arm64-musl': 4.39.0 2637 | '@rollup/rollup-linux-loongarch64-gnu': 4.39.0 2638 | '@rollup/rollup-linux-powerpc64le-gnu': 4.39.0 2639 | '@rollup/rollup-linux-riscv64-gnu': 4.39.0 2640 | '@rollup/rollup-linux-riscv64-musl': 4.39.0 2641 | '@rollup/rollup-linux-s390x-gnu': 4.39.0 2642 | '@rollup/rollup-linux-x64-gnu': 4.39.0 2643 | '@rollup/rollup-linux-x64-musl': 4.39.0 2644 | '@rollup/rollup-win32-arm64-msvc': 4.39.0 2645 | '@rollup/rollup-win32-ia32-msvc': 4.39.0 2646 | '@rollup/rollup-win32-x64-msvc': 4.39.0 2647 | fsevents: 2.3.3 2648 | 2649 | run-parallel@1.2.0: 2650 | dependencies: 2651 | queue-microtask: 1.2.3 2652 | 2653 | sax@1.3.0: {} 2654 | 2655 | semver@7.6.2: {} 2656 | 2657 | shebang-command@2.0.0: 2658 | dependencies: 2659 | shebang-regex: 3.0.0 2660 | 2661 | shebang-regex@3.0.0: {} 2662 | 2663 | siginfo@2.0.0: {} 2664 | 2665 | signal-exit@4.1.0: {} 2666 | 2667 | slash@3.0.0: {} 2668 | 2669 | source-map-js@1.2.1: {} 2670 | 2671 | source-map@0.6.1: {} 2672 | 2673 | source-map@0.7.4: {} 2674 | 2675 | stackback@0.0.2: {} 2676 | 2677 | std-env@3.9.0: {} 2678 | 2679 | strip-ansi@6.0.1: 2680 | dependencies: 2681 | ansi-regex: 5.0.1 2682 | 2683 | strip-final-newline@3.0.0: {} 2684 | 2685 | strip-json-comments@3.1.1: {} 2686 | 2687 | strip-literal@2.1.1: 2688 | dependencies: 2689 | js-tokens: 9.0.1 2690 | 2691 | stylus@0.63.0: 2692 | dependencies: 2693 | '@adobe/css-tools': 4.3.3 2694 | debug: 4.3.4 2695 | glob: 7.2.3 2696 | sax: 1.3.0 2697 | source-map: 0.7.4 2698 | transitivePeerDependencies: 2699 | - supports-color 2700 | 2701 | supports-color@7.2.0: 2702 | dependencies: 2703 | has-flag: 4.0.0 2704 | 2705 | supports-preserve-symlinks-flag@1.0.0: {} 2706 | 2707 | synckit@0.8.8: 2708 | dependencies: 2709 | '@pkgr/core': 0.1.1 2710 | tslib: 2.6.2 2711 | 2712 | text-table@0.2.0: {} 2713 | 2714 | tinybench@2.9.0: {} 2715 | 2716 | tinypool@0.8.4: {} 2717 | 2718 | tinyspy@2.2.1: {} 2719 | 2720 | to-fast-properties@2.0.0: {} 2721 | 2722 | to-regex-range@5.0.1: 2723 | dependencies: 2724 | is-number: 7.0.0 2725 | 2726 | token-stream@1.0.0: {} 2727 | 2728 | ts-api-utils@1.3.0(typescript@5.4.5): 2729 | dependencies: 2730 | typescript: 5.4.5 2731 | 2732 | tslib@2.6.2: {} 2733 | 2734 | type-check@0.4.0: 2735 | dependencies: 2736 | prelude-ls: 1.2.1 2737 | 2738 | type-detect@4.1.0: {} 2739 | 2740 | type-fest@0.20.2: {} 2741 | 2742 | typescript@5.4.5: {} 2743 | 2744 | ufo@1.6.1: {} 2745 | 2746 | uri-js@4.4.1: 2747 | dependencies: 2748 | punycode: 2.3.1 2749 | 2750 | util-deprecate@1.0.2: {} 2751 | 2752 | vite-node@1.6.1(stylus@0.63.0): 2753 | dependencies: 2754 | cac: 6.7.14 2755 | debug: 4.4.0 2756 | pathe: 1.1.2 2757 | picocolors: 1.1.1 2758 | vite: 5.4.18(stylus@0.63.0) 2759 | transitivePeerDependencies: 2760 | - '@types/node' 2761 | - less 2762 | - lightningcss 2763 | - sass 2764 | - sass-embedded 2765 | - stylus 2766 | - sugarss 2767 | - supports-color 2768 | - terser 2769 | 2770 | vite-plugin-banner@0.7.1: {} 2771 | 2772 | vite-plugin-css-injected-by-js@3.5.1(vite@5.4.18(stylus@0.63.0)): 2773 | dependencies: 2774 | vite: 5.4.18(stylus@0.63.0) 2775 | 2776 | vite@5.4.18(stylus@0.63.0): 2777 | dependencies: 2778 | esbuild: 0.21.5 2779 | postcss: 8.5.3 2780 | rollup: 4.39.0 2781 | optionalDependencies: 2782 | fsevents: 2.3.3 2783 | stylus: 0.63.0 2784 | 2785 | vitest@1.6.1(stylus@0.63.0): 2786 | dependencies: 2787 | '@vitest/expect': 1.6.1 2788 | '@vitest/runner': 1.6.1 2789 | '@vitest/snapshot': 1.6.1 2790 | '@vitest/spy': 1.6.1 2791 | '@vitest/utils': 1.6.1 2792 | acorn-walk: 8.3.4 2793 | chai: 4.5.0 2794 | debug: 4.4.0 2795 | execa: 8.0.1 2796 | local-pkg: 0.5.1 2797 | magic-string: 0.30.17 2798 | pathe: 1.1.2 2799 | picocolors: 1.1.1 2800 | std-env: 3.9.0 2801 | strip-literal: 2.1.1 2802 | tinybench: 2.9.0 2803 | tinypool: 0.8.4 2804 | vite: 5.4.18(stylus@0.63.0) 2805 | vite-node: 1.6.1(stylus@0.63.0) 2806 | why-is-node-running: 2.3.0 2807 | transitivePeerDependencies: 2808 | - less 2809 | - lightningcss 2810 | - sass 2811 | - sass-embedded 2812 | - stylus 2813 | - sugarss 2814 | - supports-color 2815 | - terser 2816 | 2817 | void-elements@3.1.0: {} 2818 | 2819 | volar-service-html@0.0.45(@volar/language-service@2.2.4): 2820 | dependencies: 2821 | vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' 2822 | vscode-languageserver-textdocument: 1.0.11 2823 | vscode-uri: 3.0.8 2824 | optionalDependencies: 2825 | '@volar/language-service': 2.2.4 2826 | 2827 | volar-service-pug@0.0.45: 2828 | dependencies: 2829 | '@volar/language-service': 2.2.4 2830 | pug-lexer: 5.0.1 2831 | pug-parser: 6.0.0 2832 | volar-service-html: 0.0.45(@volar/language-service@2.2.4) 2833 | vscode-html-languageservice: '@johnsoncodehk/vscode-html-languageservice@5.2.0-34a5462' 2834 | vscode-languageserver-textdocument: 1.0.11 2835 | 2836 | vscode-jsonrpc@8.2.0: {} 2837 | 2838 | vscode-languageserver-protocol@3.17.5: 2839 | dependencies: 2840 | vscode-jsonrpc: 8.2.0 2841 | vscode-languageserver-types: 3.17.5 2842 | 2843 | vscode-languageserver-textdocument@1.0.11: {} 2844 | 2845 | vscode-languageserver-types@3.17.5: {} 2846 | 2847 | vscode-uri@3.0.8: {} 2848 | 2849 | vscode-uri@3.1.0: {} 2850 | 2851 | vue-eslint-parser@9.4.2(eslint@8.57.0): 2852 | dependencies: 2853 | debug: 4.4.0 2854 | eslint: 8.57.0 2855 | eslint-scope: 7.2.2 2856 | eslint-visitor-keys: 3.4.3 2857 | espree: 9.6.1 2858 | esquery: 1.5.0 2859 | lodash: 4.17.21 2860 | semver: 7.6.2 2861 | transitivePeerDependencies: 2862 | - supports-color 2863 | 2864 | vue@2.7.16: 2865 | dependencies: 2866 | '@vue/compiler-sfc': 2.7.16 2867 | csstype: 3.1.3 2868 | 2869 | which@2.0.2: 2870 | dependencies: 2871 | isexe: 2.0.0 2872 | 2873 | why-is-node-running@2.3.0: 2874 | dependencies: 2875 | siginfo: 2.0.0 2876 | stackback: 0.0.2 2877 | 2878 | with@7.0.2: 2879 | dependencies: 2880 | '@babel/parser': 7.27.0 2881 | '@babel/types': 7.27.0 2882 | assert-never: 1.4.0 2883 | babel-walk: 3.0.0-canary-5 2884 | 2885 | word-wrap@1.2.5: {} 2886 | 2887 | wrappy@1.0.2: {} 2888 | 2889 | xbytes@1.9.1: {} 2890 | 2891 | xml-name-validator@4.0.0: {} 2892 | 2893 | yocto-queue@0.1.0: {} 2894 | 2895 | yocto-queue@1.2.1: {} 2896 | --------------------------------------------------------------------------------