diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index d07678926..821429270 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -38,7 +38,9 @@ jobs: eslint- - name: Lint - run: pnpm lint:ci + run: | + pnpm typecheck + pnpm lint:ci - name: Unit Test run: | diff --git a/package.json b/package.json index f8087681e..a3868bd75 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "scriptcat", - "version": "1.2.2", + "version": "1.3.0-beta.1", "description": "脚本猫,一个可以执行用户脚本的浏览器扩展,万物皆可脚本化,让你的浏览器可以做更多的事情!", "author": "CodFrm", "license": "GPLv3", @@ -11,6 +11,7 @@ "test:ci": "vitest run --test-timeout=500 --no-coverage --isolate=false --reporter=default --reporter.summary=false", "coverage": "vitest run --coverage", "coverage:ci": "vitest run --coverage --silent --reporter=default --reporter.default.summary=false", + "typecheck": "tsc --noEmit", "build": "cross-env NODE_ENV=production rspack build", "dev": "cross-env NODE_ENV=development rspack", "dev:noMap": "cross-env NODE_ENV=development NO_MAP=true rspack", @@ -24,7 +25,7 @@ "crowdin:download": "node ./scripts/crowdin-download.js" }, "dependencies": { - "@arco-design/web-react": "^2.66.1", + "@arco-design/web-react": "^2.66.7", "@dnd-kit/core": "^6.3.1", "@dnd-kit/modifiers": "^9.0.0", "@dnd-kit/sortable": "^10.0.0", @@ -33,7 +34,7 @@ "crypto-js": "^4.2.0", "dayjs": "^1.11.13", "dexie": "^4.0.10", - "eslint-linter-browserify": "^9.26.0", + "eslint-linter-browserify": "9.26.0", "eventemitter3": "^5.0.1", "i18next": "^23.16.4", "monaco-editor": "^0.52.2", @@ -48,51 +49,47 @@ "string-similarity-js": "^2.1.4", "uuid": "^11.1.0", "webdav": "^5.8.0", - "yaml": "^2.8.0" + "yaml": "^2.8.1" }, "devDependencies": { "@crowdin/cli": "^4.9.0", - "@eslint/compat": "^1.3.1", - "@eslint/js": "^9.30.1", - "@rspack/cli": "^1.4.4", - "@rspack/core": "^1.4.4", - "@rspack/plugin-react-refresh": "^1.4.3", + "@eslint/compat": "^1.4.1", + "@eslint/js": "9.38.0", + "@rspack/cli": "^1.5.8", + "@rspack/core": "^1.5.8", "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", - "@testing-library/user-event": "^14.6.1", - "@types/chrome": "^0.1.1", + "@types/chrome": "^0.1.27", "@types/crypto-js": "^4.2.2", "@types/node": "^22.12.0", "@types/pako": "^2.0.3", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.1", - "@types/semver": "^7.5.8", + "@types/semver": "^7.7.1", "@types/serviceworker": "^0.0.120", - "@unocss/postcss": "0.65.4", - "@vitest/coverage-v8": "3.2.4", - "autoprefixer": "^10.4.20", - "cross-env": "^7.0.3", + "@unocss/postcss": "66.5.4", + "@vitest/coverage-v8": "^3.2.4", + "autoprefixer": "^10.4.21", + "cross-env": "^10.1.0", "crx": "^5.0.1", - "eslint": "^9.30.1", - "eslint-config-prettier": "^10.1.5", - "eslint-plugin-prettier": "^5.5.1", + "eslint": "^9.38.0", + "eslint-config-prettier": "^10.1.8", + "eslint-plugin-prettier": "^5.5.4", "eslint-plugin-react": "^7.37.5", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-userscripts": "^0.5.6", - "fake-indexeddb": "^6.0.1", - "globals": "^16.3.0", + "globals": "^16.5.0", "jsdom": "^26.1.0", "jszip": "^3.10.1", "mock-xmlhttprequest": "^8.4.1", "postcss": "^8.5.6", - "postcss-loader": "^8.1.1", + "postcss-loader": "^8.2.0", "prettier": "^3.6.2", - "react-refresh": "^0.17.0", - "semver": "^7.7.2", + "semver": "^7.7.1", "ts-node": "^10.9.2", - "typescript": "^5.8.3", - "typescript-eslint": "^8.35.1", - "unocss": "0.65.4", + "typescript": "^5.9.3", + "typescript-eslint": "^8.46.2", + "unocss": "66.5.4", "vitest": "^3.2.4" }, "packageManager": "pnpm@10.12.4" diff --git a/packages/cloudscript/local.ts b/packages/cloudscript/local.ts index b21d015ed..dc0e3655c 100644 --- a/packages/cloudscript/local.ts +++ b/packages/cloudscript/local.ts @@ -1,7 +1,7 @@ import { ExtVersion } from "@App/app/const"; import type { Script } from "@App/app/repo/scripts"; import type { Value } from "@App/app/repo/value"; -import type JSZip from "jszip"; +import { type JSZipFile } from "@App/pkg/utils/jszip-x"; import packageTpl from "@App/template/cloudcat-package/package.tpl"; import utilsTpl from "@App/template/cloudcat-package/utils.tpl"; import indexTpl from "@App/template/cloudcat-package/index.tpl"; @@ -10,12 +10,12 @@ import type CloudScript from "./cloudscript"; // 导出到本地,一个可执行到npm包 export default class LocalCloudScript implements CloudScript { - zip: JSZip; + zip: JSZipFile; params: ExportParams; constructor(params: ExportParams) { - this.zip = params.zip! as JSZip; + this.zip = params.zip! as JSZipFile; this.params = params; } diff --git a/packages/eslint/compat-headers.js b/packages/eslint/compat-headers.js index 624625cf3..08eb3ce19 100644 --- a/packages/eslint/compat-headers.js +++ b/packages/eslint/compat-headers.js @@ -16,6 +16,7 @@ const compatMap = { scriptUrl: [], storageName: [], "early-start": [], + "require-css": [], }, }; diff --git a/packages/filesystem/baidu/baidu.ts b/packages/filesystem/baidu/baidu.ts index 26614fafb..88f013150 100644 --- a/packages/filesystem/baidu/baidu.ts +++ b/packages/filesystem/baidu/baidu.ts @@ -1,6 +1,6 @@ import { AuthVerify } from "../auth"; import type FileSystem from "../filesystem"; -import type { File, FileReader, FileWriter } from "../filesystem"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; import { BaiduFileReader, BaiduFileWriter } from "./rw"; @@ -29,11 +29,11 @@ export default class BaiduFileSystem implements FileSystem { return new BaiduFileSystem(joinPath(this.path, path), this.accessToken); } - async create(path: string): Promise { + async create(path: string, _opts?: FileCreateOptions): Promise { return new BaiduFileWriter(this, joinPath(this.path, path)); } - async createDir(dir: string): Promise { + async createDir(dir: string, _opts?: FileCreateOptions): Promise { dir = joinPath(this.path, dir); const urlencoded = new URLSearchParams(); urlencoded.append("path", dir); diff --git a/packages/filesystem/dropbox/dropbox.ts b/packages/filesystem/dropbox/dropbox.ts index 0bae19c96..79b97a57a 100644 --- a/packages/filesystem/dropbox/dropbox.ts +++ b/packages/filesystem/dropbox/dropbox.ts @@ -1,6 +1,6 @@ import { AuthVerify } from "../auth"; import type FileSystem from "../filesystem"; -import type { File, FileReader, FileWriter } from "../filesystem"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; import { DropboxFileReader, DropboxFileWriter } from "./rw"; @@ -32,11 +32,11 @@ export default class DropboxFileSystem implements FileSystem { return Promise.resolve(new DropboxFileSystem(joinPath(this.path, path), this.accessToken)); } - create(path: string): Promise { + create(path: string, _opts?: FileCreateOptions): Promise { return Promise.resolve(new DropboxFileWriter(this, joinPath(this.path, path))); } - async createDir(dir: string): Promise { + async createDir(dir: string, _opts?: FileCreateOptions): Promise { if (!dir) { return Promise.resolve(); } diff --git a/packages/filesystem/filesystem.ts b/packages/filesystem/filesystem.ts index 0ee1847ac..d5b74f77a 100644 --- a/packages/filesystem/filesystem.ts +++ b/packages/filesystem/filesystem.ts @@ -27,6 +27,10 @@ export interface FileWriter { export type FileReadWriter = FileReader & FileWriter; +export type FileCreateOptions = { + modifiedDate?: number; +}; + // 文件读取 export default interface FileSystem { // 授权验证 @@ -36,9 +40,9 @@ export default interface FileSystem { // 打开目录 openDir(path: string): Promise; // 创建文件 - create(path: string): Promise; + create(path: string, opts?: FileCreateOptions): Promise; // 创建目录 - createDir(dir: string): Promise; + createDir(dir: string, opts?: FileCreateOptions): Promise; // 删除文件 delete(path: string): Promise; // 文件列表 diff --git a/packages/filesystem/googledrive/googledrive.ts b/packages/filesystem/googledrive/googledrive.ts index f0b41ec4c..d9072fb66 100644 --- a/packages/filesystem/googledrive/googledrive.ts +++ b/packages/filesystem/googledrive/googledrive.ts @@ -1,6 +1,6 @@ import { AuthVerify } from "../auth"; import type FileSystem from "../filesystem"; -import type { File, FileReader, FileWriter } from "../filesystem"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; import { GoogleDriveFileReader, GoogleDriveFileWriter } from "./rw"; @@ -31,10 +31,10 @@ export default class GoogleDriveFileSystem implements FileSystem { return Promise.resolve(new GoogleDriveFileSystem(joinPath(this.path, path), this.accessToken)); } - create(path: string): Promise { + create(path: string, _opts?: FileCreateOptions): Promise { return Promise.resolve(new GoogleDriveFileWriter(this, joinPath(this.path, path))); } - async createDir(dir: string): Promise { + async createDir(dir: string, _opts?: FileCreateOptions): Promise { if (!dir) { return Promise.resolve(); } diff --git a/packages/filesystem/onedrive/onedrive.ts b/packages/filesystem/onedrive/onedrive.ts index 78d8bae1b..43005476d 100644 --- a/packages/filesystem/onedrive/onedrive.ts +++ b/packages/filesystem/onedrive/onedrive.ts @@ -1,5 +1,5 @@ import { AuthVerify } from "../auth"; -import type { File, FileReader, FileWriter } from "../filesystem"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "../filesystem"; import type FileSystem from "../filesystem"; import { joinPath } from "../utils"; import { OneDriveFileReader, OneDriveFileWriter } from "./rw"; @@ -31,11 +31,11 @@ export default class OneDriveFileSystem implements FileSystem { return new OneDriveFileSystem(joinPath(this.path, path), this.accessToken); } - async create(path: string): Promise { + async create(path: string, _opts?: FileCreateOptions): Promise { return new OneDriveFileWriter(this, joinPath(this.path, path)); } - async createDir(dir: string): Promise { + async createDir(dir: string, _opts?: FileCreateOptions): Promise { if (dir && dir.startsWith("ScriptCat")) { dir = dir.substring(9); if (dir.startsWith("/")) { diff --git a/packages/filesystem/webdav/webdav.ts b/packages/filesystem/webdav/webdav.ts index f446533ec..11454fc38 100644 --- a/packages/filesystem/webdav/webdav.ts +++ b/packages/filesystem/webdav/webdav.ts @@ -1,7 +1,7 @@ import type { AuthType, FileStat, WebDAVClient } from "webdav"; import { createClient } from "webdav"; import type FileSystem from "../filesystem"; -import type { File, FileReader, FileWriter } from "../filesystem"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "../filesystem"; import { joinPath } from "../utils"; import { WebDAVFileReader, WebDAVFileWriter } from "./rw"; import { WarpTokenError } from "../error"; @@ -47,11 +47,11 @@ export default class WebDAVFileSystem implements FileSystem { return new WebDAVFileSystem(this.client, joinPath(this.basePath, path), this.url); } - async create(path: string): Promise { + async create(path: string, _opts?: FileCreateOptions): Promise { return new WebDAVFileWriter(this.client, joinPath(this.basePath, path)); } - async createDir(path: string): Promise { + async createDir(path: string, _opts?: FileCreateOptions): Promise { try { await this.client.createDirectory(joinPath(this.basePath, path)); } catch (e: any) { diff --git a/packages/filesystem/zip/rw.ts b/packages/filesystem/zip/rw.ts index 1d022e73d..04bd30530 100644 --- a/packages/filesystem/zip/rw.ts +++ b/packages/filesystem/zip/rw.ts @@ -1,6 +1,6 @@ import type { JSZipObject } from "jszip"; -import type JSZip from "jszip"; -import type { FileReader, FileWriter } from "../filesystem"; +import type { JSZipFileOptions, JSZipFile } from "@App/pkg/utils/jszip-x"; +import type { FileCreateOptions, FileReader, FileWriter } from "../filesystem"; export class ZipFileReader implements FileReader { zipObject: JSZipObject; @@ -15,16 +15,27 @@ export class ZipFileReader implements FileReader { } export class ZipFileWriter implements FileWriter { - zip: JSZip; + zip: JSZipFile; path: string; - constructor(zip: JSZip, path: string) { + modifiedDate: number | undefined; + + constructor(zip: JSZipFile, path: string, opts?: FileCreateOptions) { this.zip = zip; this.path = path; + if (opts && opts.modifiedDate) { + this.modifiedDate = opts.modifiedDate; + } } async write(content: string): Promise { - this.zip.file(this.path, content); + const opts = {} as JSZipFileOptions; + if (this.modifiedDate) { + const date = new Date(this.modifiedDate); + const dateWithOffset = new Date(date.getTime() - date.getTimezoneOffset() * 60000); + opts.date = dateWithOffset; + } + this.zip.file(this.path, content, opts); } } diff --git a/packages/filesystem/zip/zip.ts b/packages/filesystem/zip/zip.ts index b182f8666..34356a3af 100644 --- a/packages/filesystem/zip/zip.ts +++ b/packages/filesystem/zip/zip.ts @@ -1,15 +1,15 @@ -import type JSZip from "jszip"; -import type { File, FileReader, FileWriter } from "@Packages/filesystem/filesystem"; +import { type JSZipFile } from "@App/pkg/utils/jszip-x"; +import type { File, FileCreateOptions, FileReader, FileWriter } from "@Packages/filesystem/filesystem"; import type FileSystem from "@Packages/filesystem/filesystem"; import { ZipFileReader, ZipFileWriter } from "./rw"; export default class ZipFileSystem implements FileSystem { - zip: JSZip; + zip: JSZipFile; basePath: string; // zip为空时,创建一个空的zip - constructor(zip: JSZip, basePath?: string) { + constructor(zip: JSZipFile, basePath?: string) { this.zip = zip; this.basePath = basePath || ""; } @@ -31,11 +31,11 @@ export default class ZipFileSystem implements FileSystem { return new ZipFileSystem(this.zip, path); } - async create(path: string): Promise { - return new ZipFileWriter(this.zip, path); + async create(path: string, opts?: FileCreateOptions): Promise { + return new ZipFileWriter(this.zip, path, opts); } - async createDir(): Promise { + async createDir(_path: string, _opts?: FileCreateOptions): Promise { // do nothing } @@ -45,15 +45,17 @@ export default class ZipFileSystem implements FileSystem { async list(): Promise { const files: File[] = []; - for (const [filename, details] of Object.entries(this.zip.files)) { - const time = details.date.getTime(); + for (const [filename, jsZipObject] of Object.entries(this.zip.files)) { + const date = jsZipObject.date; // the last modification date + const dateWithOffset = new Date(date.getTime() + date.getTimezoneOffset() * 60000); + const lastModificationDate = dateWithOffset.getTime(); files.push({ name: filename, path: filename, size: 0, digest: "", - createtime: time, - updatetime: time, + createtime: lastModificationDate, + updatetime: lastModificationDate, }); } return files; diff --git a/packages/message/message_queue.ts b/packages/message/message_queue.ts index 80cf903a1..06d8097cc 100644 --- a/packages/message/message_queue.ts +++ b/packages/message/message_queue.ts @@ -1,8 +1,13 @@ import EventEmitter from "eventemitter3"; import LoggerCore from "@App/app/logger/core"; import { type TMessage } from "./types"; +import type { SystemConfigKey, SystemConfigValueType } from "@App/pkg/config/config"; -export type TKeyValue = { key: string; value: string }; +export type TKeyValue = { + key: T; + value: SystemConfigValueType | undefined; + prev: SystemConfigValueType | undefined; +}; // 中间件函数类型 type MiddlewareFunction = (topic: string, message: T, next: () => void) => void | Promise; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f250c41e3..a9f11f053 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@arco-design/web-react': - specifier: ^2.66.1 - version: 2.66.1(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.66.7 + version: 2.66.7(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/core': specifier: ^6.3.1 version: 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -36,7 +36,7 @@ importers: specifier: ^4.0.10 version: 4.0.10 eslint-linter-browserify: - specifier: ^9.26.0 + specifier: 9.26.0 version: 9.26.0 eventemitter3: specifier: ^5.0.1 @@ -61,7 +61,7 @@ importers: version: 14.3.8(react@18.3.1) react-i18next: specifier: ^15.6.0 - version: 15.6.0(i18next@23.16.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3) + version: 15.6.0(i18next@23.16.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3) react-icons: specifier: ^5.5.0 version: 5.5.0(react@18.3.1) @@ -81,39 +81,33 @@ importers: specifier: ^5.8.0 version: 5.8.0 yaml: - specifier: ^2.8.0 - version: 2.8.0 + specifier: ^2.8.1 + version: 2.8.1 devDependencies: '@crowdin/cli': specifier: ^4.9.0 version: 4.9.0 '@eslint/compat': - specifier: ^1.3.1 - version: 1.3.1(eslint@9.30.1(jiti@2.4.2)) + specifier: ^1.4.1 + version: 1.4.1(eslint@9.39.1(jiti@2.6.1)) '@eslint/js': - specifier: ^9.30.1 - version: 9.30.1 + specifier: 9.38.0 + version: 9.38.0 '@rspack/cli': - specifier: ^1.4.4 - version: 1.4.4(@rspack/core@1.4.4(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1(esbuild@0.25.5)) + specifier: ^1.5.8 + version: 1.6.1(@rspack/core@1.6.1(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1) '@rspack/core': - specifier: ^1.4.4 - version: 1.4.4(@swc/helpers@0.5.13) - '@rspack/plugin-react-refresh': - specifier: ^1.4.3 - version: 1.4.3(react-refresh@0.17.0) + specifier: ^1.5.8 + version: 1.6.1(@swc/helpers@0.5.13) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 '@testing-library/react': specifier: ^16.3.0 version: 16.3.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.7(@types/react@18.3.23))(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@testing-library/user-event': - specifier: ^14.6.1 - version: 14.6.1(@testing-library/dom@10.4.0) '@types/chrome': - specifier: ^0.1.1 - version: 0.1.1 + specifier: ^0.1.27 + version: 0.1.27 '@types/crypto-js': specifier: ^4.2.2 version: 4.2.2 @@ -130,50 +124,47 @@ importers: specifier: ^18.3.1 version: 18.3.7(@types/react@18.3.23) '@types/semver': - specifier: ^7.5.8 - version: 7.5.8 + specifier: ^7.7.1 + version: 7.7.1 '@types/serviceworker': specifier: ^0.0.120 version: 0.0.120 '@unocss/postcss': - specifier: 0.65.4 - version: 0.65.4(postcss@8.5.6) + specifier: 66.5.4 + version: 66.5.4(postcss@8.5.6) '@vitest/coverage-v8': - specifier: 3.2.4 - version: 3.2.4(vitest@3.2.4(@types/node@22.16.0)(jiti@2.4.2)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)) + specifier: ^3.2.4 + version: 3.2.4(vitest@3.2.4(@types/node@22.16.0)(jiti@2.6.1)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) autoprefixer: - specifier: ^10.4.20 - version: 10.4.20(postcss@8.5.6) + specifier: ^10.4.21 + version: 10.4.21(postcss@8.5.6) cross-env: - specifier: ^7.0.3 - version: 7.0.3 + specifier: ^10.1.0 + version: 10.1.0 crx: specifier: ^5.0.1 version: 5.0.1 eslint: - specifier: ^9.30.1 - version: 9.30.1(jiti@2.4.2) + specifier: ^9.38.0 + version: 9.39.1(jiti@2.6.1) eslint-config-prettier: - specifier: ^10.1.5 - version: 10.1.5(eslint@9.30.1(jiti@2.4.2)) + specifier: ^10.1.8 + version: 10.1.8(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-prettier: - specifier: ^5.5.1 - version: 5.5.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2) + specifier: ^5.5.4 + version: 5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.6.2) eslint-plugin-react: specifier: ^7.37.5 - version: 7.37.5(eslint@9.30.1(jiti@2.4.2)) + version: 7.37.5(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-react-hooks: specifier: ^5.2.0 - version: 5.2.0(eslint@9.30.1(jiti@2.4.2)) + version: 5.2.0(eslint@9.39.1(jiti@2.6.1)) eslint-plugin-userscripts: specifier: ^0.5.6 - version: 0.5.6(eslint@9.30.1(jiti@2.4.2)) - fake-indexeddb: - specifier: ^6.0.1 - version: 6.0.1 + version: 0.5.6(eslint@9.39.1(jiti@2.6.1)) globals: - specifier: ^16.3.0 - version: 16.3.0 + specifier: ^16.5.0 + version: 16.5.0 jsdom: specifier: ^26.1.0 version: 26.1.0 @@ -187,32 +178,29 @@ importers: specifier: ^8.5.6 version: 8.5.6 postcss-loader: - specifier: ^8.1.1 - version: 8.1.1(@rspack/core@1.4.4(@swc/helpers@0.5.13))(postcss@8.5.6)(typescript@5.8.3)(webpack@5.96.1(esbuild@0.25.5)) + specifier: ^8.2.0 + version: 8.2.0(@rspack/core@1.6.1(@swc/helpers@0.5.13))(postcss@8.5.6)(typescript@5.9.3)(webpack@5.96.1) prettier: specifier: ^3.6.2 version: 3.6.2 - react-refresh: - specifier: ^0.17.0 - version: 0.17.0 semver: - specifier: ^7.7.2 + specifier: ^7.7.1 version: 7.7.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.16.0)(typescript@5.8.3) + version: 10.9.2(@types/node@22.16.0)(typescript@5.9.3) typescript: - specifier: ^5.8.3 - version: 5.8.3 + specifier: ^5.9.3 + version: 5.9.3 typescript-eslint: - specifier: ^8.35.1 - version: 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + specifier: ^8.46.2 + version: 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) unocss: - specifier: 0.65.4 - version: 0.65.4(postcss@8.5.6)(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) + specifier: 66.5.4 + version: 66.5.4(postcss@8.5.6)(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) vitest: specifier: ^3.2.4 - version: 3.2.4(@types/node@22.16.0)(jiti@2.4.2)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + version: 3.2.4(@types/node@22.16.0)(jiti@2.6.1)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) packages: @@ -226,14 +214,14 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} - '@antfu/utils@8.1.1': - resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} + '@antfu/utils@9.3.0': + resolution: {integrity: sha512-9hFT4RauhcUzqOE4f1+frMKLZrgNog5b06I7VmZQV1BkvwvqrbC8EBZf3L1eEL2AKb6rNKjER0sEvJiSP1FXEA==} '@arco-design/color@0.4.0': resolution: {integrity: sha512-s7p9MSwJgHeL8DwcATaXvWT3m2SigKpxx4JA1BGPHL4gfvaQsmQfrLBDpjOJFJuJ2jG2dMt3R3P8Pm9E65q18g==} - '@arco-design/web-react@2.66.1': - resolution: {integrity: sha512-A3KKlNFHXldFrB2hGzLGu+RIGPYwizNnkYk3ttXEN/TnbzqhC1eGQqdo53j4hpLL0/DrQbSkOZNzlQgEdeQcGA==} + '@arco-design/web-react@2.66.7': + resolution: {integrity: sha512-heZoNjsdD2tXFAv0SmVsMsMFVcwhOVUsjqfRZZtW7WHAWIx1vygbVJceww61DgBwFXPtYPUlyu2SRmPiVz2xlg==} peerDependencies: react: '>=16' react-dom: '>=16' @@ -241,8 +229,12 @@ packages: '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} - '@babel/code-frame@7.26.2': - resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + '@babel/code-frame@7.27.1': + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.28.5': + resolution: {integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==} engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': @@ -253,19 +245,45 @@ packages: resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.27.7': + resolution: {integrity: sha512-qnzXzDXdr/po3bOTbTIQZ7+TxNKxpkN5IifVLXS+r7qwynkZfPyjZfE7hCXbo7IoO9TNcSyibgONsf2HauUd3Q==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/parser@7.28.0': resolution: {integrity: sha512-jVZGvOxOuNSsuQuLRTh13nU0AogFlw32w/MT+LV6D3sP5WdbW61E77RnkbaO2dUvmPAYrBDJXGn5gGS6tH4j8g==} engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.28.5': + resolution: {integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/runtime@7.27.6': resolution: {integrity: sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==} engines: {node: '>=6.9.0'} + '@babel/template@7.27.2': + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.27.7': + resolution: {integrity: sha512-X6ZlfR/O/s5EQ/SnUSLzr+6kGnkg8HXGMzpgsMsrJVcfDtH1vIp6ctCN4eZ1LS5c0+te5Cb6Y514fASjMRJ1nw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.28.0': resolution: {integrity: sha512-jYnje+JyZG5YThjHiF28oT4SIZLnYOcSBb6+SDaFIyzDVSkXQmQQYclJ2R+YxcdmK0AX6x1E5OQNtuh3jHDrUg==} engines: {node: '>=6.9.0'} + '@babel/types@7.28.5': + resolution: {integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@1.0.2': resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} @@ -341,14 +359,17 @@ packages: peerDependencies: react: '>=16.8.0' - '@emnapi/core@1.4.3': - resolution: {integrity: sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==} + '@emnapi/core@1.7.0': + resolution: {integrity: sha512-pJdKGq/1iquWYtv1RRSljZklxHCOCAJFJrImO5ZLKPJVJlVUcs8yFwNQlqS0Lo8xT1VAXXTCZocF9n26FWEKsw==} + + '@emnapi/runtime@1.7.0': + resolution: {integrity: sha512-oAYoQnCYaQZKVS53Fq23ceWMRxq5EhQsE0x0RdQ55jT7wagMu5k+fS39v1fiSLrtrLQlXwVINenqhLMtTrV/1Q==} - '@emnapi/runtime@1.4.3': - resolution: {integrity: sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==} + '@emnapi/wasi-threads@1.1.0': + resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@emnapi/wasi-threads@1.0.2': - resolution: {integrity: sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==} + '@epic-web/invariant@1.0.0': + resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} '@esbuild/aix-ppc64@0.23.1': resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} @@ -644,14 +665,14 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.1': - resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + '@eslint-community/eslint-utils@4.7.0': + resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.0': + resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -660,8 +681,8 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.3.1': - resolution: {integrity: sha512-k8MHony59I5EPic6EQTCNOuPoVBnoYXkP+20xvwFjN7t0qI3ImyvyBgg+hIVPwC8JaxVjjUZld+cLfBLFDLucg==} + '@eslint/compat@1.4.1': + resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.40 || 9 @@ -669,36 +690,36 @@ packages: eslint: optional: true - '@eslint/config-array@0.21.0': - resolution: {integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-helpers@0.3.0': - resolution: {integrity: sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==} + '@eslint/config-array@0.21.1': + resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.14.0': - resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} + '@eslint/config-helpers@0.4.2': + resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.15.1': - resolution: {integrity: sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==} + '@eslint/core@0.17.0': + resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/eslintrc@3.3.1': resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.30.1': - resolution: {integrity: sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==} + '@eslint/js@9.38.0': + resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.6': - resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} + '@eslint/js@9.39.1': + resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.3.3': - resolution: {integrity: sha512-1+WqvgNMhmlAambTvT3KPtCl/Ibr68VldY2XY40SL1CE0ZXiakFR/cbTspaF5HsnpDMvcYYoJHfl4980NBjGag==} + '@eslint/object-schema@2.1.7': + resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.4.1': + resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@gilbarbara/deep-equal@0.1.2': @@ -730,8 +751,8 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} - '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} + '@iconify/utils@3.0.2': + resolution: {integrity: sha512-EfJS0rLfVuRuJRn4psJHtK2A9TqVnkxPpHY6lYHiB9+8eSuudsxbwMiavocG45ujOo6FJ+CIRlRnlOGinzkaGQ==} '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} @@ -748,6 +769,9 @@ packages: '@jridgewell/gen-mapping@0.3.12': resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==} + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + '@jridgewell/resolve-uri@3.1.2': resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} @@ -761,6 +785,9 @@ packages: '@jridgewell/sourcemap-codec@1.5.4': resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==} + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + '@jridgewell/trace-mapping@0.3.29': resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==} @@ -788,26 +815,26 @@ packages: '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} - '@module-federation/error-codes@0.15.0': - resolution: {integrity: sha512-CFJSF+XKwTcy0PFZ2l/fSUpR4z247+Uwzp1sXVkdIfJ/ATsnqf0Q01f51qqSEA6MYdQi6FKos9FIcu3dCpQNdg==} + '@module-federation/error-codes@0.21.2': + resolution: {integrity: sha512-mGbPAAApgjmQUl4J7WAt20aV04a26TyS21GDEpOGXFEQG5FqmZnSJ6FqB8K19HgTKioBT1+fF/Ctl5bGGao/EA==} - '@module-federation/runtime-core@0.15.0': - resolution: {integrity: sha512-RYzI61fRDrhyhaEOXH3AgIGlHiot0wPFXu7F43cr+ZnTi+VlSYWLdlZ4NBuT9uV6JSmH54/c+tEZm5SXgKR2sQ==} + '@module-federation/runtime-core@0.21.2': + resolution: {integrity: sha512-LtDnccPxjR8Xqa3daRYr1cH/6vUzK3mQSzgvnfsUm1fXte5syX4ftWw3Eu55VdqNY3yREFRn77AXdu9PfPEZRw==} - '@module-federation/runtime-tools@0.15.0': - resolution: {integrity: sha512-kzFn3ObUeBp5vaEtN1WMxhTYBuYEErxugu1RzFUERD21X3BZ+b4cWwdFJuBDlsmVjctIg/QSOoZoPXRKAO0foA==} + '@module-federation/runtime-tools@0.21.2': + resolution: {integrity: sha512-SgG9NWTYGNYcHSd5MepO3AXf6DNXriIo4sKKM4mu4RqfYhHyP+yNjnF/gvYJl52VD61g0nADmzLWzBqxOqk2tg==} - '@module-federation/runtime@0.15.0': - resolution: {integrity: sha512-dTPsCNum9Bhu3yPOcrPYq0YnM9eCMMMNB1wuiqf1+sFbQlNApF0vfZxooqz3ln0/MpgE0jerVvFsLVGfqvC9Ug==} + '@module-federation/runtime@0.21.2': + resolution: {integrity: sha512-97jlOx4RAnAHMBTfgU5FBK6+V/pfT6GNX0YjSf8G+uJ3lFy74Y6kg/BevEkChTGw5waCLAkw/pw4LmntYcNN7g==} - '@module-federation/sdk@0.15.0': - resolution: {integrity: sha512-PWiYbGcJrKUD6JZiEPihrXhV3bgXdll4bV7rU+opV7tHaun+Z0CdcawjZ82Xnpb8MCPGmqHwa1MPFeUs66zksw==} + '@module-federation/sdk@0.21.2': + resolution: {integrity: sha512-t2vHSJ1a9zjg7LLJoEghcytNLzeFCqOat5TbXTav5dgU0xXw82Cf0EfLrxiJL6uUpgbtyvUdqqa2DVAvMPjiiA==} - '@module-federation/webpack-bundler-runtime@0.15.0': - resolution: {integrity: sha512-i+3wu2Ljh2TmuUpsnjwZVupOVqV50jP0ndA8PSP4gwMKlgdGeaZ4VH5KkHAXGr2eiYUxYLMrJXz1+eILJqeGDg==} + '@module-federation/webpack-bundler-runtime@0.21.2': + resolution: {integrity: sha512-06R/NDY6Uh5RBIaBOFwYWzJCf1dIiQd/DFHToBVhejUT3ZFG7GzHEPIIsAGqMzne/JSmVsvjlXiJu7UthQ6rFA==} - '@napi-rs/wasm-runtime@0.2.11': - resolution: {integrity: sha512-9DPkXtvHydrcOsopiYpUgPHpmj0HWZKMUnL2dZqpvC42lsratuBG06V5ipyno0fUek5VlFsNQ+AcFATSrJXgMA==} + '@napi-rs/wasm-runtime@1.0.7': + resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==} '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} @@ -832,14 +859,8 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@rollup/pluginutils@5.1.4': - resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true + '@quansync/fs@0.1.5': + resolution: {integrity: sha512-lNS9hL2aS2NZgNW7BBj+6EBl4rOf8l+tQ0eRY6JWCI8jI2kc53gSoqbjojU0OnAWhzoXiOjFyGsHcDGePB3lhA==} '@rollup/rollup-android-arm-eabi@4.44.2': resolution: {integrity: sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==} @@ -875,67 +896,56 @@ packages: resolution: {integrity: sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==} cpu: [arm] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.44.2': resolution: {integrity: sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==} cpu: [arm] os: [linux] - libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.44.2': resolution: {integrity: sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==} cpu: [arm64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.44.2': resolution: {integrity: sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==} cpu: [arm64] os: [linux] - libc: [musl] '@rollup/rollup-linux-loongarch64-gnu@4.44.2': resolution: {integrity: sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==} cpu: [loong64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-powerpc64le-gnu@4.44.2': resolution: {integrity: sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==} cpu: [ppc64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-gnu@4.44.2': resolution: {integrity: sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==} cpu: [riscv64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.44.2': resolution: {integrity: sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==} cpu: [riscv64] os: [linux] - libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.44.2': resolution: {integrity: sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==} cpu: [s390x] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.44.2': resolution: {integrity: sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==} cpu: [x64] os: [linux] - libc: [glibc] '@rollup/rollup-linux-x64-musl@4.44.2': resolution: {integrity: sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==} cpu: [x64] os: [linux] - libc: [musl] '@rollup/rollup-win32-arm64-msvc@4.44.2': resolution: {integrity: sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==} @@ -952,79 +962,75 @@ packages: cpu: [x64] os: [win32] - '@rspack/binding-darwin-arm64@1.4.4': - resolution: {integrity: sha512-r5Vr1DcKXemYfJhNabRTpRonZvzyRq8H7ggDJqxWpIR+SGmtZ62hErSic8DBFeEF5k8SZc5in6L4YXUZgYaibg==} + '@rspack/binding-darwin-arm64@1.6.1': + resolution: {integrity: sha512-am7gVsqicKY/FhDfNa/InHxrBd3wRt6rI7sFTaunKaPbPERjWSKr/sI47tB3t8uNYmLQFFhWFijomAhDyrlHMg==} cpu: [arm64] os: [darwin] - '@rspack/binding-darwin-x64@1.4.4': - resolution: {integrity: sha512-fyHjrug2xT3CU3nqzviL41I1PfJOv2/5T1+TdME8GzM5grWI1XFnCcXXocKhGuEpv6xHFdRZz9x7C9k7uQ4UCw==} + '@rspack/binding-darwin-x64@1.6.1': + resolution: {integrity: sha512-uadcJOal5YTg191+kvi47I0b+U0sRKe8vKFjMXYOrSIcbXGVRdBxROt/HMlKnvg0u/A83f6AABiY6MA2fCs/gw==} cpu: [x64] os: [darwin] - '@rspack/binding-linux-arm64-gnu@1.4.4': - resolution: {integrity: sha512-8UDmKFUgrt4w/sBHZtixBppAC+ObOwRbm3oSMhZMn+T3+BhBSDCUXhbGQDiKc7WG04cxyGhvwIocBckkdb1rSg==} + '@rspack/binding-linux-arm64-gnu@1.6.1': + resolution: {integrity: sha512-n7UGSBzv7PiX+V1Q2bY3S1XWyN3RCykCQUgfhZ+xWietCM/1349jgN7DoXKPllqlof1GPGBjziHU0sQZTC4tag==} cpu: [arm64] os: [linux] - libc: [glibc] - '@rspack/binding-linux-arm64-musl@1.4.4': - resolution: {integrity: sha512-Wtf9WR6VXYa1Y+uTa5uaTBcTX0eVzyM6d/0pLS6qJgwLYN4wOvi0VcOctLkUNaMpA72TsmGOnls8QBsDPLZRtg==} + '@rspack/binding-linux-arm64-musl@1.6.1': + resolution: {integrity: sha512-P7nx0jsKxx7g3QAnH9UnJDGVgs1M2H7ZQl68SRyrs42TKOd9Md22ynoMIgCK1zoy+skssU6MhWptluSggXqSrA==} cpu: [arm64] os: [linux] - libc: [musl] - '@rspack/binding-linux-x64-gnu@1.4.4': - resolution: {integrity: sha512-vc0e6ZkXJIVwHXDfkxFb62e/OpX0KuekjvD+rzs7A122Nt7R37YSilqGpZXWDlqlRjJlBxA73ORakJORsR3oww==} + '@rspack/binding-linux-x64-gnu@1.6.1': + resolution: {integrity: sha512-SdiurC1bV/QHnj7rmrBYJLdsat3uUDWl9KjkVjEbtc8kQV0Ri4/vZRH0nswgzx7hZNY2j0jYuCm5O8+3qeJEMg==} cpu: [x64] os: [linux] - libc: [glibc] - '@rspack/binding-linux-x64-musl@1.4.4': - resolution: {integrity: sha512-PL5iL2CbdDZwI6MBOfTQnryqT9esjPDZP6a2bxbT+IiyWyBoZjCXnjwYOB5dvIL4Hyrma8XJFwT5dAlFvGrzyQ==} + '@rspack/binding-linux-x64-musl@1.6.1': + resolution: {integrity: sha512-JoSJu29nV+auOePhe8x2Fzqxiga1YGNcOMWKJ5Uj8rHBZ8FPAiiE+CpLG8TwfpHsivojrY/sy6fE8JldYLV5TQ==} cpu: [x64] os: [linux] - libc: [musl] - '@rspack/binding-wasm32-wasi@1.4.4': - resolution: {integrity: sha512-/+uq1R+xzXknBDbcZWR0sbQwasZ2maPDSJ1rsnlBG6lQc447HbuwwZqjMpD8+TjpNunAS1E1mHuxql5IbL5UKg==} + '@rspack/binding-wasm32-wasi@1.6.1': + resolution: {integrity: sha512-u5NiSHxM7LtIo4cebq/hQPJ9o39u127am3eVJHDzdmBVhTYYO5l7XVUnFmcU8hNHuj/4lJzkFviWFbf3SaRSYA==} cpu: [wasm32] - '@rspack/binding-win32-arm64-msvc@1.4.4': - resolution: {integrity: sha512-8advF9WPaq4HndjeYIsUX7GNPMqJ8vTalZLdF1bJ0c1PXyp3igyG6ruJeJ4vsXT3/HmVy1AmK3FzHRmy7AT5Mw==} + '@rspack/binding-win32-arm64-msvc@1.6.1': + resolution: {integrity: sha512-u2Lm4iyUstX/H4JavHnFLIlXQwMka6WVvG2XH8uRd6ziNTh0k/u9jlFADzhdZMvxj63L2hNXCs7TrMZTx2VObQ==} cpu: [arm64] os: [win32] - '@rspack/binding-win32-ia32-msvc@1.4.4': - resolution: {integrity: sha512-I3BqOEu8gHoMvxECdHS+a+fPMipzO3yrI+0uBjzeJY7UpkD9hjNH6MU2xTI8FxUDY2XYNbJv1EJkXd72VzSpaA==} + '@rspack/binding-win32-ia32-msvc@1.6.1': + resolution: {integrity: sha512-/rMU4pjnQeYnkrXmlqeEPiUNT1wHfJ8GR5v2zqcHXBQkAtic3ZsLwjHpucJjrfRsN5CcVChxJl/T7ozlITfcYw==} cpu: [ia32] os: [win32] - '@rspack/binding-win32-x64-msvc@1.4.4': - resolution: {integrity: sha512-8Ju4ZSbBS6VLcgf53OTJcfMWYIR0pHSdHhfYZC16Vb5weWa89Hh0v3ClA0PqSt1hnAAFCMMOM9CcAPwk8P3gIg==} + '@rspack/binding-win32-x64-msvc@1.6.1': + resolution: {integrity: sha512-8qsdb5COuZF5Trimo3HHz3N0KuRtrPtRCMK/wi7DOT1nR6CpUeUMPTjvtPl/O/QezQje+cpBFTa5BaQ1WKlHhw==} cpu: [x64] os: [win32] - '@rspack/binding@1.4.4': - resolution: {integrity: sha512-Z4Ir04eLbq5BwkSF74h/dBtkbTpcGrMtmi5b6YqMvFtGrT12R6K3P58hnXmrxqypKncbW4rI0JJOYkQa+gMteg==} + '@rspack/binding@1.6.1': + resolution: {integrity: sha512-6duvh3CbDA3c4HpNkzIOP9z1wn/mKY1Mrxj+AqgcNvsE0ppp1iKlMsJCDgl7SlUauus2AgtM1dIEU+0sRajmwQ==} - '@rspack/cli@1.4.4': - resolution: {integrity: sha512-jH1YE82MGTq/zs4nKZ+jBEnLc2VpB7+Uf0A5UNPhe0RQyEcGFi3WWXCKgGEUsIcqy5uvT+bDJPGk+UgPrUiv3Q==} + '@rspack/cli@1.6.1': + resolution: {integrity: sha512-Ec8nOEp+D1Ck5WESn8Q3umKtuDYNGy1wS1n9uiREWL0DKeE3NH/Ldk1a+pHBZmTtZkUm/oIfIaDTxs6V8ze79Q==} hasBin: true peerDependencies: '@rspack/core': ^1.0.0-alpha || ^1.x - '@rspack/core@1.4.4': - resolution: {integrity: sha512-TqEUHXbG5zNQ72djFfEg2A1/RoQF57QUhBU22ZLspbr3GcWmHou6noAa6i7lMn47RE4LWVnNyOCyMZyjXrrvYA==} - engines: {node: '>=16.0.0'} + '@rspack/core@1.6.1': + resolution: {integrity: sha512-hZVrmiZoBTchWUdh/XbeJ5z+GqHW5aPYeufBigmtUeyzul8uJtHlWKmQhpG+lplMf6o1RESTjjxl632TP/Cfhg==} + engines: {node: '>=18.12.0'} peerDependencies: '@swc/helpers': '>=0.5.1' peerDependenciesMeta: '@swc/helpers': optional: true - '@rspack/dev-server@1.1.3': - resolution: {integrity: sha512-jWPeyiZiGpbLYGhwHvwxhaa4rsr8CQvsWkWslqeMLb2uXwmyy3UWjUR1q+AhAPnf0gs3lZoFZ1hjBQVecHKUvg==} + '@rspack/dev-server@1.1.4': + resolution: {integrity: sha512-kGHYX2jYf3ZiHwVl0aUEPBOBEIG1aWleCDCAi+Jg32KUu3qr/zDUpCEd0wPuHfLEgk0X0xAEYCS6JMO7nBStNQ==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': '*' @@ -1033,15 +1039,6 @@ packages: resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} engines: {node: '>=16.0.0'} - '@rspack/plugin-react-refresh@1.4.3': - resolution: {integrity: sha512-wZx4vWgy5oMEvgyNGd/oUKcdnKaccYWHCRkOqTdAPJC3WcytxhTX+Kady8ERurSBiLyQpoMiU3Iyd+F1Y2Arbw==} - peerDependencies: - react-refresh: '>=0.10.0 <1.0.0' - webpack-hot-middleware: 2.x - peerDependenciesMeta: - webpack-hot-middleware: - optional: true - '@swc/helpers@0.5.13': resolution: {integrity: sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==} @@ -1068,12 +1065,6 @@ packages: '@types/react-dom': optional: true - '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} - peerDependencies: - '@testing-library/dom': '>=7.21.4' - '@tsconfig/node10@1.0.11': resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} @@ -1086,8 +1077,8 @@ packages: '@tsconfig/node16@1.0.4': resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - '@tybys/wasm-util@0.9.0': - resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + '@tybys/wasm-util@0.10.1': + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} @@ -1101,8 +1092,8 @@ packages: '@types/chai@5.2.2': resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} - '@types/chrome@0.1.1': - resolution: {integrity: sha512-MLtFW++/n+OPQIaf5hA6pmURd3Zn+OxuvASyf2mYh8B8pHDpbhHjwlVHMw3H/aJC9Z7Z3itO0AFaZeegrGk0yA==} + '@types/chrome@0.1.27': + resolution: {integrity: sha512-pkkCb0Ft8X+Igi751POzT+YqchSxUCtB6s4Gs6ttgSj8qzJga/qlJMgSW1mKxuQTW4i0sTqQbqVtzXDS5AU+4A==} '@types/connect-history-api-fallback@1.5.4': resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} @@ -1122,9 +1113,6 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@1.0.7': - resolution: {integrity: sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -1193,8 +1181,8 @@ packages: '@types/retry@0.12.2': resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} '@types/send@0.17.4': resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} @@ -1214,144 +1202,150 @@ packages: '@types/ws@8.18.1': resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==} - '@typescript-eslint/eslint-plugin@8.35.1': - resolution: {integrity: sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==} + '@typescript-eslint/eslint-plugin@8.46.3': + resolution: {integrity: sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.35.1 + '@typescript-eslint/parser': ^8.46.3 eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.35.1': - resolution: {integrity: sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==} + '@typescript-eslint/parser@8.46.3': + resolution: {integrity: sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.35.1': - resolution: {integrity: sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==} + '@typescript-eslint/project-service@8.46.3': + resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.35.1': - resolution: {integrity: sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==} + '@typescript-eslint/scope-manager@8.46.3': + resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.35.1': - resolution: {integrity: sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==} + '@typescript-eslint/tsconfig-utils@8.46.3': + resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.35.1': - resolution: {integrity: sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==} + '@typescript-eslint/type-utils@8.46.3': + resolution: {integrity: sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.35.1': - resolution: {integrity: sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==} + '@typescript-eslint/types@8.46.3': + resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.35.1': - resolution: {integrity: sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==} + '@typescript-eslint/typescript-estree@8.46.3': + resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.35.1': - resolution: {integrity: sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==} + '@typescript-eslint/utils@8.46.3': + resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.35.1': - resolution: {integrity: sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==} + '@typescript-eslint/visitor-keys@8.46.3': + resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@unocss/astro@0.65.4': - resolution: {integrity: sha512-ex1CJOQ6yeftBEPcbA9/W47/YoV+mhQnrAoc8MA1VVrvvFKDitICFU62+nSt3NWRe53XL/fXnQbcbCb8AAgKlA==} + '@unocss/astro@66.5.4': + resolution: {integrity: sha512-6KsilC1SiTBmEJRMuPl+Mg8KDWB1+DaVoirGZR7BAEtMf2NzrfQcR4+O/3DHtzb38pfb0K1aHCfWwCozHxLlfA==} peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: vite: optional: true - '@unocss/cli@0.65.4': - resolution: {integrity: sha512-D/4hY5Hezh3QETscl4i+ojb+q8YU9Cl9AYJ8v3gsjc/GjTmEuIOD5V4x+/aN25vY5wjqgoApOgaIDGCV3b+2Ig==} + '@unocss/cli@66.5.4': + resolution: {integrity: sha512-GltHfmJ27O5VHB/ABkkUWwWT72xGBVwFyhTnhIOut4EPkIurKDnfY5MZFEl2PLlIFnYqIJxeTHMHONVg7pySMg==} engines: {node: '>=14'} hasBin: true - '@unocss/config@0.65.4': - resolution: {integrity: sha512-/vCt4AXnJ4p4Ow6xqsYwdrelF9533yhZjzkg3SQmL3rKeSkicPayKpeq8nkYECdhDI03VTCVD+6oh5Y/26Hg7A==} + '@unocss/config@66.5.4': + resolution: {integrity: sha512-TYwkUw9nZlLTBGCndsyrcHCJ7M+sEsJiK77Edggmd6B3urjkVc1cDjKF3k3tjg4ghQteGsc2akhzn1a4TouybQ==} engines: {node: '>=14'} - '@unocss/core@0.65.4': - resolution: {integrity: sha512-a2JOoFutrhqd5RgPhIR5FIXrDoHDU3gwCbPrpT6KYTjsqlSc/fv02yZ+JGOZFN3MCFhCmaPTs+idDFtwb3xU8g==} + '@unocss/core@66.5.4': + resolution: {integrity: sha512-UDS2CRgyQCEFH+5kStDyJd7OFtgkIUZYn5Ahr5z7v3jc/pEfeOJ0mxsNAr+FgMS/xb17vy4sVFvx3jj/FwMZ1A==} - '@unocss/extractor-arbitrary-variants@0.65.4': - resolution: {integrity: sha512-GbvTgsDaHplfWfsQtOY8RrvEZvptmvR9k9NwQ5NsZBNIG1JepYVel93CVQvsxT5KioKcoWngXxTYLNOGyxLs0g==} + '@unocss/extractor-arbitrary-variants@66.5.4': + resolution: {integrity: sha512-JsgITF11Z2WdXzF8eO2/qkcFIff/dEEc9C2eKYOSUv5pe+RMZxXHoAw4x+D4n0UrGAbHpoUVaJ8E7kG0ayTbGw==} - '@unocss/inspector@0.65.4': - resolution: {integrity: sha512-byg9x549Ul17U4Ety7ufDwC0UOygypoq4QnLEPzhlZ0KJG1f7WmXKYanOhupeg3h4qCj6Nc/xdZYMGbHl9QRIg==} + '@unocss/inspector@66.5.4': + resolution: {integrity: sha512-eBf1HAxwNz1YItNiiP/YQaIE9LWeErt4Ofdm7Imj0WW464ZZ/TqXhu0ZREcCgyQDy2Lghuyq6Q3d9orm2Cby/w==} - '@unocss/postcss@0.65.4': - resolution: {integrity: sha512-8peDRo0+rNQsnKh/H2uZEVy67sV2cC16rAeSLpgbVJUMNfZlmF0rC2DNGsOV17uconUXSwz7+mGcHKNiv+8YlQ==} + '@unocss/postcss@66.5.4': + resolution: {integrity: sha512-EpizX20MR8wTWlCI9+E6pI8Xj5S1kk2jRVQuQAxjjXcOEFoLZNTZmyULSlaIpg9vEtT5kuxQgBN6VmvyMgeD7g==} engines: {node: '>=14'} peerDependencies: postcss: ^8.4.21 - '@unocss/preset-attributify@0.65.4': - resolution: {integrity: sha512-zxE9hJJ5b37phjdzDdZsxX559ZlmH9rFlY5LVEcQySTnsfY0znviHxPbD2iRpCBCRd+YC5HfFd2jb3XlnTKMJQ==} + '@unocss/preset-attributify@66.5.4': + resolution: {integrity: sha512-6NmRUKpXp4qc+ZwWI+ImBIUzcdPRKWISfYu65hi8Sads453jzLJko78WOCVTLlgnmkquUJ98akNW5twG9p2mDw==} + + '@unocss/preset-icons@66.5.4': + resolution: {integrity: sha512-wPR2j191mw89hstQflQvsACzu+3QkueV9lHH8as94By9PKfswWnVZ1nPqJBc3Yl5v8fHEAR1YY4i7egN7TEjIA==} - '@unocss/preset-icons@0.65.4': - resolution: {integrity: sha512-5sSzTN72X2Ag3VH48xY1pYudeWnql9jqdMiwgZuLJcmvETBNGelXy2wGxm7tsUUEx/l40Yr04Ck8XRPGT9jLBw==} + '@unocss/preset-mini@66.5.4': + resolution: {integrity: sha512-KaBGsw3+Pi5ZTsp5u0OrUUUXFVltHin02cYhv3A4b9392Kej5R3y7zIf1VjiQ3ZXR4KZWfv0CQj0LBqIqAJ5WA==} - '@unocss/preset-mini@0.65.4': - resolution: {integrity: sha512-dcO2PzSl87qN1KdQWcfZDIKEhpdFeImWbYfiXtE7k6pi1393FJkdHEopgI/1ZciIQN1CkTvQJ5c7EpEVWftYRA==} + '@unocss/preset-tagify@66.5.4': + resolution: {integrity: sha512-ck71rFCQZEwYDzwf99sjCBuzpT0PnkzwdqWwnR34pN71Lf3ePN16hV6pEo7pWuIiatAGFzXh0AHzJrIQ/61Cxw==} - '@unocss/preset-tagify@0.65.4': - resolution: {integrity: sha512-qll6koqdFEkvmz594vKnxj9+3nfM3ugkJxYHrTkqtwx7DAnTgtM8fInFFGZelvjwUzR3o3+Zw6uMhFkLTVTfvg==} + '@unocss/preset-typography@66.5.4': + resolution: {integrity: sha512-RG0Bw4lGvwAJxHw8I/0Hx2/r4t8L6fnkWyEP4Iehie3kEGJ+S7Ku9sF6kkIeyOqjwL6Hp68rlnTGAycnYofoEg==} - '@unocss/preset-typography@0.65.4': - resolution: {integrity: sha512-Dl940ATrviWD9Vh+4fcN0QZXb6wA7al+c7QkdVAzW7I+NtdN2ELvLcN0cY22KnLRpwztzmg52Qp2J/1QnqrLTw==} + '@unocss/preset-uno@66.5.4': + resolution: {integrity: sha512-CEBtkNbbd1lYbCJw+s7HDeOtPeCEkvf+NDi/IrVkkBhOCcYRtYC+VDxjBgh4zjlmgZIQifkU2l7PPfGjd4IMNA==} - '@unocss/preset-uno@0.65.4': - resolution: {integrity: sha512-56bdBtf476i+soQCQmT36uGzcF2z+7DGCnG1hwWiw6XAbL6gmRMQsubwi1c8z8TcTQNBsOFUnOziFil0gbWufw==} + '@unocss/preset-web-fonts@66.5.4': + resolution: {integrity: sha512-FQ/P/a1fSmGkkjWn/FNmErwK5YtsuX2VrkHsEa9DTP372td8Oea3hkK40UUYj3zRUivA71PmjVwhbBf+35nAiA==} - '@unocss/preset-web-fonts@0.65.4': - resolution: {integrity: sha512-UB/MvXHUTqMNVH1bbiKZ/ZtZUI5tsYlTYAvBrnXPO1Cztuwr8hJKSi4RCfI9g+YYtKHX4uYuxUbW5bcN85gmBQ==} + '@unocss/preset-wind3@66.5.4': + resolution: {integrity: sha512-cqQGg9E2476YVpnX3sgO/jEoA4cKCA5rEl2NgemoAJpKAgdM68JPB+Tve4LlSLssxRQZ7ZYNO6hOfW8R2gVVuw==} - '@unocss/preset-wind@0.65.4': - resolution: {integrity: sha512-0rbNbw5E8Lvh2yf4R1Mq+lxI/wL5Tm6+r+crE0uAAhCPe9kxPHW4k+x1cWKDIwq6Vudlm3cNX85N49wN5tYgdA==} + '@unocss/preset-wind4@66.5.4': + resolution: {integrity: sha512-S5ZysCSTfl/h93jDnXIss214jqYfq+W6xZH50Krc1QTWy5teAOVCFTluRJEB70JTDOdUMwcTtmqFklSHIU5I7g==} - '@unocss/reset@0.65.4': - resolution: {integrity: sha512-m685H0KFvVMz6R2i5GDIFv4RS9Z7y2G8hJK7xg2OWli+7w8l2ZMihYvXKofPsst4q/ms8EgKXpWc/qqUOTucvA==} + '@unocss/preset-wind@66.5.4': + resolution: {integrity: sha512-2TWP2QrJwGFr21iwVsPKVzDa2JWjh1EUt1+OtAk5JQfGmmTeyw8EF3pIAcaM06WVi/m4em55RKIPNoW/Kr61yg==} - '@unocss/rule-utils@0.65.4': - resolution: {integrity: sha512-+EzdJEWcqGcO6HwbBTe7vEdBRpuKkBiz4MycQeLD6GEio04T45y6VHHO7/WTqxltbO4YwwW9/s2TKRMxKtoG8g==} + '@unocss/reset@66.5.4': + resolution: {integrity: sha512-RF/Xscv4mOEDUltUpdKYZEBgIiE7nAVkipJ8gZWEwKfmUFz0TRcwlf0igjqjgGn11tuix0mJyk5Uwis9LioX4Q==} + + '@unocss/rule-utils@66.5.4': + resolution: {integrity: sha512-LFzLuXQfZKI/qJBrsqkaVKlw0ECU8Xw7m+MaKIKyFH/hqggzkvNG0PyWU2HnPNzz1dIiVBn+Epfpz8pzi+MLFA==} engines: {node: '>=14'} - '@unocss/transformer-attributify-jsx@0.65.4': - resolution: {integrity: sha512-n438EzWdTKlLCOlAUSpFjmH6FflctqzIReMzMZSJDkmkorymc+C5GpjN3Nty2cKRJXIl6Vwq0oxPuB59RT+FIw==} + '@unocss/transformer-attributify-jsx@66.5.4': + resolution: {integrity: sha512-VHzrxiWKBVsUZhFU0vG7e6MjSiQG/rR/PidPgi8KaMGAWi+CA6faRBfHaUQbfix2bLBhtDOdaZUDp9AsIgu1ZQ==} - '@unocss/transformer-compile-class@0.65.4': - resolution: {integrity: sha512-n1yHDC/iIbcj/9fBUTXkSoASKfLBuRoCN7P1a0ecPc8Gu+uOGfoxafOhrlqC+tpD3hlQGoL+0h74BHSKh+L23Q==} + '@unocss/transformer-compile-class@66.5.4': + resolution: {integrity: sha512-H+IX9C8PHFMCJfYutIRjzkpgIiW/AFC7PzP/EQwM+p9VoC8LH+Wd8Csl/Uyi+uoQ+a78q4nQ2lDYZr42eanmgg==} - '@unocss/transformer-directives@0.65.4': - resolution: {integrity: sha512-zkoDEwzPkgXi6ohW7P11gbArwfTRMZ9knYSUYoPEltQz+UZYzeRQ85exiAmdz5MsbCAuhQEr577Kd/CWfhjEuA==} + '@unocss/transformer-directives@66.5.4': + resolution: {integrity: sha512-BqM4fRqCC5wIRkEB14SN476/KWKlEhHhrHECL9kOjbZYmIcxBDCYKf/iuZGvtK9IZJtE0JhrSGAdYfyp0Td7fQ==} - '@unocss/transformer-variant-group@0.65.4': - resolution: {integrity: sha512-ggO6xMGeOeoD5GHS2xXBJrYFuzqyiZ25tM0zHAMJn9QU9GIu1NwWvcXluvLCF/MRIygBJGPpAE98aEICI6ifEA==} + '@unocss/transformer-variant-group@66.5.4': + resolution: {integrity: sha512-n/A74083b8zZtl05A3M0Lo9oWepFKuvRZKPXh+y4bJM2oSZl1Clzm1I+qmgvO/DKoa4rjgj4a/CRaIxeDpoO9A==} - '@unocss/vite@0.65.4': - resolution: {integrity: sha512-02pRcVLfb5UUxMJwudnjS/0ZQdSlskjuXVHdpZpLBZCA8hhoru2uEOsPbUOBRNNMjDj6ld00pmgk/+im07M35Q==} + '@unocss/vite@66.5.4': + resolution: {integrity: sha512-dmSJ3h7/kMbFOIrAyycg2W1VVN+59WCnH5s0dJTGRla2kUTAFB0iWJWdIa/W6IsvFlicMtsoLYJmTnQ/kBQm7A==} peerDependencies: - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 '@vitest/coverage-v8@3.2.4': resolution: {integrity: sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ==} @@ -1391,35 +1385,6 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vue/compiler-core@3.5.13': - resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} - - '@vue/compiler-dom@3.5.13': - resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} - - '@vue/compiler-sfc@3.5.13': - resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} - - '@vue/compiler-ssr@3.5.13': - resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} - - '@vue/reactivity@3.5.13': - resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} - - '@vue/runtime-core@3.5.13': - resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} - - '@vue/runtime-dom@3.5.13': - resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} - - '@vue/server-renderer@3.5.13': - resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} - peerDependencies: - vue: 3.5.13 - - '@vue/shared@3.5.13': - resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} - '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -1629,8 +1594,8 @@ packages: resolution: {integrity: sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==} engines: {node: '>=4'} - autoprefixer@10.4.20: - resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + autoprefixer@10.4.21: + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1682,11 +1647,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.25.1: resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -1705,12 +1665,6 @@ packages: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} - bundle-require@5.1.0: - resolution: {integrity: sha512-3WrrOuZiyaaZPWiEt4G3+IffISVC9HYlWueJEBWED4ZH4aIAC2PnkdnuRrR94M+w6yGWn4AglWtJtBI8YqvgoA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.18' - byte-length@1.0.2: resolution: {integrity: sha512-ovBpjmsgd/teRmgcPh23d4gJvxDoXtAzEL9xTfMU8Yc2kqCDb7L9jAG0XHl1nzuGl+h3ebCIF1i62UFyA9V/2Q==} @@ -1742,9 +1696,6 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - caniuse-lite@1.0.30001712: - resolution: {integrity: sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==} - caniuse-lite@1.0.30001727: resolution: {integrity: sha512-pB68nIHmbN6L/4C6MH1DokyR3bYqFwjaSs/sWDHGj4CTcFtQUQMuJftVwWkXq7mNWOybD3KhUv3oWHoGxgP14Q==} @@ -1779,10 +1730,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} - color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} @@ -1892,9 +1839,9 @@ packages: cron@3.2.1: resolution: {integrity: sha512-w2n5l49GMmmkBFEsH9FIDhjZ1n1QgTMOCMGuQtOXs5veNiosZmso6bQGuqOJSYAXXrG84WQFVneNk+Yt0Ua9iw==} - cross-env@7.0.3: - resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==} - engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'} + cross-env@10.1.0: + resolution: {integrity: sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==} + engines: {node: '>=20'} hasBin: true cross-spawn@7.0.6: @@ -1960,15 +1907,6 @@ packages: supports-color: optional: true - debug@4.4.0: - resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.4.1: resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} engines: {node: '>=6.0'} @@ -2083,9 +2021,6 @@ packages: electron-to-chromium@1.5.180: resolution: {integrity: sha512-ED+GEyEh3kYMwt2faNmgMB0b8O5qtATGgR4RmRsIp4T6p7B8vdMbIedYndnvZfsaXvSzegtpfqRMDNCjjiSduA==} - electron-to-chromium@1.5.67: - resolution: {integrity: sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2122,9 +2057,6 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - error-stack-parser@2.1.4: - resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} - es-abstract@1.23.9: resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} @@ -2184,8 +2116,8 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - eslint-config-prettier@10.1.5: - resolution: {integrity: sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw==} + eslint-config-prettier@10.1.8: + resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} hasBin: true peerDependencies: eslint: '>=7.0.0' @@ -2193,8 +2125,8 @@ packages: eslint-linter-browserify@9.26.0: resolution: {integrity: sha512-mxM/MxVUaEFwhg551PRxrb5jjoNanBt4if+C0tyhv8CA26CHfMq9w6LuHe4EQVfZfQFVCtWqV6QznfY2UKsCPw==} - eslint-plugin-prettier@5.5.1: - resolution: {integrity: sha512-dobTkHT6XaEVOo8IO90Q4DOSxnm3Y151QxPJlM/vKC0bVy+d6cVWQZLlFiuZPP0wS6vZwSKeJgKkcS+KfMBlRw==} + eslint-plugin-prettier@5.5.4: + resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -2241,8 +2173,8 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.30.1: - resolution: {integrity: sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==} + eslint@9.39.1: + resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -2271,9 +2203,6 @@ packages: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -2310,10 +2239,6 @@ packages: exsolve@1.0.7: resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} - fake-indexeddb@6.0.1: - resolution: {integrity: sha512-He2AjQGHe46svIFq5+L2Nx/eHDTI1oKgoevBP+TthnjymXiKkeJQ3+ITeWey99Y5+2OaPFbI1qEsx/5RsGtWnQ==} - engines: {node: '>=18'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2344,16 +2269,17 @@ packages: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} - fdir@6.4.4: - resolution: {integrity: sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==} + fdir@6.4.6: + resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2447,10 +2373,6 @@ packages: functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.7: resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} @@ -2489,6 +2411,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} @@ -2497,8 +2423,8 @@ packages: resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} engines: {node: '>=18'} - globals@16.3.0: - resolution: {integrity: sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==} + globals@16.5.0: + resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} globalthis@1.0.4: @@ -2558,9 +2484,6 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -2635,9 +2558,6 @@ packages: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - importx@0.5.2: - resolution: {integrity: sha512-YEwlK86Ml5WiTxN/ECUYC5U7jd1CisAVw7ya4i9ZppBoHfFkT2+hChhr3PE2fYxUKLkNyivxEQpa5Ruil1LJBQ==} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} @@ -2664,10 +2584,6 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} - interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} - ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -2856,12 +2772,8 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} - hasBin: true - - jiti@2.4.2: - resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + jiti@2.6.1: + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true js-tokens@4.0.0: @@ -2883,6 +2795,11 @@ packages: canvas: optional: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2931,10 +2848,6 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - load-tsconfig@0.2.5: - resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - loader-runner@4.3.0: resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} engines: {node: '>=6.11.5'} @@ -2989,6 +2902,9 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -3149,9 +3065,6 @@ packages: resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} engines: {node: '>= 6.13.0'} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} - node-releases@2.0.19: resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} @@ -3297,9 +3210,6 @@ packages: path-to-regexp@0.1.12: resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} - pathe@1.1.2: - resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -3328,6 +3238,10 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -3342,8 +3256,8 @@ packages: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} - postcss-loader@8.1.1: - resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + postcss-loader@8.2.0: + resolution: {integrity: sha512-tHX+RkpsXVcc7st4dSdDGliI+r4aAQDuv+v3vFYHixb6YgjreG5AG4SEB0kDK8u2s6htqEEpKlkhSBUTvWKYnA==} engines: {node: '>= 18.12.0'} peerDependencies: '@rspack/core': 0.x || 1.x @@ -3403,6 +3317,9 @@ packages: quansync@0.2.10: resolution: {integrity: sha512-t41VRkMYbkHyCYmOvx/6URnN80H7k4X0lLdBMGsz+maAwrJQYB1djpV6vHrQIBE0WBSGqhtEHrK9U3DWWH8v7A==} + quansync@0.2.11: + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -3493,10 +3410,6 @@ packages: react: 15 - 18 react-dom: 15 - 18 - react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} - react-router-dom@7.6.3: resolution: {integrity: sha512-DiWJm9qdUAmiJrVWaeJdu4TKu13+iB/8IEi0EW/XgaHCjW/vWGrwzup0GVvaMteuZjKnh5bEvJP/K0MDnzawHw==} engines: {node: '>=20.0.0'} @@ -3539,10 +3452,6 @@ packages: resolution: {integrity: sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==} engines: {node: '>= 0.10'} - rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} - redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} @@ -3555,10 +3464,6 @@ packages: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} - require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} - require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} @@ -3761,8 +3666,8 @@ packages: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} - sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} engines: {node: '>=18'} sockjs@0.3.24: @@ -3789,9 +3694,6 @@ packages: stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - stackframe@1.3.4: - resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} - statuses@1.5.0: resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} engines: {node: '>= 0.6'} @@ -3935,14 +3837,14 @@ packages: tinyexec@1.0.1: resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} - tinyglobby@0.2.13: - resolution: {integrity: sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.14: resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} engines: {node: '>=12.0.0'} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tinypool@1.1.1: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -4056,15 +3958,15 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typescript-eslint@8.35.1: - resolution: {integrity: sha512-xslJjFzhOmHYQzSB/QTeASAHbjmxOGEP6Coh93TXmUBFQoJ1VU35UHIDmG06Jd6taf3wqqC1ntBnCMeymy5Ovw==} + typescript-eslint@8.46.3: + resolution: {integrity: sha512-bAfgMavTuGo+8n6/QQDVQz4tZ4f7Soqg53RbrlZQEoAltYop/XR4RAts/I0BrO3TTClTSTFJ0wYbla+P8cEWJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - typescript@5.8.3: - resolution: {integrity: sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==} + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true @@ -4075,18 +3977,18 @@ packages: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - unconfig@0.6.1: - resolution: {integrity: sha512-cVU+/sPloZqOyJEAfNwnQSFCzFrZm85vcVkryH7lnlB/PiTycUkAjt5Ds79cfIshGOZ+M5v3PBDnKgpmlE5DtA==} + unconfig@7.3.3: + resolution: {integrity: sha512-QCkQoOnJF8L107gxfHL0uavn7WD9b3dpBcFX6HtfQYmjw2YzWxGuFQ0N0J6tE9oguCBJn9KOvfqYDCMPHIZrBA==} undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} - unocss@0.65.4: - resolution: {integrity: sha512-KUCW5OzI20Ik6j1zXkkrpWhxZ59TwSKl6+DvmYHEzMfaEcrHlBZaFSApAoSt2CYSvo6SluGiKyr+Im1UTkd4KA==} + unocss@66.5.4: + resolution: {integrity: sha512-yNajR8ADgvOzLhDkMKAXVE/SHM4sDrtVhhCnhBjiUMOR0LHIYO7cqunJJudbccrsfJbRTn/odSTBGu9f2IaXOg==} engines: {node: '>=14'} peerDependencies: - '@unocss/webpack': 0.65.4 - vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 + '@unocss/webpack': 66.5.4 + vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0 peerDependenciesMeta: '@unocss/webpack': optional: true @@ -4097,11 +3999,9 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' + unplugin-utils@0.3.1: + resolution: {integrity: sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==} + engines: {node: '>=20.19.0'} update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} @@ -4238,18 +4138,8 @@ packages: resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==} engines: {node: '>=0.10.0'} - vue-flow-layout@0.1.1: - resolution: {integrity: sha512-JdgRRUVrN0Y2GosA0M68DEbKlXMqJ7FQgsK8CjQD2vxvNSqAU6PZEpi4cfcTVtfM2GVOMjHo7GKKLbXxOBqDqA==} - peerDependencies: - vue: ^3.4.37 - - vue@3.5.13: - resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + vue-flow-layout@0.2.0: + resolution: {integrity: sha512-zKgsWWkXq0xrus7H4Mc+uFs1ESrmdTXlO0YNbR6wMdPaFvosL3fMB8N7uTV308UhGy9UvTrGhIY7mVz9eN+L0Q==} w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} @@ -4413,27 +4303,15 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - yallist@5.0.0: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml@2.8.0: - resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==} + yaml@2.8.1: + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} engines: {node: '>= 14.6'} hasBin: true - yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} - - yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} - yauzl@3.2.0: resolution: {integrity: sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==} engines: {node: '>=12'} @@ -4464,13 +4342,13 @@ snapshots: package-manager-detector: 1.3.0 tinyexec: 1.0.1 - '@antfu/utils@8.1.1': {} + '@antfu/utils@9.3.0': {} '@arco-design/color@0.4.0': dependencies: color: 3.2.1 - '@arco-design/web-react@2.66.1(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@arco-design/web-react@2.66.7(@types/react@18.3.23)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@arco-design/color': 0.4.0 '@babel/runtime': 7.27.6 @@ -4499,27 +4377,68 @@ snapshots: '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 - '@babel/code-frame@7.26.2': + '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/generator@7.28.5': + dependencies: + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + jsesc: 3.1.0 + '@babel/helper-string-parser@7.27.1': {} '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.27.7': + dependencies: + '@babel/types': 7.28.0 + '@babel/parser@7.28.0': dependencies: '@babel/types': 7.28.0 + '@babel/parser@7.28.5': + dependencies: + '@babel/types': 7.28.5 + '@babel/runtime@7.27.6': {} + '@babel/template@7.27.2': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/parser': 7.28.0 + '@babel/types': 7.28.0 + + '@babel/traverse@7.27.7': + dependencies: + '@babel/code-frame': 7.27.1 + '@babel/generator': 7.28.5 + '@babel/parser': 7.28.0 + '@babel/template': 7.27.2 + '@babel/types': 7.28.0 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + '@babel/types@7.28.0': dependencies: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.27.1 + '@babel/types@7.28.5': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + '@bcoe/v8-coverage@1.0.2': {} '@buttercup/fetch@0.2.1': @@ -4594,22 +4513,24 @@ snapshots: react: 18.3.1 tslib: 2.8.0 - '@emnapi/core@1.4.3': + '@emnapi/core@1.7.0': dependencies: - '@emnapi/wasi-threads': 1.0.2 + '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 optional: true - '@emnapi/runtime@1.4.3': + '@emnapi/runtime@1.7.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.0.2': + '@emnapi/wasi-threads@1.1.0': dependencies: tslib: 2.8.1 optional: true + '@epic-web/invariant@1.0.0': {} + '@esbuild/aix-ppc64@0.23.1': optional: true @@ -4757,44 +4678,44 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.4.1(eslint@9.30.1(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.7.0(eslint@9.39.1(jiti@2.6.1))': dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.30.1(jiti@2.4.2))': + '@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))': dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.1(eslint@9.30.1(jiti@2.4.2))': + '@eslint/compat@1.4.1(eslint@9.39.1(jiti@2.6.1))': + dependencies: + '@eslint/core': 0.17.0 optionalDependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.0 + '@eslint/object-schema': 2.1.7 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/config-helpers@0.3.0': {} - - '@eslint/core@0.14.0': + '@eslint/config-helpers@0.4.2': dependencies: - '@types/json-schema': 7.0.15 + '@eslint/core': 0.17.0 - '@eslint/core@0.15.1': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.1 espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -4805,13 +4726,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.30.1': {} + '@eslint/js@9.38.0': {} + + '@eslint/js@9.39.1': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} - '@eslint/plugin-kit@0.3.3': + '@eslint/plugin-kit@0.4.1': dependencies: - '@eslint/core': 0.15.1 + '@eslint/core': 0.17.0 levn: 0.4.1 '@gilbarbara/deep-equal@0.1.2': {} @@ -4833,10 +4756,10 @@ snapshots: '@iconify/types@2.0.0': {} - '@iconify/utils@2.3.0': + '@iconify/utils@3.0.2': dependencies: '@antfu/install-pkg': 1.1.0 - '@antfu/utils': 8.1.1 + '@antfu/utils': 9.3.0 '@iconify/types': 2.0.0 debug: 4.4.1 globals: 15.15.0 @@ -4866,6 +4789,11 @@ snapshots: '@jridgewell/sourcemap-codec': 1.5.4 '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + '@jridgewell/trace-mapping': 0.3.29 + '@jridgewell/resolve-uri@3.1.2': {} '@jridgewell/source-map@0.3.10': @@ -4878,6 +4806,8 @@ snapshots: '@jridgewell/sourcemap-codec@1.5.4': {} + '@jridgewell/sourcemap-codec@1.5.5': {} + '@jridgewell/trace-mapping@0.3.29': dependencies: '@jridgewell/resolve-uri': 3.1.2 @@ -4906,36 +4836,36 @@ snapshots: '@leichtgewicht/ip-codec@2.0.5': {} - '@module-federation/error-codes@0.15.0': {} + '@module-federation/error-codes@0.21.2': {} - '@module-federation/runtime-core@0.15.0': + '@module-federation/runtime-core@0.21.2': dependencies: - '@module-federation/error-codes': 0.15.0 - '@module-federation/sdk': 0.15.0 + '@module-federation/error-codes': 0.21.2 + '@module-federation/sdk': 0.21.2 - '@module-federation/runtime-tools@0.15.0': + '@module-federation/runtime-tools@0.21.2': dependencies: - '@module-federation/runtime': 0.15.0 - '@module-federation/webpack-bundler-runtime': 0.15.0 + '@module-federation/runtime': 0.21.2 + '@module-federation/webpack-bundler-runtime': 0.21.2 - '@module-federation/runtime@0.15.0': + '@module-federation/runtime@0.21.2': dependencies: - '@module-federation/error-codes': 0.15.0 - '@module-federation/runtime-core': 0.15.0 - '@module-federation/sdk': 0.15.0 + '@module-federation/error-codes': 0.21.2 + '@module-federation/runtime-core': 0.21.2 + '@module-federation/sdk': 0.21.2 - '@module-federation/sdk@0.15.0': {} + '@module-federation/sdk@0.21.2': {} - '@module-federation/webpack-bundler-runtime@0.15.0': + '@module-federation/webpack-bundler-runtime@0.21.2': dependencies: - '@module-federation/runtime': 0.15.0 - '@module-federation/sdk': 0.15.0 + '@module-federation/runtime': 0.21.2 + '@module-federation/sdk': 0.21.2 - '@napi-rs/wasm-runtime@0.2.11': + '@napi-rs/wasm-runtime@1.0.7': dependencies: - '@emnapi/core': 1.4.3 - '@emnapi/runtime': 1.4.3 - '@tybys/wasm-util': 0.9.0 + '@emnapi/core': 1.7.0 + '@emnapi/runtime': 1.7.0 + '@tybys/wasm-util': 0.10.1 optional: true '@nodelib/fs.scandir@2.1.5': @@ -4957,13 +4887,9 @@ snapshots: '@polka/url@1.0.0-next.28': {} - '@rollup/pluginutils@5.1.4(rollup@4.44.2)': + '@quansync/fs@0.1.5': dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.2 - optionalDependencies: - rollup: 4.44.2 + quansync: 0.2.11 '@rollup/rollup-android-arm-eabi@4.44.2': optional: true @@ -5025,62 +4951,58 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.44.2': optional: true - '@rspack/binding-darwin-arm64@1.4.4': + '@rspack/binding-darwin-arm64@1.6.1': optional: true - '@rspack/binding-darwin-x64@1.4.4': + '@rspack/binding-darwin-x64@1.6.1': optional: true - '@rspack/binding-linux-arm64-gnu@1.4.4': + '@rspack/binding-linux-arm64-gnu@1.6.1': optional: true - '@rspack/binding-linux-arm64-musl@1.4.4': + '@rspack/binding-linux-arm64-musl@1.6.1': optional: true - '@rspack/binding-linux-x64-gnu@1.4.4': + '@rspack/binding-linux-x64-gnu@1.6.1': optional: true - '@rspack/binding-linux-x64-musl@1.4.4': + '@rspack/binding-linux-x64-musl@1.6.1': optional: true - '@rspack/binding-wasm32-wasi@1.4.4': + '@rspack/binding-wasm32-wasi@1.6.1': dependencies: - '@napi-rs/wasm-runtime': 0.2.11 + '@napi-rs/wasm-runtime': 1.0.7 optional: true - '@rspack/binding-win32-arm64-msvc@1.4.4': + '@rspack/binding-win32-arm64-msvc@1.6.1': optional: true - '@rspack/binding-win32-ia32-msvc@1.4.4': + '@rspack/binding-win32-ia32-msvc@1.6.1': optional: true - '@rspack/binding-win32-x64-msvc@1.4.4': + '@rspack/binding-win32-x64-msvc@1.6.1': optional: true - '@rspack/binding@1.4.4': + '@rspack/binding@1.6.1': optionalDependencies: - '@rspack/binding-darwin-arm64': 1.4.4 - '@rspack/binding-darwin-x64': 1.4.4 - '@rspack/binding-linux-arm64-gnu': 1.4.4 - '@rspack/binding-linux-arm64-musl': 1.4.4 - '@rspack/binding-linux-x64-gnu': 1.4.4 - '@rspack/binding-linux-x64-musl': 1.4.4 - '@rspack/binding-wasm32-wasi': 1.4.4 - '@rspack/binding-win32-arm64-msvc': 1.4.4 - '@rspack/binding-win32-ia32-msvc': 1.4.4 - '@rspack/binding-win32-x64-msvc': 1.4.4 - - '@rspack/cli@1.4.4(@rspack/core@1.4.4(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1(esbuild@0.25.5))': + '@rspack/binding-darwin-arm64': 1.6.1 + '@rspack/binding-darwin-x64': 1.6.1 + '@rspack/binding-linux-arm64-gnu': 1.6.1 + '@rspack/binding-linux-arm64-musl': 1.6.1 + '@rspack/binding-linux-x64-gnu': 1.6.1 + '@rspack/binding-linux-x64-musl': 1.6.1 + '@rspack/binding-wasm32-wasi': 1.6.1 + '@rspack/binding-win32-arm64-msvc': 1.6.1 + '@rspack/binding-win32-ia32-msvc': 1.6.1 + '@rspack/binding-win32-x64-msvc': 1.6.1 + + '@rspack/cli@1.6.1(@rspack/core@1.6.1(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1)': dependencies: '@discoveryjs/json-ext': 0.5.7 - '@rspack/core': 1.4.4(@swc/helpers@0.5.13) - '@rspack/dev-server': 1.1.3(@rspack/core@1.4.4(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1(esbuild@0.25.5)) - colorette: 2.0.20 + '@rspack/core': 1.6.1(@swc/helpers@0.5.13) + '@rspack/dev-server': 1.1.4(@rspack/core@1.6.1(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1) exit-hook: 4.0.0 - interpret: 3.1.1 - rechoir: 0.8.0 webpack-bundle-analyzer: 4.10.2 - yargs: 17.7.2 transitivePeerDependencies: - '@types/express' - bufferutil @@ -5090,21 +5012,21 @@ snapshots: - webpack - webpack-cli - '@rspack/core@1.4.4(@swc/helpers@0.5.13)': + '@rspack/core@1.6.1(@swc/helpers@0.5.13)': dependencies: - '@module-federation/runtime-tools': 0.15.0 - '@rspack/binding': 1.4.4 + '@module-federation/runtime-tools': 0.21.2 + '@rspack/binding': 1.6.1 '@rspack/lite-tapable': 1.0.1 optionalDependencies: '@swc/helpers': 0.5.13 - '@rspack/dev-server@1.1.3(@rspack/core@1.4.4(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1(esbuild@0.25.5))': + '@rspack/dev-server@1.1.4(@rspack/core@1.6.1(@swc/helpers@0.5.13))(@types/express@4.17.21)(webpack@5.96.1)': dependencies: - '@rspack/core': 1.4.4(@swc/helpers@0.5.13) + '@rspack/core': 1.6.1(@swc/helpers@0.5.13) chokidar: 3.6.0 http-proxy-middleware: 2.0.9(@types/express@4.17.21) p-retry: 6.2.1 - webpack-dev-server: 5.2.2(webpack@5.96.1(esbuild@0.25.5)) + webpack-dev-server: 5.2.2(webpack@5.96.1) ws: 8.18.1 transitivePeerDependencies: - '@types/express' @@ -5117,12 +5039,6 @@ snapshots: '@rspack/lite-tapable@1.0.1': {} - '@rspack/plugin-react-refresh@1.4.3(react-refresh@0.17.0)': - dependencies: - error-stack-parser: 2.1.4 - html-entities: 2.6.0 - react-refresh: 0.17.0 - '@swc/helpers@0.5.13': dependencies: tslib: 2.8.1 @@ -5130,7 +5046,7 @@ snapshots: '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 '@babel/runtime': 7.27.6 '@types/aria-query': 5.0.4 aria-query: 5.3.0 @@ -5159,10 +5075,6 @@ snapshots: '@types/react': 18.3.23 '@types/react-dom': 18.3.7(@types/react@18.3.23) - '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.0)': - dependencies: - '@testing-library/dom': 10.4.0 - '@tsconfig/node10@1.0.11': {} '@tsconfig/node12@1.0.11': {} @@ -5171,7 +5083,7 @@ snapshots: '@tsconfig/node16@1.0.4': {} - '@tybys/wasm-util@0.9.0': + '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 optional: true @@ -5181,17 +5093,17 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/bonjour@3.5.13': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/chai@5.2.2': dependencies: '@types/deep-eql': 4.0.2 - '@types/chrome@0.1.1': + '@types/chrome@0.1.27': dependencies: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 @@ -5199,11 +5111,11 @@ snapshots: '@types/connect-history-api-fallback@1.5.4': dependencies: '@types/express-serve-static-core': 5.0.6 - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/connect@3.4.38': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/crypto-js@4.2.2': {} @@ -5221,20 +5133,18 @@ snapshots: '@types/json-schema': 7.0.15 optional: true - '@types/estree@1.0.7': {} - '@types/estree@1.0.8': {} '@types/express-serve-static-core@4.19.6': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 '@types/express-serve-static-core@5.0.6': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/qs': 6.9.18 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -5258,7 +5168,7 @@ snapshots: '@types/http-proxy@1.17.16': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/json-schema@7.0.15': {} @@ -5268,7 +5178,7 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/node@22.16.0': dependencies: @@ -5277,7 +5187,6 @@ snapshots: '@types/node@22.16.2': dependencies: undici-types: 6.21.0 - optional: true '@types/pako@2.0.3': {} @@ -5298,12 +5207,12 @@ snapshots: '@types/retry@0.12.2': {} - '@types/semver@7.5.8': {} + '@types/semver@7.7.1': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/serve-index@1.9.4': dependencies: @@ -5312,264 +5221,262 @@ snapshots: '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/send': 0.17.4 '@types/serviceworker@0.0.120': {} '@types/sockjs@0.3.36': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 '@types/ws@8.18.1': dependencies: - '@types/node': 22.16.0 + '@types/node': 22.16.2 - '@typescript-eslint/eslint-plugin@8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/type-utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 - eslint: 9.30.1(jiti@2.4.2) + '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.46.3 + '@typescript-eslint/type-utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.3 + eslint: 9.39.1(jiti@2.6.1) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/scope-manager': 8.46.3 + '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.46.3 debug: 4.4.1 - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.35.1(typescript@5.8.3)': + '@typescript-eslint/project-service@8.46.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3) + '@typescript-eslint/types': 8.46.3 debug: 4.4.1 - typescript: 5.8.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.35.1': + '@typescript-eslint/scope-manager@8.46.3': dependencies: - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/visitor-keys': 8.46.3 - '@typescript-eslint/tsconfig-utils@8.35.1(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.46.3(typescript@5.9.3)': dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - '@typescript-eslint/type-utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) + '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.1 - eslint: 9.30.1(jiti@2.4.2) - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + eslint: 9.39.1(jiti@2.6.1) + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.35.1': {} + '@typescript-eslint/types@8.46.3': {} - '@typescript-eslint/typescript-estree@8.35.1(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.46.3(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.35.1(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.35.1(typescript@5.8.3) - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/visitor-keys': 8.35.1 + '@typescript-eslint/project-service': 8.46.3(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3) + '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/visitor-keys': 8.46.3 debug: 4.4.1 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.7.2 - ts-api-utils: 2.1.0(typescript@5.8.3) - typescript: 5.8.3 + ts-api-utils: 2.1.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3)': + '@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.30.1(jiti@2.4.2)) - '@typescript-eslint/scope-manager': 8.35.1 - '@typescript-eslint/types': 8.35.1 - '@typescript-eslint/typescript-estree': 8.35.1(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + '@eslint-community/eslint-utils': 4.7.0(eslint@9.39.1(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.46.3 + '@typescript-eslint/types': 8.46.3 + '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.35.1': + '@typescript-eslint/visitor-keys@8.46.3': dependencies: - '@typescript-eslint/types': 8.35.1 + '@typescript-eslint/types': 8.46.3 eslint-visitor-keys: 4.2.1 - '@unocss/astro@0.65.4(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': + '@unocss/astro@66.5.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1))': dependencies: - '@unocss/core': 0.65.4 - '@unocss/reset': 0.65.4 - '@unocss/vite': 0.65.4(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) + '@unocss/core': 66.5.4 + '@unocss/reset': 66.5.4 + '@unocss/vite': 66.5.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) optionalDependencies: - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) - transitivePeerDependencies: - - rollup - - supports-color - - vue + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) - '@unocss/cli@0.65.4(rollup@4.44.2)': + '@unocss/cli@66.5.4': dependencies: - '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.4(rollup@4.44.2) - '@unocss/config': 0.65.4 - '@unocss/core': 0.65.4 - '@unocss/preset-uno': 0.65.4 + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.5.4 + '@unocss/core': 66.5.4 + '@unocss/preset-uno': 66.5.4 cac: 6.7.14 chokidar: 3.6.0 colorette: 2.0.20 consola: 3.4.2 - magic-string: 0.30.17 - pathe: 1.1.2 + magic-string: 0.30.21 + pathe: 2.0.3 perfect-debounce: 1.0.0 - tinyglobby: 0.2.14 - transitivePeerDependencies: - - rollup - - supports-color + tinyglobby: 0.2.15 + unplugin-utils: 0.3.1 - '@unocss/config@0.65.4': + '@unocss/config@66.5.4': dependencies: - '@unocss/core': 0.65.4 - unconfig: 0.6.1 - transitivePeerDependencies: - - supports-color + '@unocss/core': 66.5.4 + unconfig: 7.3.3 - '@unocss/core@0.65.4': {} + '@unocss/core@66.5.4': {} - '@unocss/extractor-arbitrary-variants@0.65.4': + '@unocss/extractor-arbitrary-variants@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 - '@unocss/inspector@0.65.4(vue@3.5.13(typescript@5.8.3))': + '@unocss/inspector@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/rule-utils': 66.5.4 colorette: 2.0.20 gzip-size: 6.0.0 - sirv: 3.0.1 - vue-flow-layout: 0.1.1(vue@3.5.13(typescript@5.8.3)) - transitivePeerDependencies: - - vue + sirv: 3.0.2 + vue-flow-layout: 0.2.0 - '@unocss/postcss@0.65.4(postcss@8.5.6)': + '@unocss/postcss@66.5.4(postcss@8.5.6)': dependencies: - '@unocss/config': 0.65.4 - '@unocss/core': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/config': 66.5.4 + '@unocss/core': 66.5.4 + '@unocss/rule-utils': 66.5.4 css-tree: 3.1.0 postcss: 8.5.6 - tinyglobby: 0.2.13 - transitivePeerDependencies: - - supports-color + tinyglobby: 0.2.15 - '@unocss/preset-attributify@0.65.4': + '@unocss/preset-attributify@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 - '@unocss/preset-icons@0.65.4': + '@unocss/preset-icons@66.5.4': dependencies: - '@iconify/utils': 2.3.0 - '@unocss/core': 0.65.4 + '@iconify/utils': 3.0.2 + '@unocss/core': 66.5.4 ofetch: 1.4.1 transitivePeerDependencies: - supports-color - '@unocss/preset-mini@0.65.4': + '@unocss/preset-mini@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/extractor-arbitrary-variants': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/extractor-arbitrary-variants': 66.5.4 + '@unocss/rule-utils': 66.5.4 - '@unocss/preset-tagify@0.65.4': + '@unocss/preset-tagify@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 - '@unocss/preset-typography@0.65.4': + '@unocss/preset-typography@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/preset-mini': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/rule-utils': 66.5.4 - '@unocss/preset-uno@0.65.4': + '@unocss/preset-uno@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/preset-mini': 0.65.4 - '@unocss/preset-wind': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/preset-wind3': 66.5.4 - '@unocss/preset-web-fonts@0.65.4': + '@unocss/preset-web-fonts@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 ofetch: 1.4.1 - '@unocss/preset-wind@0.65.4': + '@unocss/preset-wind3@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/preset-mini': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/preset-mini': 66.5.4 + '@unocss/rule-utils': 66.5.4 - '@unocss/reset@0.65.4': {} + '@unocss/preset-wind4@66.5.4': + dependencies: + '@unocss/core': 66.5.4 + '@unocss/extractor-arbitrary-variants': 66.5.4 + '@unocss/rule-utils': 66.5.4 - '@unocss/rule-utils@0.65.4': + '@unocss/preset-wind@66.5.4': dependencies: - '@unocss/core': 0.65.4 - magic-string: 0.30.17 + '@unocss/core': 66.5.4 + '@unocss/preset-wind3': 66.5.4 + + '@unocss/reset@66.5.4': {} + + '@unocss/rule-utils@66.5.4': + dependencies: + '@unocss/core': 66.5.4 + magic-string: 0.30.21 - '@unocss/transformer-attributify-jsx@0.65.4': + '@unocss/transformer-attributify-jsx@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@babel/parser': 7.27.7 + '@babel/traverse': 7.27.7 + '@unocss/core': 66.5.4 + transitivePeerDependencies: + - supports-color - '@unocss/transformer-compile-class@0.65.4': + '@unocss/transformer-compile-class@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 - '@unocss/transformer-directives@0.65.4': + '@unocss/transformer-directives@66.5.4': dependencies: - '@unocss/core': 0.65.4 - '@unocss/rule-utils': 0.65.4 + '@unocss/core': 66.5.4 + '@unocss/rule-utils': 66.5.4 css-tree: 3.1.0 - '@unocss/transformer-variant-group@0.65.4': + '@unocss/transformer-variant-group@66.5.4': dependencies: - '@unocss/core': 0.65.4 + '@unocss/core': 66.5.4 - '@unocss/vite@0.65.4(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3))': + '@unocss/vite@66.5.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1))': dependencies: - '@ampproject/remapping': 2.3.0 - '@rollup/pluginutils': 5.1.4(rollup@4.44.2) - '@unocss/config': 0.65.4 - '@unocss/core': 0.65.4 - '@unocss/inspector': 0.65.4(vue@3.5.13(typescript@5.8.3)) + '@jridgewell/remapping': 2.3.5 + '@unocss/config': 66.5.4 + '@unocss/core': 66.5.4 + '@unocss/inspector': 66.5.4 chokidar: 3.6.0 - magic-string: 0.30.17 - tinyglobby: 0.2.14 - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) - transitivePeerDependencies: - - rollup - - supports-color - - vue + magic-string: 0.30.21 + pathe: 2.0.3 + tinyglobby: 0.2.15 + unplugin-utils: 0.3.1 + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) - '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@22.16.0)(jiti@2.4.2)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))': + '@vitest/coverage-v8@3.2.4(vitest@3.2.4(@types/node@22.16.0)(jiti@2.6.1)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 @@ -5579,12 +5486,12 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.17 + magic-string: 0.30.21 magicast: 0.3.5 std-env: 3.9.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.2.4(@types/node@22.16.0)(jiti@2.4.2)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + vitest: 3.2.4(@types/node@22.16.0)(jiti@2.6.1)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) transitivePeerDependencies: - supports-color @@ -5596,13 +5503,13 @@ snapshots: chai: 5.2.0 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))': + '@vitest/mocker@3.2.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) '@vitest/pretty-format@3.2.4': dependencies: @@ -5630,60 +5537,6 @@ snapshots: loupe: 3.1.4 tinyrainbow: 2.0.0 - '@vue/compiler-core@3.5.13': - dependencies: - '@babel/parser': 7.28.0 - '@vue/shared': 3.5.13 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.13': - dependencies: - '@vue/compiler-core': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/compiler-sfc@3.5.13': - dependencies: - '@babel/parser': 7.28.0 - '@vue/compiler-core': 3.5.13 - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - estree-walker: 2.0.2 - magic-string: 0.30.17 - postcss: 8.5.6 - source-map-js: 1.2.1 - - '@vue/compiler-ssr@3.5.13': - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/reactivity@3.5.13': - dependencies: - '@vue/shared': 3.5.13 - - '@vue/runtime-core@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/shared': 3.5.13 - - '@vue/runtime-dom@3.5.13': - dependencies: - '@vue/reactivity': 3.5.13 - '@vue/runtime-core': 3.5.13 - '@vue/shared': 3.5.13 - csstype: 3.1.3 - - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.8.3))': - dependencies: - '@vue/compiler-ssr': 3.5.13 - '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.8.3) - - '@vue/shared@3.5.13': {} - '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -5963,10 +5816,10 @@ snapshots: attr-accept@2.2.5: {} - autoprefixer@10.4.20(postcss@8.5.6): + autoprefixer@10.4.21(postcss@8.5.6): dependencies: - browserslist: 4.24.2 - caniuse-lite: 1.0.30001712 + browserslist: 4.25.1 + caniuse-lite: 1.0.30001727 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.1.1 @@ -6032,20 +5885,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: - dependencies: - caniuse-lite: 1.0.30001712 - electron-to-chromium: 1.5.67 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) - browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001727 electron-to-chromium: 1.5.180 node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.25.1) - optional: true buffer-crc32@0.2.13: {} @@ -6061,11 +5906,6 @@ snapshots: dependencies: run-applescript: 7.0.0 - bundle-require@5.1.0(esbuild@0.25.5): - dependencies: - esbuild: 0.25.5 - load-tsconfig: 0.2.5 - byte-length@1.0.2: {} bytes@3.1.2: {} @@ -6096,10 +5936,7 @@ snapshots: callsites@3.1.0: {} - caniuse-lite@1.0.30001712: {} - - caniuse-lite@1.0.30001727: - optional: true + caniuse-lite@1.0.30001727: {} chai@5.2.0: dependencies: @@ -6140,12 +5977,6 @@ snapshots: chrome-trace-event@1.0.4: optional: true - cliui@8.0.1: - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -6225,14 +6056,14 @@ snapshots: core-util-is@1.0.3: {} - cosmiconfig@9.0.0(typescript@5.8.3): + cosmiconfig@9.0.0(typescript@5.9.3): dependencies: env-paths: 2.2.1 import-fresh: 3.3.0 js-yaml: 4.1.0 parse-json: 5.2.0 optionalDependencies: - typescript: 5.8.3 + typescript: 5.9.3 crc32-stream@3.0.1: dependencies: @@ -6250,8 +6081,9 @@ snapshots: '@types/luxon': 3.4.2 luxon: 3.5.0 - cross-env@7.0.3: + cross-env@10.1.0: dependencies: + '@epic-web/invariant': 1.0.0 cross-spawn: 7.0.6 cross-spawn@7.0.6: @@ -6318,10 +6150,6 @@ snapshots: dependencies: ms: 2.0.0 - debug@4.4.0: - dependencies: - ms: 2.1.3 - debug@4.4.1: dependencies: ms: 2.1.3 @@ -6406,10 +6234,7 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.180: - optional: true - - electron-to-chromium@1.5.67: {} + electron-to-chromium@1.5.180: {} emoji-regex@8.0.0: {} @@ -6439,10 +6264,6 @@ snapshots: dependencies: is-arrayish: 0.2.1 - error-stack-parser@2.1.4: - dependencies: - stackframe: 1.3.4 - es-abstract@1.23.9: dependencies: array-buffer-byte-length: 1.0.2 @@ -6573,6 +6394,7 @@ snapshots: '@esbuild/win32-arm64': 0.23.1 '@esbuild/win32-ia32': 0.23.1 '@esbuild/win32-x64': 0.23.1 + optional: true esbuild@0.25.5: optionalDependencies: @@ -6608,27 +6430,27 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)): + eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) eslint-linter-browserify@9.26.0: {} - eslint-plugin-prettier@5.5.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@9.30.1(jiti@2.4.2)))(eslint@9.30.1(jiti@2.4.2))(prettier@3.6.2): + eslint-plugin-prettier@5.5.4(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.6.2): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.8 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.5(eslint@9.30.1(jiti@2.4.2)) + eslint-config-prettier: 10.1.8(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-react-hooks@5.2.0(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-react-hooks@5.2.0(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-react@7.37.5(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@2.6.1)): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 @@ -6636,7 +6458,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -6650,9 +6472,9 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-userscripts@0.5.6(eslint@9.30.1(jiti@2.4.2)): + eslint-plugin-userscripts@0.5.6(eslint@9.39.1(jiti@2.6.1)): dependencies: - eslint: 9.30.1(jiti@2.4.2) + eslint: 9.39.1(jiti@2.6.1) semver: 7.7.2 eslint-scope@5.1.1: @@ -6670,25 +6492,24 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.30.1(jiti@2.4.2): + eslint@9.39.1(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.4.1(eslint@9.30.1(jiti@2.4.2)) + '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 - '@eslint/config-helpers': 0.3.0 - '@eslint/core': 0.14.0 + '@eslint/config-array': 0.21.1 + '@eslint/config-helpers': 0.4.2 + '@eslint/core': 0.17.0 '@eslint/eslintrc': 3.3.1 - '@eslint/js': 9.30.1 - '@eslint/plugin-kit': 0.3.3 + '@eslint/js': 9.39.1 + '@eslint/plugin-kit': 0.4.1 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.2 - '@types/estree': 1.0.7 - '@types/json-schema': 7.0.15 + '@types/estree': 1.0.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0 + debug: 4.4.1 escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -6708,7 +6529,7 @@ snapshots: natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: - jiti: 2.4.2 + jiti: 2.6.1 transitivePeerDependencies: - supports-color @@ -6731,8 +6552,6 @@ snapshots: estraverse@5.3.0: {} - estree-walker@2.0.2: {} - estree-walker@3.0.3: dependencies: '@types/estree': 1.0.8 @@ -6790,8 +6609,6 @@ snapshots: exsolve@1.0.7: {} - fake-indexeddb@6.0.1: {} - fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} @@ -6822,13 +6639,13 @@ snapshots: dependencies: websocket-driver: 0.7.4 - fdir@6.4.4(picomatch@4.0.2): + fdir@6.4.6(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 - fdir@6.4.6(picomatch@4.0.2): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: - picomatch: 4.0.2 + picomatch: 4.0.3 fetch-blob@3.2.0: dependencies: @@ -6916,8 +6733,6 @@ snapshots: functions-have-names@1.2.3: {} - get-caller-file@2.0.5: {} - get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.2 @@ -6958,6 +6773,7 @@ snapshots: get-tsconfig@4.8.1: dependencies: resolve-pkg-maps: 1.0.0 + optional: true glob-parent@5.1.2: dependencies: @@ -6988,11 +6804,13 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + globals@11.12.0: {} + globals@14.0.0: {} globals@15.15.0: {} - globals@16.3.0: {} + globals@16.5.0: {} globalthis@1.0.4: dependencies: @@ -7046,8 +6864,6 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 - html-entities@2.6.0: {} - html-escaper@2.0.2: {} html-parse-stringify@3.0.1: @@ -7134,17 +6950,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - importx@0.5.2: - dependencies: - bundle-require: 5.1.0(esbuild@0.25.5) - debug: 4.4.1 - esbuild: 0.25.5 - jiti: 2.4.2 - pathe: 2.0.3 - tsx: 4.19.2 - transitivePeerDependencies: - - supports-color - imurmurhash@0.1.4: {} indent-string@4.0.0: {} @@ -7166,8 +6971,6 @@ snapshots: interpret@1.4.0: {} - interpret@3.1.1: {} - ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} @@ -7351,9 +7154,7 @@ snapshots: supports-color: 8.1.1 optional: true - jiti@1.21.6: {} - - jiti@2.4.2: {} + jiti@2.6.1: {} js-tokens@4.0.0: {} @@ -7390,6 +7191,8 @@ snapshots: - supports-color - utf-8-validate + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -7442,8 +7245,6 @@ snapshots: lines-and-columns@1.2.4: {} - load-tsconfig@0.2.5: {} - loader-runner@4.3.0: optional: true @@ -7487,10 +7288,14 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.4 + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + magicast@0.3.5: dependencies: - '@babel/parser': 7.28.0 - '@babel/types': 7.28.0 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 source-map-js: 1.2.1 make-dir@4.0.0: @@ -7564,7 +7369,7 @@ snapshots: mlly@1.7.4: dependencies: - acorn: 8.14.1 + acorn: 8.15.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.5.4 @@ -7613,10 +7418,7 @@ snapshots: node-forge@1.3.1: {} - node-releases@2.0.18: {} - - node-releases@2.0.19: - optional: true + node-releases@2.0.19: {} node-rsa@1.1.1: dependencies: @@ -7736,7 +7538,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.26.2 + '@babel/code-frame': 7.27.1 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -7764,8 +7566,6 @@ snapshots: path-to-regexp@0.1.12: {} - pathe@1.1.2: {} - pathe@2.0.3: {} pathval@2.0.1: {} @@ -7785,6 +7585,8 @@ snapshots: picomatch@4.0.2: {} + picomatch@4.0.3: {} + pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -7801,15 +7603,15 @@ snapshots: possible-typed-array-names@1.0.0: {} - postcss-loader@8.1.1(@rspack/core@1.4.4(@swc/helpers@0.5.13))(postcss@8.5.6)(typescript@5.8.3)(webpack@5.96.1(esbuild@0.25.5)): + postcss-loader@8.2.0(@rspack/core@1.6.1(@swc/helpers@0.5.13))(postcss@8.5.6)(typescript@5.9.3)(webpack@5.96.1): dependencies: - cosmiconfig: 9.0.0(typescript@5.8.3) - jiti: 1.21.6 + cosmiconfig: 9.0.0(typescript@5.9.3) + jiti: 2.6.1 postcss: 8.5.6 semver: 7.7.2 optionalDependencies: - '@rspack/core': 1.4.4(@swc/helpers@0.5.13) - webpack: 5.96.1(esbuild@0.25.5) + '@rspack/core': 1.6.1(@swc/helpers@0.5.13) + webpack: 5.96.1 transitivePeerDependencies: - typescript @@ -7858,6 +7660,8 @@ snapshots: quansync@0.2.10: {} + quansync@0.2.11: {} + querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -7916,7 +7720,7 @@ snapshots: optionalDependencies: '@types/react': 18.3.23 - react-i18next@15.6.0(i18next@23.16.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.8.3): + react-i18next@15.6.0(i18next@23.16.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.9.3): dependencies: '@babel/runtime': 7.27.6 html-parse-stringify: 3.0.1 @@ -7924,7 +7728,7 @@ snapshots: react: 18.3.1 optionalDependencies: react-dom: 18.3.1(react@18.3.1) - typescript: 5.8.3 + typescript: 5.9.3 react-icons@5.5.0(react@18.3.1): dependencies: @@ -7959,8 +7763,6 @@ snapshots: transitivePeerDependencies: - '@types/react' - react-refresh@0.17.0: {} - react-router-dom@7.6.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 @@ -8012,10 +7814,6 @@ snapshots: dependencies: resolve: 1.22.10 - rechoir@0.8.0: - dependencies: - resolve: 1.22.10 - redent@3.0.0: dependencies: indent-string: 4.0.0 @@ -8039,8 +7837,6 @@ snapshots: es-errors: 1.3.0 set-function-name: 2.0.2 - require-directory@2.1.1: {} - require-from-string@2.0.2: {} requires-port@1.0.0: {} @@ -8049,7 +7845,8 @@ snapshots: resolve-from@4.0.0: {} - resolve-pkg-maps@1.0.0: {} + resolve-pkg-maps@1.0.0: + optional: true resolve-protobuf-schema@2.1.0: dependencies: @@ -8303,7 +8100,7 @@ snapshots: mrmime: 2.0.0 totalist: 3.0.1 - sirv@3.0.1: + sirv@3.0.2: dependencies: '@polka/url': 1.0.0-next.28 mrmime: 2.0.0 @@ -8349,8 +8146,6 @@ snapshots: stackback@0.0.2: {} - stackframe@1.3.4: {} - statuses@1.5.0: {} statuses@2.0.1: {} @@ -8480,16 +8275,14 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 - terser-webpack-plugin@5.3.14(esbuild@0.25.5)(webpack@5.96.1(esbuild@0.25.5)): + terser-webpack-plugin@5.3.14(webpack@5.96.1): dependencies: '@jridgewell/trace-mapping': 0.3.29 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.43.1 - webpack: 5.96.1(esbuild@0.25.5) - optionalDependencies: - esbuild: 0.25.5 + webpack: 5.96.1 optional: true terser@5.43.1: @@ -8518,16 +8311,16 @@ snapshots: tinyexec@1.0.1: {} - tinyglobby@0.2.13: - dependencies: - fdir: 6.4.4(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.14: dependencies: fdir: 6.4.6(picomatch@4.0.2) picomatch: 4.0.2 + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tinypool@1.1.1: {} tinyrainbow@2.0.0: {} @@ -8572,11 +8365,11 @@ snapshots: dependencies: tslib: 2.8.1 - ts-api-utils@2.1.0(typescript@5.8.3): + ts-api-utils@2.1.0(typescript@5.9.3): dependencies: - typescript: 5.8.3 + typescript: 5.9.3 - ts-node@10.9.2(@types/node@22.16.0)(typescript@5.8.3): + ts-node@10.9.2(@types/node@22.16.0)(typescript@5.9.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -8590,7 +8383,7 @@ snapshots: create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.8.3 + typescript: 5.9.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -8604,6 +8397,7 @@ snapshots: get-tsconfig: 4.8.1 optionalDependencies: fsevents: 2.3.3 + optional: true type-check@0.4.0: dependencies: @@ -8649,17 +8443,18 @@ snapshots: possible-typed-array-names: 1.0.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3): + typescript-eslint@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.35.1(@typescript-eslint/parser@8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3))(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/parser': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - '@typescript-eslint/utils': 8.35.1(eslint@9.30.1(jiti@2.4.2))(typescript@5.8.3) - eslint: 9.30.1(jiti@2.4.2) - typescript: 5.8.3 + '@typescript-eslint/eslint-plugin': 8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3) + '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + eslint: 9.39.1(jiti@2.6.1) + typescript: 5.9.3 transitivePeerDependencies: - supports-color - typescript@5.8.3: {} + typescript@5.9.3: {} ufo@1.5.4: {} @@ -8670,57 +8465,54 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - unconfig@0.6.1: + unconfig@7.3.3: dependencies: - '@antfu/utils': 8.1.1 + '@quansync/fs': 0.1.5 defu: 6.1.4 - importx: 0.5.2 - transitivePeerDependencies: - - supports-color + jiti: 2.6.1 + quansync: 0.2.11 undici-types@6.21.0: {} - unocss@0.65.4(postcss@8.5.6)(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)): - dependencies: - '@unocss/astro': 0.65.4(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) - '@unocss/cli': 0.65.4(rollup@4.44.2) - '@unocss/core': 0.65.4 - '@unocss/postcss': 0.65.4(postcss@8.5.6) - '@unocss/preset-attributify': 0.65.4 - '@unocss/preset-icons': 0.65.4 - '@unocss/preset-mini': 0.65.4 - '@unocss/preset-tagify': 0.65.4 - '@unocss/preset-typography': 0.65.4 - '@unocss/preset-uno': 0.65.4 - '@unocss/preset-web-fonts': 0.65.4 - '@unocss/preset-wind': 0.65.4 - '@unocss/transformer-attributify-jsx': 0.65.4 - '@unocss/transformer-compile-class': 0.65.4 - '@unocss/transformer-directives': 0.65.4 - '@unocss/transformer-variant-group': 0.65.4 - '@unocss/vite': 0.65.4(rollup@4.44.2)(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0))(vue@3.5.13(typescript@5.8.3)) + unocss@66.5.4(postcss@8.5.6)(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)): + dependencies: + '@unocss/astro': 66.5.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) + '@unocss/cli': 66.5.4 + '@unocss/core': 66.5.4 + '@unocss/postcss': 66.5.4(postcss@8.5.6) + '@unocss/preset-attributify': 66.5.4 + '@unocss/preset-icons': 66.5.4 + '@unocss/preset-mini': 66.5.4 + '@unocss/preset-tagify': 66.5.4 + '@unocss/preset-typography': 66.5.4 + '@unocss/preset-uno': 66.5.4 + '@unocss/preset-web-fonts': 66.5.4 + '@unocss/preset-wind': 66.5.4 + '@unocss/preset-wind3': 66.5.4 + '@unocss/preset-wind4': 66.5.4 + '@unocss/transformer-attributify-jsx': 66.5.4 + '@unocss/transformer-compile-class': 66.5.4 + '@unocss/transformer-directives': 66.5.4 + '@unocss/transformer-variant-group': 66.5.4 + '@unocss/vite': 66.5.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) optionalDependencies: - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) transitivePeerDependencies: - postcss - - rollup - supports-color - - vue unpipe@1.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + unplugin-utils@0.3.1: dependencies: - browserslist: 4.24.2 - escalade: 3.2.0 - picocolors: 1.1.1 + pathe: 2.0.3 + picomatch: 4.0.3 update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: browserslist: 4.25.1 escalade: 3.2.0 picocolors: 1.1.1 - optional: true uri-js@4.4.1: dependencies: @@ -8760,13 +8552,13 @@ snapshots: vary@1.1.2: {} - vite-node@3.2.4(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0): + vite-node@3.2.4(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1): dependencies: cac: 6.7.14 debug: 4.4.1 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) transitivePeerDependencies: - '@types/node' - jiti @@ -8781,7 +8573,7 @@ snapshots: - tsx - yaml - vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0): + vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1): dependencies: esbuild: 0.25.5 fdir: 6.4.6(picomatch@4.0.2) @@ -8792,16 +8584,16 @@ snapshots: optionalDependencies: '@types/node': 22.16.0 fsevents: 2.3.3 - jiti: 2.4.2 + jiti: 2.6.1 terser: 5.43.1 tsx: 4.19.2 - yaml: 2.8.0 + yaml: 2.8.1 - vitest@3.2.4(@types/node@22.16.0)(jiti@2.4.2)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0): + vitest@3.2.4(@types/node@22.16.0)(jiti@2.6.1)(jsdom@26.1.0)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0)) + '@vitest/mocker': 3.2.4(vite@7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -8819,8 +8611,8 @@ snapshots: tinyglobby: 0.2.14 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.0.2(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) - vite-node: 3.2.4(@types/node@22.16.0)(jiti@2.4.2)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.0) + vite: 7.0.2(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) + vite-node: 3.2.4(@types/node@22.16.0)(jiti@2.6.1)(terser@5.43.1)(tsx@4.19.2)(yaml@2.8.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.16.0 @@ -8841,19 +8633,7 @@ snapshots: void-elements@3.1.0: {} - vue-flow-layout@0.1.1(vue@3.5.13(typescript@5.8.3)): - dependencies: - vue: 3.5.13(typescript@5.8.3) - - vue@3.5.13(typescript@5.8.3): - dependencies: - '@vue/compiler-dom': 3.5.13 - '@vue/compiler-sfc': 3.5.13 - '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.8.3)) - '@vue/shared': 3.5.13 - optionalDependencies: - typescript: 5.8.3 + vue-flow-layout@0.2.0: {} w3c-xmlserializer@5.0.0: dependencies: @@ -8895,7 +8675,7 @@ snapshots: webpack-bundle-analyzer@4.10.2: dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.14.1 + acorn: 8.15.0 acorn-walk: 8.3.4 commander: 7.2.0 debounce: 1.2.1 @@ -8910,7 +8690,7 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@7.4.2(webpack@5.96.1(esbuild@0.25.5)): + webpack-dev-middleware@7.4.2(webpack@5.96.1): dependencies: colorette: 2.0.20 memfs: 4.17.0 @@ -8919,9 +8699,9 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.2 optionalDependencies: - webpack: 5.96.1(esbuild@0.25.5) + webpack: 5.96.1 - webpack-dev-server@5.2.2(webpack@5.96.1(esbuild@0.25.5)): + webpack-dev-server@5.2.2(webpack@5.96.1): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -8949,10 +8729,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 7.4.2(webpack@5.96.1(esbuild@0.25.5)) + webpack-dev-middleware: 7.4.2(webpack@5.96.1) ws: 8.18.1 optionalDependencies: - webpack: 5.96.1(esbuild@0.25.5) + webpack: 5.96.1 transitivePeerDependencies: - bufferutil - debug @@ -8962,7 +8742,7 @@ snapshots: webpack-sources@3.3.3: optional: true - webpack@5.96.1(esbuild@0.25.5): + webpack@5.96.1: dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -8984,7 +8764,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(esbuild@0.25.5)(webpack@5.96.1(esbuild@0.25.5)) + terser-webpack-plugin: 5.3.14(webpack@5.96.1) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: @@ -9090,23 +8870,9 @@ snapshots: xmlchars@2.2.0: {} - y18n@5.0.8: {} - yallist@5.0.0: {} - yaml@2.8.0: {} - - yargs-parser@21.1.1: {} - - yargs@17.7.2: - dependencies: - cliui: 8.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 21.1.1 + yaml@2.8.1: {} yauzl@3.2.0: dependencies: diff --git a/postcss.config.mjs b/postcss.config.mjs index cd0d6362c..ec8c02982 100644 --- a/postcss.config.mjs +++ b/postcss.config.mjs @@ -1,5 +1,6 @@ import UnoCSS from "@unocss/postcss"; +import autoprefixer from "autoprefixer"; export default { - plugins: [UnoCSS()], + plugins: [UnoCSS(), autoprefixer()], }; diff --git a/rspack.config.ts b/rspack.config.ts index 9efb79444..f0fe226a7 100644 --- a/rspack.config.ts +++ b/rspack.config.ts @@ -66,20 +66,9 @@ export default defineConfig({ module: { rules: [ { - test: /\.css$/, - use: [ - { - loader: "postcss-loader", - options: { - postcssOptions: { - plugins: { - autoprefixer: {}, - }, - }, - }, - }, - ], - type: "css", + test: /\.css$/i, + type: "css/auto", + use: ["postcss-loader"], }, { test: /\.(svg|png)$/, @@ -136,6 +125,12 @@ export default defineConfig({ from: `${assets}/logo${isDev || isBeta ? "-beta" : ""}.png`, to: `${dist}/ext/assets/logo.png`, }, + { + from: `${assets}/logo${isDev || isBeta ? "-beta" : ""}-32.png`, + to: `${dist}/ext/assets/logo-32.png`, + }, + { from: `${assets}/logo-gray.png`, to: `${dist}/ext/assets/logo-gray.png` }, + { from: `${assets}/logo-gray-32.png`, to: `${dist}/ext/assets/logo-gray-32.png` }, { from: `${assets}/logo`, to: `${dist}/ext/assets/logo` }, { from: `${assets}/_locales`, diff --git a/scripts/pack.js b/scripts/pack.js index c7bad1078..26d0f79a2 100644 --- a/scripts/pack.js +++ b/scripts/pack.js @@ -16,6 +16,14 @@ const PACK_FIREFOX = false; // ============================================================================ +const createJSZip = () => { + const currDate = new Date(); + const dateWithOffset = new Date(currDate.getTime() - currDate.getTimezoneOffset() * 60000); + // replace the default date with dateWithOffset + JSZip.defaults.date = dateWithOffset; + return new JSZip(); +}; + // 判断是否为beta版本 const version = semver.parse(packageInfo.version); if (version.prerelease.length) { @@ -90,8 +98,8 @@ firefoxManifest.commands = { _execute_action: {}, }; -const chrome = new JSZip(); -const firefox = new JSZip(); +const chrome = createJSZip(); +const firefox = createJSZip(); async function addDir(zip, localDir, toDir, filters) { const sub = async (localDir, toDir) => { diff --git a/src/app/cache.test.ts b/src/app/cache.test.ts new file mode 100644 index 000000000..c45c1cdaa --- /dev/null +++ b/src/app/cache.test.ts @@ -0,0 +1,208 @@ +import { describe, it, expect, beforeEach, vi } from "vitest"; +import { cacheInstance } from "./cache"; + +describe("Cache", () => { + beforeEach(async () => { + // 每个测试前清空缓存 + await cacheInstance.clear(); + }); + + describe("基本操作", () => { + it("应该能够设置和获取不同类型的值", async () => { + await cacheInstance.set("string", "hello"); + expect(await cacheInstance.get("string")).toBe("hello"); + + await cacheInstance.set("number", 42); + expect(await cacheInstance.get("number")).toBe(42); + + const obj = { name: "test", count: 1 }; + await cacheInstance.set("object", obj); + expect(await cacheInstance.get("object")).toEqual(obj); + + expect(await cacheInstance.get("non-existent")).toBeUndefined(); + }); + + it("应该能够批量设置值", async () => { + await cacheInstance.batchSet({ + key1: "value1", + key2: "value2", + key3: "value3", + }); + + expect(await cacheInstance.get("key1")).toBe("value1"); + expect(await cacheInstance.get("key2")).toBe("value2"); + expect(await cacheInstance.get("key3")).toBe("value3"); + }); + }); + + describe("has/del/clear/list 方法", () => { + it("应该正确检查键是否存在", async () => { + await cacheInstance.set("existing-key", "value"); + expect(await cacheInstance.has("existing-key")).toBe(true); + expect(await cacheInstance.has("non-existing-key")).toBe(false); + + await cacheInstance.set("undefined-key", undefined); + expect(await cacheInstance.has("undefined-key")).toBe(false); + }); + + it("应该能够删除键和清空缓存", async () => { + await cacheInstance.batchSet({ key1: "v1", key2: "v2" }); + + await cacheInstance.del("key1"); + expect(await cacheInstance.has("key1")).toBe(false); + expect(await cacheInstance.has("key2")).toBe(true); + + await cacheInstance.clear(); + expect(await cacheInstance.has("key2")).toBe(false); + }); + + it("应该能够批量删除键", async () => { + await cacheInstance.batchSet({ key1: "v1", key2: "v2", key3: "v3", key4: "v4" }); + + await (cacheInstance as any).dels(["key1", "key2", "key3"]); + expect(await cacheInstance.has("key1")).toBe(false); + expect(await cacheInstance.has("key2")).toBe(false); + expect(await cacheInstance.has("key3")).toBe(false); + expect(await cacheInstance.has("key4")).toBe(true); + }); + + it("应该返回所有键的列表", async () => { + await cacheInstance.batchSet({ key1: "v1", key2: "v2", key3: "v3" }); + const keys = await cacheInstance.list(); + expect(keys).toContain("key1"); + expect(keys).toContain("key2"); + expect(keys).toContain("key3"); + }); + }); + + describe("getOrSet 方法", () => { + it("应该懒加载和缓存值", async () => { + const setFn = vi.fn(() => "computed-value"); + const value1 = await cacheInstance.getOrSet("new-key", setFn); + expect(setFn).toHaveBeenCalledTimes(1); + expect(value1).toBe("computed-value"); + + const setFn2 = vi.fn(() => "new-value"); + const value2 = await cacheInstance.getOrSet("new-key", setFn2); + expect(setFn2).not.toHaveBeenCalled(); + expect(value2).toBe("computed-value"); + }); + }); + + describe("tx 方法(事务)", () => { + it("应该能够读取、修改和删除值", async () => { + // 设置值 + await cacheInstance.tx("tx-key", (val, tx) => { + tx.set("new-value"); + }); + expect(await cacheInstance.get("tx-key")).toBe("new-value"); + + // 基于现有值修改 + await cacheInstance.tx("tx-key", (val: string | undefined, tx) => { + tx.set((val || "") + "-updated"); + }); + expect(await cacheInstance.get("tx-key")).toBe("new-value-updated"); + + // 删除值 + await cacheInstance.tx("tx-key", (val, tx) => { + tx.del(); + }); + expect(await cacheInstance.has("tx-key")).toBe(false); + }); + }); + + describe("incr 方法", () => { + it("应该能够增加和减少数值", async () => { + expect(await cacheInstance.incr("counter", 5)).toBe(5); + expect(await cacheInstance.incr("counter", 3)).toBe(8); + expect(await cacheInstance.incr("counter", -2)).toBe(6); + expect(await cacheInstance.get("counter")).toBe(6); + }); + }); + + describe("并发操作", () => { + it("同一个键的事务应该串行化执行", async () => { + await cacheInstance.set("tx-counter", 0); + const executionOrder: number[] = []; + + const promises = [ + cacheInstance.tx("tx-counter", async (val: number | undefined, tx) => { + executionOrder.push(1); + await new Promise((resolve) => setTimeout(resolve, 30)); + tx.set((val || 0) + 1); + return 1; + }), + cacheInstance.tx("tx-counter", async (val: number | undefined, tx) => { + executionOrder.push(2); + await new Promise((resolve) => setTimeout(resolve, 20)); + tx.set((val || 0) + 1); + return 2; + }), + cacheInstance.tx("tx-counter", async (val: number | undefined, tx) => { + executionOrder.push(3); + await new Promise((resolve) => setTimeout(resolve, 10)); + tx.set((val || 0) + 1); + return 3; + }), + ]; + + const results = await Promise.all(promises); + + // 验证事务按顺序执行,每个事务都返回正确的递增值 + expect(executionOrder).toEqual([1, 2, 3]); + expect(results).toEqual([1, 2, 3]); + expect(await cacheInstance.get("tx-counter")).toBe(3); + }); + + it("不同键的事务可以并发执行", async () => { + const startTime = Date.now(); + + await Promise.all([ + cacheInstance.tx("key-a", async (val, tx) => { + await new Promise((resolve) => setTimeout(resolve, 50)); + tx.set("value-a"); + }), + cacheInstance.tx("key-b", async (val, tx) => { + await new Promise((resolve) => setTimeout(resolve, 50)); + tx.set("value-b"); + }), + cacheInstance.tx("key-c", async (val, tx) => { + await new Promise((resolve) => setTimeout(resolve, 50)); + tx.set("value-c"); + }), + ]); + + const duration = Date.now() - startTime; + + // 如果并发执行,总时间应该接近单个操作的时间(约50ms) + // 如果串行执行,总时间会接近 150ms + expect(duration).toBeLessThan(100); + }); + + it("并发 incr 操作应该正确累加", async () => { + await cacheInstance.set("incr-concurrent", 0); + + const promises = Array.from({ length: 10 }, () => cacheInstance.incr("incr-concurrent", 1)); + const results = await Promise.all(promises); + + // 每个操作都应该返回唯一的递增值 + const sortedResults = [...results].sort((a, b) => a - b); + expect(sortedResults).toEqual([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); + expect(await cacheInstance.get("incr-concurrent")).toBe(10); + }); + }); + + describe("边界情况", () => { + it("应该能够处理特殊值", async () => { + await cacheInstance.set("empty-value", ""); + expect(await cacheInstance.get("empty-value")).toBe(""); + + await cacheInstance.set("null-value", null); + expect(await cacheInstance.get("null-value")).toBe(null); + + await cacheInstance.set("overwrite", "original"); + await cacheInstance.set("overwrite", "updated"); + expect(await cacheInstance.get("overwrite")).toBe("updated"); + }); + }); +}); diff --git a/src/app/cache.ts b/src/app/cache.ts index 4d304442f..9ac047288 100644 --- a/src/app/cache.ts +++ b/src/app/cache.ts @@ -81,6 +81,19 @@ class ExtCache implements CacheStorage { }); } + dels(keys: string[]): Promise { + return new Promise((resolve) => { + chrome.storage.session.remove(keys, () => { + const lastError = chrome.runtime.lastError; + if (lastError) { + console.error("chrome.runtime.lastError in chrome.storage.session.remove:", lastError); + // 无视storage API错误,继续执行 + } + resolve(); + }); + }); + } + clear(): Promise { return new Promise((resolve) => { chrome.storage.session.clear(() => { diff --git a/src/app/repo/favicon.ts b/src/app/repo/favicon.ts new file mode 100644 index 000000000..5ecb4eb78 --- /dev/null +++ b/src/app/repo/favicon.ts @@ -0,0 +1,27 @@ +import { Repo } from "./repo"; + +export type FaviconRecord = { + match: string; + website: string; + icon?: string; +}; + +export interface Favicon { + uuid: string; + favicons: FaviconRecord[]; +} + +export class FaviconDAO extends Repo { + constructor() { + super("favicon"); + } + + save(key: string, value: Favicon) { + return super._save(key, value); + } +} + +export type FaviconFile = { + dirs: string[]; + filename: string; +}; diff --git a/src/app/repo/scripts.test.ts b/src/app/repo/scripts.test.ts new file mode 100644 index 000000000..54f040456 --- /dev/null +++ b/src/app/repo/scripts.test.ts @@ -0,0 +1,154 @@ +import { describe, it, expect, beforeEach } from "vitest"; +import { + ScriptDAO, + type Script, + SCRIPT_TYPE_NORMAL, + SCRIPT_STATUS_ENABLE, + SCRIPT_RUN_STATUS_COMPLETE, +} from "./scripts"; + +const baseMeta = { + name: ["测试脚本"], + namespace: ["test-namespace"], + version: ["1.0.0"], + author: ["测试作者"], + copyright: ["(c) 测试"], + grant: ["GM_xmlhttpRequest"], + match: ["https://example.com/*"], + license: ["MIT"], +}; + +const makeBaseScript = (overrides: Partial - - <% } %> diff --git a/src/pages/options/main.tsx b/src/pages/options/main.tsx index 199f51011..096203c58 100644 --- a/src/pages/options/main.tsx +++ b/src/pages/options/main.tsx @@ -27,7 +27,7 @@ loggerCore.logger().debug("options page start"); const Root = ( - + diff --git a/src/pages/options/routes/Logger.tsx b/src/pages/options/routes/Logger.tsx index f08ced2a8..8cf1db927 100644 --- a/src/pages/options/routes/Logger.tsx +++ b/src/pages/options/routes/Logger.tsx @@ -1,7 +1,6 @@ import React, { useEffect } from "react"; -import { BackTop, Button, Card, DatePicker, Input, List, Message, Space } from "@arco-design/web-react"; +import { BackTop, Button, Card, DatePicker, Input, List, Message, Space, Typography } from "@arco-design/web-react"; import dayjs from "dayjs"; -import Text from "@arco-design/web-react/es/Typography/text"; import type { Logger } from "@App/app/repo/logger"; import { LoggerDAO } from "@App/app/repo/logger"; import type { Labels, Query } from "@App/pages/components/LogLabel"; @@ -192,7 +191,7 @@ function LoggerPage() { }} direction="vertical" > -
{t("labels")}
+
{t("labels")}
{querys.map((query, index) => ( -
{t("search_regex")}
+
{t("search_regex")}
setSearch(e)} />
@@ -289,12 +288,12 @@ function LoggerPage() { boxSizing: "border-box", }} > - + {formatUnixTime(startTime)} {t("to")} {formatUnixTime(endTime)} {t("total_logs", { length: logs.length })} {init === 4 ? `, ${t("filtered_logs", { length: queryLogs.length })}` : `, ${t("enter_filter_conditions")}`} - + -
-
-
-
+
+
+
+
-
+
{/* 版本和更新时间 */} -
+
{item.metadata.version && (
- + {t("version")} {": "} @@ -191,16 +191,16 @@ export const ScriptCardItem = React.memo(
)}
- + {t("last_updated")} {": "} - +
{/* 运行状态 */} -
+
{item.type !== SCRIPT_TYPE_NORMAL && (
-
+
{item.type === SCRIPT_TYPE_NORMAL && ( {favoriteMemo.trimmed.map((fav) => ( @@ -239,16 +239,16 @@ export const ScriptCardItem = React.memo( }} /> ))} - {favoriteMemo.originalLen > 8 && {"..."}} + {favoriteMemo.originalLen > 8 && {"..."}} )}
{/* 操作按钮 */} -
+
-
+
{item.type !== SCRIPT_TYPE_NORMAL && (
-
+
- {t("check_script_code_quality")} + {t("check_script_code_quality")}
{enableEslint && (
-
- {t("eslint_rules")} - +
+ {t("eslint_rules")} + {t("custom_eslint_rules_config")}
@@ -457,10 +406,10 @@ function Setting() {
)}
-
- {t("editor_config")} +
+ {t("editor_config")}
@@ -495,10 +444,10 @@ function Setting() { />
-
- {t("editor_type_definition")} +
+ {t("editor_type_definition")} !value || row.name.includes(value), - className: "max-w-[240px]", + className: "tw-max-w-[240px]", render: (col) => { return ( - {col} - + ); }, diff --git a/src/pages/options/routes/Tools.tsx b/src/pages/options/routes/Tools.tsx index 0283ffe0b..9d114b3a0 100644 --- a/src/pages/options/routes/Tools.tsx +++ b/src/pages/options/routes/Tools.tsx @@ -11,8 +11,8 @@ import { Modal, Popconfirm, Space, + Typography, } from "@arco-design/web-react"; -import Title from "@arco-design/web-react/es/Typography/title"; import { formatUnixTime } from "@App/pkg/utils/day_format"; import FileSystemParams from "@App/pages/components/FileSystemParams"; import { IconQuestionCircleFill } from "@arco-design/web-react/icon"; @@ -38,303 +38,305 @@ function Tools() { const [vscodeReconnect, setVscodeReconnect, submitVscodeReconnect] = useSystemConfig("vscode_reconnect"); return ( - - {contextHolder} - - - {t("local")} - - - - - - {t("cloud")} - { - setBackup({ ...backup, filesystem: type }); - }} - onChangeFileSystemParams={(params) => { - setBackup({ ...backup, params: { ...backup.params, [backup.filesystem]: params } }); - }} - actionButton={[ + <> + + + + {t("local")} + + , + {t("export_file")} + , - ]} - fileSystemType={backup.filesystem} - fileSystemParams={backup.params[backup.filesystem] || {}} - /> - - {t("backup_list")} + {t("import_file")} + + + {t("cloud")} + { + setBackup({ ...backup, filesystem: type }); + }} + onChangeFileSystemParams={(params) => { + setBackup({ ...backup, params: { ...backup.params, [backup.filesystem]: params } }); + }} + actionButton={[ + , -
- } - visible={backupFileList.length !== 0} - onOk={() => { - setBackupFileList([]); - }} - onCancel={() => { - setBackupFileList([]); - }} - > - ( - - - - , + ]} + fileSystemType={backup.filesystem} + fileSystemParams={backup.params[backup.filesystem] || {}} + /> + + {t("backup_list")} + +
+ } + visible={backupFileList.length !== 0} + onOk={() => { + setBackupFileList([]); + }} + onCancel={() => { + setBackupFileList([]); + }} + > + ( + + + + + - - - - )} - /> - - {t("backup_strategy")} - - { - migrateToChromeStorage(); - }} - > - - - - + }} + > + {t("delete")} + + + + )} + /> + + {t("backup_strategy")} + + { + migrateToChromeStorage(); + }} + > + + + + - - {t("development_debugging")} - - - - + { + setVscodeReconnect(checked); + }} + > + {t("auto_connect_vscode_service")} + + + + + + {contextHolder} + ); } diff --git a/src/pages/options/routes/script/ScriptEditor.tsx b/src/pages/options/routes/script/ScriptEditor.tsx index e12c31606..4ba5a5f0e 100644 --- a/src/pages/options/routes/script/ScriptEditor.tsx +++ b/src/pages/options/routes/script/ScriptEditor.tsx @@ -23,6 +23,7 @@ import i18n, { i18nName } from "@App/locales/locales"; import { useTranslation } from "react-i18next"; import { IconDelete, IconSearch } from "@arco-design/web-react/icon"; import { lazyScriptName } from "@App/pkg/config/config"; +import { makeBlobURL } from "@App/pkg/utils/utils"; const { Row, Col } = Grid; @@ -246,7 +247,7 @@ function ScriptEditor() { } if (script.ignoreVersion) script.ignoreVersion = ""; return scriptClient - .install(script, code) + .install({ script, code }) .then((update): Script => { if (!update) { Message.success(t("create_success_note")); @@ -304,7 +305,10 @@ function ScriptEditor() { return new Promise((resolve) => { chrome.downloads.download( { - url: URL.createObjectURL(new Blob([e.getValue()], { type: "text/javascript" })), + url: makeBlobURL({ + blob: new Blob([e.getValue()], { type: "text/javascript" }), + persistence: false, + }) as string, saveAs: true, // true直接弹出对话框;false弹出下载选项 filename: `${script.name}.user.js`, }, @@ -700,7 +704,7 @@ function ScriptEditor() { return (
{contextHolder} - { - setShow("scriptStorage", false); - }} - onCancel={() => { - setShow("scriptStorage", false); - }} - /> - { - setShow("scriptResource", false); - }} - onCancel={() => { - setShow("scriptResource", false); - }} - /> - { - setShow("scriptSetting", false); - }} - onCancel={() => { - setShow("scriptSetting", false); - }} - /> + {currentScript && ( + <> + { + setShow("scriptStorage", false); + }} + onCancel={() => { + setShow("scriptStorage", false); + }} + /> + { + setShow("scriptResource", false); + }} + onCancel={() => { + setShow("scriptResource", false); + }} + /> + { + setShow("scriptSetting", false); + }} + onCancel={() => { + setShow("scriptSetting", false); + }} + /> + + )}
-
+
{menu.map((item, index) => { if (!item.items) { // 没有子菜单 @@ -858,7 +866,7 @@ function ScriptEditor() {
{showSearchInput && ( -
+
(
{/* 删除按钮,只在鼠标悬停时显示 */}
)} - + ))} -
+
{editors.map((item) => { if (item.active) { document.title = `${i18nName(item.script)} - Script Editor`; } return (
(key: T) { setValue(v); } }).current; + // 监听变更 + useEffect(() => { + return systemConfig.addListener(key, (val) => { + setValue(val); + }); + }, [key]); return [value as SystemConfigValueType, setValue, submitValue] as const; } diff --git a/src/pages/popup.html b/src/pages/popup.html index a8149372f..dfccc4a64 100644 --- a/src/pages/popup.html +++ b/src/pages/popup.html @@ -23,8 +23,4 @@
- <% if rspackConfig.mode=="script" { %> - - - <% } %> diff --git a/src/pages/popup/App.tsx b/src/pages/popup/App.tsx index 52537954b..039c34eb8 100644 --- a/src/pages/popup/App.tsx +++ b/src/pages/popup/App.tsx @@ -287,7 +287,7 @@ function App() { for (const unhook of unhooks) unhook(); unhooks.length = 0; }; - }, []); + }, [subscribeMessage]); const { handleEnableScriptChange, handleSettingsClick, handleNotificationClick } = { handleEnableScriptChange: (val: boolean) => { @@ -386,12 +386,12 @@ function App() { -
+
+
{"ScriptCat"}
-
- +
+