From a3064385c2ab81454140201d98fedcf5938210a3 Mon Sep 17 00:00:00 2001 From: alikia2x Date: Thu, 11 Jul 2024 01:18:59 +0800 Subject: [PATCH] backend: music metadata submit, retrieve & search --- bun.lockb | Bin 0 -> 158121 bytes data/song/BV1Xp421o7hr.json | 5 + doc/concepts/unique-key.md | 1 + package.json | 99 +- pnpm-lock.yaml | 3374 ------------------ src/lib/server/cache.ts | 4 + src/lib/server/database/loadData.ts | 33 + src/lib/server/database/musicInfo.d.ts | 18 + src/routes/api/database/search/+server.ts | 27 + src/routes/api/database/song/[id]/+server.ts | 25 + src/routes/api/database/songs/+server.ts | 15 + src/routes/database/+layout.svelte | 3 + src/routes/database/+page.svelte | 3 + jsconfig.json => tsconfig.json | 3 +- 14 files changed, 187 insertions(+), 3423 deletions(-) create mode 100755 bun.lockb create mode 100644 data/song/BV1Xp421o7hr.json delete mode 100644 pnpm-lock.yaml create mode 100644 src/lib/server/cache.ts create mode 100644 src/lib/server/database/loadData.ts create mode 100644 src/lib/server/database/musicInfo.d.ts create mode 100644 src/routes/api/database/search/+server.ts create mode 100644 src/routes/api/database/song/[id]/+server.ts create mode 100644 src/routes/api/database/songs/+server.ts create mode 100644 src/routes/database/+layout.svelte create mode 100644 src/routes/database/+page.svelte rename jsconfig.json => tsconfig.json (92%) diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..d65fe0800b636daceea3d4cd07b96c46400b7d66 GIT binary patch literal 158121 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 z%0A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 literal 0 HcmV?d00001 diff --git a/data/song/BV1Xp421o7hr.json b/data/song/BV1Xp421o7hr.json new file mode 100644 index 0000000..aec14e1 --- /dev/null +++ b/data/song/BV1Xp421o7hr.json @@ -0,0 +1,5 @@ +{ + "name": "大哉乾元", + "singer": "洛天依", + "lyric": "[ti: 大哉乾元]\n[ar: 洛天依]\n[al: 2024哔哩哔哩拜年纪]\n[tool: 歌词滚动姬 https://lrc-maker.github.io]\n[length: 04:19.536]\n[00:05.630] 经起幽明 悟处通玄\n[00:09.680] 首窥龙堑 见岳见渊\n[00:13.640] 道不善宣 义不善绻\n[00:17.270] 源流万世 大哉乾元!\n[00:21.837]\n[00:36.390] 不曾闻日月争辉\n[00:38.170] 坎离复往 立下恒规\n[00:40.330] 照东南 有坤徇乾 承西北\n[00:43.680] 天道自昆仑巍巍\n[00:45.590] 翻起华夏巽震艮兑\n[00:47.810] 万象予万灵得见 两相盈岁\n[00:51.210] 潜龙长生应紫微\n[00:53.000] 惟向四方五气寻遂\n[00:55.200] 燧火旁八卦百草揆经纬\n[00:58.220] 正位 纪天下一归\n[01:00.370] 不消祈天退水\n[01:02.590] 初难知一念一决生龙髓\n[01:05.930] 百家注龙慧 千军起龙威 砥淬\n[01:10.260] 妙笔生文穗 罡风抚长麾\n[01:13.030] 始见龙形汇 以天田冲腾直向九陲\n[01:20.490] 龙震于疆 万里宁壤 天地皆可往\n[01:24.140] 龙秀于象 引仙来访 诗蜀道河江\n[01:27.940] 龙明于章 执笔成鉴 映五千煌煌\n[01:31.820] 不独九州五岳 帝王将相见苍茫\n[01:35.340] 龙泽于汤 唤水筑乡 单舟见京杭\n[01:39.040] 龙健于常 百音同讲 道一种炎黄\n[01:42.740] 龙景于康 见之庙堂 亦显于曲坊\n[01:46.580] 不劳此间祥云瑞兽频频诰春长!\n[01:57.280] 干支移晷又几回\n[01:59.500] 揽尽天骄襄助一醉\n[02:01.790] 虽万言竟道不尽无字碑\n[02:04.680] 临渊乾乾 君子催\n[02:06.600] 或跃 无咎相随\n[02:09.130] 同为龙 却与往昔不连讳\n[02:12.390] 且待飞龙归 簸却沧溟水 如沸\n[02:16.700] 有龙掸风雷 见首不见尾\n[02:19.540] 苏苏万物蜕 证元亨利贞变易轮回\n[02:27.080] 龙华于旸 红旗漫卷 新水濯旧隍\n[02:30.740] 龙泰于霜 烽烟消长 更赳赳昂昂\n[02:34.430] 龙温于壮 留待潺潺 驰涌成泱泱\n[02:38.260] 好教流光紫极 鹊渡银潢伴流觞\n[02:41.660] 龙韧于刚 龙吟激荡 云止聆佳响\n[02:45.490] 龙德于昌 喜见船马 纵横间丰仓\n[02:49.150] 龙眷于邦 情习众广 仍化为一方\n[02:52.930] 其妙错综复杂 不孤兵车付一匡!\n[02:56.602]\n[03:40.980] 此去向东 瀚海游龙 滔滔几万重\n[03:44.620] 一跃破空 乘风逐虹 猎猎青云中\n[03:48.250] 天音入梦 扶摇上穹 矫矫游星宫\n[03:52.080] 犹念神州谷稻耕耘收藏守时无?\n[03:55.670] 一息一动 似异似同 无之以为用\n[03:59.240] 天地辰龙 龙生九种 但两爻合共\n[04:03.130] 假逢童蒙 欲解懵懂 何处有真龙\n[04:06.830] 只道「大哉乾元」秩秩幽幽必然中\n[04:10.350] 也道「大哉乾元」切切实实一言中!\n[04:14.693]" +} \ No newline at end of file diff --git a/doc/concepts/unique-key.md b/doc/concepts/unique-key.md index ceccd88..68e90fb 100644 --- a/doc/concepts/unique-key.md +++ b/doc/concepts/unique-key.md @@ -8,6 +8,7 @@ AquaVox 由于支持多种歌曲源,因此在代码层面标识时需要以不 - 对于本地添加,开启跨设备同步后在云端音乐库匹配的歌曲,我们会用云端的歌曲唯一 ID 覆盖本地 ID。 - 对于通过哔哩哔哩收藏夹导入,在云端音乐库中不存在的音乐,我们会以 BV 号作为唯一 ID。 - 对于云端音乐库中的歌曲,我们以 BV 号(首选)或 `md5(歌曲名+作者[主发布人])` 作为唯一 ID。 +- 仅发布在网易云平台的,以 \`NE{id}\` 作为唯一 ID。(例如,`NE2141645940`) 但是,AquaVox 的云端音乐库由于其特殊性质,不显式公开其存在。 我们未来可能允许基于社区的歌曲分享及交流,但不会像传统音乐平台一样直接公开音乐库。 diff --git a/package.json b/package.json index 6f4794c..e24b2ae 100644 --- a/package.json +++ b/package.json @@ -1,50 +1,53 @@ { - "name": "aquavox", - "version": "1.10.1", - "private": false, - "scripts": { - "dev": "vite dev", - "build": "vite build", - "preview": "vite preview", - "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", - "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch", - "test": "vitest", - "lint": "prettier --check . && eslint .", - "format": "prettier --write .", - "go": "PORT=4173 node build" - }, - "devDependencies": { - "@iconify/svelte": "^4.0.2", - "@sveltejs/adapter-auto": "^3.2.0", - "@sveltejs/adapter-node": "^5.0.1", - "@sveltejs/kit": "^2.5.9", - "@sveltejs/vite-plugin-svelte": "^3.1.0", - "@types/eslint": "^8.56.10", - "@types/uuid": "^9.0.8", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.39.0", - "postcss": "^8.4.38", - "prettier": "^3.2.5", - "prettier-plugin-svelte": "^3.2.3", - "svelte": "^4.2.17", - "svelte-check": "^3.7.1", - "tailwindcss": "^3.4.3", - "typescript": "^5.4.5", - "vite": "^5.2.11", - "vitest": "^1.6.0" - }, - "type": "module", - "dependencies": { - "@esbuild-plugins/node-globals-polyfill": "^0.2.3", - "bezier-easing": "^2.1.0", - "jotai": "^2.8.0", - "jotai-svelte": "^0.0.2", - "localforage": "^1.10.0", - "lrc-parser-ts": "^1.0.3", - "music-metadata-browser": "^2.5.10", - "rollup-plugin-node-polyfills": "^0.2.1", - "uuid": "^9.0.1" - } + "name": "aquavox", + "version": "1.10.1", + "private": false, + "scripts": { + "dev": "vite dev", + "build": "vite build", + "preview": "vite preview", + "check": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json", + "check:watch": "svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch", + "test": "vitest", + "lint": "prettier --check . && eslint .", + "format": "prettier --write .", + "go": "PORT=4173 node build" + }, + "devDependencies": { + "@iconify/svelte": "^4.0.2", + "@sveltejs/adapter-auto": "^3.2.0", + "@sveltejs/adapter-node": "^5.0.1", + "@sveltejs/kit": "^2.5.9", + "@sveltejs/vite-plugin-svelte": "^3.1.0", + "@types/eslint": "^8.56.10", + "@types/node": "^20.14.10", + "@types/uuid": "^9.0.8", + "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-svelte": "^2.39.0", + "postcss": "^8.4.38", + "prettier": "^3.2.5", + "prettier-plugin-svelte": "^3.2.3", + "svelte": "^4.2.17", + "svelte-check": "^3.7.1", + "tailwindcss": "^3.4.3", + "typescript": "^5.4.5", + "vite": "^5.2.11", + "vitest": "^1.6.0" + }, + "type": "module", + "dependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", + "@types/bun": "^1.1.6", + "bezier-easing": "^2.1.0", + "jotai": "^2.8.0", + "jotai-svelte": "^0.0.2", + "localforage": "^1.10.0", + "lrc-parser-ts": "^1.0.3", + "music-metadata-browser": "^2.5.10", + "node-cache": "^5.1.2", + "rollup-plugin-node-polyfills": "^0.2.1", + "uuid": "^9.0.1" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml deleted file mode 100644 index 35dbc36..0000000 --- a/pnpm-lock.yaml +++ /dev/null @@ -1,3374 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - '@esbuild-plugins/node-globals-polyfill': - specifier: ^0.2.3 - version: 0.2.3(esbuild@0.21.3) - bezier-easing: - specifier: ^2.1.0 - version: 2.1.0 - jotai: - specifier: ^2.8.0 - version: 2.8.0 - jotai-svelte: - specifier: ^0.0.2 - version: 0.0.2(jotai@2.8.0) - localforage: - specifier: ^1.10.0 - version: 1.10.0 - lrc-parser-ts: - specifier: ^1.0.3 - version: 1.0.3 - music-metadata-browser: - specifier: ^2.5.10 - version: 2.5.10 - rollup-plugin-node-polyfills: - specifier: ^0.2.1 - version: 0.2.1 - uuid: - specifier: ^9.0.1 - version: 9.0.1 - -devDependencies: - '@iconify/svelte': - specifier: ^4.0.2 - version: 4.0.2(svelte@4.2.17) - '@sveltejs/adapter-auto': - specifier: ^3.2.0 - version: 3.2.0(@sveltejs/kit@2.5.9) - '@sveltejs/adapter-node': - specifier: ^5.0.1 - version: 5.0.1(@sveltejs/kit@2.5.9) - '@sveltejs/kit': - specifier: ^2.5.9 - version: 2.5.9(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) - '@sveltejs/vite-plugin-svelte': - specifier: ^3.1.0 - version: 3.1.0(svelte@4.2.17)(vite@5.2.11) - '@types/eslint': - specifier: ^8.56.10 - version: 8.56.10 - '@types/uuid': - specifier: ^9.0.8 - version: 9.0.8 - autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.38) - eslint: - specifier: ^8.57.0 - version: 8.57.0 - eslint-config-prettier: - specifier: ^9.1.0 - version: 9.1.0(eslint@8.57.0) - eslint-plugin-svelte: - specifier: ^2.39.0 - version: 2.39.0(eslint@8.57.0)(svelte@4.2.17) - postcss: - specifier: ^8.4.38 - version: 8.4.38 - prettier: - specifier: ^3.2.5 - version: 3.2.5 - prettier-plugin-svelte: - specifier: ^3.2.3 - version: 3.2.3(prettier@3.2.5)(svelte@4.2.17) - svelte: - specifier: ^4.2.17 - version: 4.2.17 - svelte-check: - specifier: ^3.7.1 - version: 3.7.1(postcss@8.4.38)(svelte@4.2.17) - tailwindcss: - specifier: ^3.4.3 - version: 3.4.3 - typescript: - specifier: ^5.4.5 - version: 5.4.5 - vite: - specifier: ^5.2.11 - version: 5.2.11 - vitest: - specifier: ^1.6.0 - version: 1.6.0 - -packages: - - /@alloc/quick-lru@5.2.0: - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} - dev: true - - /@ampproject/remapping@2.3.0: - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@esbuild-plugins/node-globals-polyfill@0.2.3(esbuild@0.21.3): - resolution: {integrity: sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==} - peerDependencies: - esbuild: '*' - dependencies: - esbuild: 0.21.3 - dev: false - - /@esbuild/aix-ppc64@0.20.2: - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/aix-ppc64@0.21.3: - resolution: {integrity: sha512-yTgnwQpFVYfvvo4SvRFB0SwrW8YjOxEoT7wfMT7Ol5v7v5LDNvSGo67aExmxOb87nQNeWPVvaGBNfQ7BXcrZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm64@0.20.2: - resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.21.3: - resolution: {integrity: sha512-c+ty9necz3zB1Y+d/N+mC6KVVkGUUOcm4ZmT5i/Fk5arOaY3i6CA3P5wo/7+XzV8cb4GrI/Zjp8NuOQ9Lfsosw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-arm@0.20.2: - resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.21.3: - resolution: {integrity: sha512-bviJOLMgurLJtF1/mAoJLxDZDL6oU5/ztMHnJQRejbJrSc9FFu0QoUoFhvi6qSKJEw9y5oGyvr9fuDtzJ30rNQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/android-x64@0.20.2: - resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.21.3: - resolution: {integrity: sha512-JReHfYCRK3FVX4Ra+y5EBH1b9e16TV2OxrPAvzMsGeES0X2Ndm9ImQRI4Ket757vhc5XBOuGperw63upesclRw==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@esbuild/darwin-arm64@0.20.2: - resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.21.3: - resolution: {integrity: sha512-U3fuQ0xNiAkXOmQ6w5dKpEvXQRSpHOnbw7gEfHCRXPeTKW9sBzVck6C5Yneb8LfJm0l6le4NQfkNPnWMSlTFUQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@esbuild/darwin-x64@0.20.2: - resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.21.3: - resolution: {integrity: sha512-3m1CEB7F07s19wmaMNI2KANLcnaqryJxO1fXHUV5j1rWn+wMxdUYoPyO2TnAbfRZdi7ADRwJClmOwgT13qlP3Q==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@esbuild/freebsd-arm64@0.20.2: - resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.21.3: - resolution: {integrity: sha512-fsNAAl5pU6wmKHq91cHWQT0Fz0vtyE1JauMzKotrwqIKAswwP5cpHUCxZNSTuA/JlqtScq20/5KZ+TxQdovU/g==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/freebsd-x64@0.20.2: - resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.21.3: - resolution: {integrity: sha512-tci+UJ4zP5EGF4rp8XlZIdq1q1a/1h9XuronfxTMCNBslpCtmk97Q/5qqy1Mu4zIc0yswN/yP/BLX+NTUC1bXA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-arm64@0.20.2: - resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.21.3: - resolution: {integrity: sha512-vvG6R5g5ieB4eCJBQevyDMb31LMHthLpXTc2IGkFnPWS/GzIFDnaYFp558O+XybTmYrVjxnryru7QRleJvmZ6Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-arm@0.20.2: - resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.21.3: - resolution: {integrity: sha512-f6kz2QpSuyHHg01cDawj0vkyMwuIvN62UAguQfnNVzbge2uWLhA7TCXOn83DT0ZvyJmBI943MItgTovUob36SQ==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ia32@0.20.2: - resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.21.3: - resolution: {integrity: sha512-HjCWhH7K96Na+66TacDLJmOI9R8iDWDDiqe17C7znGvvE4sW1ECt9ly0AJ3dJH62jHyVqW9xpxZEU1jKdt+29A==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-loong64@0.20.2: - resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.21.3: - resolution: {integrity: sha512-BGpimEccmHBZRcAhdlRIxMp7x9PyJxUtj7apL2IuoG9VxvU/l/v1z015nFs7Si7tXUwEsvjc1rOJdZCn4QTU+Q==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-mips64el@0.20.2: - resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.21.3: - resolution: {integrity: sha512-5rMOWkp7FQGtAH3QJddP4w3s47iT20hwftqdm7b+loe95o8JU8ro3qZbhgMRy0VuFU0DizymF1pBKkn3YHWtsw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-ppc64@0.20.2: - resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.21.3: - resolution: {integrity: sha512-h0zj1ldel89V5sjPLo5H1SyMzp4VrgN1tPkN29TmjvO1/r0MuMRwJxL8QY05SmfsZRs6TF0c/IDH3u7XYYmbAg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-riscv64@0.20.2: - resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.21.3: - resolution: {integrity: sha512-dkAKcTsTJ+CRX6bnO17qDJbLoW37npd5gSNtSzjYQr0svghLJYGYB0NF1SNcU1vDcjXLYS5pO4qOW4YbFama4A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-s390x@0.20.2: - resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.21.3: - resolution: {integrity: sha512-vnD1YUkovEdnZWEuMmy2X2JmzsHQqPpZElXx6dxENcIwTu+Cu5ERax6+Ke1QsE814Zf3c6rxCfwQdCTQ7tPuXA==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/linux-x64@0.20.2: - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.21.3: - resolution: {integrity: sha512-IOXOIm9WaK7plL2gMhsWJd+l2bfrhfilv0uPTptoRoSb2p09RghhQQp9YY6ZJhk/kqmeRt6siRdMSLLwzuT0KQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@esbuild/netbsd-x64@0.20.2: - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.21.3: - resolution: {integrity: sha512-uTgCwsvQ5+vCQnqM//EfDSuomo2LhdWhFPS8VL8xKf+PKTCrcT/2kPPoWMTs22aB63MLdGMJiE3f1PHvCDmUOw==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/openbsd-x64@0.20.2: - resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.21.3: - resolution: {integrity: sha512-vNAkR17Ub2MgEud2Wag/OE4HTSI6zlb291UYzHez/psiKarp0J8PKGDnAhMBcHFoOHMXHfExzmjMojJNbAStrQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - /@esbuild/sunos-x64@0.20.2: - resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.21.3: - resolution: {integrity: sha512-W8H9jlGiSBomkgmouaRoTXo49j4w4Kfbl6I1bIdO/vT0+0u4f20ko3ELzV3hPI6XV6JNBVX+8BC+ajHkvffIJA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-arm64@0.20.2: - resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.21.3: - resolution: {integrity: sha512-EjEomwyLSCg8Ag3LDILIqYCZAq/y3diJ04PnqGRgq8/4O3VNlXyMd54j/saShaN4h5o5mivOjAzmU6C3X4v0xw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-ia32@0.20.2: - resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.21.3: - resolution: {integrity: sha512-WGiE/GgbsEwR33++5rzjiYsKyHywE8QSZPF7Rfx9EBfK3Qn3xyR6IjyCr5Uk38Kg8fG4/2phN7sXp4NPWd3fcw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@esbuild/win32-x64@0.20.2: - resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.21.3: - resolution: {integrity: sha512-xRxC0jaJWDLYvcUvjQmHCJSfMrgmUuvsoXgDeU/wTorQ1ngDdUBuFtgY3W1Pc5sprGAvZBtWdJX7RPg/iZZUqA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.57.0 - eslint-visitor-keys: 3.4.3 - dev: true - - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: true - - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.1 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@eslint/js@8.57.0: - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: true - - /@humanwhocodes/object-schema@2.0.3: - resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} - dev: true - - /@iconify/svelte@4.0.2(svelte@4.2.17): - resolution: {integrity: sha512-6BSrU85FzGfhQD3bTXpnkCCvBAglEt8T9QednVnXAYm4C+d3464y+pYMzhQNJm5mPId2cuiw+2wXlDflXllHDw==} - peerDependencies: - svelte: '>4.0.0' - dependencies: - '@iconify/types': 2.0.0 - svelte: 4.2.17 - dev: true - - /@iconify/types@2.0.0: - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - dev: true - - /@isaacs/cliui@8.0.2: - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - - /@jest/schemas@29.6.3: - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - - /@jridgewell/gen-mapping@0.3.5: - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - dev: true - - /@jridgewell/resolve-uri@3.1.2: - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/set-array@1.2.1: - resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - - /@jridgewell/trace-mapping@0.3.25: - resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /@nodelib/fs.scandir@2.1.5: - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - dev: true - - /@nodelib/fs.stat@2.0.5: - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - dev: true - - /@nodelib/fs.walk@1.2.8: - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 - dev: true - - /@pkgjs/parseargs@0.11.0: - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - - /@polka/url@1.0.0-next.25: - resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - dev: true - - /@rollup/plugin-commonjs@25.0.7(rollup@4.17.2): - resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.68.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - commondir: 1.0.1 - estree-walker: 2.0.2 - glob: 8.1.0 - is-reference: 1.2.1 - magic-string: 0.30.10 - rollup: 4.17.2 - dev: true - - /@rollup/plugin-json@6.1.0(rollup@4.17.2): - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - rollup: 4.17.2 - dev: true - - /@rollup/plugin-node-resolve@15.2.3(rollup@4.17.2): - resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.17.2) - '@types/resolve': 1.20.2 - deepmerge: 4.3.1 - is-builtin-module: 3.2.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 4.17.2 - dev: true - - /@rollup/pluginutils@5.1.0(rollup@4.17.2): - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - rollup: 4.17.2 - dev: true - - /@rollup/rollup-android-arm-eabi@4.17.2: - resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.17.2: - resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.17.2: - resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.17.2: - resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.17.2: - resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-musleabihf@4.17.2: - resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.17.2: - resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.17.2: - resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-powerpc64le-gnu@4.17.2: - resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.17.2: - resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-s390x-gnu@4.17.2: - resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.17.2: - resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.17.2: - resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.17.2: - resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.17.2: - resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.17.2: - resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@sinclair/typebox@0.27.8: - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - - /@sveltejs/adapter-auto@3.2.0(@sveltejs/kit@2.5.9): - resolution: {integrity: sha512-She5nKT47kwHE18v9NMe6pbJcvULr82u0V3yZ0ej3n1laWKGgkgdEABE9/ak5iDPs93LqsBkuIo51kkwCLBjJA==} - peerDependencies: - '@sveltejs/kit': ^2.0.0 - dependencies: - '@sveltejs/kit': 2.5.9(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) - import-meta-resolve: 4.1.0 - dev: true - - /@sveltejs/adapter-node@5.0.1(@sveltejs/kit@2.5.9): - resolution: {integrity: sha512-eYdmxdUWMW+dad1JfMsWBPY2vjXz9eE+52A2AQnXPScPJlIxIVk5mmbaEEzrZivLfO2wEcLTZ5vdC03W69x+iA==} - peerDependencies: - '@sveltejs/kit': ^2.4.0 - dependencies: - '@rollup/plugin-commonjs': 25.0.7(rollup@4.17.2) - '@rollup/plugin-json': 6.1.0(rollup@4.17.2) - '@rollup/plugin-node-resolve': 15.2.3(rollup@4.17.2) - '@sveltejs/kit': 2.5.9(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) - rollup: 4.17.2 - dev: true - - /@sveltejs/kit@2.5.9(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11): - resolution: {integrity: sha512-x8biUVHPQq075/ESH/UO+fwENtAcw0kg9+bloqqEnbLUNWcrWpmcL3vKrKJc4vaVh/CYKFXn47N98Sbt/Y3vKQ==} - engines: {node: '>=18.13'} - hasBin: true - requiresBuild: true - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.3 - dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) - '@types/cookie': 0.6.0 - cookie: 0.6.0 - devalue: 5.0.0 - esm-env: 1.0.0 - import-meta-resolve: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.10 - mrmime: 2.0.0 - sade: 1.8.1 - set-cookie-parser: 2.6.0 - sirv: 2.0.4 - svelte: 4.2.17 - tiny-glob: 0.2.9 - vite: 5.2.11 - dev: true - - /@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11): - resolution: {integrity: sha512-9QX28IymvBlSCqsCll5t0kQVxipsfhFFL+L2t3nTWfXnddYwxBuAEtTtlaVQpRz9c37BhJjltSeY4AJSC03SSg==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - '@sveltejs/vite-plugin-svelte': ^3.0.0 - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.0(svelte@4.2.17)(vite@5.2.11) - debug: 4.3.4 - svelte: 4.2.17 - vite: 5.2.11 - transitivePeerDependencies: - - supports-color - dev: true - - /@sveltejs/vite-plugin-svelte@3.1.0(svelte@4.2.17)(vite@5.2.11): - resolution: {integrity: sha512-sY6ncCvg+O3njnzbZexcVtUqOBE3iYmQPJ9y+yXSkOwG576QI/xJrBnQSRXFLGwJNBa0T78JEKg5cIR0WOAuUw==} - engines: {node: ^18.0.0 || >=20} - peerDependencies: - svelte: ^4.0.0 || ^5.0.0-next.0 - vite: ^5.0.0 - dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.0)(svelte@4.2.17)(vite@5.2.11) - debug: 4.3.4 - deepmerge: 4.3.1 - kleur: 4.1.5 - magic-string: 0.30.10 - svelte: 4.2.17 - svelte-hmr: 0.16.0(svelte@4.2.17) - vite: 5.2.11 - vitefu: 0.2.5(vite@5.2.11) - transitivePeerDependencies: - - supports-color - dev: true - - /@tokenizer/token@0.3.0: - resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} - dev: false - - /@types/cookie@0.6.0: - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - dev: true - - /@types/eslint@8.56.10: - resolution: {integrity: sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==} - dependencies: - '@types/estree': 1.0.5 - '@types/json-schema': 7.0.15 - dev: true - - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - dev: true - - /@types/json-schema@7.0.15: - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - dev: true - - /@types/pug@2.0.10: - resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==} - dev: true - - /@types/resolve@1.20.2: - resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - dev: true - - /@types/uuid@9.0.8: - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - dev: true - - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@vitest/expect@1.6.0: - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} - dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 - dev: true - - /@vitest/runner@1.6.0: - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} - dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 - pathe: 1.1.2 - dev: true - - /@vitest/snapshot@1.6.0: - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} - dependencies: - magic-string: 0.30.10 - pathe: 1.1.2 - pretty-format: 29.7.0 - dev: true - - /@vitest/spy@1.6.0: - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} - dependencies: - tinyspy: 2.2.1 - dev: true - - /@vitest/utils@1.6.0: - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} - dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true - - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: false - - /acorn-jsx@5.3.2(acorn@8.11.3): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - dev: true - - /acorn-walk@8.3.2: - resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - dev: true - - /ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} - dev: true - - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} - engines: {node: '>=12'} - dev: true - - /ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - dev: true - - /ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} - dev: true - - /ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} - dev: true - - /any-promise@1.3.0: - resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: true - - /anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: true - - /argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - dev: true - - /aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - dependencies: - dequal: 2.0.3 - dev: true - - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true - - /autoprefixer@10.4.19(postcss@8.4.38): - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001620 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /axobject-query@4.0.0: - resolution: {integrity: sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==} - dependencies: - dequal: 2.0.3 - dev: true - - /balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - dev: true - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /bezier-easing@2.1.0: - resolution: {integrity: sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==} - dev: false - - /binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} - dev: true - - /brace-expansion@1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion@2.0.1: - resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} - engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - dev: true - - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001620 - electron-to-chromium: 1.4.774 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) - dev: true - - /buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} - dev: true - - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - - /builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - dev: true - - /cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} - dev: true - - /callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - dev: true - - /camelcase-css@2.0.1: - resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} - engines: {node: '>= 6'} - dev: true - - /caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} - dev: true - - /chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true - - /chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /code-red@1.0.4: - resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - '@types/estree': 1.0.5 - acorn: 8.11.3 - estree-walker: 3.0.3 - periscopic: 3.1.0 - dev: true - - /color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - dev: true - - /commander@4.1.1: - resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} - engines: {node: '>= 6'} - dev: true - - /commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - dev: true - - /concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - dev: true - - /confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - dev: true - - /content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - dev: false - - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} - engines: {node: '>= 0.6'} - dev: true - - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: true - - /css-tree@2.3.1: - resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - dependencies: - mdn-data: 2.0.30 - source-map-js: 1.2.0 - dev: true - - /cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - dependencies: - ms: 2.1.2 - - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} - engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - - /deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - dev: true - - /deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} - dev: true - - /dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - dev: true - - /detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} - dev: true - - /devalue@5.0.0: - resolution: {integrity: sha512-gO+/OMXF7488D+u3ue+G7Y4AA3ZmUnB3eHJXmBTgNHvr4ZNzl36A0ZtG+XCRNYCkYx/bFmw4qtkoFLa+wSrwAA==} - dev: true - - /didyoumean@1.2.2: - resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: true - - /diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - dev: true - - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - - /eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - dev: true - - /electron-to-chromium@1.4.774: - resolution: {integrity: sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==} - dev: true - - /emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - dev: true - - /emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - dev: true - - /es6-promise@3.3.1: - resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==} - dev: true - - /esbuild@0.20.2: - resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - dev: true - - /esbuild@0.21.3: - resolution: {integrity: sha512-Kgq0/ZsAPzKrbOjCQcjoSmPoWhlcVnGAUo7jvaLHoxW1Drto0KGkR1xBNg2Cp43b9ImvxmPEJZ9xkfcnqPsfBw==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.21.3 - '@esbuild/android-arm': 0.21.3 - '@esbuild/android-arm64': 0.21.3 - '@esbuild/android-x64': 0.21.3 - '@esbuild/darwin-arm64': 0.21.3 - '@esbuild/darwin-x64': 0.21.3 - '@esbuild/freebsd-arm64': 0.21.3 - '@esbuild/freebsd-x64': 0.21.3 - '@esbuild/linux-arm': 0.21.3 - '@esbuild/linux-arm64': 0.21.3 - '@esbuild/linux-ia32': 0.21.3 - '@esbuild/linux-loong64': 0.21.3 - '@esbuild/linux-mips64el': 0.21.3 - '@esbuild/linux-ppc64': 0.21.3 - '@esbuild/linux-riscv64': 0.21.3 - '@esbuild/linux-s390x': 0.21.3 - '@esbuild/linux-x64': 0.21.3 - '@esbuild/netbsd-x64': 0.21.3 - '@esbuild/openbsd-x64': 0.21.3 - '@esbuild/sunos-x64': 0.21.3 - '@esbuild/win32-arm64': 0.21.3 - '@esbuild/win32-ia32': 0.21.3 - '@esbuild/win32-x64': 0.21.3 - dev: false - - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - dev: true - - /escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - dev: true - - /eslint-compat-utils@0.5.0(eslint@8.57.0): - resolution: {integrity: sha512-dc6Y8tzEcSYZMHa+CMPLi/hyo1FzNeonbhJL7Ol0ccuKQkwopJcJBA9YL/xmMTLU1eKigXo9vj9nALElWYSowg==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - dependencies: - eslint: 8.57.0 - semver: 7.6.2 - dev: true - - /eslint-config-prettier@9.1.0(eslint@8.57.0): - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - dependencies: - eslint: 8.57.0 - dev: true - - /eslint-plugin-svelte@2.39.0(eslint@8.57.0)(svelte@4.2.17): - resolution: {integrity: sha512-FXktBLXsrxbA+6ZvJK2z/sQOrUKyzSg3fNWK5h0reSCjr2fjAsc9ai/s/JvSl4Hgvz3nYVtTIMwarZH5RcB7BA==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0-0 || ^9.0.0-0 - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.112 - peerDependenciesMeta: - svelte: - optional: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@jridgewell/sourcemap-codec': 1.4.15 - debug: 4.3.4 - eslint: 8.57.0 - eslint-compat-utils: 0.5.0(eslint@8.57.0) - esutils: 2.0.3 - known-css-properties: 0.31.0 - postcss: 8.4.38 - postcss-load-config: 3.1.4(postcss@8.4.38) - postcss-safe-parser: 6.0.0(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - semver: 7.6.2 - svelte: 4.2.17 - svelte-eslint-parser: 0.36.0(svelte@4.2.17) - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: true - - /eslint-visitor-keys@3.4.3: - resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.1 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: true - - /esm-env@1.0.0: - resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==} - dev: true - - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 - dev: true - - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} - engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - dev: true - - /esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - dev: true - - /estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - dev: true - - /estree-walker@0.6.1: - resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} - dev: false - - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - - /estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - dev: true - - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: false - - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - dev: true - - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} - engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - dev: true - - /fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - dev: true - - /fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} - dependencies: - reusify: 1.0.4 - dev: true - - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.2.0 - dev: true - - /file-type@16.5.4: - resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==} - engines: {node: '>=10'} - dependencies: - readable-web-to-node-stream: 3.0.2 - strtok3: 6.3.0 - token-types: 4.2.1 - dev: false - - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} - engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - dev: true - - /find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - dev: true - - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.3.1 - keyv: 4.5.4 - rimraf: 3.0.2 - dev: true - - /flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} - dev: true - - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - - /fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: true - - /fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - dev: true - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: true - - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - dev: true - - /glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - dev: true - - /glob@10.3.15: - resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.4 - minipass: 7.1.1 - path-scurry: 1.11.1 - dev: true - - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 - dev: true - - /globalyzer@0.1.0: - resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} - dev: true - - /globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - dev: true - - /graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: true - - /has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} - dev: true - - /hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: true - - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - dev: true - - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - - /ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} - engines: {node: '>= 4'} - dev: true - - /immediate@3.0.6: - resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} - dev: false - - /import-fresh@3.3.0: - resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} - engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - dev: true - - /import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - dev: true - - /imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - dev: true - - /inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - /is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} - dependencies: - binary-extensions: 2.3.0 - dev: true - - /is-builtin-module@3.2.1: - resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} - engines: {node: '>=6'} - dependencies: - builtin-modules: 3.3.0 - dev: true - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.2 - dev: true - - /is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - dev: true - - /is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true - - /is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} - dev: true - - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - dev: true - - /is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /is-reference@3.0.2: - resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==} - dependencies: - '@types/estree': 1.0.5 - dev: true - - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} - hasBin: true - dev: true - - /jotai-svelte@0.0.2(jotai@2.8.0): - resolution: {integrity: sha512-dPxBEIIMNkfgtXvvyiiCW5ds1VeAyeyxfIu5qeXb7VSgvNgqU/lCKld3ue7yRLdcRJUx2ddocI49WTzzNp/uGQ==} - peerDependencies: - jotai: '>=1.12.0' - dependencies: - jotai: 2.8.0 - dev: false - - /jotai@2.8.0: - resolution: {integrity: sha512-yZNMC36FdLOksOr8qga0yLf14miCJlEThlp5DeFJNnqzm2+ZG7wLcJzoOyij5K6U6Xlc5ljQqPDlJRgqW0Y18g==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=17.0.0' - react: '>=17.0.0' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - dev: false - - /js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - dev: true - - /js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} - hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - - /json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - dev: true - - /json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - dev: true - - /json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - dev: true - - /keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - dependencies: - json-buffer: 3.0.1 - dev: true - - /kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} - dev: true - - /known-css-properties@0.31.0: - resolution: {integrity: sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==} - dev: true - - /levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - dev: true - - /lie@3.1.1: - resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==} - dependencies: - immediate: 3.0.6 - dev: false - - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: true - - /lilconfig@3.1.1: - resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} - engines: {node: '>=14'} - dev: true - - /lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - dev: true - - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.7.0 - pkg-types: 1.1.1 - dev: true - - /localforage@1.10.0: - resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==} - dependencies: - lie: 3.1.1 - dev: false - - /locate-character@3.0.0: - resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} - dev: true - - /locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true - - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true - - /lrc-parser-ts@1.0.3: - resolution: {integrity: sha512-BZItDkVpFgY/D9AGBKJkLZXaSJQ1LTk88o0YI863PfdzUzGmXxHW+53fuRAaiNKabA43RgCb7T6mJ2PG6ysLfQ==} - dev: false - - /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - dev: true - - /magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: false - - /magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /mdn-data@2.0.30: - resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} - dev: true - - /media-typer@1.1.0: - resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} - engines: {node: '>= 0.8'} - dev: false - - /merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true - - /merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - dev: true - - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - dev: true - - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - dev: true - - /min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} - dev: true - - /minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.4: - resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /minipass@7.1.1: - resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} - engines: {node: '>=16 || 14 >=14.17'} - dev: true - - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /mlly@1.7.0: - resolution: {integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 - dev: true - - /mri@1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: true - - /mrmime@2.0.0: - resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} - engines: {node: '>=10'} - dev: true - - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /music-metadata-browser@2.5.10: - resolution: {integrity: sha512-03UnAmsSJoZZ5kK2BnEnd2zpH8LXRWQ6xlc7akKudhc2d9FT+yAiqapnmOzjW3g4cxxvIsSK5MVBO2Gi+Ymjfw==} - dependencies: - buffer: 6.0.3 - debug: 4.3.4 - music-metadata: 7.14.0 - readable-stream: 4.5.2 - readable-web-to-node-stream: 3.0.2 - transitivePeerDependencies: - - supports-color - dev: false - - /music-metadata@7.14.0: - resolution: {integrity: sha512-xrm3w7SV0Wk+OythZcSbaI8mcr/KHd0knJieu8bVpaPfMv/Agz5EooCAPz3OR5hbYMiUG6dgAPKZKnMzV+3amA==} - engines: {node: '>=10'} - dependencies: - '@tokenizer/token': 0.3.0 - content-type: 1.0.5 - debug: 4.3.4 - file-type: 16.5.4 - media-typer: 1.1.0 - strtok3: 6.3.0 - token-types: 4.2.1 - transitivePeerDependencies: - - supports-color - dev: false - - /mz@2.7.0: - resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: true - - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - - /natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - dev: true - - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true - - /normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} - dev: true - - /normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} - dev: true - - /npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - dev: true - - /object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - dev: true - - /object-hash@3.0.0: - resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} - engines: {node: '>= 6'} - dev: true - - /once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - dev: true - - /optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - dev: true - - /p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 - dev: true - - /p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - dev: true - - /parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - dev: true - - /path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} - dev: true - - /path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} - dev: true - - /path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} - dev: true - - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - dev: true - - /path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - dev: true - - /path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} - dependencies: - lru-cache: 10.2.2 - minipass: 7.1.1 - dev: true - - /pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - dev: true - - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true - - /peek-readable@4.1.0: - resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==} - engines: {node: '>=8'} - dev: false - - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - dependencies: - '@types/estree': 1.0.5 - estree-walker: 3.0.3 - is-reference: 3.0.2 - dev: true - - /picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - dev: true - - /picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} - dev: true - - /pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} - dev: true - - /pirates@4.0.6: - resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} - engines: {node: '>= 6'} - dev: true - - /pkg-types@1.1.1: - resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} - dependencies: - confbox: 0.1.7 - mlly: 1.7.0 - pathe: 1.1.2 - dev: true - - /postcss-import@15.1.0(postcss@8.4.38): - resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} - engines: {node: '>=14.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - dev: true - - /postcss-js@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.38 - dev: true - - /postcss-load-config@3.1.4(postcss@8.4.38): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - postcss: 8.4.38 - yaml: 1.10.2 - dev: true - - /postcss-load-config@4.0.2(postcss@8.4.38): - resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} - engines: {node: '>= 14'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 3.1.1 - postcss: 8.4.38 - yaml: 2.4.2 - dev: true - - /postcss-nested@6.0.1(postcss@8.4.38): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-safe-parser@6.0.0(postcss@8.4.38): - resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.3.3 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-scss@4.0.9(postcss@8.4.38): - resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.4.29 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-selector-parser@6.0.16: - resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} - engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: true - - /postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: true - - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - dev: true - - /prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - dev: true - - /prettier-plugin-svelte@3.2.3(prettier@3.2.5)(svelte@4.2.17): - resolution: {integrity: sha512-wJq8RunyFlWco6U0WJV5wNCM7zpBFakS76UBSbmzMGpncpK98NZABaE+s7n8/APDCEVNHXC5Mpq+MLebQtsRlg==} - peerDependencies: - prettier: ^3.0.0 - svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0 - dependencies: - prettier: 3.2.5 - svelte: 4.2.17 - dev: true - - /prettier@3.2.5: - resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} - engines: {node: '>=14'} - hasBin: true - dev: true - - /pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 - dev: true - - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: false - - /punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} - dev: true - - /queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - dev: true - - /react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - dev: true - - /read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: true - - /readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: false - - /readable-stream@4.5.2: - resolution: {integrity: sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - string_decoder: 1.3.0 - dev: false - - /readable-web-to-node-stream@3.0.2: - resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==} - engines: {node: '>=8'} - dependencies: - readable-stream: 3.6.2 - dev: false - - /readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - dev: true - - /resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - dev: true - - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - dev: true - - /rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - hasBin: true - dependencies: - glob: 7.2.3 - dev: true - - /rollup-plugin-inject@3.0.2: - resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. - dependencies: - estree-walker: 0.6.1 - magic-string: 0.25.9 - rollup-pluginutils: 2.8.2 - dev: false - - /rollup-plugin-node-polyfills@0.2.1: - resolution: {integrity: sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==} - dependencies: - rollup-plugin-inject: 3.0.2 - dev: false - - /rollup-pluginutils@2.8.2: - resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - dependencies: - estree-walker: 0.6.1 - dev: false - - /rollup@4.17.2: - resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.17.2 - '@rollup/rollup-android-arm64': 4.17.2 - '@rollup/rollup-darwin-arm64': 4.17.2 - '@rollup/rollup-darwin-x64': 4.17.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.17.2 - '@rollup/rollup-linux-arm-musleabihf': 4.17.2 - '@rollup/rollup-linux-arm64-gnu': 4.17.2 - '@rollup/rollup-linux-arm64-musl': 4.17.2 - '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2 - '@rollup/rollup-linux-riscv64-gnu': 4.17.2 - '@rollup/rollup-linux-s390x-gnu': 4.17.2 - '@rollup/rollup-linux-x64-gnu': 4.17.2 - '@rollup/rollup-linux-x64-musl': 4.17.2 - '@rollup/rollup-win32-arm64-msvc': 4.17.2 - '@rollup/rollup-win32-ia32-msvc': 4.17.2 - '@rollup/rollup-win32-x64-msvc': 4.17.2 - fsevents: 2.3.3 - dev: true - - /run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - dev: true - - /sade@1.8.1: - resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} - engines: {node: '>=6'} - dependencies: - mri: 1.2.0 - dev: true - - /safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - dev: false - - /sander@0.5.1: - resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==} - dependencies: - es6-promise: 3.3.1 - graceful-fs: 4.2.11 - mkdirp: 0.5.6 - rimraf: 2.7.1 - dev: true - - /semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} - hasBin: true - dev: true - - /set-cookie-parser@2.6.0: - resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==} - dev: true - - /shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} - dev: true - - /siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - - /signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} - dev: true - - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.25 - mrmime: 2.0.0 - totalist: 3.0.1 - dev: true - - /sorcery@0.11.0: - resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==} - hasBin: true - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - buffer-crc32: 0.2.13 - minimist: 1.2.8 - sander: 0.5.1 - dev: true - - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - dev: true - - /sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - deprecated: Please use @jridgewell/sourcemap-codec instead - dev: false - - /stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true - - /string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - dev: true - - /string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - dev: true - - /string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - dev: false - - /strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - dev: true - - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - dev: true - - /strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - - /strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - dev: true - - /strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - dependencies: - js-tokens: 9.0.0 - dev: true - - /strtok3@6.3.0: - resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==} - engines: {node: '>=10'} - dependencies: - '@tokenizer/token': 0.3.0 - peek-readable: 4.1.0 - dev: false - - /sucrase@3.35.0: - resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - '@jridgewell/gen-mapping': 0.3.5 - commander: 4.1.1 - glob: 10.3.15 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.6 - ts-interface-checker: 0.1.13 - dev: true - - /supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - dev: true - - /svelte-check@3.7.1(postcss@8.4.38)(svelte@4.2.17): - resolution: {integrity: sha512-U4uJoLCzmz2o2U33c7mPDJNhRYX/DNFV11XTUDlFxaKLsO7P+40gvJHMPpoRfa24jqZfST4/G9fGNcUGMO8NAQ==} - hasBin: true - peerDependencies: - svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - chokidar: 3.6.0 - fast-glob: 3.3.2 - import-fresh: 3.3.0 - picocolors: 1.0.1 - sade: 1.8.1 - svelte: 4.2.17 - svelte-preprocess: 5.1.4(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5) - typescript: 5.4.5 - transitivePeerDependencies: - - '@babel/core' - - coffeescript - - less - - postcss - - postcss-load-config - - pug - - sass - - stylus - - sugarss - dev: true - - /svelte-eslint-parser@0.36.0(svelte@4.2.17): - resolution: {integrity: sha512-/6YmUSr0FAVxW8dXNdIMydBnddPMHzaHirAZ7RrT21XYdgGGZMh0LQG6CZsvAFS4r2Y4ItUuCQc8TQ3urB30mQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - svelte: ^3.37.0 || ^4.0.0 || ^5.0.0-next.115 - peerDependenciesMeta: - svelte: - optional: true - dependencies: - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - postcss: 8.4.38 - postcss-scss: 4.0.9(postcss@8.4.38) - svelte: 4.2.17 - dev: true - - /svelte-hmr@0.16.0(svelte@4.2.17): - resolution: {integrity: sha512-Gyc7cOS3VJzLlfj7wKS0ZnzDVdv3Pn2IuVeJPk9m2skfhcu5bq3wtIZyQGggr7/Iim5rH5cncyQft/kRLupcnA==} - engines: {node: ^12.20 || ^14.13.1 || >= 16} - peerDependencies: - svelte: ^3.19.0 || ^4.0.0 - dependencies: - svelte: 4.2.17 - dev: true - - /svelte-preprocess@5.1.4(postcss@8.4.38)(svelte@4.2.17)(typescript@5.4.5): - resolution: {integrity: sha512-IvnbQ6D6Ao3Gg6ftiM5tdbR6aAETwjhHV+UKGf5bHGYR69RQvF1ho0JKPcbUON4vy4R7zom13jPjgdOWCQ5hDA==} - engines: {node: '>= 16.0.0'} - requiresBuild: true - peerDependencies: - '@babel/core': ^7.10.2 - coffeescript: ^2.5.1 - less: ^3.11.3 || ^4.0.0 - postcss: ^7 || ^8 - postcss-load-config: ^2.1.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - pug: ^3.0.0 - sass: ^1.26.8 - stylus: ^0.55.0 - sugarss: ^2.0.0 || ^3.0.0 || ^4.0.0 - svelte: ^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0 - typescript: '>=3.9.5 || ^4.0.0 || ^5.0.0' - peerDependenciesMeta: - '@babel/core': - optional: true - coffeescript: - optional: true - less: - optional: true - postcss: - optional: true - postcss-load-config: - optional: true - pug: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - typescript: - optional: true - dependencies: - '@types/pug': 2.0.10 - detect-indent: 6.1.0 - magic-string: 0.30.10 - postcss: 8.4.38 - sorcery: 0.11.0 - strip-indent: 3.0.0 - svelte: 4.2.17 - typescript: 5.4.5 - dev: true - - /svelte@4.2.17: - resolution: {integrity: sha512-N7m1YnoXtRf5wya5Gyx3TWuTddI4nAyayyIWFojiWV5IayDYNV5i2mRp/7qNGol4DtxEYxljmrbgp1HM6hUbmQ==} - engines: {node: '>=16'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.25 - '@types/estree': 1.0.5 - acorn: 8.11.3 - aria-query: 5.3.0 - axobject-query: 4.0.0 - code-red: 1.0.4 - css-tree: 2.3.1 - estree-walker: 3.0.3 - is-reference: 3.0.2 - locate-character: 3.0.0 - magic-string: 0.30.10 - periscopic: 3.1.0 - dev: true - - /tailwindcss@3.4.3: - resolution: {integrity: sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==} - engines: {node: '>=14.0.0'} - hasBin: true - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.6.0 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.0 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.1 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-js: 4.0.1(postcss@8.4.38) - postcss-load-config: 4.0.2(postcss@8.4.38) - postcss-nested: 6.0.1(postcss@8.4.38) - postcss-selector-parser: 6.0.16 - resolve: 1.22.8 - sucrase: 3.35.0 - transitivePeerDependencies: - - ts-node - dev: true - - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - dev: true - - /thenify-all@1.6.0: - resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} - engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: true - - /thenify@3.3.1: - resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: true - - /tiny-glob@0.2.9: - resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} - dependencies: - globalyzer: 0.1.0 - globrex: 0.1.2 - dev: true - - /tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} - dev: true - - /tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} - engines: {node: '>=14.0.0'} - dev: true - - /tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} - engines: {node: '>=14.0.0'} - dev: true - - /to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - dev: true - - /token-types@4.2.1: - resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} - engines: {node: '>=10'} - dependencies: - '@tokenizer/token': 0.3.0 - ieee754: 1.2.1 - dev: false - - /totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} - dev: true - - /ts-interface-checker@0.1.13: - resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: true - - /type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - dev: true - - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - dev: true - - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} - dev: true - - /update-browserslist-db@1.0.16(browserslist@4.23.0): - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.0 - escalade: 3.1.2 - picocolors: 1.0.1 - dev: true - - /uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.1 - dev: true - - /util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} - hasBin: true - dev: false - - /vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.2.11 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /vite@5.2.11: - resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.17.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vitefu@0.2.5(vite@5.2.11): - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - vite: - optional: true - dependencies: - vite: 5.2.11 - dev: true - - /vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 - happy-dom: '*' - jsdom: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@types/node': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.2 - chai: 4.4.1 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 - pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.8.0 - tinypool: 0.8.4 - vite: 5.2.11 - vite-node: 1.6.0 - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true - - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true - dependencies: - siginfo: 2.0.0 - stackback: 0.0.2 - dev: true - - /word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - dev: true - - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - dev: true - - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} - dependencies: - ansi-styles: 6.2.1 - string-width: 5.1.2 - strip-ansi: 7.1.0 - dev: true - - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - dev: true - - /yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} - dev: true - - /yaml@2.4.2: - resolution: {integrity: sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==} - engines: {node: '>= 14'} - hasBin: true - dev: true - - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} - dev: true - - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} - dev: true diff --git a/src/lib/server/cache.ts b/src/lib/server/cache.ts new file mode 100644 index 0000000..abed880 --- /dev/null +++ b/src/lib/server/cache.ts @@ -0,0 +1,4 @@ +import NodeCache from "node-cache"; +export const songData = new NodeCache( { checkperiod: 0 } ); +export const songNameCache = new NodeCache( { checkperiod: 0} ); +export const globalMemoryStorage = new NodeCache( { checkperiod: 0} ); \ No newline at end of file diff --git a/src/lib/server/database/loadData.ts b/src/lib/server/database/loadData.ts new file mode 100644 index 0000000..e00f4bb --- /dev/null +++ b/src/lib/server/database/loadData.ts @@ -0,0 +1,33 @@ +import fs from 'fs'; +import { globalMemoryStorage, songData, songNameCache } from '$lib/server/cache.js'; + +export async function loadData() { + const LastLoaded: number | undefined = globalMemoryStorage.get("lastLoadData"); + const currentTime = new Date().getTime(); + // Already loaded. + if (LastLoaded && currentTime - LastLoaded < 3600) { + return; + } + + const dataPath = "./data/song/"; + const songList = fs.readdirSync(dataPath) + .map(fileName => { + if (fileName.endsWith(".json")) + return fileName.slice(0, fileName.length - 5); + else return null; + }) + .filter(fileName => fileName !== null); + for (const songID of songList) { + try { + const fileContentString = fs.readFileSync(dataPath + songID + ".json").toString(); + const data = JSON.parse(fileContentString); + songData.set(songID, data); + const metadata: MusicMetadata = data; + songNameCache.set(metadata.name, metadata); + } + catch { + console.error(`[load-song-data] Could not load song ID ${songID}`); + } + } + globalMemoryStorage.set("lastLoadData", new Date().getTime()); +} \ No newline at end of file diff --git a/src/lib/server/database/musicInfo.d.ts b/src/lib/server/database/musicInfo.d.ts new file mode 100644 index 0000000..5a3b6c9 --- /dev/null +++ b/src/lib/server/database/musicInfo.d.ts @@ -0,0 +1,18 @@ +interface MusicMetadata { + name: string; + signer?: string | string[]; + producer?: string; + lyric?: string; + tuning?: string | string[]; + lyricist?: string | string[]; + composer?: string | string[]; + arranger?: string | string[]; + mixing?: string | string[]; + video?: string | string[]; + illustrator?: string | string[]; + songURL?: string; + duration?: number; + publishTime?: string; + views?: number; + updateTime?: string; +} \ No newline at end of file diff --git a/src/routes/api/database/search/+server.ts b/src/routes/api/database/search/+server.ts new file mode 100644 index 0000000..ea4400a --- /dev/null +++ b/src/routes/api/database/search/+server.ts @@ -0,0 +1,27 @@ +import { songNameCache } from '$lib/server/cache.js'; +import { loadData } from '$lib/server/database/loadData'; +import { json, error } from '@sveltejs/kit'; + +export async function GET({ url }) { + const keyword = url.searchParams.get("keyword"); + + loadData(); + + if (keyword === null) { + return error(400, { + "message": "Miss parameter: keyword" + }) + } + + const resultList: MusicMetadata[] = []; + + for (const songName of songNameCache.keys()){ + if (songName.toLocaleLowerCase().includes(keyword.toLocaleLowerCase())) { + resultList.push(songNameCache.get(songName)!); + } + } + + return json({ + "result": resultList + }); +} \ No newline at end of file diff --git a/src/routes/api/database/song/[id]/+server.ts b/src/routes/api/database/song/[id]/+server.ts new file mode 100644 index 0000000..748d52b --- /dev/null +++ b/src/routes/api/database/song/[id]/+server.ts @@ -0,0 +1,25 @@ +import { json, error } from '@sveltejs/kit'; +import fs from 'fs'; + +export async function GET({ params }) { + const filePath = `./data/song/${params.id}.json`; + if (!fs.existsSync(filePath)) { + return error(404, { + message: "No correspoding song." + }) + } + const data = fs.readFileSync(filePath); + return json(JSON.parse(data.toString())); +} + +export async function POST({ params, request }) { + const timeStamp = new Date().getTime(); + if (!fs.existsSync("./data/pending/")) { + fs.mkdirSync("./data/pending"); + } + const filePath = `./data/pending/${params.id}-${timeStamp}.json`; + const data: MusicMetadata = await request.json(); + data.updateTime = new Date().getTime().toString(); + fs.writeFileSync(filePath, JSON.stringify(data)); + return json({}); +} \ No newline at end of file diff --git a/src/routes/api/database/songs/+server.ts b/src/routes/api/database/songs/+server.ts new file mode 100644 index 0000000..4daa7b3 --- /dev/null +++ b/src/routes/api/database/songs/+server.ts @@ -0,0 +1,15 @@ +import { songData } from '$lib/server/cache.js'; +import { loadData } from '$lib/server/database/loadData.js'; +import { json } from '@sveltejs/kit'; + +export async function GET({ url }) { + const limit = parseInt(url.searchParams.get("limit") ?? "20"); + const offset = parseInt(url.searchParams.get("offset") ?? "0"); + loadData(); + const songIDList = songData.keys().slice(offset, offset + limit); + const songDataList = []; + for (const songID of songIDList) { + songDataList.push(songData.get(songID)!); + } + return json(songDataList); +} \ No newline at end of file diff --git a/src/routes/database/+layout.svelte b/src/routes/database/+layout.svelte new file mode 100644 index 0000000..d154c1e --- /dev/null +++ b/src/routes/database/+layout.svelte @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/routes/database/+page.svelte b/src/routes/database/+page.svelte new file mode 100644 index 0000000..a0164b2 --- /dev/null +++ b/src/routes/database/+page.svelte @@ -0,0 +1,3 @@ +
+

AquaVox 音乐数据库

+
\ No newline at end of file diff --git a/jsconfig.json b/tsconfig.json similarity index 92% rename from jsconfig.json rename to tsconfig.json index f28e9d5..43a1af0 100644 --- a/jsconfig.json +++ b/tsconfig.json @@ -9,7 +9,8 @@ "skipLibCheck": true, "sourceMap": true, "strict": true, - "moduleResolution": "bundler" + "moduleResolution": "bundler", + "types": ["bun"] } // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias // except $lib which is handled by https://kit.svelte.dev/docs/configuration#files