From 594a9c65810d2c2fb07af739d146a54c8a442831 Mon Sep 17 00:00:00 2001 From: Amit Singh Date: Sun, 12 Jul 2026 15:09:09 +0530 Subject: [PATCH 1/7] chore: migrate from XO+Prettier to oxlint+oxfmt, upgrade to TypeScript 7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace XO (ESLint) with oxlint (type-aware via oxlint-tsgolint) — .oxlintrc.json - Replace Prettier with oxfmt — .oxfmtrc.json (import/tailwind sorting land in follow-up commits) - Replace eslint-plugin-better-tailwindcss with native oxlint-tailwindcss plugin - Upgrade TypeScript 6.0.3 -> 7.0.2 (native tsc; no separate tsgo package) - Update scripts (lint/lint:ci/format/format:check), turbo globalDependencies, lefthook - Add oxc VS Code extension recommendation + settings; .git-blame-ignore-revs - Remove 12 dead lint-disable directives Deferred (flagged for follow-up): no-floating-promises (46 findings) off; react/react-compiler set to warn (experimental rule diverges from eslint plugin); no-useless-default-assignment + unbound-method off (net-new, need code changes). Co-Authored-By: Claude Opus 4.8 (1M context) --- .git-blame-ignore-revs | 5 + .lefthook.yml | 15 +- .oxfmtrc.json | 18 + .oxlintrc.json | 85 + .prettierignore | 1 - .prettierrc.json | 7 - .vscode/extensions.json | 3 + .vscode/settings.json | 20 +- AGENTS.md | 12 +- apps/extension/package.json | 2 +- apps/extension/tests/fixtures/auth-fixture.ts | 1 - .../tests/fixtures/background-fixture.ts | 1 - .../tests/fixtures/bookmark-fixture.ts | 1 - .../tests/fixtures/extension-fixture.ts | 1 - .../tests/fixtures/home-popup-fixture.ts | 1 - .../tests/fixtures/persons-fixture.ts | 1 - .../tests/fixtures/shortcuts-fixture.ts | 1 - apps/web/src/app/api/upload-file/utils.ts | 1 - apps/web/src/app/layout.tsx | 1 - apps/web/src/app/provider/DynamicProvider.tsx | 1 - apps/web/tests/fixtures/auth-fixture.ts | 1 - package.json | 17 +- packages/shared/src/utils/index.ts | 1 - pnpm-lock.yaml | 3316 ++++------------- pnpm-workspace.yaml | 15 +- turbo.json | 7 +- xo.config.ts | 134 - 27 files changed, 981 insertions(+), 2688 deletions(-) create mode 100644 .git-blame-ignore-revs create mode 100644 .oxfmtrc.json create mode 100644 .oxlintrc.json delete mode 100644 .prettierignore delete mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json delete mode 100644 xo.config.ts diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 000000000..03cfbfa32 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,5 @@ +# Commits listed here are skipped by `git blame` (mass-reformat / mechanical changes). +# Enable locally with: git config blame.ignoreRevsFile .git-blame-ignore-revs +# +# Add the SHA of the one-time "oxfmt reformat" commit (and the import/tailwind +# sort commits) below, one per line, after they land. diff --git a/.lefthook.yml b/.lefthook.yml index 8f9d6554c..182c8b574 100644 --- a/.lefthook.yml +++ b/.lefthook.yml @@ -1,6 +1,15 @@ pre-commit: - parallel: true + parallel: false commands: - xo: + # Run lint --fix first, then formatter last so oxfmt owns final formatting + # (avoids lint-fix vs format write races). stage_fixed re-stages any edits. + oxlint: + priority: 1 glob: '*.{js,mjs,ts,tsx}' - run: pnpm xo {staged_files} + run: pnpm oxlint --fix {staged_files} + stage_fixed: true + oxfmt: + priority: 2 + glob: '*.{js,mjs,ts,tsx}' + run: pnpm oxfmt {staged_files} + stage_fixed: true diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 000000000..196b020a1 --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,18 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "singleQuote": true, + "tabWidth": 2, + "printWidth": 80, + "trailingComma": "es5", + "bracketSpacing": true, + "endOfLine": "lf", + "sortPackageJson": false, + "sortTailwindcss": false, + "sortImports": false, + "ignorePatterns": [ + "packages/ui/src", + "**/.output/**", + "**/.next/**", + "**/.wxt/**" + ] +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 000000000..2fa9108b8 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,85 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["typescript", "unicorn", "oxc", "react", "import", "promise"], + "jsPlugins": ["oxlint-tailwindcss"], + "categories": { + "correctness": "error" + }, + "settings": { + "next": { + "rootDir": "apps/web/" + }, + "tailwindcss": { + "entryPoint": "packages/ui/src/styles/globals.css" + } + }, + "options": { + "typeAware": true, + "reportUnusedDisableDirectives": "warn" + }, + "rules": { + "react/react-in-jsx-scope": "off", + + "typescript/no-unsafe-assignment": "off", + "typescript/no-unsafe-return": "off", + "typescript/no-unsafe-argument": "off", + "typescript/no-unsafe-call": "off", + "typescript/no-dynamic-delete": "off", + "typescript/triple-slash-reference": "off", + + "typescript/no-floating-promises": "off", + "typescript/no-useless-default-assignment": "off", + "typescript/unbound-method": "off", + + "typescript/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }], + "typescript/consistent-type-definitions": ["error", "interface"], + "typescript/no-confusing-void-expression": [ + "error", + { "ignoreArrowShorthand": true } + ], + "typescript/no-base-to-string": [ + "error", + { "ignoredTypeNames": ["TRPCError", "URL", "URLSearchParams"] } + ], + "typescript/restrict-template-expressions": [ + "error", + { "allow": ["TRPCError", "Date"] } + ], + "typescript/switch-exhaustiveness-check": [ + "error", + { + "considerDefaultExhaustiveForUnions": true, + "requireDefaultForNonUnion": true + } + ], + + "tailwindcss/no-unknown-classes": [ + "error", + { "allowlist": ["max-w-panel"] } + ], + "tailwindcss/no-conflicting-classes": "error", + "tailwindcss/no-duplicate-classes": "error", + "tailwindcss/no-deprecated-classes": "error" + }, + "overrides": [ + { + "files": ["apps/web/**/*.{ts,tsx}"], + "plugins": ["nextjs"] + }, + { + "files": [ + "apps/extension/**/*.{ts,tsx}", + "packages/shared/**/*.{ts,tsx}" + ], + "rules": { + "react/react-compiler": "warn" + } + } + ], + "ignorePatterns": [ + "apps/web/next-env.d.ts", + "apps/extension/.output/**", + "apps/extension/.wxt/**", + "packages/ui/**" + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index c1309c8fe..000000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -packages/ui/src diff --git a/.prettierrc.json b/.prettierrc.json deleted file mode 100644 index dc03570c7..000000000 --- a/.prettierrc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "endOfLine": "auto", - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "bracketSpacing": true -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..41638e3a9 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["oxc.oxc-vscode"], +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 512ff90b1..0221cc073 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,3 +1,21 @@ { - "js/ts.tsdk.path": "node_modules/typescript/lib" + "js/ts.tsdk.path": "node_modules/typescript/lib", + "typescript.tsdk": "node_modules/typescript/lib", + + "oxc.enable": true, + "oxc.enable.oxfmt": true, + "oxc.lint.run": "onSave", + "oxc.typeAware": true, + + "editor.defaultFormatter": "oxc.oxc-vscode", + "editor.formatOnSave": true, + "editor.formatOnSaveMode": "file", + "editor.codeActionsOnSave": { + "source.fixAll.oxc": "explicit" + }, + + "[typescript]": { "editor.defaultFormatter": "oxc.oxc-vscode" }, + "[typescriptreact]": { "editor.defaultFormatter": "oxc.oxc-vscode" }, + "[javascript]": { "editor.defaultFormatter": "oxc.oxc-vscode" }, + "[javascriptreact]": { "editor.defaultFormatter": "oxc.oxc-vscode" } } diff --git a/AGENTS.md b/AGENTS.md index e2e5af43d..41ee14073 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -29,7 +29,10 @@ pnpm build # Build Chrome extension to .output/chrome-mv3 pnpm dev # Chrome dev server with hot reload # Code Quality -pnpm lint # Lint all files (XO linter) +pnpm lint # Lint all files (oxlint, type-aware) with autofix +pnpm lint:ci # Lint without autofix (CI) +pnpm format # Format all files (oxfmt) +pnpm format:check # Check formatting without writing (oxfmt --check) pnpm typecheck # Type check root only pnpm typecheck:all # Type check all workspaces @@ -45,7 +48,7 @@ This is a **Turbo + pnpm monorepo** with the following structure: - **apps/web** - Next.js web interface for downloads and admin - **packages/shared** - Shared React components, types, utilities, and stores (Zustand) - **packages/ui** - Shared UI components using shadcn/ui Base UI + Tailwind CSS -- **packages/configs** - Shared TypeScript, ESLint (XO), and build configs +- **packages/configs** - Shared TypeScript and build configs - **packages/trpc** - tRPC router with Firebase backend (type-safe API) ## Build System @@ -76,7 +79,9 @@ Playwright tests use setup/teardown projects for both web and extension flows: - **API**: tRPC for type-safe client-server communication - **Backend**: Firebase with Admin SDK - **Testing**: Playwright -- **Linting**: XO with custom config +- **Linting**: oxlint (type-aware via oxlint-tsgolint), config in `.oxlintrc.json` +- **Formatting**: oxfmt, config in `.oxfmtrc.json` +- **Tailwind linting**: `oxlint-tailwindcss` (native oxlint plugin) ## Code Patterns @@ -119,6 +124,7 @@ Always after making changes, run the following commands: ```bash pnpm lint +pnpm format:check pnpm typecheck:all pnpm e2e ``` diff --git a/apps/extension/package.json b/apps/extension/package.json index 7f6fc49c2..40e59a089 100644 --- a/apps/extension/package.json +++ b/apps/extension/package.json @@ -1,7 +1,7 @@ { "name": "@bypass/extension", "type": "module", - "version": "24.12.1", + "version": "24.13.0", "private": true, "description": "Bypass links from various sites to required links, with added functionality of Bookmarks Manager, Tagging Panel.", "scripts": { diff --git a/apps/extension/tests/fixtures/auth-fixture.ts b/apps/extension/tests/fixtures/auth-fixture.ts index 1f8f9a265..f0294516f 100644 --- a/apps/extension/tests/fixtures/auth-fixture.ts +++ b/apps/extension/tests/fixtures/auth-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { test as base } from './extension-fixture'; import { loadCachedStorageData } from './base-fixture'; diff --git a/apps/extension/tests/fixtures/background-fixture.ts b/apps/extension/tests/fixtures/background-fixture.ts index 5a87da931..40df915af 100644 --- a/apps/extension/tests/fixtures/background-fixture.ts +++ b/apps/extension/tests/fixtures/background-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import fs from 'node:fs/promises'; import os from 'node:os'; import path from 'node:path'; diff --git a/apps/extension/tests/fixtures/bookmark-fixture.ts b/apps/extension/tests/fixtures/bookmark-fixture.ts index 0a15bf15a..9be423954 100644 --- a/apps/extension/tests/fixtures/bookmark-fixture.ts +++ b/apps/extension/tests/fixtures/bookmark-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { type BrowserContext, type Page, diff --git a/apps/extension/tests/fixtures/extension-fixture.ts b/apps/extension/tests/fixtures/extension-fixture.ts index d317bdfb0..78143ec59 100644 --- a/apps/extension/tests/fixtures/extension-fixture.ts +++ b/apps/extension/tests/fixtures/extension-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; diff --git a/apps/extension/tests/fixtures/home-popup-fixture.ts b/apps/extension/tests/fixtures/home-popup-fixture.ts index 9d0b2c0cd..6f852958d 100644 --- a/apps/extension/tests/fixtures/home-popup-fixture.ts +++ b/apps/extension/tests/fixtures/home-popup-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { type BrowserContext, type Page, diff --git a/apps/extension/tests/fixtures/persons-fixture.ts b/apps/extension/tests/fixtures/persons-fixture.ts index 21a9e91ac..83b09d3e0 100644 --- a/apps/extension/tests/fixtures/persons-fixture.ts +++ b/apps/extension/tests/fixtures/persons-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { type BrowserContext, type Page, diff --git a/apps/extension/tests/fixtures/shortcuts-fixture.ts b/apps/extension/tests/fixtures/shortcuts-fixture.ts index 2788bdebc..18f42bf5f 100644 --- a/apps/extension/tests/fixtures/shortcuts-fixture.ts +++ b/apps/extension/tests/fixtures/shortcuts-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { type BrowserContext, type Page, diff --git a/apps/web/src/app/api/upload-file/utils.ts b/apps/web/src/app/api/upload-file/utils.ts index c8d1eca0b..14a10bd07 100644 --- a/apps/web/src/app/api/upload-file/utils.ts +++ b/apps/web/src/app/api/upload-file/utils.ts @@ -1,4 +1,3 @@ -/* eslint-disable n/prefer-global/buffer */ import { fileTypeFromBuffer } from 'file-type'; import sharp from 'sharp'; diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 6d6edae03..d3e1570d0 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -8,7 +8,6 @@ import clsx from 'clsx'; import './layout.css'; import AppProviders from './provider/AppProviders'; -// eslint-disable-next-line new-cap const manrope = Manrope({ subsets: ['latin'], variable: '--font-manrope', diff --git a/apps/web/src/app/provider/DynamicProvider.tsx b/apps/web/src/app/provider/DynamicProvider.tsx index 7a071ae8b..c0c969d3d 100644 --- a/apps/web/src/app/provider/DynamicProvider.tsx +++ b/apps/web/src/app/provider/DynamicProvider.tsx @@ -15,7 +15,6 @@ function DynamicProvider({ children }: PropsWithChildren) { goBack: () => router.back(), }, storage: { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion get: async (key: string) => getFromLocalStorage(key) as any, set: async (key: string, value: any) => setToLocalStorage(key, value), }, diff --git a/apps/web/tests/fixtures/auth-fixture.ts b/apps/web/tests/fixtures/auth-fixture.ts index a9c132ec2..e72f02f2b 100644 --- a/apps/web/tests/fixtures/auth-fixture.ts +++ b/apps/web/tests/fixtures/auth-fixture.ts @@ -1,4 +1,3 @@ -/* eslint-disable react-hooks/rules-of-hooks */ import { test as base, type BrowserContext, type Page } from '@playwright/test'; import { createSharedContext } from './base-fixture'; diff --git a/package.json b/package.json index c193e149e..249c462ef 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,10 @@ "dev": "turbo run dev", "env": "vercel env pull .env", "e2e": "playwright test", - "lint": "xo --fix", - "lint:ci": "xo", + "lint": "oxlint --fix", + "lint:ci": "oxlint", + "format": "oxfmt", + "format:check": "oxfmt --check", "typecheck": "tsc --noEmit", "typecheck:all": "turbo run typecheck", "prepare": "pnpx is-ci || lefthook install --reset-hooks-path", @@ -18,18 +20,17 @@ }, "devDependencies": { "@bypass/configs": "workspace:*", - "@next/eslint-plugin-next": "catalog:", "@playwright/test": "catalog:", "@types/node": "catalog:", - "eslint-plugin-better-tailwindcss": "catalog:", - "eslint-plugin-react-compiler": "catalog:", "lefthook": "catalog:", - "prettier": "catalog:", + "oxfmt": "catalog:", + "oxlint": "catalog:", + "oxlint-tailwindcss": "catalog:", + "oxlint-tsgolint": "catalog:", "tailwindcss": "catalog:", "turbo": "catalog:", "typescript": "catalog:", - "vercel": "catalog:", - "xo": "catalog:" + "vercel": "catalog:" }, "packageManager": "pnpm@11.10.0" } diff --git a/packages/shared/src/utils/index.ts b/packages/shared/src/utils/index.ts index 8b706446b..1e25e544c 100644 --- a/packages/shared/src/utils/index.ts +++ b/packages/shared/src/utils/index.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ export const getGoogleFaviconUrl = (url: string) => `https://www.google.com/s2/favicons?domain=${new URL(url).hostname}&sz=32`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 232480d50..c9080dc70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,9 +21,6 @@ catalogs: '@mantine/hooks': specifier: 9.4.1 version: 9.4.1 - '@next/eslint-plugin-next': - specifier: 16.2.10 - version: 16.2.10 '@octokit/rest': specifier: 22.0.1 version: 22.0.1 @@ -102,12 +99,6 @@ catalogs: dayjs: specifier: 1.11.21 version: 1.11.21 - eslint-plugin-better-tailwindcss: - specifier: 4.6.1 - version: 4.6.1 - eslint-plugin-react-compiler: - specifier: 19.1.0-rc.2 - version: 19.1.0-rc.2 file-type: specifier: 22.0.1 version: 22.0.1 @@ -129,15 +120,24 @@ catalogs: next-themes: specifier: 0.4.6 version: 0.4.6 + oxfmt: + specifier: 0.58.0 + version: 0.58.0 + oxlint: + specifier: 1.73.0 + version: 1.73.0 + oxlint-tailwindcss: + specifier: 1.3.5 + version: 1.3.5 + oxlint-tsgolint: + specifier: 0.24.0 + version: 0.24.0 p-limit: specifier: 7.3.0 version: 7.3.0 postcss: specifier: 8.5.16 version: 8.5.16 - prettier: - specifier: 3.9.4 - version: 3.9.4 react: specifier: 19.2.6 version: 19.2.6 @@ -172,8 +172,8 @@ catalogs: specifier: 5.8.0 version: 5.8.0 typescript: - specifier: 6.0.3 - version: 6.0.3 + specifier: 7.0.2 + version: 7.0.2 vercel: specifier: 54.20.1 version: 54.20.1 @@ -189,9 +189,6 @@ catalogs: wxt: specifier: 0.20.26 version: 0.20.26 - xo: - specifier: 1.2.3 - version: 1.2.3 zod: specifier: 4.4.3 version: 4.4.3 @@ -201,7 +198,6 @@ catalogs: overrides: jwks-rsa>jose: 4.15.9 - eslint-config-xo-react>eslint-plugin-react-hooks: 6.1.1 importers: @@ -210,27 +206,27 @@ importers: '@bypass/configs': specifier: workspace:* version: link:packages/configs - '@next/eslint-plugin-next': - specifier: 'catalog:' - version: 16.2.10 '@playwright/test': specifier: 'catalog:' version: 1.61.1 '@types/node': specifier: 'catalog:' version: 24.13.2 - eslint-plugin-better-tailwindcss: - specifier: 'catalog:' - version: 4.6.1(eslint@9.39.4(jiti@2.7.0))(tailwindcss@4.3.2)(typescript@6.0.3) - eslint-plugin-react-compiler: - specifier: 'catalog:' - version: 19.1.0-rc.2(eslint@9.39.4(jiti@2.7.0)) lefthook: specifier: 'catalog:' version: 2.1.9 - prettier: + oxfmt: + specifier: 'catalog:' + version: 0.58.0 + oxlint: + specifier: 'catalog:' + version: 1.73.0(oxlint-tsgolint@0.24.0) + oxlint-tailwindcss: specifier: 'catalog:' - version: 3.9.4 + version: 1.3.5 + oxlint-tsgolint: + specifier: 'catalog:' + version: 0.24.0 tailwindcss: specifier: 'catalog:' version: 4.3.2 @@ -239,13 +235,10 @@ importers: version: 2.10.3 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 vercel: specifier: 'catalog:' version: 54.20.1(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(rollup@4.60.3) - xo: - specifier: 'catalog:' - version: 1.2.3(@types/eslint@8.56.12)(@typescript-eslint/utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(jiti@2.7.0)(typescript@6.0.3) apps/extension: dependencies: @@ -275,7 +268,7 @@ importers: version: 9.4.1(react@19.2.6) '@t3-oss/env-core': specifier: 'catalog:' - version: 0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) + version: 0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3) '@tanstack/react-form': specifier: 'catalog:' version: 1.33.0(react-dom@19.2.6(react@19.2.6))(react@19.2.6) @@ -287,10 +280,10 @@ importers: version: 3.14.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@trpc/client': specifier: 'catalog:' - version: 11.18.0(@trpc/server@11.18.0(typescript@6.0.3))(typescript@6.0.3) + version: 11.18.0(@trpc/server@11.18.0(typescript@7.0.2))(typescript@7.0.2) '@trpc/server': specifier: 'catalog:' - version: 11.18.0(typescript@6.0.3) + version: 11.18.0(typescript@7.0.2) class-variance-authority: specifier: 'catalog:' version: 0.7.1 @@ -372,10 +365,10 @@ importers: version: 1.0.0 shadcn: specifier: 'catalog:' - version: 4.13.0(typescript@6.0.3) + version: 4.13.0(typescript@7.0.2) typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 vite: specifier: 'catalog:' version: 8.1.3(@types/node@24.13.2)(@vitejs/devtools@0.3.4)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.21.0) @@ -411,22 +404,22 @@ importers: version: 9.4.1(react@19.2.6) '@t3-oss/env-nextjs': specifier: 'catalog:' - version: 0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) + version: 0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3) '@tanstack/react-virtual': specifier: 'catalog:' version: 3.14.5(react-dom@19.2.6(react@19.2.6))(react@19.2.6) '@trpc/client': specifier: 'catalog:' - version: 11.18.0(@trpc/server@11.18.0(typescript@6.0.3))(typescript@6.0.3) + version: 11.18.0(@trpc/server@11.18.0(typescript@7.0.2))(typescript@7.0.2) '@trpc/server': specifier: 'catalog:' - version: 11.18.0(typescript@6.0.3) + version: 11.18.0(typescript@7.0.2) '@vercel/analytics': specifier: 'catalog:' - version: 2.0.1(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@6.0.3)) + version: 2.0.1(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@7.0.2)) '@vercel/speed-insights': specifier: 'catalog:' - version: 2.0.0(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@6.0.3)) + version: 2.0.0(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@7.0.2)) clsx: specifier: 'catalog:' version: 2.1.1 @@ -481,13 +474,13 @@ importers: version: 4.3.2 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 packages/configs: dependencies: typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 packages/shared: dependencies: @@ -536,7 +529,7 @@ importers: version: 19.2.15 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 packages/trpc: dependencies: @@ -551,10 +544,10 @@ importers: version: 22.0.1 '@t3-oss/env-core': specifier: 'catalog:' - version: 0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) + version: 0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3) '@trpc/server': specifier: 'catalog:' - version: 11.18.0(typescript@6.0.3) + version: 11.18.0(typescript@7.0.2) filenamify: specifier: 'catalog:' version: 7.0.2 @@ -573,7 +566,7 @@ importers: version: 5.8.0 typescript: specifier: 'catalog:' - version: 6.0.3 + version: 7.0.2 packages/ui: dependencies: @@ -625,7 +618,7 @@ importers: version: 19.2.3(@types/react@19.2.15) shadcn: specifier: 'catalog:' - version: 4.13.0(typescript@6.0.3) + version: 4.13.0(typescript@7.0.2) packages: @@ -744,10 +737,6 @@ packages: resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} engines: {node: ^22.18.0 || >=24.11.0} - '@babel/helper-validator-identifier@7.28.5': - resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} - engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} @@ -782,13 +771,6 @@ packages: engines: {node: ^22.18.0 || >=24.11.0} hasBin: true - '@babel/plugin-proposal-private-methods@7.18.6': - resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} - engines: {node: '>=6.9.0'} - deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.28.6': resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==} engines: {node: '>=6.9.0'} @@ -1265,12 +1247,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-plugin-eslint-comments@4.7.1': - resolution: {integrity: sha512-Ql2nJFwA8wUGpILYGOQaT1glPsmvEwE0d+a+l7AALLzQvInqdbXJdx7aSu0DpUX9dB1wMVBMhm99/++S3MdEtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1289,18 +1265,10 @@ packages: resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.13.0': - resolution: {integrity: sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.17.0': resolution: {integrity: sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/css-tree@4.0.4': - resolution: {integrity: sha512-nxMparyhqVWQvadx9x8dIfubfIPOE+X2b2waua8fzdnM9vdp9rgVtwEZlG0TmCwEUz/d/f40fzvO/eqBwdxz0A==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.5': resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1313,10 +1281,6 @@ packages: resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.8': - resolution: {integrity: sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==} - 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} @@ -2072,9 +2036,6 @@ packages: resolution: {integrity: sha512-d0d4Oyxm+v980PEq1ZH2PmS6cvpMIRc17eYpiU47KgW+lzxklMu6+HOEOPmxrpnF/XQZ0+Q78I2mgMhbIIo/dg==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.4': resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==} peerDependencies: @@ -2090,9 +2051,6 @@ packages: '@next/env@16.2.10': resolution: {integrity: sha512-zLPxg9M0MEHmygpj5OuxjQ+vHMiy/K7cSp74G8ecYolmgUWw0RwN02tF56npup/+qaI8JB97hQgS/r2Hb6QwVA==} - '@next/eslint-plugin-next@16.2.10': - resolution: {integrity: sha512-Gs8D2m21VnJeFo9qvYIIqJH94frWerWYu41BprU1pLtRVF7PCQNLiFZZ3fG+iPuj3K83Cwv/rt+msLOy8Qgu3Q==} - '@next/swc-darwin-arm64@16.2.10': resolution: {integrity: sha512-v9IdJCa0H0mbo+8z5zwUpOk1Vj7RjkcI5uNYf5Ws1y6szf/p3Mzl9hLaST8SCt6L9h8NGnruZcd2+o0NTNwDhA==} engines: {node: '>= 10'} @@ -2491,21 +2449,284 @@ packages: cpu: [x64] os: [win32] - '@package-json/types@0.0.12': - resolution: {integrity: sha512-uu43FGU34B5VM9mCNjXCwLaGHYjXdNincqKLaraaCW+7S2+SmiBg1Nv8bPnmschrIfZmfKNY9f3fC376MRrObw==} + '@oxfmt/binding-android-arm-eabi@0.58.0': + resolution: {integrity: sha512-Uz62sHduGGPftXtILGyxdSW4PX82rUg+rfdNqhsgxe881g4rIoXlIqmZQ6HVKcF4f+F8qMhdD03Bx5u7gmeTdg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.58.0': + resolution: {integrity: sha512-rD0lRaJp1b+9vw6X4A2dJWKukd6X8yxiicN4JxXcXayolmUypRZxk+lKR+fVOu5q/iYc0fh5fR4bgmfOfVlbaA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.58.0': + resolution: {integrity: sha512-uzbPPk7O6M+w2K65vcQ1woga3wgP8zghjL1KOG5b6qJ8dvYHZJ1VShaslg2KOK6yQIwCQtcMCXqLBM6sqXUNTg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.58.0': + resolution: {integrity: sha512-L0nKYDxU32oxeQqJj21W9SlIMnf81VZEhyah6iDvFhf5q0oynq498Fopth7blErUJVBpVtxQ98RMCfMPqpJX6w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.58.0': + resolution: {integrity: sha512-woNwfD58dC5PGS9LSLSD5JYfo/EFK5iG9vhDWkcCg3q78ag7KC8bpDqgvPHrMoXpx83OLXxoSOhu6z8FsVTHlg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.58.0': + resolution: {integrity: sha512-Sqs8nMLxuQpY21NKJ1u4stPDmO5hskBCNNh2E3AdCfI1QqWtf4m+Qn4mGEIUO4KGmuq3SWc/SZ80uy5IiwTCDw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.58.0': + resolution: {integrity: sha512-Vd4exzBI5B5hB9m22JiTQzIL23WvHo/Pe+sNXPNeBLXSP9swCBPKCEBRwKpmpQzYhlgYaCgfPcGXPKAJBRIiZQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.58.0': + resolution: {integrity: sha512-bUWi5mHV+4Vi56RLHE1h6q/HHfwAIT3XoB9vJAVeRzfu5NriXM8y6eeJu0vlKa0C9kq2rq1sOWRClhdLHPocrg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-arm64-musl@0.58.0': + resolution: {integrity: sha512-2ZHxemzgHcjtktAuVUwSoyXmGo/t+aF5tS1ciPpPei4rhSyrz3JOqDosXXrmhN/yLUSzJjtuW7ToTWqfQpCj2w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-ppc64-gnu@0.58.0': + resolution: {integrity: sha512-AwKkVwjVmFQ3bcO7j0McGYAqCKH2a326fswfofng/E8VewCT/raeeGQr4huVhY704deK8AWASSTlxzMj0eZc6Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.58.0': + resolution: {integrity: sha512-xsRpTxfUnJF8D3AUKko/qyWdjw4GZVHlCVFuGlzSCTeewLmykKINW8em1+wx+axsDVtJJcMtvsiaXggXxrlHgw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.58.0': + resolution: {integrity: sha512-Z4AYOTcy7nYEIiXwD62PlerimyYRcfJOgUbQAEBjXz098kxKuERBlRntofGy69HHhe9E0TLVNMl1yspVNu+efw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.58.0': + resolution: {integrity: sha512-A3nhhtZPC/TKVWOPj9q/H3p2znJDCcHWYlJBhWL8hGq/bFmBaNBHC8Np6E581yVq1w9Mi3rMDNzDalWvtUfJtQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.58.0': + resolution: {integrity: sha512-2g+tVkgwqphw8R4hgo+kF4oz8+P5RwVOtr9+irsC7uwEp0e9j7Crw8kDGKL20uYlLPD7g02DqA61mC/UNYx98A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-musl@0.58.0': + resolution: {integrity: sha512-rc15P6AbyyB7426aN8AakLd02Trb3a6ML/mmfAQeVHJEfVofWLcWIrBdy6zDEY+DIaL/s8E4GGPboVw+oP3+EA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-openharmony-arm64@0.58.0': + resolution: {integrity: sha512-ZWoTM27/HYPOh9iq86DAbhPu9nXb8qKvvGU/h8OfliyVUFAMMNTLDkGsWDKKnDqIkqvZ9+dXlgUOsH1LYO3O7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.58.0': + resolution: {integrity: sha512-LHZnqFXe2dEfkRI4XdZS/57nEOT/I4UCRX5IyM9v4GYW9XwQCjGe1IUK59SuKw3POwvcgWQ4pme2cYXmNqTNPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.58.0': + resolution: {integrity: sha512-mZKpg20TpheCJym1rarcZCUJeW1sSruw8zAAaCYWvuVfwIUDN1CXdrPU/JgCWReXTCTrEfCB8Wyo3hh9jSZ2EA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.58.0': + resolution: {integrity: sha512-N/wUU4N5PZ2orBtI+Ko7MnMfYLfE7K91UrGMY/c/pYyHR3lA9kwst1XugkZx+92YcRh/Eo+iv2eTESSWXfiZPA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxlint-tsgolint/darwin-arm64@0.24.0': + resolution: {integrity: sha512-C2uMmwK5Bc4ri4ysZ6sA8Rcu+A5zBQTp6ml2u0CLLbRZp4kMFPV3yWk8B5DK9Aw7y9bbjogIm75tUwGLFzlsYQ==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.24.0': + resolution: {integrity: sha512-Wgvt/1lRbDxmoNqWQKKcL+UIiqLmdJ+EWLpQa1qzoNVAfNB0PJpa82/8dH1twT/3rSs4zrP5TXPWl4juB71WuQ==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.24.0': + resolution: {integrity: sha512-PB1rxII7KV83+ASY4sSkXtqvpij6ME66+QCRL49uksi/ofs2Rf/UVboYr095n0Rkbl2wgvlsHGl6DHC361jQUQ==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.24.0': + resolution: {integrity: sha512-xcz3CxKmjTQLREtE/UShh+ruWmm9nAb7UM9zKcD65BStiuYgOakAKkPHl4YS5DztpVcDrE0+HqbOolTlRKYWmw==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.24.0': + resolution: {integrity: sha512-A2i6ZGBec3i20S7RaxkgHc6r3HYtD5Mn7j/mb22NkTz14u0JuudvTu6JggAnbGMcv8+dBKQI//EasxSPJLD8pw==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.24.0': + resolution: {integrity: sha512-0ZbGd9qRB6zs82moekaKdEvncRANq49EAwfNX62JpTS46feXUhKAuoyVDvZMj6Rywejylrmmu79Wo6faYCo4Ew==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.73.0': + resolution: {integrity: sha512-HZQRN/UMBu+Ut+/9MiAChkbP4qZqrNOWBcNI45vOT40GVhbGR0JgHB87L48D4iAqFQIdVmeQYtV9RF89AjTKkg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.73.0': + resolution: {integrity: sha512-Gp+KJRylv2aW7thRpG5p1KTxZq4ZJFbWowrKzufNq9d3ssl3r3JviYV45/+p+7CN1Nv0zDd1e8Ex0b/HUDq4TQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.73.0': + resolution: {integrity: sha512-3de96NdtXhxERMjIz7wsp2HYMY6pMQycGxFWac2mFecAx6VeARF/IqFb1QIaqiCRIdfzBwzTed+pCTCoiS+CYA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.73.0': + resolution: {integrity: sha512-5zx/uPW32TiaOeVY1dQ/H5iOf0K1HOdFKOJhLqGl4o63+i1fpzoqqu/mKtd7OFgFjNCdhlyTGgjVkQTZm1ELcg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.73.0': + resolution: {integrity: sha512-qNe4gKHaGnLuZJ8toUg90JAa0S2vTVvDw+0bRi3q1avXZXDT4u5mMeECf3nD4HYrbdn1O7dXqWut4onY/yx/Xg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.73.0': + resolution: {integrity: sha512-cCehYh5hTbfShm/fxTD6wwrGUWIpvX+N5OxmAMhFhDeTGXvw+BeNj889tpxsFQ9ZLatQ6wImuY8tsKLZ+FMz7w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.73.0': + resolution: {integrity: sha512-d5j5GDU/2dMgjVhw7TQT9ITrsIr1Y02KEXKyVGIXUkD+KiaxE9TP65FS2ZdgTBemQvoRL+gSBdbrIm3cQIeacg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.73.0': + resolution: {integrity: sha512-Eyf1SrP3+yR1DI3OJgOY2Pvrr9dWP9TK37xPaDYycwTtlGlI45erJAVIfH5/m/xosDt6BupJYEFi47bvbTuuyw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.73.0': + resolution: {integrity: sha512-IlT/OJApEDKaMmCooHuncgJZbbCe7T5QIWmTZBEtYscWvzPQuuEinVcid6kwQRVQOUdb7PUCz4jQHnaYXdfJXw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.73.0': + resolution: {integrity: sha512-L+JYcb/vdg5fmcH08V6o0YYLU28cTH1SPNulwJdvK9NK49aXSkYy6oNpKBmddArVOXYqNepriDGiZ04G54kh1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.73.0': + resolution: {integrity: sha512-Qtk0g3bKV6OwWjIm7R8kQN1uOZRKQt/MODK2a8QfkwhTpXBD53ozx5XLVWLGDQAVyp2otLW4D2wB98XfAfMPGA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.73.0': + resolution: {integrity: sha512-wX0NQKZVxltkAOVmzFcpOaMpdaUvsq1Eqpx9tkAfl71UdkTlSo1R4AdAnGccR1Fm2+TzFgZ22CyyGuZ41RDr/A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.73.0': + resolution: {integrity: sha512-vPe7UGBMWyiLTtnqS4xxgMQFSFGmtQwhwCxuiw6lXygaO6bVt0D8dFVg8Xv05eaiN3ybC0HXXHUAohFMFvqoCQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.73.0': + resolution: {integrity: sha512-2CwIWr9cemFC/CbRBWZvuk5mffz6ObmfFkfcC/9rTQ7f+icNhYr2kOjf9Rt8lLvugvkdGDOmkoVoFFHh6ClCTw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.73.0': + resolution: {integrity: sha512-nDadfJgg7NBBxG0N560wOe7LLX5QiYp6qBaI7viuk5EUORFBktU/NfV0MbTqU3gTqQDCh4VyxKdo5VADxk9w8Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.73.0': + resolution: {integrity: sha512-wGjJC+NLH9xP+IKGn9RDW94ojJR/wPbg5WCnQjj/oReaOtCQthr8ws1zICe77JFmo4ouUdeTHHZL/ESGiF6Pmw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.73.0': + resolution: {integrity: sha512-I7X47GPGljw225YUQ5SbC/rb1Kkdrd0yQf0x+hYxeKS6DpfjMbo9ccQPQ6LNY6BoJQ1sHhgDUGuMn5Vg5gHT6w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.73.0': + resolution: {integrity: sha512-5lWj+3h+74Fm1jYOO9qkJA4xkAlZA099DkXppuXsk7UpnpZLttsefrZU469vChGaG6hcSqrkKXQOvMTZtbjeNg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.73.0': + resolution: {integrity: sha512-WaNRvh4f6zY9CvUQk2YoA1O90ieWrIklI84+HXFr9Isjz9CSESrdqo/RtIYt4Dll/cAchqGDMehfaZd0vqEFZw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - - '@pkgr/core@0.3.6': - resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} - engines: {node: ^14.18.0 || >=16.0.0} - '@playwright/test@1.61.1': resolution: {integrity: sha512-8nKv6+0RJSL9FE4jYOEGXnPeM/Hg12qZpmqzZjRh3qM0Y7c3z1mrOTfFLids72RDQYVh9WpLEfR5WdpNX4fkig==} engines: {node: '>=18'} @@ -2919,30 +3140,10 @@ packages: '@sinclair/typebox@0.25.24': resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} - '@sindresorhus/merge-streams@2.3.0': - resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} - engines: {node: '>=18'} - '@sindresorhus/merge-streams@4.0.0': resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} engines: {node: '>=18'} - '@sindresorhus/tsconfig@7.0.0': - resolution: {integrity: sha512-i5K04hLAP44Af16zmDjG07E1NHuDgCM07SJAT4gY0LZSRrWYzwt4qkLem6TIbIVh0k51RkN2bF+lP+lM5eC9fw==} - engines: {node: '>=18'} - - '@stylistic/eslint-plugin@2.13.0': - resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin@4.4.1': - resolution: {integrity: sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=9.0.0' - '@swc/helpers@0.5.15': resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} @@ -3186,9 +3387,6 @@ packages: cpu: [arm64] os: [win32] - '@tybys/wasm-util@0.10.2': - resolution: {integrity: sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==} - '@tybys/wasm-util@0.10.3': resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==} @@ -3198,9 +3396,6 @@ packages: '@types/chrome@0.2.2': resolution: {integrity: sha512-8rSMZ4cvo2xmaSyQg0sN5yRL7oiDkntLoiHxUhfwQnv1mvnkrdoZ25SlNrKWmYKaeP50WvrfWj1pmc02+U9KKw==} - '@types/eslint@8.56.12': - resolution: {integrity: sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==} - '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -3263,165 +3458,123 @@ packages: '@types/validate-npm-package-name@4.0.2': resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==} - '@typescript-eslint/eslint-plugin@8.59.2': - resolution: {integrity: sha512-j/bwmkBvHUtPNxzuWe5z6BEk3q54YRyGlBXkSsmfoih7zNrBvl5A9A98anlp/7JbyZcWIJ8KXo/3Tq/DjFLtuQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.59.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + '@typescript/typescript-aix-ppc64@7.0.2': + resolution: {integrity: sha512-MTKKkWB7p/0E9xi1d1tHtZ5PiLkGEMIq88pK2CubZjOsLtYTLqhgIgi6zepFa+9GHZ6h05NMCkQxGKiPXMxXtQ==} + engines: {node: '>=16.20.0'} + cpu: [ppc64] + os: [aix] - '@typescript-eslint/parser@8.59.2': - resolution: {integrity: sha512-plR3pp6D+SSUn1HM7xvSkx12/DhoHInI2YF35KAcVFNZvlC0gtrWqx7Qq1oH2Ssgi0vlFRCTbP+DZc7B9+TtsQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' + '@typescript/typescript-darwin-arm64@7.0.2': + resolution: {integrity: sha512-gowzar9MwS/aRWp6f3a4KUqzRjAZjOsmGNCM6LcTgXum+dBfgsBVMN+AgvOCCbguXyick6LJhpBszxMebJ8syA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] - '@typescript-eslint/project-service@8.59.2': - resolution: {integrity: sha512-+2hqvEkeyf/0FBor67duF0Ll7Ot8jyKzDQOSrxazF/danillRq2DwR9dLptsXpoZQqxE1UisSmoZewrlPas9Vw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' + '@typescript/typescript-darwin-x64@7.0.2': + resolution: {integrity: sha512-SZ9xZInqApNlNGc9s0W1VSsktYSOe9cFqNOIqmN1Gs8SmkjKZYFt017G4VwPxASInODuAdbTW7sXiFUf893RgA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] - '@typescript-eslint/scope-manager@8.59.2': - resolution: {integrity: sha512-JzfyEpEtOU89CcFSwyNS3mu4MLvLSXqnmX05+aKBDM+TdR5jzcGOEBwxwGNxrEQ7p/z6kK2WyioCGBf2zZBnvg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/typescript-freebsd-arm64@7.0.2': + resolution: {integrity: sha512-W5NH4y/J0plIIS5b2xvTEkU7JFxyqdMAOgf+Ilhl0vHQXKO5dZoxd+C/jEtq56c4F3wk71RB4BMRQ2XdI+bwYQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [freebsd] - '@typescript-eslint/tsconfig-utils@8.59.2': - resolution: {integrity: sha512-BKK4alN7oi4C/zv4VqHQ+uRU+lTa6JGIZ7s1juw7b3RHo9OfKB+bKX3u0iVZetdsUCBBkSbdWbarJbmN0fTeSw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/type-utils@8.59.2': - resolution: {integrity: sha512-nhqaj1nmTdVVl/BP5omXNRGO38jn5iosis2vbdmupF2txCf8ylWT8lx+JlvMYYVqzGVKtjojUFoQ3JRWK+mfzQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/types@8.59.2': - resolution: {integrity: sha512-e82GVOE8Ps3E++Egvb6Y3Dw0S10u8NkQ9KXmtRhCWJJ8kDhOJTvtMAWnFL16kB1583goCWXsr0NieKCZMs2/0Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.59.2': - resolution: {integrity: sha512-o0XPGNwcWw+FIwStOWn+BwBuEmL6QXP0rsvAFg7ET1dey1Nr6Wb1ac8p5HEsK0ygO/6mUxlk+YWQD9xcb/nnXg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/utils@8.59.2': - resolution: {integrity: sha512-Juw3EinkXqjaffxz6roowvV7GZT/kET5vSKKZT6upl5TXdWkLkYmNPXwDDL2Vkt2DPn0nODIS4egC/0AGxKo/Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - - '@typescript-eslint/visitor-keys@8.59.2': - resolution: {integrity: sha512-NwjLUnGy8/Zfx23fl50tRC8rYaYnM52xNRYFAXvmiil9yh1+K6aRVQMnzW6gQB/1DLgWt977lYQn7C+wtgXZiA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - resolution: {integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.11.1': - resolution: {integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - resolution: {integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.11.1': - resolution: {integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - resolution: {integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==} + '@typescript/typescript-freebsd-x64@7.0.2': + resolution: {integrity: sha512-UMGDx5sTpzNw3WiPebH7l90IWfJggEd+egHt/q6p7/Cm3zqoV7VxkGXt+3DxPIw8CcmvAB0j3sVVfbhX+M4Tpw==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [freebsd] - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] + '@typescript/typescript-linux-arm64@7.0.2': + resolution: {integrity: sha512-Qh4eU4/y3yDjnfjjyPYihMj5/ODIlmt+Bzu17OI+fiSRDW57QmU5SiN63exPRNJPKUzcc1INa1NXdrJ+MqHjUQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] os: [linux] - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} + '@typescript/typescript-linux-arm@7.0.2': + resolution: {integrity: sha512-gffT3xPz9sR7j/YJExkyPntrI0P2EP9XbOyWzth2/Gs0RstK+90RBcO0ncXoXy/beYll1SXw846Nf2zdnEz0QQ==} + engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] + '@typescript/typescript-linux-loong64@7.0.2': + resolution: {integrity: sha512-uEHck9i8hoAzXPiYRib1O7miOnz23SxIeVl6F4LXox+qov1K35jHcEW6VHKvZI+pyvl7fZEP4MCU5LYvIq1GuQ==} + engines: {node: '>=16.20.0'} + cpu: [loong64] os: [linux] - libc: [glibc] - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] + '@typescript/typescript-linux-mips64el@7.0.2': + resolution: {integrity: sha512-R4KvAMnE43W5Qeqb0Ly56O3mWMWIAgsMyz36DCaycd5nbg/9kzm0liw3JocfRqyJY0KPmzFjbswozXyW0DnIYA==} + engines: {node: '>=16.20.0'} + cpu: [mips64el] os: [linux] - libc: [musl] - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} + '@typescript/typescript-linux-ppc64@7.0.2': + resolution: {integrity: sha512-DORx5b3sd/4S7eayxm4FQv+A7CrkUIGRaHiwI8oiHTAI1fAPWhF4J0vAlkC8biAlHSVVwxMQ3tjZ2/DVbnQiiA==} + engines: {node: '>=16.20.0'} cpu: [ppc64] os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} + '@typescript/typescript-linux-riscv64@7.0.2': + resolution: {integrity: sha512-wf0jqEDOjrPRnKwYRyyJDRo11KMbvMFrU+q4zqKyChODBzvlkbhNQfKvLxQCcwTpdDaXSHZTVuh0JoCrKCUMHQ==} + engines: {node: '>=16.20.0'} cpu: [riscv64] os: [linux] - libc: [musl] - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} + '@typescript/typescript-linux-s390x@7.0.2': + resolution: {integrity: sha512-IkwJc3L7yhytWd/ewjyxNDfOmswCm9GWMJT/ue/dU4aZNbwZeYAetq42VyLmsmSjvoX7z74X6ZaYCtzAr0EuGw==} + engines: {node: '>=16.20.0'} cpu: [s390x] os: [linux] - libc: [glibc] - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} + '@typescript/typescript-linux-x64@7.0.2': + resolution: {integrity: sha512-EYdf2cNg7rgCWJnxCdJ+F3V39O8ihb37eHAu1LK8oAFizgTQbPOK7zHHXbPt8rX24COqODXeI3sIf0fCXG7H/A==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - libc: [glibc] - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - libc: [musl] + '@typescript/typescript-netbsd-arm64@7.0.2': + resolution: {integrity: sha512-+polYF4MF04aPpO5FTkHran9yUQDSXqy5GiSDKpsll5jy3l3+g9QLhpf39T+ePtefhXLOGrLl0QIjkQP6VnelA==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [netbsd] - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] + '@typescript/typescript-netbsd-x64@7.0.2': + resolution: {integrity: sha512-8YIT0EHM/3dq10ZOVF/A7pc/YSMtbcecct4rWtexrnSCHOPcpC2KTLXfTCR6vDpnSiY12heNb1GiN/wu+T/FyA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [netbsd] - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} + '@typescript/typescript-openbsd-arm64@7.0.2': + resolution: {integrity: sha512-APT8+ClYnuYm1u9+kgGXoMj2VzWzcymwh2gNSQVySHfkRDGOTVkoWLjCmOQSaO+PoqQ57B0flRp9SA+7GnnkzQ==} + engines: {node: '>=16.20.0'} cpu: [arm64] - os: [win32] + os: [openbsd] - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] + '@typescript/typescript-openbsd-x64@7.0.2': + resolution: {integrity: sha512-yX7s+Q0Dln0Dt9tEzZsAjXXR/+ytBM7AlglaqyeMPxQszJ1JhlJdZ6jLA+IzldHtflX81em7lDao1xXu+aRRkg==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [openbsd] + + '@typescript/typescript-sunos-x64@7.0.2': + resolution: {integrity: sha512-dLJDGaLZ1D4HPQn62u1n8mBDkJREwMsAkCdkwd4Ieqw+x3TUyTsqY0YiBCtE6H6OzzgGk3iuZ3vFWRS+E8/d1g==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [sunos] + + '@typescript/typescript-win32-arm64@7.0.2': + resolution: {integrity: sha512-Gyl1Vy6OsWesLzmq+EP0Fb7b4Nid5232AvcA2SFcdYreldpNtYFFofPjnt62y9hQy7VTaZp65ICJjuAQRaVcIQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] os: [win32] - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} + '@typescript/typescript-win32-x64@7.0.2': + resolution: {integrity: sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] @@ -3730,10 +3883,6 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - ansi-escapes@6.2.1: - resolution: {integrity: sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig==} - engines: {node: '>=14.16'} - ansi-escapes@7.3.0: resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} engines: {node: '>=18'} @@ -3767,50 +3916,18 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - array-differ@4.0.0: resolution: {integrity: sha512-Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} - array-union@3.0.1: resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==} engines: {node: '>=12'} - array.prototype.findlast@1.2.5: - resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} - engines: {node: '>= 0.4'} - - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - array.prototype.tosorted@1.1.4: - resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - arrify@2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} - arrify@3.0.0: - resolution: {integrity: sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==} - engines: {node: '>=12'} - ast-types@0.13.4: resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} engines: {node: '>=4'} @@ -3819,10 +3936,6 @@ packages: resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} engines: {node: '>=4'} - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - async-listen@1.2.0: resolution: {integrity: sha512-CcEtRh/oc9Jc4uWeUwdpG/+Mb2YUHKmdaTf0gUr7Wa+bfp4xx70HOb3RuSTJMvqKNB1TkdTfjLdrcz2X4rkkZA==} @@ -3863,10 +3976,6 @@ packages: peerDependencies: postcss: ^8.1.0 - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - b4a@1.8.1: resolution: {integrity: sha512-aiqre1Nr0B/6DgE2N5vwTc+2/oQZ4Wh1t4NznYY4E00y8LCt6NqdRv81so00oo27D8MVKTpUa/MwUUtBLXCoDw==} peerDependencies: @@ -3959,10 +4068,6 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - builtin-modules@5.1.0: - resolution: {integrity: sha512-c5JxaDrzwRjq3WyJkI1AGR5xy6Gr6udlt7sQPbl09+3ckB+Zo2qqQ2KhCTBr7Q8dHB43bENGYEk4xddrFH/b7A==} - engines: {node: '>=18.20'} - bundle-name@4.1.0: resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} engines: {node: '>=18'} @@ -3995,10 +4100,6 @@ packages: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - call-bind@1.0.9: - resolution: {integrity: sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==} - engines: {node: '>= 0.4'} - call-bound@1.0.4: resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} engines: {node: '>= 0.4'} @@ -4052,10 +4153,6 @@ packages: class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -4116,13 +4213,6 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-parser@1.4.6: - resolution: {integrity: sha512-ObxuY6vnbWTN6Od72xfwN9DbzC7Y2vv8u1Soi9ahRKL37gb6y1qk6/dgjs+3JWuXJHWvsg3BXIwzd/rkmAwavg==} - engines: {node: '>= 12.0.0'} - - common-path-prefix@3.0.0: - resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} - concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -4143,9 +4233,6 @@ packages: resolution: {integrity: sha512-N4oog6YJWbR9kGyXvS7jEykLDXIE2C0ILYqNBZBp9iwiJpoCBWYsuAdW6PPFn6w06jjnC+3JstVvWHO4cZqvRg==} engines: {node: '>=18'} - confusing-browser-globals@1.0.11: - resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} - consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -4180,9 +4267,6 @@ packages: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - core-js-compat@3.49.0: - resolution: {integrity: sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==} - core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} @@ -4240,18 +4324,6 @@ packages: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - dayjs@1.11.21: resolution: {integrity: sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==} @@ -4312,10 +4384,6 @@ packages: resolution: {integrity: sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==} engines: {node: '>=18'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} @@ -4324,10 +4392,6 @@ packages: resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} engines: {node: '>=12'} - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - defu@6.1.7: resolution: {integrity: sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==} @@ -4374,10 +4438,6 @@ packages: resolution: {integrity: sha512-svtcdpS8CgJyqAjEQIXdb3OjhFVVYjzGAPO8WGCmRbrml64SPw/jJD4GoE98aR7r25A0XcgrK3F02yw9R/vhQw==} engines: {node: '>=0.3.1'} - doctrine@2.1.0: - resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} - engines: {node: '>=0.10.0'} - dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} @@ -4458,22 +4518,10 @@ packages: end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} - enhance-visitors@1.0.0: - resolution: {integrity: sha512-+29eJLiUixTEDRaZ35Vu8jP3gPLNcQQkQkOQjLp2X+6cZGGPDD/uasbFzvLsJKnGZnvmyZ0srxudwOtskHeIDA==} - engines: {node: '>=4.0.0'} - - enhanced-resolve@5.21.2: - resolution: {integrity: sha512-xe9vQb5kReirPUxgQrXA3ihgbCqssmTiM7cOZ+Gzu+VeGWgpV98lLZvp0dl4yriyAePcewxGUs9UpKD8PET9KQ==} - engines: {node: '>=10.13.0'} - enhanced-resolve@5.21.6: resolution: {integrity: sha512-aNnGCvbJ/RIyWo1IuhNdVjnNF+EjH9wpzpNHt+ci/m9He9LJvUN8wrCcXjp9cWsGNAuvSpVFTx/vraAFQ8qGjQ==} engines: {node: '>=10.13.0'} - enhanced-resolve@5.24.2: - resolution: {integrity: sha512-rpsZEGT1jFuve6QlpyRp9ckQ+kN61hvF9BzCPyMdaKTm8UJce96KBn3sorXOFXlzjPrs3Vc4T1NsSroZ3PxlFw==} - engines: {node: '>=10.13.0'} - entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -4482,10 +4530,6 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} - env-editor@1.3.0: - resolution: {integrity: sha512-EqiD/j01PooUbeWk+etUo2TWoocjoxMfGNYpS9e47glIJ5r8WepycIki+LCbonFbPdwlqY5ETeSTAJVMih4z4w==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} @@ -4497,10 +4541,6 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.2: - resolution: {integrity: sha512-2FpH9Q5i2RRwyEP1AylXe6nYLR5OhaJTZwmlcP0dL/+JCbgg7yyEo/sEK6HeGZRf3dFpWwThaRHVApXSkW3xeg==} - engines: {node: '>= 0.4'} - es-define-property@1.0.1: resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} @@ -4509,10 +4549,6 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-iterator-helpers@1.3.2: - resolution: {integrity: sha512-HVLACW1TppGYjJ8H6/jqH/pqOtKRw6wMlrB23xfExmFWxFquAIWCmwoLsOyN96K4a5KbmOf5At9ZUO3GZbetAw==} - engines: {node: '>= 0.4'} - es-module-lexer@1.4.1: resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} @@ -4530,14 +4566,6 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} @@ -4562,10 +4590,6 @@ packages: escape-html@1.0.3: resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} @@ -4579,161 +4603,10 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-config-xo-react@0.28.0: - resolution: {integrity: sha512-dKvxB9kxMNLhWKsh6yiptACet+/WwKcN7ID2hIBAmjH6le4tt8um4sJ0/aAH6y+xle9tPrasX1Wnz90muCoz9A==} - engines: {node: '>=18.18'} - peerDependencies: - eslint: '>=9.18.0' - - eslint-config-xo-typescript@7.0.0: - resolution: {integrity: sha512-Mvy5eo6PW2BWPpxLsG7Y28LciZhLhiXFZAw/H3kdia34Efudk2aWMWwAKqkEFamo/SHiyMYkqUx6DYO+YJeVVg==} - engines: {node: '>=18.18'} - peerDependencies: - eslint: '>=9.8.0' - typescript: '>=5.5.0' - - eslint-config-xo@0.46.0: - resolution: {integrity: sha512-mjQUhdTCLQwHUFKf1hhSx1FFhm2jllr4uG2KjaW7gZHGAbjKoSypvo1eQvFk17lHx3bztYjZDDXQmkAZyaSlAg==} - engines: {node: '>=18.18'} - peerDependencies: - eslint: '>=9.8.0' - - eslint-formatter-pretty@6.0.1: - resolution: {integrity: sha512-znAUcXmBthdIUmlnRkPSxz3zSJHFUhfHF/nJPcCMVKg/mOa4yUie2Olqg1Ghbi5JJRBZVU3rIgzWSObvIspxMA==} - engines: {node: '>=18'} - - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - - eslint-plugin-ava@15.1.0: - resolution: {integrity: sha512-+6Zxk1uYW3mf7lxCLWIQsFYgn3hfuCMbsKc0MtqfloOz1F6fiV5/PaWEaLgkL1egrSQmnyR7vOFP1wSPJbVUbw==} - engines: {node: ^18.18 || >=20} - peerDependencies: - eslint: '>=9' - - eslint-plugin-better-tailwindcss@4.6.1: - resolution: {integrity: sha512-Lr8mPyuaZ+dS6ATuJaPwcOFOpOUsRBs5TXyOPqiTzLy0SvK4+0G6usbklCuQn4QabwFtNKdSXwl2WxOIPvu0lQ==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23.0.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - oxlint: ^1.35.0 - tailwindcss: ^3.3.0 || ^4.1.17 - peerDependenciesMeta: - eslint: - optional: true - oxlint: - optional: true - - eslint-plugin-es-x@7.8.0: - resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - eslint: '>=8' - - eslint-plugin-import-x@4.16.2: - resolution: {integrity: sha512-rM9K8UBHcWKpzQzStn1YRN2T5NvdeIfSVoKu/lKF41znQXHAUcBbYXe5wd6GNjZjTrP7viQ49n1D83x/2gYgIw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.56.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true - - eslint-plugin-n@17.24.0: - resolution: {integrity: sha512-/gC7/KAYmfNnPNOb3eu8vw+TdVnV0zhdQwexsw6FLXbhzroVj20vRn2qL8lDWDGnAQ2J8DhdfvXxX9EoxvERvw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.23.0' - - eslint-plugin-no-use-extend-native@0.7.3: - resolution: {integrity: sha512-kYJhgZkiZIavu/wIwrO+n4GemQcMX53kWCNZNr7nGMkRD1aBFLkDpBivEYP7nIJINCo9fzPbFjrpeX5kr2Qbww==} - engines: {node: '>=18.18.0'} - peerDependencies: - eslint: ^9.3.0 || ^10.0.0 - - eslint-plugin-prettier@5.5.5: - resolution: {integrity: sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - - eslint-plugin-promise@7.3.0: - resolution: {integrity: sha512-6uGiOR0INuujr6PEQmeSSP7GbIMJ/ebEXXiEzb/nOj68LknH5Pxzb/AbZivmr6VE6TkTE8rTjRK9zhKpK6HsRA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - - eslint-plugin-react-compiler@19.1.0-rc.2: - resolution: {integrity: sha512-oKalwDGcD+RX9mf3NEO4zOoUMeLvjSvcbbEOpquzmzqEEM2MQdp7/FY/Hx9NzmUwFzH1W9SKTz5fihfMldpEYw==} - engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} - peerDependencies: - eslint: '>=7' - - eslint-plugin-react-hooks@6.1.1: - resolution: {integrity: sha512-St9EKZzOAQF704nt2oJvAKZHjhrpg25ClQoaAlHmPZuajFldVLqRDW4VBNAS01NzeiQF0m0qhG1ZA807K6aVaQ==} - engines: {node: '>=18'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 - - eslint-plugin-react@7.37.5: - resolution: {integrity: sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - - eslint-plugin-unicorn@59.0.1: - resolution: {integrity: sha512-EtNXYuWPUmkgSU2E7Ttn57LbRREQesIP1BiLn7OZLKodopKfDXfBUkC/0j6mpw2JExwf43Uf3qLSvrSvppgy8Q==} - engines: {node: ^18.20.0 || ^20.10.0 || >=21.0.0} - peerDependencies: - eslint: '>=9.22.0' - - eslint-rule-docs@1.1.235: - resolution: {integrity: sha512-+TQ+x4JdTnDoFEXXb3fDvfGOwnyNV7duH8fXWTPD1ieaBmB8omj7Gw/pMBBu4uI2uJCCU8APDaQJzWuXnTsH4A==} - eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-utils@3.0.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - - eslint-visitor-keys@2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4742,10 +4615,6 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@5.0.1: - resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@9.39.4: resolution: {integrity: sha512-XoMjdBOwe/esVgEvLmNsD3IRHkm7fbKIUGvrleloJXUZgDHig2IPWNniv+GwjyJXzuNqVjlr5+4yVUZjycJwfQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4760,18 +4629,11 @@ packages: resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - espurify@2.1.1: - resolution: {integrity: sha512-zttWvnkhcDyGOhSH4vO2qCBILpdCMv/MX8lp4cqgRkQoDRGK2oZxi2GfWhlP2dIXmk7BaKeOTuzbHhyC68o8XQ==} - esquery@1.7.0: resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} engines: {node: '>=0.10'} @@ -4857,16 +4719,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -4949,14 +4804,6 @@ packages: resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} engines: {node: '>= 18.0.0'} - find-cache-directory@6.0.0: - resolution: {integrity: sha512-CvFd5ivA6HcSHbD+59P7CyzINHXzwhuQK8RY7CxJZtgDSAtRlHiCaQpZQ2lMR/WRyUIEmzUvL6G2AGurMfegZA==} - engines: {node: '>=20'} - - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -4980,10 +4827,6 @@ packages: flatted@3.4.2: resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} @@ -5040,16 +4883,9 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - functional-red-black-tree@1.0.1: resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - fuzzysort@3.1.0: resolution: {integrity: sha512-sR9BNCjBg6LNgwvxlBd0sBABvQitkLzoVY9MYYROQVX/FvfJ4Mai9LsGhDgd8qYdds0bY77VzYd5iuB+v5rwQQ==} @@ -5073,10 +4909,6 @@ packages: resolution: {integrity: sha512-zV/5HKTfCeKWnxG0Dmrw51hEWFGfcF2xiXqcA3+J90WDuP0SvoiSO5ORvcBsifmx/FoIjgQN3oNOGaQ5PhLFkg==} engines: {node: '>=18'} - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - generic-pool@3.4.2: resolution: {integrity: sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag==} engines: {node: '>= 4'} @@ -5112,14 +4944,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-set-props@0.2.0: - resolution: {integrity: sha512-YCmOj+4YAeEB5Dd9jfp6ETdejMet4zSxXjNkgaa4npBEKRI9uDOGB5MmAdAgi2OoFGAKshYhCbmLq2DS03CgVA==} - engines: {node: '>=18.0.0'} - - get-stdin@9.0.0: - resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==} - engines: {node: '>=12'} - get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -5132,10 +4956,6 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - get-tsconfig@4.14.0: resolution: {integrity: sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==} @@ -5175,25 +4995,6 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globby@14.1.0: - resolution: {integrity: sha512-0Ia46fDOaT7k4og1PDW4YbodWWr3scS2vAr2lTbsplOt2WkKp0vQbkI9wKis/T5LV/dqPjO3bpS/z6GTJB82LA==} - engines: {node: '>=18'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - google-auth-library@10.5.0: resolution: {integrity: sha512-7ABviyMOlX5hIVD60YOfHw4/CxOfBhyduaYB+wbFWCWoni4N7SLcV46hrVRktuBbZjFC9ONyqamZITN7q3n32w==} engines: {node: '>=18'} @@ -5255,21 +5056,10 @@ packages: crossws: optional: true - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -5282,12 +5072,6 @@ packages: resolution: {integrity: sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==} engines: {node: '>= 0.4'} - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hono@4.12.18: resolution: {integrity: sha512-RWzP96k/yv0PQfyXnWjs6zot20TqfpfsNXhOnev8d1InAxubW93L11/oNUc3tQqn2G0bSdAOBpX+2uDFHV7kdQ==} engines: {node: '>=16.9.0'} @@ -5361,10 +5145,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -5375,18 +5155,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - import-modules@2.1.0: - resolution: {integrity: sha512-8HEWcnkbGpovH9yInoisxaSoIg9Brbul+Ju3Kqe2UsYDUBJD/iQjSgEj0zPcTDPKfPp2fs5xlv1i+JSye/m1/A==} - engines: {node: '>=8'} - imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} @@ -5401,10 +5173,6 @@ packages: resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - ip-address@10.2.0: resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==} engines: {node: '>= 12'} @@ -5416,57 +5184,17 @@ packages: iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - irregular-plurals@3.5.0: - resolution: {integrity: sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==} - engines: {node: '>=8'} - is-absolute@0.1.7: resolution: {integrity: sha512-Xi9/ZSn4NFapG8RP98iNPMOeaV3mXPisxKxzKtHVqr3g56j/fBn+yZmnxSVAA8lmZbl2J9b/a4kJvfU3hqQYgA==} engines: {node: '>=0.10.0'} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - is-builtin-module@5.0.0: - resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} - engines: {node: '>=18.20'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-core-module@2.16.2: - resolution: {integrity: sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -5481,10 +5209,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -5493,14 +5217,6 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - - is-get-set-prop@2.0.0: - resolution: {integrity: sha512-C32bqXfHJfRwa0U5UIMqSGziZhALszXDJZ8n8mz8WZ6c6V7oYGHEWwJvftliBswypY3P3EQqdY5lpDSEKvTS1Q==} - engines: {node: '> 18.0.0'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -5527,18 +5243,6 @@ packages: resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} engines: {node: '>=12'} - is-js-type@3.0.0: - resolution: {integrity: sha512-IbPf3g3vxm1D902xaBaYp2TUHiXZWwWRu5bM9hgKN9oAQcFaKALV6Gd13PGhXjKE5u2n8s1PhLhdke/E1fchxQ==} - engines: {node: '>=18.0.0'} - - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - is-node-process@1.2.0: resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} @@ -5546,18 +5250,10 @@ packages: resolution: {integrity: sha512-O2z4/kNgyjhQwVR1Wpkbfc19JIhggF97NZNCpWTnjH7kVcZMUrnut9XSN7txI7VdyIYk5ZatOq3zvSuWpU8hoA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-obj-prop@2.0.0: - resolution: {integrity: sha512-2/VFrbzXSZVJIscazpxoB+pOQx2jBOAAL9Gui4cRKxflznUNBpsr8IDvBA4UGol3e40sltLNiY3qnZv/7qSUxA==} - engines: {node: '>=18.0.0'} - is-obj@3.0.0: resolution: {integrity: sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ==} engines: {node: '>=12'} @@ -5584,14 +5280,6 @@ packages: is-promise@4.0.0: resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-proto-prop@3.0.1: - resolution: {integrity: sha512-S8xSxNMGJO4eZD86kO46zrq2gLIhA+rN9443lQEvt8Mz/l8cxk72p/AWFmofY6uL9g9ILD6cXW6j8QQj4F3Hcw==} - engines: {node: '>=18.0.0'} - - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - is-regexp@3.1.0: resolution: {integrity: sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==} engines: {node: '>=12'} @@ -5600,14 +5288,6 @@ packages: resolution: {integrity: sha512-wBOr+rNM4gkAZqoLRJI4myw5WzzIdQosFAAbnvfXP5z1LyzgAI3ivOKehC5KfqlQJZoihVhirgtCBj378Eg8GA==} engines: {node: '>=0.10.0'} - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -5616,18 +5296,6 @@ packages: resolution: {integrity: sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==} engines: {node: '>=18'} - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - is-unicode-supported@1.3.0: resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} engines: {node: '>=12'} @@ -5636,18 +5304,6 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -5659,9 +5315,6 @@ packages: isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@1.1.2: resolution: {integrity: sha512-d2eJzK691yZwPHcv1LbeAOa91yMJ9QmfTgSO1oXB65ezVhXQsxBac2vEB4bMVms9cGzaA99n6V2viHMq82VLDw==} @@ -5676,10 +5329,6 @@ packages: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - iterator.prototype@1.1.5: - resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} - engines: {node: '>= 0.4'} - jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -5705,19 +5354,10 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} - js-types@4.0.0: - resolution: {integrity: sha512-/c+n06zvqFQGxdz1BbElF7S3nEghjNchLN1TjQnk2j10HYDaUc57rcvl6BbnziTx8NQmrg0JOs/iwRpvcYaxjQ==} - engines: {node: '>=18.20'} - js-yaml@4.1.1: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} - hasBin: true - jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -5769,10 +5409,6 @@ packages: resolution: {integrity: sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==} engines: {node: '>=12', npm: '>=6'} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - jszip@3.10.1: resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} @@ -5946,10 +5582,6 @@ packages: limiter@1.1.5: resolution: {integrity: sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==} - line-column-path@3.0.0: - resolution: {integrity: sha512-Atocnm7Wr9nuvAn97yEPQa3pcQI5eLQGBz+m6iTb+CVw+IOzYB9MrYK7jI7BfC9ISnT4Fu0eiwhAScV//rp4Hw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -6008,9 +5640,6 @@ packages: lodash.once@4.1.1: resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} - lodash@4.18.1: - resolution: {integrity: sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==} - log-symbols@6.0.0: resolution: {integrity: sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==} engines: {node: '>=18'} @@ -6022,14 +5651,6 @@ packages: long@5.3.2: resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} - loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - - lowercase-keys@3.0.0: - resolution: {integrity: sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -6075,17 +5696,10 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdn-data@2.28.1: - resolution: {integrity: sha512-U9w+PzSZ00Z5m9rZ5ARVFL5xOfuCHdKYi/1RRwDCJsboFgJDNT3zT6PIPD7mZQYaQLhsZM3GfDRgSMRHhSmVng==} - media-typer@1.1.0: resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==} engines: {node: '>= 0.8'} - meow@13.2.0: - resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==} - engines: {node: '>=18'} - merge-descriptors@2.0.0: resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} engines: {node: '>=18'} @@ -6097,9 +5711,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - micro-spelling-correcter@1.1.1: - resolution: {integrity: sha512-lkJ3Rj/mtjlRcHk6YyCbvZhyWTOzdBvTHsxMmZSk5jxN1YyVSQ+JETAom55mdzfcyDrY/49Z7UCW760BK30crg==} - micro@9.3.5-canary.3: resolution: {integrity: sha512-viYIo9PefV+w9dvoIBh1gI44Mvx1BOk67B4BpC2QK77qdY0xZF0Q+vWLt/BII6cLkIc8rLmSIcJaB/OrXXKe1g==} engines: {node: '>= 8.0.0'} @@ -6208,11 +5819,6 @@ packages: nanospinner@1.2.2: resolution: {integrity: sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==} - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -6256,10 +5862,6 @@ packages: engines: {node: '>=10.5.0'} deprecated: Use your platform's native DOMException instead - node-exports-info@1.6.0: - resolution: {integrity: sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw==} - engines: {node: '>= 0.4'} - node-fetch-native@1.6.7: resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} @@ -6343,10 +5945,6 @@ packages: engines: {node: '>=18'} hasBin: true - obj-props@2.0.0: - resolution: {integrity: sha512-Q/uLAAfjdhrzQWN2czRNh3fDCgXjh7yRIkdHjDgIHTwpFP0BsshxTA3HRNffHR7Iw/XGTH30u8vdMXQ+079urA==} - engines: {node: '>=18.0.0'} - object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} @@ -6359,30 +5957,10 @@ packages: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - object-treeify@1.1.33: resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} engines: {node: '>= 10'} - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.entries@1.1.9: - resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - obug@2.1.3: resolution: {integrity: sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==} engines: {node: '>=12.20.0'} @@ -6415,14 +5993,6 @@ packages: resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} engines: {node: '>=18'} - open-editor@5.1.0: - resolution: {integrity: sha512-KkNqM6FdoegD6WhY2YXmWcovOux45NV+zBped2+G3+V74zkDPkIl4cqh6hte2zNDojtwO2nBOV8U+sgziWfPrg==} - engines: {node: '>=18'} - - open@10.2.0: - resolution: {integrity: sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==} - engines: {node: '>=18'} - open@11.0.0: resolution: {integrity: sha512-smsWv2LzFjP03xmvFoJ331ss6h+jixfA4UUV/Bsiyuu4YJPfN+FIQGOIiv4w9/+MoHkfkJ22UIaQWRVFRfH6Vw==} engines: {node: '>=20'} @@ -6451,10 +6021,6 @@ packages: resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==} engines: {node: '>= 0.4.0'} - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - oxc-parser@0.132.0: resolution: {integrity: sha512-+0LAPHaqtfQlvWdpaAa09SmOaZZgP8C552xosEkGJ4+ruEwP1Vgx+sqBgcBCNfR6KDCmagGOZTde8wmAvcI/Hg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -6463,6 +6029,40 @@ packages: resolution: {integrity: sha512-oa5KKSDNLHZGaiqIGAbCWXeN9IJUAz9MElWcQX90epDxdKc9Hrt/BsLj3K4gDqfAYa5dwdH+ZCFJG9hR74fiGg==} engines: {node: ^20.19.0 || >=22.12.0} + oxfmt@0.58.0: + resolution: {integrity: sha512-8feG/7NVEHDVwc1OUpP6Pks+TnaDFUw2jLLFIMi5bcmmwxAX2wBQvjSzj62RRTYBf2Op1Wt8xbkmagmPTR5ETg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + svelte: + optional: true + vite-plus: + optional: true + + oxlint-tailwindcss@1.3.5: + resolution: {integrity: sha512-AlemTubvICNpm7giH/ZLu0PQkQltPzUpuuOJJq4S5k+oxUKCObEdCViLG4S8cnR+lOd+lJ91I1ppa3D4OWRBaA==} + engines: {node: '>=20'} + + oxlint-tsgolint@0.24.0: + resolution: {integrity: sha512-giCk5sEvG02d5tzPmFMX3hem8ndzEEu1xvGYS5OwNfO2WGl6ZVxt5LjE0yiMDoz94INI7XkXwgFAQiydPvVHDw==} + hasBin: true + + oxlint@1.73.0: + resolution: {integrity: sha512-u91G9TJzU6yqKWNZUYprQB07W7YvntZXaRxQ6CkoytepYhLWUXWsr1M8zUJ34VatNPuUAr3Z8GH+O2A331CluQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.24.0' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-finally@2.0.1: resolution: {integrity: sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==} engines: {node: '>=8'} @@ -6531,10 +6131,6 @@ packages: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - path-expression-matcher@1.5.0: resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} engines: {node: '>=14.0.0'} @@ -6547,9 +6143,6 @@ packages: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -6574,10 +6167,6 @@ packages: path-to-regexp@8.4.2: resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} - path-type@6.0.0: - resolution: {integrity: sha512-Vj7sf++t5pBD637NSfkxpHSMfWaeig5+DKWLhcqIYx6mWQz5hdJTGDVMQiJcw1ZYkhs7AazKDGpRVji1LJCZUQ==} - engines: {node: '>=18'} - pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} @@ -6615,14 +6204,6 @@ packages: resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} engines: {node: '>=16.20.0'} - pkg-dir@5.0.0: - resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} - engines: {node: '>=10'} - - pkg-dir@8.0.0: - resolution: {integrity: sha512-4peoBq4Wks0riS0z8741NVv+/8IiTvqnZAr8QGgtdifrtpdXbNw/FxRS1l6NFqm4EMzuS0EDqNNx4XGaz8cuyQ==} - engines: {node: '>=18'} - pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} @@ -6639,18 +6220,6 @@ packages: engines: {node: '>=18'} hasBin: true - plur@5.1.0: - resolution: {integrity: sha512-VP/72JeXqak2KiOzjgKtQen5y3IZHn+9GOuLDafPv0eXa47xq0At93XahYBs26MsifCQ4enGKwbjBTKgb9QJXg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-selector-parser@7.1.1: resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} engines: {node: '>=4'} @@ -6674,20 +6243,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} - - prettier@3.8.3: - resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==} - engines: {node: '>=14'} - hasBin: true - - prettier@3.9.4: - resolution: {integrity: sha512-yWG/o/4oJfo036EKAfK6ACAoDOfHeRHx4tuxkfBZiauURiaSmYwlpOr5LQqKtIkRD2z1PLteme2WoxEnj4tHTg==} - engines: {node: '>=14'} - hasBin: true - pretty-ms@7.0.1: resolution: {integrity: sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==} engines: {node: '>=10'} @@ -6713,9 +6268,6 @@ packages: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} @@ -6727,10 +6279,6 @@ packages: resolution: {integrity: sha512-M71sTMB146U3u0di3yup8iM+zv8yPRNQVr1KK4tyBitl3qFvEGucq/rGDRShD2rsJhtN02RJaJ7j5X5hmy8SJg==} engines: {node: '>=12.0.0'} - prototype-properties@5.1.0: - resolution: {integrity: sha512-lq/vK1+nYV/bbjZ70pDmaTzin143xX9hVAU5CrsNQL57A8j4Q6AfjsY8kRFoUpCBncaUdfkz9MdsQ8PFtiKrUQ==} - engines: {node: '>=18.20'} - proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -6815,9 +6363,6 @@ packages: peerDependencies: react: ^19.2.6 - react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react@19.2.6: resolution: {integrity: sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==} engines: {node: '>=0.10.0'} @@ -6845,18 +6390,6 @@ packages: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - regexparam@3.0.0: resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==} engines: {node: '>=8'} @@ -6869,10 +6402,6 @@ packages: resolution: {integrity: sha512-+crtS5QjFRqFCoQmvGduwYWEBng99ZvmFvF+cUJkGYF1L1BfU8C6Zp9T7f5vPAwyLkUExpvK+ANVZmGU49qi4Q==} engines: {node: '>=12'} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -6899,11 +6428,6 @@ packages: resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@2.0.0-next.6: - resolution: {integrity: sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA==} - engines: {node: '>= 0.4'} - hasBin: true - restore-cursor@5.1.0: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} @@ -6964,24 +6488,12 @@ packages: resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} engines: {node: '>=6'} - safe-array-concat@1.1.4: - resolution: {integrity: sha512-wtZlHyOje6OZTGqAoaDKxFkgRtkF9CnHAVnCHKfuj200wAgL+bSJhdsCD2l0Qx/2ekEXjPWcyKkfGb5CPboslg==} - engines: {node: '>=0.4'} - safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -7025,18 +6537,6 @@ packages: resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} engines: {node: '>= 18'} - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - set-value@4.1.0: resolution: {integrity: sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==} engines: {node: '>=11.0'} @@ -7112,10 +6612,6 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - slice-ansi@7.1.2: resolution: {integrity: sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==} engines: {node: '>=18'} @@ -7179,10 +6675,6 @@ packages: engines: {node: '>=20.16.0'} hasBin: true - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - stat-mode@0.3.0: resolution: {integrity: sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==} @@ -7198,10 +6690,6 @@ packages: resolution: {integrity: sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==} engines: {node: '>=18'} - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - stream-events@1.0.5: resolution: {integrity: sha512-E1GUzBSgvct8Jsb3v2X15pjzN1tYebtbLaMg+eBOUOAxgbLoSbT2NS91ckc5lJD1KfLjId+jXJRgo0qnV5Nerg==} @@ -7234,25 +6722,6 @@ packages: resolution: {integrity: sha512-IIaP0g3iy9Cyy18w3M9YcaDudujEAVHKt3a3QJg1+sr/oX96TbaGUubG0hJyCjCBThFH+tFpcIyoUHUn1ogaLA==} engines: {node: '>=20'} - string.prototype.matchall@4.0.12: - resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} - engines: {node: '>= 0.4'} - - string.prototype.repeat@1.0.0: - resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} @@ -7287,10 +6756,6 @@ packages: resolution: {integrity: sha512-aulFJcD6YK8V1G7iRB5tigAP4TsHBZZrOV8pjV++zdUwmeV8uzbY7yn6h9MswN62adStNZFuCIx4haBnRuMDaw==} engines: {node: '>=18'} - strip-indent@4.1.1: - resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} - engines: {node: '>=12'} - strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -7339,35 +6804,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-hyperlinks@3.2.0: - resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} - engines: {node: '>=14.18'} - - supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} - - synckit@0.11.12: - resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} - engines: {node: ^14.18.0 || >=16.0.0} - - synckit@0.11.13: - resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} - engines: {node: ^14.18.0 || >=16.0.0} - tagged-tag@1.0.0: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwind-csstree@0.3.3: - resolution: {integrity: sha512-je9J5UYRsTJqAjYrIBMMlge8T/rreRd44pJxgG5Zx/zeo4kAC/liUKqzztRZrGlYRJLvIf2Cb1DVJMTXSzEShA==} - engines: {node: '>=18.18'} - peerDependencies: - '@eslint/css': '>=1.0.0' - peerDependenciesMeta: - '@eslint/css': - optional: true - tailwind-merge@3.6.0: resolution: {integrity: sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==} @@ -7429,6 +6869,10 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tmp@0.2.5: resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==} engines: {node: '>=14.14'} @@ -7456,17 +6900,6 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true - ts-api-utils@2.5.0: - resolution: {integrity: sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-declaration-location@1.0.7: - resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} - peerDependencies: - typescript: '>=4.0.0' - ts-morph@12.0.0: resolution: {integrity: sha512-VHC8XgU2fFW7yO1f/b3mxKDje1vmyzFXHWzOYmKEkCEwcLjDtbdLgBQviqj4ZwP4MJkQtRo6Ha2I29lq/B+VxA==} @@ -7476,10 +6909,6 @@ packages: ts-toolbelt@6.15.5: resolution: {integrity: sha512-FZIXf1ksVyLcfr7M317jbB67XFJhOO1YqdTcuGaq9q5jLUoTikukZ+98TPjKiP2jC5CgmYdWWYs0s2nLSU0/1A==} - tsconfig-paths-webpack-plugin@4.2.0: - resolution: {integrity: sha512-zbem3rfRS8BgeNK50Zz5SIQgXzLafiHjOwUAvk/38/o1jHn/V5QAgVUcz884or7WYcPaH3N2CIfUc2u0ul7UcA==} - engines: {node: '>=10.13.0'} - tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} @@ -7503,10 +6932,6 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} - type-fest@3.13.1: resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} engines: {node: '>=14.16'} @@ -7523,40 +6948,17 @@ packages: resolution: {integrity: sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==} engines: {node: '>= 0.6'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typescript-eslint@8.59.2: - resolution: {integrity: sha512-pJw051uomb3ZeCzGTpRb8RbEqB5Y4WWet8gl/GcTlU35BSx0PVdZ86/bqkQCyKKuraVQEK7r6kBHQXF+fBhkoQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} hasBin: true - typescript@6.0.3: - resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} - engines: {node: '>=14.17'} + typescript@7.0.2: + resolution: {integrity: sha512-8FYau96o3NKOhbjKi/qNvG/W5jhzxkbdm5sj9AbZ/5T5sWqn3hJgLfGx27sRKZWTvyzCP8dLRBTf5tBTSRVUNA==} + engines: {node: '>=16.20.0'} hasBin: true ufo@1.6.4: @@ -7572,10 +6974,6 @@ packages: resolution: {integrity: sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==} engines: {node: '>=18'} - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - unconfig-core@7.5.0: resolution: {integrity: sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w==} @@ -7642,9 +7040,6 @@ packages: resolution: {integrity: sha512-0Mqk3AT2TZCXWKdcoaufeXNukv2mTrEZExeXlHIOZXdqYoHHr4n51pymnwV8x2BOVxwXbK2HLlI7usrqMpycdg==} engines: {node: ^20.19.0 || >=22.12.0} - unrs-resolver@1.11.1: - resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==} - unstorage@1.17.5: resolution: {integrity: sha512-0i3iqvRfx29hkNntHyQvJTpf5W9dQ9ZadSoRU8+xVlhVtT7jAX57fazYO9EHvcRCfBCyi5YRya7XCDOsbTgkPg==} peerDependencies: @@ -7861,22 +7256,6 @@ packages: when@3.7.7: resolution: {integrity: sha512-9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - - which-typed-array@1.1.20: - resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==} - engines: {node: '>= 0.4'} - which@1.2.4: resolution: {integrity: sha512-zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==} hasBin: true @@ -7942,10 +7321,6 @@ packages: utf-8-validate: optional: true - wsl-utils@0.1.0: - resolution: {integrity: sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==} - engines: {node: '>=18'} - wsl-utils@0.3.1: resolution: {integrity: sha512-g/eziiSUNBSsdDJtCLB8bdYEUMj4jR7AGeUo96p/3dTafgjHhpF4RiCFPiRILwjQoDXx5MqkBr4fwWtR3Ky4Wg==} engines: {node: '>=20'} @@ -7984,16 +7359,6 @@ packages: resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} engines: {node: '>=4.0'} - xo@1.2.3: - resolution: {integrity: sha512-ykvWr88620CwealQwr7nWcPwolE6RMAVsCSBIdF3JnVdQUBAllnBJypSPsu0YYFzWTrJjQfNgH82lnWMPVTXnA==} - engines: {node: '>=20.17'} - hasBin: true - peerDependencies: - webpack: '>=1.11.0' - peerDependenciesMeta: - webpack: - optional: true - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -8051,12 +7416,6 @@ packages: peerDependencies: zod: ^3.25.28 || ^4 - zod-validation-error@3.5.4: - resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.24.4 - zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -8265,8 +7624,6 @@ snapshots: '@babel/helper-string-parser@8.0.0': {} - '@babel/helper-validator-identifier@7.28.5': {} - '@babel/helper-validator-identifier@7.29.7': {} '@babel/helper-validator-identifier@8.0.4': {} @@ -8293,14 +7650,6 @@ snapshots: dependencies: '@babel/types': 8.0.4 - '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.29.0)': - dependencies: - '@babel/core': 7.29.0 - '@babel/helper-create-class-features-plugin': 7.29.3(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-syntax-jsx@7.28.6(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -8416,10 +7765,10 @@ snapshots: '@bytecodealliance/preview2-shim@0.17.6': {} - '@devframes/hub@0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3))': + '@devframes/hub@0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2))': dependencies: birpc: 4.0.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2) nostics: 0.2.0 pathe: 2.0.3 perfect-debounce: 2.1.0 @@ -8664,18 +8013,14 @@ snapshots: '@esbuild/win32-x64@0.27.7': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.7.1(eslint@9.39.4(jiti@2.7.0))': - dependencies: - escape-string-regexp: 4.0.0 - eslint: 9.39.4(jiti@2.7.0) - ignore: 7.0.5 - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.4(jiti@2.7.0))': dependencies: eslint: 9.39.4(jiti@2.7.0) eslint-visitor-keys: 3.4.3 + optional: true - '@eslint-community/regexpp@4.12.2': {} + '@eslint-community/regexpp@4.12.2': + optional: true '@eslint/config-array@0.21.2': dependencies: @@ -8684,23 +8029,17 @@ snapshots: minimatch: 3.1.5 transitivePeerDependencies: - supports-color + optional: true '@eslint/config-helpers@0.4.2': dependencies: '@eslint/core': 0.17.0 + optional: true - '@eslint/core@0.13.0': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - - '@eslint/core@0.17.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/css-tree@4.0.4': - dependencies: - mdn-data: 2.28.1 - source-map-js: 1.2.1 + optional: true '@eslint/eslintrc@3.3.5': dependencies: @@ -8715,20 +8054,19 @@ snapshots: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + optional: true - '@eslint/js@9.39.4': {} - - '@eslint/object-schema@2.1.7': {} + '@eslint/js@9.39.4': + optional: true - '@eslint/plugin-kit@0.2.8': - dependencies: - '@eslint/core': 0.13.0 - levn: 0.4.1 + '@eslint/object-schema@2.1.7': + optional: true '@eslint/plugin-kit@0.4.1': dependencies: '@eslint/core': 0.17.0 levn: 0.4.1 + optional: true '@fastify/busboy@2.1.1': {} @@ -9156,18 +8494,23 @@ snapshots: '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 + optional: true '@humanfs/node@0.16.8': dependencies: '@humanfs/core': 0.19.2 '@humanfs/types': 0.15.0 '@humanwhocodes/retry': 0.4.3 + optional: true - '@humanfs/types@0.15.0': {} + '@humanfs/types@0.15.0': + optional: true - '@humanwhocodes/module-importer@1.0.1': {} + '@humanwhocodes/module-importer@1.0.1': + optional: true - '@humanwhocodes/retry@0.4.3': {} + '@humanwhocodes/retry@0.4.3': + optional: true '@img/colour@1.1.0': {} @@ -9524,13 +8867,6 @@ snapshots: '@napi-rs/keyring-win32-ia32-msvc': 1.2.0 '@napi-rs/keyring-win32-x64-msvc': 1.2.0 - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.2 - optional: true - '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)': dependencies: '@emnapi/core': 1.11.1 @@ -9554,10 +8890,6 @@ snapshots: '@next/env@16.2.10': {} - '@next/eslint-plugin-next@16.2.10': - dependencies: - fast-glob: 3.3.1 - '@next/swc-darwin-arm64@16.2.10': optional: true @@ -9807,14 +9139,140 @@ snapshots: '@oxc-transform/binding-win32-x64-msvc@0.111.0': optional: true - '@package-json/types@0.0.12': {} + '@oxfmt/binding-android-arm-eabi@0.58.0': + optional: true - '@pkgjs/parseargs@0.11.0': + '@oxfmt/binding-android-arm64@0.58.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.58.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.58.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.58.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.58.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.58.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.58.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.58.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.58.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.58.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.58.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.58.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.58.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.58.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.58.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.58.0': optional: true - '@pkgr/core@0.2.9': {} + '@oxfmt/binding-win32-ia32-msvc@0.58.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.58.0': + optional: true + + '@oxlint-tsgolint/darwin-arm64@0.24.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.24.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.24.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.24.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.24.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.24.0': + optional: true + + '@oxlint/binding-android-arm-eabi@1.73.0': + optional: true + + '@oxlint/binding-android-arm64@1.73.0': + optional: true + + '@oxlint/binding-darwin-arm64@1.73.0': + optional: true + + '@oxlint/binding-darwin-x64@1.73.0': + optional: true + + '@oxlint/binding-freebsd-x64@1.73.0': + optional: true + + '@oxlint/binding-linux-arm-gnueabihf@1.73.0': + optional: true + + '@oxlint/binding-linux-arm-musleabihf@1.73.0': + optional: true + + '@oxlint/binding-linux-arm64-gnu@1.73.0': + optional: true + + '@oxlint/binding-linux-arm64-musl@1.73.0': + optional: true + + '@oxlint/binding-linux-ppc64-gnu@1.73.0': + optional: true + + '@oxlint/binding-linux-riscv64-gnu@1.73.0': + optional: true + + '@oxlint/binding-linux-riscv64-musl@1.73.0': + optional: true + + '@oxlint/binding-linux-s390x-gnu@1.73.0': + optional: true + + '@oxlint/binding-linux-x64-gnu@1.73.0': + optional: true + + '@oxlint/binding-linux-x64-musl@1.73.0': + optional: true + + '@oxlint/binding-openharmony-arm64@1.73.0': + optional: true + + '@oxlint/binding-win32-arm64-msvc@1.73.0': + optional: true + + '@oxlint/binding-win32-ia32-msvc@1.73.0': + optional: true + + '@oxlint/binding-win32-x64-msvc@1.73.0': + optional: true - '@pkgr/core@0.3.6': {} + '@pkgjs/parseargs@0.11.0': + optional: true '@playwright/test@1.61.1': dependencies: @@ -10063,52 +9521,24 @@ snapshots: '@sinclair/typebox@0.25.24': {} - '@sindresorhus/merge-streams@2.3.0': {} - '@sindresorhus/merge-streams@4.0.0': {} - '@sindresorhus/tsconfig@7.0.0': {} - - '@stylistic/eslint-plugin@2.13.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint: 9.39.4(jiti@2.7.0) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.4 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin@4.4.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint: 9.39.4(jiti@2.7.0) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.4 - transitivePeerDependencies: - - supports-color - - typescript - '@swc/helpers@0.5.15': dependencies: tslib: 2.8.1 - '@t3-oss/env-core@0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3)': + '@t3-oss/env-core@0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3)': optionalDependencies: - typescript: 6.0.3 - valibot: 1.4.2(typescript@6.0.3) + typescript: 7.0.2 + valibot: 1.4.2(typescript@7.0.2) zod: 4.4.3 - '@t3-oss/env-nextjs@0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3)': + '@t3-oss/env-nextjs@0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3)': dependencies: - '@t3-oss/env-core': 0.13.11(typescript@6.0.3)(valibot@1.4.2(typescript@6.0.3))(zod@4.4.3) + '@t3-oss/env-core': 0.13.11(typescript@7.0.2)(valibot@1.4.2(typescript@7.0.2))(zod@4.4.3) optionalDependencies: - typescript: 6.0.3 - valibot: 1.4.2(typescript@6.0.3) + typescript: 7.0.2 + valibot: 1.4.2(typescript@7.0.2) zod: 4.4.3 '@tailwindcss/node@4.3.2': @@ -10240,14 +9670,14 @@ snapshots: '@total-typescript/ts-reset@0.6.1': {} - '@trpc/client@11.18.0(@trpc/server@11.18.0(typescript@6.0.3))(typescript@6.0.3)': + '@trpc/client@11.18.0(@trpc/server@11.18.0(typescript@7.0.2))(typescript@7.0.2)': dependencies: - '@trpc/server': 11.18.0(typescript@6.0.3) - typescript: 6.0.3 + '@trpc/server': 11.18.0(typescript@7.0.2) + typescript: 7.0.2 - '@trpc/server@11.18.0(typescript@6.0.3)': + '@trpc/server@11.18.0(typescript@7.0.2)': dependencies: - typescript: 6.0.3 + typescript: 7.0.2 '@ts-morph/common@0.11.1': dependencies: @@ -10280,11 +9710,6 @@ snapshots: '@turbo/windows-arm64@2.10.3': optional: true - '@tybys/wasm-util@0.10.2': - dependencies: - tslib: 2.8.1 - optional: true - '@tybys/wasm-util@0.10.3': dependencies: tslib: 2.8.1 @@ -10298,11 +9723,6 @@ snapshots: '@types/filesystem': 0.0.36 '@types/har-format': 1.2.16 - '@types/eslint@8.56.12': - dependencies: - '@types/estree': 1.0.9 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.8': optional: true @@ -10368,165 +9788,76 @@ snapshots: '@types/validate-npm-package-name@4.0.2': {} - '@typescript-eslint/eslint-plugin@8.59.2(@typescript-eslint/parser@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/type-utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.2 - eslint: 9.39.4(jiti@2.7.0) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.59.2 - debug: 4.4.3 - eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.59.2(typescript@6.0.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.59.2(typescript@6.0.3) - '@typescript-eslint/types': 8.59.2 - debug: 4.4.3 - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.59.2': - dependencies: - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/visitor-keys': 8.59.2 - - '@typescript-eslint/tsconfig-utils@8.59.2(typescript@6.0.3)': - dependencies: - typescript: 6.0.3 - - '@typescript-eslint/type-utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - debug: 4.4.3 - eslint: 9.39.4(jiti@2.7.0) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.59.2': {} - - '@typescript-eslint/typescript-estree@8.59.2(typescript@6.0.3)': - dependencies: - '@typescript-eslint/project-service': 8.59.2(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.59.2(typescript@6.0.3) - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/visitor-keys': 8.59.2 - debug: 4.4.3 - minimatch: 10.2.5 - semver: 7.8.5 - tinyglobby: 0.2.17 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - '@typescript-eslint/scope-manager': 8.59.2 - '@typescript-eslint/types': 8.59.2 - '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) - eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.59.2': - dependencies: - '@typescript-eslint/types': 8.59.2 - eslint-visitor-keys: 5.0.1 + '@typescript/typescript-aix-ppc64@7.0.2': + optional: true - '@unrs/resolver-binding-android-arm-eabi@1.11.1': + '@typescript/typescript-darwin-arm64@7.0.2': optional: true - '@unrs/resolver-binding-android-arm64@1.11.1': + '@typescript/typescript-darwin-x64@7.0.2': optional: true - '@unrs/resolver-binding-darwin-arm64@1.11.1': + '@typescript/typescript-freebsd-arm64@7.0.2': optional: true - '@unrs/resolver-binding-darwin-x64@1.11.1': + '@typescript/typescript-freebsd-x64@7.0.2': optional: true - '@unrs/resolver-binding-freebsd-x64@1.11.1': + '@typescript/typescript-linux-arm64@7.0.2': optional: true - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + '@typescript/typescript-linux-arm@7.0.2': optional: true - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + '@typescript/typescript-linux-loong64@7.0.2': optional: true - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + '@typescript/typescript-linux-mips64el@7.0.2': optional: true - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + '@typescript/typescript-linux-ppc64@7.0.2': optional: true - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + '@typescript/typescript-linux-riscv64@7.0.2': optional: true - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + '@typescript/typescript-linux-s390x@7.0.2': optional: true - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + '@typescript/typescript-linux-x64@7.0.2': optional: true - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + '@typescript/typescript-netbsd-arm64@7.0.2': optional: true - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + '@typescript/typescript-netbsd-x64@7.0.2': optional: true - '@unrs/resolver-binding-linux-x64-musl@1.11.1': + '@typescript/typescript-openbsd-arm64@7.0.2': optional: true - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 + '@typescript/typescript-openbsd-x64@7.0.2': optional: true - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + '@typescript/typescript-sunos-x64@7.0.2': optional: true - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + '@typescript/typescript-win32-arm64@7.0.2': optional: true - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + '@typescript/typescript-win32-x64@7.0.2': optional: true - '@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@6.0.3))': + '@valibot/to-json-schema@1.7.1(valibot@1.4.2(typescript@7.0.2))': dependencies: - valibot: 1.4.2(typescript@6.0.3) + valibot: 1.4.2(typescript@7.0.2) + optional: true - '@vercel/analytics@2.0.1(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@6.0.3))': + '@vercel/analytics@2.0.1(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@7.0.2))': optionalDependencies: next: 16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 - vue: 3.5.39(typescript@6.0.3) + vue: 3.5.39(typescript@7.0.2) '@vercel/backends@0.8.21(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.2)(rollup@4.60.3)': dependencies: @@ -10836,11 +10167,11 @@ snapshots: - bare-abort-controller - react-native-b4a - '@vercel/speed-insights@2.0.0(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@6.0.3))': + '@vercel/speed-insights@2.0.0(next@16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6))(react@19.2.6)(vue@3.5.39(typescript@7.0.2))': optionalDependencies: next: 16.2.10(@babel/core@7.29.0)(@opentelemetry/api@1.9.1)(@playwright/test@1.61.1)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.6(react@19.2.6))(react@19.2.6) react: 19.2.6 - vue: 3.5.39(typescript@6.0.3) + vue: 3.5.39(typescript@7.0.2) '@vercel/static-build@2.11.4': dependencies: @@ -10855,11 +10186,11 @@ snapshots: json-schema-to-ts: 1.6.4 ts-morph: 12.0.0 - '@vitejs/devtools-kit@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3)(vite@8.1.3)': + '@vitejs/devtools-kit@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2)(vite@8.1.3)': dependencies: - '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3)) + '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2)) birpc: 4.0.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2) mlly: 1.8.2 nostics: 1.1.4 pathe: 2.0.3 @@ -10874,15 +10205,15 @@ snapshots: - utf-8-validate optional: true - '@vitejs/devtools-rolldown@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@6.0.3)(vite@8.1.3)(vue@3.5.39(typescript@6.0.3))': + '@vitejs/devtools-rolldown@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@7.0.2)(vite@8.1.3)(vue@3.5.39(typescript@7.0.2))': dependencies: '@floating-ui/dom': 1.7.6 '@rolldown/debug': 1.1.5 - '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3)(vite@8.1.3) + '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2)(vite@8.1.3) birpc: 4.0.0 cac: 7.0.0 d3-shape: 3.2.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2) diff: 9.0.0 get-port-please: 3.2.0 h3: 2.0.1-rc.22 @@ -10895,7 +10226,7 @@ snapshots: tinyglobby: 0.2.17 unconfig: 7.5.0 unstorage: 1.17.5(@vercel/blob@2.4.0) - vue-virtual-scroller: 3.0.4(vue@3.5.39(typescript@6.0.3)) + vue-virtual-scroller: 3.0.4(vue@3.5.39(typescript@7.0.2)) ws: 8.21.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -10926,14 +10257,14 @@ snapshots: - vue optional: true - '@vitejs/devtools@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@6.0.3)(vite@8.1.3)': + '@vitejs/devtools@0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@7.0.2)(vite@8.1.3)': dependencies: - '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3)) - '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3)(vite@8.1.3) - '@vitejs/devtools-rolldown': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@6.0.3)(vite@8.1.3)(vue@3.5.39(typescript@6.0.3)) + '@devframes/hub': 0.5.4(devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2)) + '@vitejs/devtools-kit': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2)(vite@8.1.3) + '@vitejs/devtools-rolldown': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@7.0.2)(vite@8.1.3)(vue@3.5.39(typescript@7.0.2)) birpc: 4.0.0 cac: 7.0.0 - devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3) + devframe: 0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2) h3: 2.0.1-rc.22 mlly: 1.8.2 nostics: 1.1.4 @@ -10942,7 +10273,7 @@ snapshots: perfect-debounce: 2.1.0 tinyexec: 1.2.4 vite: 8.1.3(@types/node@24.13.2)(@vitejs/devtools@0.3.4)(esbuild@0.27.7)(jiti@2.7.0)(tsx@4.21.0) - vue: 3.5.39(typescript@6.0.3) + vue: 3.5.39(typescript@7.0.2) ws: 8.21.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -11032,11 +10363,11 @@ snapshots: csstype: 3.2.3 optional: true - '@vue/server-renderer@3.5.39(vue@3.5.39(typescript@6.0.3))': + '@vue/server-renderer@3.5.39(vue@3.5.39(typescript@7.0.2))': dependencies: '@vue/compiler-ssr': 3.5.39 '@vue/shared': 3.5.39 - vue: 3.5.39(typescript@6.0.3) + vue: 3.5.39(typescript@7.0.2) optional: true '@vue/shared@3.5.39': @@ -11084,6 +10415,7 @@ snapshots: acorn-jsx@5.3.2(acorn@8.16.0): dependencies: acorn: 8.16.0 + optional: true acorn@8.16.0: {} @@ -11108,6 +10440,7 @@ snapshots: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + optional: true ajv@8.20.0: dependencies: @@ -11127,8 +10460,6 @@ snapshots: dependencies: string-width: 4.2.3 - ansi-escapes@6.2.1: {} - ansi-escapes@7.3.0: dependencies: environment: 1.1.0 @@ -11155,72 +10486,13 @@ snapshots: argparse@2.0.1: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - array-differ@4.0.0: {} - array-includes@3.1.9: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - math-intrinsics: 1.1.0 - array-union@3.0.1: {} - array.prototype.findlast@1.2.5: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-shim-unscopables: 1.1.0 - - array.prototype.tosorted@1.1.4: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - arrify@2.0.1: optional: true - arrify@3.0.0: {} - ast-types@0.13.4: dependencies: tslib: 2.8.1 @@ -11229,8 +10501,6 @@ snapshots: dependencies: tslib: 2.8.1 - async-function@1.0.0: {} - async-listen@1.2.0: {} async-listen@3.0.0: {} @@ -11268,10 +10538,6 @@ snapshots: postcss: 8.5.16 postcss-value-parser: 4.2.0 - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - b4a@1.8.1: {} babel-plugin-react-compiler@1.0.0: @@ -11362,8 +10628,6 @@ snapshots: buffer-from@1.1.2: {} - builtin-modules@5.1.0: {} - bundle-name@4.1.0: dependencies: run-applescript: 7.1.0 @@ -11398,13 +10662,6 @@ snapshots: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.9: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - call-bound@1.0.4: dependencies: call-bind-apply-helpers: 1.0.2 @@ -11420,6 +10677,7 @@ snapshots: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 + optional: true chalk@5.6.2: {} @@ -11452,10 +10710,6 @@ snapshots: dependencies: clsx: 2.1.1 - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - cli-boxes@3.0.0: {} cli-cursor@5.0.0: @@ -11504,10 +10758,6 @@ snapshots: commander@9.5.0: {} - comment-parser@1.4.6: {} - - common-path-prefix@3.0.0: {} - concat-map@0.0.1: {} concat-stream@1.6.2: @@ -11533,8 +10783,6 @@ snapshots: graceful-fs: 4.2.11 xdg-basedir: 5.1.0 - confusing-browser-globals@1.0.11: {} - consola@3.4.2: {} content-disposition@1.1.0: {} @@ -11554,10 +10802,6 @@ snapshots: cookie@0.7.2: {} - core-js-compat@3.49.0: - dependencies: - browserslist: 4.28.5 - core-util-is@1.0.3: {} cors@2.8.6: @@ -11565,14 +10809,14 @@ snapshots: object-assign: 4.1.1 vary: 1.1.2 - cosmiconfig@9.0.1(typescript@6.0.3): + cosmiconfig@9.0.1(typescript@7.0.2): dependencies: env-paths: 2.2.1 import-fresh: 3.3.1 js-yaml: 4.1.1 parse-json: 5.2.0 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 cross-spawn@7.0.6: dependencies: @@ -11613,24 +10857,6 @@ snapshots: data-uri-to-buffer@6.0.2: {} - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - dayjs@1.11.21: {} debounce@1.2.1: {} @@ -11651,7 +10877,8 @@ snapshots: deep-extend@0.6.0: {} - deep-is@0.1.4: {} + deep-is@0.1.4: + optional: true deepmerge@4.3.1: {} @@ -11662,22 +10889,10 @@ snapshots: bundle-name: 4.1.0 default-browser-id: 5.0.1 - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - define-lazy-prop@2.0.0: {} define-lazy-prop@3.0.0: {} - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - defu@6.1.7: {} degenerator@5.0.1: @@ -11699,16 +10914,16 @@ snapshots: detect-libc@2.1.2: {} - devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@6.0.3): + devframe@0.5.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(typescript@7.0.2): dependencies: - '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) + '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@7.0.2)) birpc: 4.0.0 cac: 7.0.0 h3: 2.0.1-rc.22 mrmime: 2.0.1 nostics: 0.2.0 pathe: 2.0.3 - valibot: 1.4.2(typescript@6.0.3) + valibot: 1.4.2(typescript@7.0.2) ws: 8.21.0 optionalDependencies: '@modelcontextprotocol/sdk': 1.29.0(zod@4.4.3) @@ -11724,10 +10939,6 @@ snapshots: diff@9.0.0: optional: true - doctrine@2.1.0: - dependencies: - esutils: 2.0.3 - dom-serializer@2.0.0: dependencies: domelementtype: 2.3.0 @@ -11821,31 +11032,15 @@ snapshots: dependencies: once: 1.4.0 - enhance-visitors@1.0.0: - dependencies: - lodash: 4.18.1 - - enhanced-resolve@5.21.2: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - enhanced-resolve@5.21.6: dependencies: graceful-fs: 4.2.11 tapable: 2.3.3 - enhanced-resolve@5.24.2: - dependencies: - graceful-fs: 4.2.11 - tapable: 2.3.3 - entities@4.5.0: {} entities@7.0.1: {} - env-editor@1.3.0: {} - env-paths@2.2.1: {} environment@1.1.0: {} @@ -11854,86 +11049,10 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.2: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.3 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.4 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.20 - es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-iterator-helpers@1.3.2: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-set-tostringtag: 2.1.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - iterator.prototype: 1.1.5 - math-intrinsics: 1.1.0 - es-module-lexer@1.4.1: {} es-module-lexer@1.5.0: {} @@ -11950,16 +11069,7 @@ snapshots: get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 hasown: 2.0.3 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.3 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 + optional: true es6-error@4.1.1: {} @@ -12027,8 +11137,6 @@ snapshots: escape-html@1.0.3: {} - escape-string-regexp@1.0.5: {} - escape-string-regexp@4.0.0: {} escape-string-regexp@5.0.0: {} @@ -12041,237 +11149,17 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-compat-utils@0.5.1(eslint@9.39.4(jiti@2.7.0)): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - semver: 7.8.5 - - eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - - eslint-config-xo-react@0.28.0(eslint@9.39.4(jiti@2.7.0)): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - eslint-plugin-react: 7.37.5(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-react-hooks: 6.1.1(eslint@9.39.4(jiti@2.7.0)) - transitivePeerDependencies: - - supports-color - - eslint-config-xo-typescript@7.0.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint: 9.39.4(jiti@2.7.0) - eslint-config-xo: 0.46.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - typescript: 6.0.3 - typescript-eslint: 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - transitivePeerDependencies: - - supports-color - - eslint-config-xo@0.46.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@stylistic/eslint-plugin': 2.13.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - confusing-browser-globals: 1.0.11 - eslint: 9.39.4(jiti@2.7.0) - globals: 15.15.0 - transitivePeerDependencies: - - supports-color - - typescript - - eslint-formatter-pretty@6.0.1: - dependencies: - '@types/eslint': 8.56.12 - ansi-escapes: 6.2.1 - chalk: 5.6.2 - eslint-rule-docs: 1.1.235 - log-symbols: 6.0.0 - plur: 5.1.0 - string-width: 7.2.0 - supports-hyperlinks: 3.2.0 - - eslint-import-context@0.1.9(unrs-resolver@1.11.1): - dependencies: - get-tsconfig: 4.14.0 - stable-hash-x: 0.2.0 - optionalDependencies: - unrs-resolver: 1.11.1 - - eslint-plugin-ava@15.1.0(eslint@9.39.4(jiti@2.7.0)): - dependencies: - enhance-visitors: 1.0.0 - eslint: 9.39.4(jiti@2.7.0) - eslint-utils: 3.0.0(eslint@9.39.4(jiti@2.7.0)) - espree: 9.6.1 - espurify: 2.1.1 - import-modules: 2.1.0 - micro-spelling-correcter: 1.1.1 - pkg-dir: 5.0.0 - resolve-from: 5.0.0 - - eslint-plugin-better-tailwindcss@4.6.1(eslint@9.39.4(jiti@2.7.0))(tailwindcss@4.3.2)(typescript@6.0.3): - dependencies: - '@eslint/css-tree': 4.0.4 - '@valibot/to-json-schema': 1.7.1(valibot@1.4.2(typescript@6.0.3)) - enhanced-resolve: 5.24.2 - jiti: 2.7.0 - synckit: 0.11.13 - tailwind-csstree: 0.3.3 - tailwindcss: 4.3.2 - tsconfig-paths-webpack-plugin: 4.2.0 - valibot: 1.4.2(typescript@6.0.3) - optionalDependencies: - eslint: 9.39.4(jiti@2.7.0) - transitivePeerDependencies: - - '@eslint/css' - - typescript - - eslint-plugin-es-x@7.8.0(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - '@eslint-community/regexpp': 4.12.2 - eslint: 9.39.4(jiti@2.7.0) - eslint-compat-utils: 0.5.1(eslint@9.39.4(jiti@2.7.0)) - - eslint-plugin-import-x@4.16.2(@typescript-eslint/utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@package-json/types': 0.0.12 - '@typescript-eslint/types': 8.59.2 - comment-parser: 1.4.6 - debug: 4.4.3 - eslint: 9.39.4(jiti@2.7.0) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - is-glob: 4.0.3 - minimatch: 10.2.5 - semver: 7.8.5 - stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 - optionalDependencies: - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-n@17.24.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - enhanced-resolve: 5.21.2 - eslint: 9.39.4(jiti@2.7.0) - eslint-plugin-es-x: 7.8.0(eslint@9.39.4(jiti@2.7.0)) - get-tsconfig: 4.14.0 - globals: 15.15.0 - globrex: 0.1.2 - ignore: 5.3.2 - semver: 7.8.5 - ts-declaration-location: 1.0.7(typescript@6.0.3) - transitivePeerDependencies: - - typescript - - eslint-plugin-no-use-extend-native@0.7.3(eslint@9.39.4(jiti@2.7.0)): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - is-get-set-prop: 2.0.0 - is-js-type: 3.0.0 - is-obj-prop: 2.0.0 - is-proto-prop: 3.0.1 - - eslint-plugin-prettier@5.5.5(@types/eslint@8.56.12)(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.8.3): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - prettier: 3.8.3 - prettier-linter-helpers: 1.0.1 - synckit: 0.11.12 - optionalDependencies: - '@types/eslint': 8.56.12 - eslint-config-prettier: 10.1.8(eslint@9.39.4(jiti@2.7.0)) - - eslint-plugin-promise@7.3.0(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - eslint: 9.39.4(jiti@2.7.0) - - eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.7 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - eslint: 9.39.4(jiti@2.7.0) - hermes-parser: 0.25.1 - zod: 3.25.76 - zod-validation-error: 3.5.4(zod@3.25.76) - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-hooks@6.1.1(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.7 - eslint: 9.39.4(jiti@2.7.0) - zod: 4.4.3 - zod-validation-error: 3.5.4(zod@4.4.3) - transitivePeerDependencies: - - supports-color - - eslint-plugin-react@7.37.5(eslint@9.39.4(jiti@2.7.0)): - dependencies: - array-includes: 3.1.9 - array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.3 - array.prototype.tosorted: 1.1.4 - doctrine: 2.1.0 - es-iterator-helpers: 1.3.2 - eslint: 9.39.4(jiti@2.7.0) - estraverse: 5.3.0 - hasown: 2.0.3 - jsx-ast-utils: 3.3.5 - minimatch: 3.1.5 - object.entries: 1.1.9 - object.fromentries: 2.0.8 - object.values: 1.2.1 - prop-types: 15.8.1 - resolve: 2.0.0-next.6 - semver: 6.3.1 - string.prototype.matchall: 4.0.12 - string.prototype.repeat: 1.0.0 - - eslint-plugin-unicorn@59.0.1(eslint@9.39.4(jiti@2.7.0)): - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.7.0)) - '@eslint/plugin-kit': 0.2.8 - ci-info: 4.4.0 - clean-regexp: 1.0.0 - core-js-compat: 3.49.0 - eslint: 9.39.4(jiti@2.7.0) - esquery: 1.7.0 - find-up-simple: 1.0.1 - globals: 16.5.0 - indent-string: 5.0.0 - is-builtin-module: 5.0.0 - jsesc: 3.1.0 - pluralize: 8.0.0 - regexp-tree: 0.1.27 - regjsparser: 0.12.0 - semver: 7.8.5 - strip-indent: 4.1.1 - - eslint-rule-docs@1.1.235: {} - eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 + optional: true - eslint-utils@3.0.0(eslint@9.39.4(jiti@2.7.0)): - dependencies: - eslint: 9.39.4(jiti@2.7.0) - eslint-visitor-keys: 2.1.0 - - eslint-visitor-keys@2.1.0: {} - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@3.4.3: + optional: true - eslint-visitor-keys@5.0.1: {} + eslint-visitor-keys@4.2.1: + optional: true eslint@9.39.4(jiti@2.7.0): dependencies: @@ -12313,30 +11201,26 @@ snapshots: jiti: 2.7.0 transitivePeerDependencies: - supports-color + optional: true espree@10.4.0: dependencies: acorn: 8.16.0 acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - - espree@9.6.1: - dependencies: - acorn: 8.16.0 - acorn-jsx: 5.3.2(acorn@8.16.0) - eslint-visitor-keys: 3.4.3 + optional: true esprima@4.0.1: {} - espurify@2.1.1: {} - esquery@1.7.0: dependencies: estraverse: 5.3.0 + optional: true esrecurse@4.3.0: dependencies: estraverse: 5.3.0 + optional: true estraverse@5.3.0: {} @@ -12457,18 +11341,8 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-fifo@1.3.2: {} - fast-glob@3.3.1: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12477,9 +11351,11 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} + fast-json-stable-stringify@2.1.0: + optional: true - fast-levenshtein@2.0.6: {} + fast-levenshtein@2.0.6: + optional: true fast-redact@3.5.0: {} @@ -12527,6 +11403,7 @@ snapshots: file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 + optional: true file-type@22.0.1: dependencies: @@ -12562,17 +11439,11 @@ snapshots: transitivePeerDependencies: - supports-color - find-cache-directory@6.0.0: - dependencies: - common-path-prefix: 3.0.0 - pkg-dir: 8.0.0 - - find-up-simple@1.0.1: {} - find-up@5.0.0: dependencies: locate-path: 6.0.0 path-exists: 4.0.0 + optional: true firebase-admin@14.1.0: dependencies: @@ -12636,12 +11507,10 @@ snapshots: dependencies: flatted: 3.4.2 keyv: 4.5.4 + optional: true - flatted@3.4.2: {} - - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 + flatted@3.4.2: + optional: true foreground-child@3.3.1: dependencies: @@ -12699,20 +11568,9 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.3 - is-callable: 1.2.7 - functional-red-black-tree@1.0.1: optional: true - functions-have-names@1.2.3: {} - fuzzysort@3.1.0: {} fx-runner@1.4.0: @@ -12762,8 +11620,6 @@ snapshots: transitivePeerDependencies: - supports-color - generator-function@2.0.1: {} - generic-pool@3.4.2: {} gensync@1.0.0-beta.2: {} @@ -12796,10 +11652,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-set-props@0.2.0: {} - - get-stdin@9.0.0: {} - get-stream@5.2.0: dependencies: pump: 3.0.4 @@ -12811,12 +11663,6 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - get-tsconfig@4.14.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -12838,6 +11684,7 @@ snapshots: glob-parent@6.0.2: dependencies: is-glob: 4.0.3 + optional: true glob-to-regexp@0.4.1: {} @@ -12861,27 +11708,8 @@ snapshots: dependencies: ini: 4.1.1 - globals@14.0.0: {} - - globals@15.15.0: {} - - globals@16.5.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globby@14.1.0: - dependencies: - '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.3 - ignore: 7.0.5 - path-type: 6.0.0 - slash: 5.1.0 - unicorn-magic: 0.3.0 - - globrex@0.1.2: {} + globals@14.0.0: + optional: true google-auth-library@10.5.0: dependencies: @@ -12988,34 +11816,20 @@ snapshots: srvx: 0.11.16 optional: true - has-bigints@1.1.0: {} - - has-flag@4.0.0: {} - - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 + has-flag@4.0.0: + optional: true has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: has-symbols: 1.1.0 + optional: true hasown@2.0.3: dependencies: function-bind: 1.1.2 - hermes-estree@0.25.1: {} - - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - hono@4.12.18: {} hookable@6.1.1: {} @@ -13101,8 +11915,6 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.5: {} - immediate@3.0.6: {} import-fresh@3.3.1: @@ -13112,11 +11924,8 @@ snapshots: import-meta-resolve@4.2.0: {} - import-modules@2.1.0: {} - - imurmurhash@0.1.4: {} - - indent-string@5.0.0: {} + imurmurhash@0.1.4: + optional: true inherits@2.0.4: {} @@ -13126,12 +11935,6 @@ snapshots: ini@4.1.3: {} - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.3 - side-channel: 1.1.0 - ip-address@10.2.0: {} ipaddr.js@1.9.1: {} @@ -13139,89 +11942,26 @@ snapshots: iron-webcrypto@1.2.1: optional: true - irregular-plurals@3.5.0: {} - is-absolute@0.1.7: dependencies: is-relative: 0.1.3 - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-buffer@2.0.5: {} - is-builtin-module@5.0.0: - dependencies: - builtin-modules: 5.1.0 - - is-callable@1.2.7: {} - - is-core-module@2.16.2: - dependencies: - hasown: 2.0.3 - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-docker@2.2.1: {} is-docker@3.0.0: {} is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@5.1.0: dependencies: get-east-asian-width: 1.6.0 - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-get-set-prop@2.0.0: - dependencies: - get-set-props: 0.2.0 - lowercase-keys: 3.0.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -13241,30 +11981,12 @@ snapshots: is-interactive@2.0.0: {} - is-js-type@3.0.0: - dependencies: - js-types: 4.0.0 - - is-map@2.0.3: {} - - is-negative-zero@2.0.3: {} - is-node-process@1.2.0: {} is-npm@6.1.0: {} - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} - is-obj-prop@2.0.0: - dependencies: - lowercase-keys: 3.0.0 - obj-props: 2.0.0 - is-obj@3.0.0: {} is-path-inside@4.0.0: {} @@ -13281,62 +12003,18 @@ snapshots: is-promise@4.0.0: {} - is-proto-prop@3.0.1: - dependencies: - lowercase-keys: 3.0.0 - prototype-properties: 5.1.0 - - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.3 - is-regexp@3.1.0: {} is-relative@0.1.3: {} - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - is-stream@2.0.1: {} is-stream@4.0.1: {} - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.20 - is-unicode-supported@1.3.0: {} is-unicode-supported@2.1.0: {} - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -13347,25 +12025,14 @@ snapshots: isarray@1.0.0: {} - isarray@2.0.5: {} - isexe@1.1.2: {} isexe@2.0.0: {} isexe@3.1.5: {} - isobject@3.0.1: {} - - iterator.prototype@1.1.5: - dependencies: - define-data-property: 1.1.4 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - has-symbols: 1.1.0 - set-function-name: 2.0.2 - + isobject@3.0.1: {} + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -13387,21 +12054,18 @@ snapshots: js-tokens@9.0.1: {} - js-types@4.0.0: {} - js-yaml@4.1.1: dependencies: argparse: 2.0.1 - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-bigint@1.0.0: dependencies: bignumber.js: 9.3.1 - json-buffer@3.0.1: {} + json-buffer@3.0.1: + optional: true json-parse-even-better-errors@2.3.1: {} @@ -13412,13 +12076,15 @@ snapshots: '@types/json-schema': 7.0.15 ts-toolbelt: 6.15.5 - json-schema-traverse@0.4.1: {} + json-schema-traverse@0.4.1: + optional: true json-schema-traverse@1.0.0: {} json-schema-typed@8.0.2: {} - json-stable-stringify-without-jsonify@1.0.1: {} + json-stable-stringify-without-jsonify@1.0.1: + optional: true json-with-bigint@3.5.8: {} @@ -13445,13 +12111,6 @@ snapshots: ms: 2.1.3 semver: 7.8.5 - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.9 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - jszip@3.10.1: dependencies: lie: 3.3.0 @@ -13484,6 +12143,7 @@ snapshots: keyv@4.5.4: dependencies: json-buffer: 3.0.1 + optional: true kleur@3.0.3: {} @@ -13542,6 +12202,7 @@ snapshots: dependencies: prelude-ls: 1.2.1 type-check: 0.4.0 + optional: true lie@3.3.0: dependencies: @@ -13605,10 +12266,6 @@ snapshots: limiter@1.1.5: {} - line-column-path@3.0.0: - dependencies: - type-fest: 2.19.0 - lines-and-columns@1.2.4: {} lines-and-columns@2.0.4: {} @@ -13638,6 +12295,7 @@ snapshots: locate-path@6.0.0: dependencies: p-locate: 5.0.0 + optional: true lodash.camelcase@4.3.0: {} @@ -13659,8 +12317,6 @@ snapshots: lodash.once@4.1.1: {} - lodash@4.18.1: {} - log-symbols@6.0.0: dependencies: chalk: 5.6.2 @@ -13676,12 +12332,6 @@ snapshots: long@5.3.2: {} - loose-envify@1.4.0: - dependencies: - js-tokens: 4.0.0 - - lowercase-keys@3.0.0: {} - lru-cache@10.4.3: optional: true @@ -13722,20 +12372,14 @@ snapshots: math-intrinsics@1.1.0: {} - mdn-data@2.28.1: {} - media-typer@1.1.0: {} - meow@13.2.0: {} - merge-descriptors@2.0.0: {} merge-stream@2.0.0: {} merge2@1.4.1: {} - micro-spelling-correcter@1.1.1: {} - micro@9.3.5-canary.3: dependencies: arg: 4.1.0 @@ -13828,9 +12472,8 @@ snapshots: dependencies: picocolors: 1.1.1 - napi-postinstall@0.3.4: {} - - natural-compare@1.4.0: {} + natural-compare@1.4.0: + optional: true negotiator@1.0.0: {} @@ -13870,13 +12513,6 @@ snapshots: node-domexception@1.0.0: {} - node-exports-info@1.6.0: - dependencies: - array.prototype.flatmap: 1.3.3 - es-errors: 1.3.0 - object.entries: 1.1.9 - semver: 6.3.1 - node-fetch-native@1.6.7: {} node-fetch@2.6.7: @@ -13950,8 +12586,6 @@ snapshots: pathe: 2.0.3 tinyexec: 1.2.4 - obj-props@2.0.0: {} - object-assign@4.1.1: {} object-hash@3.0.0: @@ -13959,40 +12593,8 @@ snapshots: object-inspect@1.13.4: {} - object-keys@1.1.1: {} - object-treeify@1.1.33: {} - object.assign@4.1.7: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.entries@1.1.9: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - obug@2.1.3: {} ofetch@1.5.1: @@ -14025,20 +12627,6 @@ snapshots: dependencies: mimic-function: 5.0.1 - open-editor@5.1.0: - dependencies: - env-editor: 1.3.0 - execa: 9.6.1 - line-column-path: 3.0.0 - open: 10.2.0 - - open@10.2.0: - dependencies: - default-browser: 5.5.0 - define-lazy-prop: 3.0.0 - is-inside-container: 1.0.0 - wsl-utils: 0.1.0 - open@11.0.0: dependencies: default-browser: 5.5.0 @@ -14068,6 +12656,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.5 + optional: true ora@8.2.0: dependencies: @@ -14085,12 +12674,6 @@ snapshots: os-shim@0.1.3: {} - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - oxc-parser@0.132.0: dependencies: '@oxc-project/types': 0.132.0 @@ -14143,11 +12726,73 @@ snapshots: - '@emnapi/core' - '@emnapi/runtime' + oxfmt@0.58.0: + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.58.0 + '@oxfmt/binding-android-arm64': 0.58.0 + '@oxfmt/binding-darwin-arm64': 0.58.0 + '@oxfmt/binding-darwin-x64': 0.58.0 + '@oxfmt/binding-freebsd-x64': 0.58.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.58.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.58.0 + '@oxfmt/binding-linux-arm64-gnu': 0.58.0 + '@oxfmt/binding-linux-arm64-musl': 0.58.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.58.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.58.0 + '@oxfmt/binding-linux-riscv64-musl': 0.58.0 + '@oxfmt/binding-linux-s390x-gnu': 0.58.0 + '@oxfmt/binding-linux-x64-gnu': 0.58.0 + '@oxfmt/binding-linux-x64-musl': 0.58.0 + '@oxfmt/binding-openharmony-arm64': 0.58.0 + '@oxfmt/binding-win32-arm64-msvc': 0.58.0 + '@oxfmt/binding-win32-ia32-msvc': 0.58.0 + '@oxfmt/binding-win32-x64-msvc': 0.58.0 + + oxlint-tailwindcss@1.3.5: + dependencies: + '@tailwindcss/node': 4.3.2 + tailwindcss: 4.3.2 + + oxlint-tsgolint@0.24.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.24.0 + '@oxlint-tsgolint/darwin-x64': 0.24.0 + '@oxlint-tsgolint/linux-arm64': 0.24.0 + '@oxlint-tsgolint/linux-x64': 0.24.0 + '@oxlint-tsgolint/win32-arm64': 0.24.0 + '@oxlint-tsgolint/win32-x64': 0.24.0 + + oxlint@1.73.0(oxlint-tsgolint@0.24.0): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.73.0 + '@oxlint/binding-android-arm64': 1.73.0 + '@oxlint/binding-darwin-arm64': 1.73.0 + '@oxlint/binding-darwin-x64': 1.73.0 + '@oxlint/binding-freebsd-x64': 1.73.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.73.0 + '@oxlint/binding-linux-arm-musleabihf': 1.73.0 + '@oxlint/binding-linux-arm64-gnu': 1.73.0 + '@oxlint/binding-linux-arm64-musl': 1.73.0 + '@oxlint/binding-linux-ppc64-gnu': 1.73.0 + '@oxlint/binding-linux-riscv64-gnu': 1.73.0 + '@oxlint/binding-linux-riscv64-musl': 1.73.0 + '@oxlint/binding-linux-s390x-gnu': 1.73.0 + '@oxlint/binding-linux-x64-gnu': 1.73.0 + '@oxlint/binding-linux-x64-musl': 1.73.0 + '@oxlint/binding-openharmony-arm64': 1.73.0 + '@oxlint/binding-win32-arm64-msvc': 1.73.0 + '@oxlint/binding-win32-ia32-msvc': 1.73.0 + '@oxlint/binding-win32-x64-msvc': 1.73.0 + oxlint-tsgolint: 0.24.0 + p-finally@2.0.1: {} p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 + optional: true p-limit@7.3.0: dependencies: @@ -14156,6 +12801,7 @@ snapshots: p-locate@5.0.0: dependencies: p-limit: 3.1.0 + optional: true pac-proxy-agent@7.2.0: dependencies: @@ -14217,9 +12863,8 @@ snapshots: path-browserify@1.0.1: {} - path-exists@4.0.0: {} - - path-exists@5.0.0: {} + path-exists@4.0.0: + optional: true path-expression-matcher@1.5.0: optional: true @@ -14228,8 +12873,6 @@ snapshots: path-key@4.0.0: {} - path-parse@1.0.7: {} - path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -14251,8 +12894,6 @@ snapshots: path-to-regexp@8.4.2: {} - path-type@6.0.0: {} - pathe@2.0.3: {} pend@1.2.0: {} @@ -14289,14 +12930,6 @@ snapshots: pkce-challenge@5.0.1: {} - pkg-dir@5.0.0: - dependencies: - find-up: 5.0.0 - - pkg-dir@8.0.0: - dependencies: - find-up-simple: 1.0.1 - pkg-types@1.3.1: dependencies: confbox: 0.1.8 @@ -14317,14 +12950,6 @@ snapshots: optionalDependencies: fsevents: 2.3.2 - plur@5.1.0: - dependencies: - irregular-plurals: 3.5.0 - - pluralize@8.0.0: {} - - possible-typed-array-names@1.1.0: {} - postcss-selector-parser@7.1.1: dependencies: cssesc: 3.0.0 @@ -14346,15 +12971,8 @@ snapshots: powershell-utils@0.1.0: {} - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.1: - dependencies: - fast-diff: 1.3.0 - - prettier@3.8.3: {} - - prettier@3.9.4: {} + prelude-ls@1.2.1: + optional: true pretty-ms@7.0.1: dependencies: @@ -14379,12 +12997,6 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - prop-types@15.8.1: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - react-is: 16.13.1 - proto-list@1.2.4: {} proto3-json-serializer@3.0.4: @@ -14407,8 +13019,6 @@ snapshots: '@types/node': 25.6.2 long: 5.3.2 - prototype-properties@5.1.0: {} - proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -14516,8 +13126,6 @@ snapshots: react: 19.2.6 scheduler: 0.27.0 - react-is@16.13.1: {} - react@19.2.6: {} readable-stream@2.3.8: @@ -14551,28 +13159,6 @@ snapshots: tiny-invariant: 1.3.3 tslib: 2.8.1 - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - - regexp-tree@0.1.27: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - regexparam@3.0.0: {} registry-auth-token@5.1.1: @@ -14583,10 +13169,6 @@ snapshots: dependencies: rc: 1.2.8 - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -14601,15 +13183,6 @@ snapshots: resolve.exports@2.0.3: {} - resolve@2.0.0-next.6: - dependencies: - es-errors: 1.3.0 - is-core-module: 2.16.2 - node-exports-info: 1.6.0 - object-keys: 1.1.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - restore-cursor@5.1.0: dependencies: onetime: 7.0.0 @@ -14743,29 +13316,10 @@ snapshots: mri: 1.2.0 optional: true - safe-array-concat@1.1.4: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - safe-buffer@5.1.2: {} safe-buffer@5.2.1: {} - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -14820,28 +13374,6 @@ snapshots: transitivePeerDependencies: - supports-color - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - set-value@4.1.0: dependencies: is-plain-object: 2.0.4 @@ -14853,7 +13385,7 @@ snapshots: setprototypeof@1.2.0: {} - shadcn@4.13.0(typescript@6.0.3): + shadcn@4.13.0(typescript@7.0.2): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.7 @@ -14864,7 +13396,7 @@ snapshots: '@types/validate-npm-package-name': 4.0.2 browserslist: 4.28.5 commander: 14.0.3 - cosmiconfig: 9.0.1(typescript@6.0.3) + cosmiconfig: 9.0.1(typescript@7.0.2) dedent: 1.7.2 deepmerge: 4.3.1 diff: 8.0.4 @@ -15004,8 +13536,6 @@ snapshots: sisteransi@1.0.5: {} - slash@5.1.0: {} - slice-ansi@7.1.2: dependencies: ansi-styles: 6.2.3 @@ -15066,8 +13596,6 @@ snapshots: srvx@0.11.16: {} - stable-hash-x@0.2.0: {} - stat-mode@0.3.0: {} statuses@1.5.0: {} @@ -15076,11 +13604,6 @@ snapshots: stdin-discarder@0.2.2: {} - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - stream-events@1.0.5: dependencies: stubs: 3.0.0 @@ -15132,50 +13655,6 @@ snapshots: get-east-asian-width: 1.6.0 strip-ansi: 7.2.0 - string.prototype.matchall@4.0.12: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-symbols: 1.1.0 - internal-slot: 1.1.0 - regexp.prototype.flags: 1.5.4 - set-function-name: 2.0.2 - side-channel: 1.1.0 - - string.prototype.repeat@1.0.0: - dependencies: - define-properties: 1.2.1 - es-abstract: 1.24.2 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.2 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.9 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.9 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - string_decoder@1.1.1: dependencies: safe-buffer: 5.1.2 @@ -15207,11 +13686,10 @@ snapshots: strip-final-newline@4.0.0: {} - strip-indent@4.1.1: {} - strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} + strip-json-comments@3.1.1: + optional: true strip-json-comments@5.0.2: {} @@ -15245,26 +13723,10 @@ snapshots: supports-color@7.2.0: dependencies: has-flag: 4.0.0 - - supports-hyperlinks@3.2.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - - supports-preserve-symlinks-flag@1.0.0: {} - - synckit@0.11.12: - dependencies: - '@pkgr/core': 0.2.9 - - synckit@0.11.13: - dependencies: - '@pkgr/core': 0.3.6 + optional: true tagged-tag@1.0.0: {} - tailwind-csstree@0.3.3: {} - tailwind-merge@3.6.0: {} tailwindcss@4.3.2: {} @@ -15347,6 +13809,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.4) picomatch: 4.0.4 + tinypool@2.1.0: {} + tmp@0.2.5: {} to-regex-range@5.0.1: @@ -15367,15 +13831,6 @@ snapshots: tree-kill@1.2.2: {} - ts-api-utils@2.5.0(typescript@6.0.3): - dependencies: - typescript: 6.0.3 - - ts-declaration-location@1.0.7(typescript@6.0.3): - dependencies: - picomatch: 4.0.4 - typescript: 6.0.3 - ts-morph@12.0.0: dependencies: '@ts-morph/common': 0.11.1 @@ -15388,13 +13843,6 @@ snapshots: ts-toolbelt@6.15.5: {} - tsconfig-paths-webpack-plugin@4.2.0: - dependencies: - chalk: 4.1.2 - enhanced-resolve: 5.21.2 - tapable: 2.3.3 - tsconfig-paths: 4.2.0 - tsconfig-paths@4.2.0: dependencies: json5: 2.2.3 @@ -15424,8 +13872,7 @@ snapshots: type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - - type-fest@2.19.0: {} + optional: true type-fest@3.13.1: {} @@ -15441,55 +13888,32 @@ snapshots: media-typer: 1.1.0 mime-types: 3.0.2 - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.9 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - typedarray@0.0.6: {} - typescript-eslint@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.59.2(@typescript-eslint/parser@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.59.2(typescript@6.0.3) - '@typescript-eslint/utils': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint: 9.39.4(jiti@2.7.0) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - typescript@5.9.3: {} - typescript@6.0.3: {} + typescript@7.0.2: + optionalDependencies: + '@typescript/typescript-aix-ppc64': 7.0.2 + '@typescript/typescript-darwin-arm64': 7.0.2 + '@typescript/typescript-darwin-x64': 7.0.2 + '@typescript/typescript-freebsd-arm64': 7.0.2 + '@typescript/typescript-freebsd-x64': 7.0.2 + '@typescript/typescript-linux-arm': 7.0.2 + '@typescript/typescript-linux-arm64': 7.0.2 + '@typescript/typescript-linux-loong64': 7.0.2 + '@typescript/typescript-linux-mips64el': 7.0.2 + '@typescript/typescript-linux-ppc64': 7.0.2 + '@typescript/typescript-linux-riscv64': 7.0.2 + '@typescript/typescript-linux-s390x': 7.0.2 + '@typescript/typescript-linux-x64': 7.0.2 + '@typescript/typescript-netbsd-arm64': 7.0.2 + '@typescript/typescript-netbsd-x64': 7.0.2 + '@typescript/typescript-openbsd-arm64': 7.0.2 + '@typescript/typescript-openbsd-x64': 7.0.2 + '@typescript/typescript-sunos-x64': 7.0.2 + '@typescript/typescript-win32-arm64': 7.0.2 + '@typescript/typescript-win32-x64': 7.0.2 ufo@1.6.4: {} @@ -15499,13 +13923,6 @@ snapshots: uint8array-extras@1.5.0: {} - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - unconfig-core@7.5.0: dependencies: '@quansync/fs': 1.0.0 @@ -15580,30 +13997,6 @@ snapshots: picomatch: 4.0.4 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.11.1: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.11.1 - '@unrs/resolver-binding-android-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-arm64': 1.11.1 - '@unrs/resolver-binding-darwin-x64': 1.11.1 - '@unrs/resolver-binding-freebsd-x64': 1.11.1 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 - '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 - '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 - '@unrs/resolver-binding-linux-x64-musl': 1.11.1 - '@unrs/resolver-binding-wasm32-wasi': 1.11.1 - '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 - '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 - '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 - unstorage@1.17.5(@vercel/blob@2.4.0): dependencies: anymatch: 3.1.3 @@ -15652,9 +14045,10 @@ snapshots: uuid@9.0.1: optional: true - valibot@1.4.2(typescript@6.0.3): + valibot@1.4.2(typescript@7.0.2): optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 + optional: true validate-npm-package-name@7.0.2: {} @@ -15736,26 +14130,26 @@ snapshots: tinyglobby: 0.2.17 optionalDependencies: '@types/node': 24.13.2 - '@vitejs/devtools': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@6.0.3)(vite@8.1.3) + '@vitejs/devtools': 0.3.4(@modelcontextprotocol/sdk@1.29.0(zod@4.4.3))(@vercel/blob@2.4.0)(typescript@7.0.2)(vite@8.1.3) esbuild: 0.27.7 fsevents: 2.3.3 jiti: 2.7.0 tsx: 4.21.0 - vue-virtual-scroller@3.0.4(vue@3.5.39(typescript@6.0.3)): + vue-virtual-scroller@3.0.4(vue@3.5.39(typescript@7.0.2)): dependencies: - vue: 3.5.39(typescript@6.0.3) + vue: 3.5.39(typescript@7.0.2) optional: true - vue@3.5.39(typescript@6.0.3): + vue@3.5.39(typescript@7.0.2): dependencies: '@vue/compiler-dom': 3.5.39 '@vue/compiler-sfc': 3.5.39 '@vue/runtime-dom': 3.5.39 - '@vue/server-renderer': 3.5.39(vue@3.5.39(typescript@6.0.3)) + '@vue/server-renderer': 3.5.39(vue@3.5.39(typescript@7.0.2)) '@vue/shared': 3.5.39 optionalDependencies: - typescript: 6.0.3 + typescript: 7.0.2 optional: true watchpack@2.4.4: @@ -15815,47 +14209,6 @@ snapshots: when@3.7.7: {} - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.20 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - - which-typed-array@1.1.20: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.9 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@1.2.4: dependencies: is-absolute: 0.1.7 @@ -15875,7 +14228,8 @@ snapshots: winreg@0.0.12: {} - word-wrap@1.2.5: {} + word-wrap@1.2.5: + optional: true wouter@3.10.0(react@19.2.6): dependencies: @@ -15916,10 +14270,6 @@ snapshots: ws@8.21.0: optional: true - wsl-utils@0.1.0: - dependencies: - is-wsl: 3.1.1 - wsl-utils@0.3.1: dependencies: is-wsl: 3.1.1 @@ -16008,47 +14358,6 @@ snapshots: xmlbuilder@11.0.1: {} - xo@1.2.3(@types/eslint@8.56.12)(@typescript-eslint/utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(jiti@2.7.0)(typescript@6.0.3): - dependencies: - '@eslint-community/eslint-plugin-eslint-comments': 4.7.1(eslint@9.39.4(jiti@2.7.0)) - '@sindresorhus/tsconfig': 7.0.0 - '@stylistic/eslint-plugin': 4.4.1(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - '@typescript-eslint/parser': 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - arrify: 3.0.0 - cosmiconfig: 9.0.1(typescript@6.0.3) - define-lazy-prop: 3.0.0 - eslint: 9.39.4(jiti@2.7.0) - eslint-config-prettier: 10.1.8(eslint@9.39.4(jiti@2.7.0)) - eslint-config-xo-react: 0.28.0(eslint@9.39.4(jiti@2.7.0)) - eslint-config-xo-typescript: 7.0.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint-formatter-pretty: 6.0.1 - eslint-plugin-ava: 15.1.0(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-import-x: 4.16.2(@typescript-eslint/utils@8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3))(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-n: 17.24.0(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - eslint-plugin-no-use-extend-native: 0.7.3(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-prettier: 5.5.5(@types/eslint@8.56.12)(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.8.3) - eslint-plugin-promise: 7.3.0(eslint@9.39.4(jiti@2.7.0)) - eslint-plugin-unicorn: 59.0.1(eslint@9.39.4(jiti@2.7.0)) - find-cache-directory: 6.0.0 - get-stdin: 9.0.0 - get-tsconfig: 4.14.0 - globals: 16.5.0 - globby: 14.1.0 - meow: 13.2.0 - micromatch: 4.0.8 - open-editor: 5.1.0 - path-exists: 5.0.0 - prettier: 3.8.3 - type-fest: 4.41.0 - typescript-eslint: 8.59.2(eslint@9.39.4(jiti@2.7.0))(typescript@6.0.3) - transitivePeerDependencies: - - '@types/eslint' - - '@typescript-eslint/utils' - - eslint-import-resolver-node - - jiti - - supports-color - - typescript - y18n@5.0.8: {} yallist@3.1.1: {} @@ -16083,7 +14392,8 @@ snapshots: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 - yocto-queue@0.1.0: {} + yocto-queue@0.1.0: + optional: true yocto-queue@1.2.2: {} @@ -16107,14 +14417,6 @@ snapshots: zod: 4.4.3 optional: true - zod-validation-error@3.5.4(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod-validation-error@3.5.4(zod@4.4.3): - dependencies: - zod: 4.4.3 - zod@3.22.4: {} zod@3.24.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 9bad4fc72..4a4579bf2 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -8,10 +8,6 @@ packages: # Remove once auth0/node-jwks-rsa#508 ships. See firebase/firebase-admin-node#3181. overrides: jwks-rsa>jose: 4.15.9 - # TODO: xo@1.2.3 pulls eslint-plugin-react-hooks@5.2.0, whose exhaustive-deps rule stubs out - # useEffectEvent support (isUseEffectEventIdentifier returns false), so effect events are - # wrongly flagged as missing deps. v6 aligns with React 19.2 and lints useEffectEvent correctly. - eslint-config-xo-react>eslint-plugin-react-hooks: 6.1.1 allowBuilds: '@firebase/util': false @@ -29,7 +25,6 @@ catalog: '@hugeicons/core-free-icons': 4.2.2 '@hugeicons/react': 1.1.9 '@mantine/hooks': 9.4.1 - '@next/eslint-plugin-next': 16.2.10 '@octokit/rest': 22.0.1 '@playwright/test': 1.61.1 '@rolldown/plugin-babel': 0.2.3 @@ -56,8 +51,6 @@ catalog: class-variance-authority: 0.7.1 clsx: 2.1.1 dayjs: 1.11.21 - eslint-plugin-better-tailwindcss: 4.6.1 - eslint-plugin-react-compiler: 19.1.0-rc.2 file-type: 22.0.1 filenamify: 7.0.2 firebase: 12.15.0 @@ -65,9 +58,12 @@ catalog: lefthook: 2.1.9 next: 16.2.10 next-themes: 0.4.6 + oxfmt: 0.58.0 + oxlint: 1.73.0 + oxlint-tailwindcss: 1.3.5 + oxlint-tsgolint: 0.24.0 p-limit: 7.3.0 postcss: 8.5.16 - prettier: 3.9.4 react: 19.2.6 react-avatar-editor: 15.1.0 react-dom: 19.2.6 @@ -79,13 +75,12 @@ catalog: turbo: 2.10.3 tw-animate-css: 1.4.0 type-fest: 5.8.0 - typescript: 6.0.3 + typescript: 7.0.2 vercel: 54.20.1 vite: 8.1.3 wouter: 3.10.0 wretch: 3.0.9 wxt: 0.20.26 - xo: 1.2.3 zod: 4.4.3 zustand: 5.0.14 diff --git a/turbo.json b/turbo.json index c4930c585..bff81b30f 100644 --- a/turbo.json +++ b/turbo.json @@ -2,7 +2,12 @@ "$schema": "https://turbo.build/schema.json", "noUpdateNotifier": true, "cacheMaxAge": "7d", - "globalDependencies": [".env", "xo.config.ts", ".github/**"], + "globalDependencies": [ + ".env", + ".oxlintrc.json", + ".oxfmtrc.json", + ".github/**" + ], "globalEnv": [ "NEXT_PUBLIC_*", "FIREBASE_*", diff --git a/xo.config.ts b/xo.config.ts deleted file mode 100644 index f894e218a..000000000 --- a/xo.config.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { type FlatXoConfig } from 'xo'; -import nextPlugin from '@next/eslint-plugin-next'; -import betterTailwindcssPlugin from 'eslint-plugin-better-tailwindcss'; -import reactCompilerPlugin from 'eslint-plugin-react-compiler'; - -const xoConfig: FlatXoConfig = [ - { - prettier: true, - react: true, - space: true, - }, - { - plugins: { '@next/next': nextPlugin }, - rules: { - ...nextPlugin.configs.recommended.rules, - ...nextPlugin.configs['core-web-vitals'].rules, - }, - settings: { - next: { - rootDir: 'apps/web/', - }, - }, - files: 'apps/web/**/*.{ts,tsx}', - }, - { - plugins: { 'better-tailwindcss': betterTailwindcssPlugin }, - rules: { - ...betterTailwindcssPlugin.configs['recommended-error'].rules, - 'better-tailwindcss/enforce-consistent-line-wrapping': [ - 'error', - { strictness: 'loose' }, // Prevent conflicts with Prettier - ], - 'better-tailwindcss/no-unknown-classes': [ - 'error', - { ignore: ['dark', 'max-w-panel'] }, - ], - }, - settings: { - 'better-tailwindcss': { - entryPoint: 'packages/ui/src/styles/globals.css', - }, - }, - files: ['**/*.{ts,tsx}'], - }, - { - plugins: { 'react-compiler': reactCompilerPlugin }, - rules: { - 'react-compiler/react-compiler': 'error', - }, - // packages/ui is globally ignored below, but the compiler still compiles it at build. - files: ['apps/extension/**/*.{ts,tsx}', 'packages/shared/**/*.{ts,tsx}'], - }, - { - ignores: [ - 'apps/web/next-env.d.ts', - 'apps/extension/.output/**', - 'apps/extension/.wxt/**', - 'packages/ui/**', - ], - }, - { - rules: { - camelcase: 'off', - 'no-alert': 'off', - 'no-undef': 'off', - 'no-restricted-globals': 'off', - 'no-await-in-loop': 'off', - 'promise/prefer-await-to-then': 'off', - 'capitalized-comments': 'off', - 'n/prefer-global/process': 'off', - - 'react/react-in-jsx-scope': 'off', - 'react/boolean-prop-naming': 'off', - 'react/prefer-read-only-props': 'off', - 'react/prop-types': 'off', - 'react/jsx-no-leaked-render': 'off', - - 'import-x/extensions': 'off', - 'import-x/no-unassigned-import': 'off', - - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@stylistic/padding-line-between-statements': 'off', - '@typescript-eslint/no-dynamic-delete': 'off', - '@typescript-eslint/no-floating-promises': 'off', - '@typescript-eslint/naming-convention': 'off', - '@typescript-eslint/no-restricted-types': 'off', - '@typescript-eslint/triple-slash-reference': 'off', - - 'unicorn/filename-case': 'off', - 'unicorn/no-array-for-each': 'off', - 'unicorn/no-array-reduce': 'off', - 'unicorn/prefer-ternary': 'off', - 'unicorn/prevent-abbreviations': 'off', - 'unicorn/prefer-query-selector': 'off', - 'unicorn/prefer-global-this': 'off', - 'unicorn/prefer-top-level-await': 'off', - 'unicorn/prefer-node-protocol': 'off', - }, - }, - { - files: ['**/*.{ts,tsx}'], - rules: { - '@typescript-eslint/no-confusing-void-expression': [ - 'error', - { ignoreArrowShorthand: true }, - ], - '@typescript-eslint/no-base-to-string': [ - 'error', - { ignoredTypeNames: ['TRPCError', 'URL', 'URLSearchParams'] }, - ], - '@typescript-eslint/restrict-template-expressions': [ - 'error', - { allow: ['TRPCError', 'Date'] }, - ], - '@typescript-eslint/switch-exhaustiveness-check': [ - 'error', - { - considerDefaultExhaustiveForUnions: true, - requireDefaultForNonUnion: true, - }, - ], - '@typescript-eslint/consistent-type-definitions': ['error', 'interface'], - '@typescript-eslint/no-unused-vars': [ - 'error', - { argsIgnorePattern: '^_' }, - ], - }, - }, -]; - -export default xoConfig; From 8084935f704ab2199a17d73b7e12fb0d83d8558c Mon Sep 17 00:00:00 2001 From: Amit Singh Date: Sun, 12 Jul 2026 15:15:10 +0530 Subject: [PATCH 2/7] style: sort imports via oxfmt sortImports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable oxfmt sortImports with internalPattern covering all @/ path aliases (@app, @ui, @public, @background, @helpers, @popup, @store). Mechanical import reordering only — no logic changes. SHA added to .git-blame-ignore-revs in a follow-up commit. Co-Authored-By: Claude Opus 4.8 (1M context) --- .oxfmtrc.json | 13 +++++++- .vscode/extensions.json | 2 +- apps/extension/src/apis/trpcApi.ts | 1 + apps/extension/src/apis/wretchApi.ts | 1 + .../src/entrypoints/background/index.ts | 14 ++++---- .../background/redirections/index.ts | 5 +-- .../background/redirections/mapper.ts | 1 + .../src/entrypoints/background/utils/index.ts | 2 +- .../background/utils/receiveRuntimeMessage.ts | 3 +- .../background/websites/storageSync.ts | 1 + .../popup/components/ContextMenu.tsx | 2 +- .../entrypoints/popup/components/Global.tsx | 1 + .../popup/components/PopupRoutes.tsx | 1 + .../popup/components/StoreListener.tsx | 3 +- .../entrypoints/popup/hooks/useCurrentTab.ts | 1 + .../extension/src/entrypoints/popup/index.tsx | 1 + .../components/BookmarkAddEditDialog.tsx | 32 ++++++++++--------- .../components/BookmarkContextMenu.tsx | 4 ++- .../BookmarksPanel/components/BookmarkRow.tsx | 1 + .../components/BookmarksHeader.tsx | 3 +- .../components/BookmarksPanel.tsx | 6 ++-- .../components/ConfirmationDialog.tsx | 3 +- .../components/FolderAddEditDialog.tsx | 5 +-- .../BookmarksPanel/components/FolderRow.tsx | 6 ++-- .../components/PersonSelect.tsx | 2 +- .../BookmarksPanel/components/VirtualRow.tsx | 3 +- .../panels/BookmarksPanel/routes/index.tsx | 1 + .../BookmarksPanel/store/useBookmarkStore.ts | 6 ++-- .../panels/BookmarksPanel/utils/bookmark.ts | 4 ++- .../panels/BookmarksPanel/utils/index.ts | 1 + .../HomePopup/components/Authenticate.tsx | 8 +++-- .../components/BookmarksPanelButton.tsx | 3 +- .../components/LastVisitedButton.tsx | 9 +++--- .../components/OpenDefaultsButton.tsx | 7 ++-- .../OpenForumLinks/ButtonWithFeedback.tsx | 3 +- .../components/OpenForumLinks/index.tsx | 10 +++--- .../components/PersonsPanelButton.tsx | 3 +- .../components/QuickBookmarkButton.tsx | 8 +++-- .../components/ShortcutsPanelButton.tsx | 3 +- .../HomePopup/components/ToggleExtension.tsx | 5 +-- .../HomePopup/components/ToggleHistory.tsx | 7 ++-- .../HomePopup/components/UserProfile.tsx | 3 +- .../panels/HomePopup/containers/PopupHome.tsx | 4 ++- .../HomePopup/hooks/useExtensionOutdated.ts | 1 + .../popup/panels/HomePopup/routes/index.tsx | 1 + .../panels/HomePopup/utils/authentication.ts | 5 +-- .../popup/panels/HomePopup/utils/sync.ts | 4 ++- .../components/AddOrEditPersonDialog.tsx | 10 +++--- .../PersonsPanel/components/ImagePicker.tsx | 3 +- .../PersonsPanel/components/PersonHeader.tsx | 3 +- .../components/PersonVirtualCell.tsx | 4 ++- .../PersonsPanel/components/PersonsPanel.tsx | 10 +++--- .../panels/PersonsPanel/routes/index.tsx | 1 + .../popup/panels/PersonsPanel/utils/index.ts | 1 + .../popup/panels/PersonsPanel/utils/sync.ts | 6 ++-- .../components/RedirectionRule.tsx | 6 ++-- .../components/ShortcutsPanel.tsx | 8 +++-- .../panels/ShortcutsPanel/routes/index.tsx | 1 + .../panels/ShortcutsPanel/utils/index.ts | 1 + .../popup/provider/DynamicProvider.tsx | 1 + .../entrypoints/popup/utils/lastVisited.ts | 1 + apps/extension/src/storage/items.ts | 5 +-- apps/extension/src/store/firebase/api.ts | 4 ++- .../src/store/firebase/useFirebaseStore.ts | 1 + apps/extension/tests/auth.setup.ts | 9 ++++-- apps/extension/tests/fixtures/auth-fixture.ts | 2 +- .../tests/fixtures/background-fixture.ts | 7 ++-- apps/extension/tests/fixtures/base-fixture.ts | 4 ++- .../tests/fixtures/bookmark-fixture.ts | 1 + .../tests/fixtures/extension-fixture.ts | 2 ++ .../tests/fixtures/home-popup-fixture.ts | 1 + .../tests/fixtures/persons-fixture.ts | 1 + .../tests/fixtures/shortcuts-fixture.ts | 1 + apps/extension/tests/global-teardown.ts | 2 ++ .../tests/specs/background-lifecycle.spec.ts | 3 +- .../tests/specs/background-navigation.spec.ts | 1 + apps/extension/tests/specs/bookmarks.spec.ts | 1 + apps/extension/tests/specs/persons.spec.ts | 1 + apps/extension/tests/specs/shortcuts.spec.ts | 1 + .../tests/specs/toggle-history.spec.ts | 3 +- apps/extension/tests/utils/bookmarks-panel.ts | 1 + apps/extension/tests/utils/home-panel.ts | 1 + apps/extension/tests/utils/persons-panel.ts | 1 + apps/extension/tests/utils/test-utils.ts | 2 +- apps/extension/wxt.config.ts | 4 ++- apps/web/next.config.ts | 1 + apps/web/src/app/api/storage-cleanup/route.ts | 5 +-- apps/web/src/app/api/upload-file/route.ts | 4 ++- .../bookmark-panel/components/VirtualRow.tsx | 3 +- .../hooks/usePreloadBookmarks.ts | 17 +++++----- apps/web/src/app/bookmark-panel/page.tsx | 4 ++- apps/web/src/app/components/AppHeader.tsx | 3 +- .../src/app/components/SalientFeatures.tsx | 3 +- apps/web/src/app/constants/features.ts | 1 + apps/web/src/app/helpers/firebase/auth.ts | 1 + .../src/app/helpers/verifyInternalToken.ts | 3 +- apps/web/src/app/layout.tsx | 5 +-- apps/web/src/app/page.tsx | 3 +- .../persons-panel/hooks/usePreloadPerson.ts | 15 +++++---- apps/web/src/app/persons-panel/page.tsx | 6 ++-- apps/web/src/app/provider/AppProviders.tsx | 3 +- apps/web/src/app/provider/AuthProvider.tsx | 1 + apps/web/src/app/provider/DynamicProvider.tsx | 1 + apps/web/src/app/utils/api.ts | 3 +- apps/web/src/app/web-ext/page.tsx | 16 ++++++---- apps/web/tests/auth.setup.ts | 4 ++- apps/web/tests/fixtures/auth-fixture.ts | 1 + apps/web/tests/fixtures/base-fixture.ts | 2 ++ apps/web/tests/global-teardown.ts | 2 ++ .../page-object-models/bookmarks-panel.ts | 2 +- .../tests/page-object-models/persons-panel.ts | 2 +- apps/web/tests/specs/bookmarks.spec.ts | 1 + apps/web/tests/specs/download-page.spec.ts | 1 + apps/web/tests/specs/persons.spec.ts | 1 + .../Bookmarks/components/Bookmark.tsx | 3 +- .../Bookmarks/components/Favicon.tsx | 9 +++--- .../Bookmarks/components/Folder.tsx | 5 +-- .../Bookmarks/components/PersonAvatars.tsx | 7 ++-- .../components/Bookmarks/hooks/useBookmark.ts | 3 +- .../components/Bookmarks/interfaces/index.ts | 1 + .../src/components/Bookmarks/schema/index.ts | 1 + .../src/components/Bookmarks/utils/index.ts | 2 +- packages/shared/src/components/Header.tsx | 1 + .../Persons/components/BookmarksList.tsx | 1 + .../components/Persons/components/Person.tsx | 1 + .../components/Persons/components/Persons.tsx | 1 + .../src/components/Persons/hooks/usePerson.ts | 3 +- .../components/Persons/interfaces/persons.ts | 1 + .../src/components/Persons/utils/index.ts | 2 +- packages/shared/src/components/Search.tsx | 2 +- packages/shared/src/hooks/useStorage.ts | 5 +-- .../shared/src/interfaces/ILastVisited.ts | 1 + .../shared/src/interfaces/IRedirection.ts | 1 + packages/shared/src/interfaces/IWebsites.ts | 1 + .../shared/src/provider/DynamicContext.ts | 1 + packages/shared/src/utils/cache.ts | 1 + packages/trpc/src/constants/env.ts | 3 +- .../src/middlewares/verifyAuthentication.ts | 1 + packages/trpc/src/routers/extension.ts | 1 + packages/trpc/src/routers/firebaseData.ts | 1 + packages/trpc/src/routers/firebaseStorage.ts | 3 +- packages/trpc/src/routers/index.ts | 2 +- .../trpc/src/services/extensionService.ts | 1 + .../services/firebase/realtimeDBService.ts | 1 + .../trpc/src/services/firebaseAdminService.ts | 2 ++ packages/trpc/src/services/githubService.ts | 3 +- .../src/services/storageCleanupService.ts | 1 + packages/trpc/src/trpc.ts | 1 + packages/trpc/src/utils/firebase.ts | 1 + playwright.config.ts | 1 + 150 files changed, 350 insertions(+), 167 deletions(-) diff --git a/.oxfmtrc.json b/.oxfmtrc.json index 196b020a1..91d11c858 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -8,7 +8,18 @@ "endOfLine": "lf", "sortPackageJson": false, "sortTailwindcss": false, - "sortImports": false, + "sortImports": { + "internalPattern": [ + "@/", + "@app/", + "@ui/", + "@public/", + "@background/", + "@helpers/", + "@popup/", + "@store/" + ] + }, "ignorePatterns": [ "packages/ui/src", "**/.output/**", diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 41638e3a9..99e2f7ddf 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,3 +1,3 @@ { - "recommendations": ["oxc.oxc-vscode"], + "recommendations": ["oxc.oxc-vscode"] } diff --git a/apps/extension/src/apis/trpcApi.ts b/apps/extension/src/apis/trpcApi.ts index 3759ce9a9..ee15a6263 100644 --- a/apps/extension/src/apis/trpcApi.ts +++ b/apps/extension/src/apis/trpcApi.ts @@ -1,5 +1,6 @@ import type { AppRouter } from '@bypass/trpc'; import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client'; + import { env } from '@/constants/env'; import useFirebaseStore from '@/store/firebase/useFirebaseStore'; diff --git a/apps/extension/src/apis/wretchApi.ts b/apps/extension/src/apis/wretchApi.ts index 7e4405fd4..a5f380fb9 100644 --- a/apps/extension/src/apis/wretchApi.ts +++ b/apps/extension/src/apis/wretchApi.ts @@ -1,4 +1,5 @@ import wretch from 'wretch'; + import { env } from '@/constants/env'; import useFirebaseStore from '@/store/firebase/useFirebaseStore'; diff --git a/apps/extension/src/entrypoints/background/index.ts b/apps/extension/src/entrypoints/background/index.ts index 3d0e3b9f6..151d1f7ee 100644 --- a/apps/extension/src/entrypoints/background/index.ts +++ b/apps/extension/src/entrypoints/background/index.ts @@ -1,16 +1,18 @@ import { defineBackground } from 'wxt/utils/define-background'; -import turnOffInputSuggestions from './misc/turnOffInputSuggestions'; -import { redirect } from './redirections'; -import { isValidTabUrl, isValidUrl, setExtensionIcon } from './utils'; -import { receiveRuntimeMessage } from './utils/receiveRuntimeMessage'; -import { type RuntimeInput } from '@/utils/sendRuntimeMessage'; -import { getIsExtensionActive } from '@/utils/common'; + import { EExtensionState } from '@/constants'; import { extStateItem, hasPendingBookmarksItem, hasPendingPersonsItem, } from '@/storage/items'; +import { getIsExtensionActive } from '@/utils/common'; +import { type RuntimeInput } from '@/utils/sendRuntimeMessage'; + +import turnOffInputSuggestions from './misc/turnOffInputSuggestions'; +import { redirect } from './redirections'; +import { isValidTabUrl, isValidUrl, setExtensionIcon } from './utils'; +import { receiveRuntimeMessage } from './utils/receiveRuntimeMessage'; export default defineBackground({ type: 'module', diff --git a/apps/extension/src/entrypoints/background/redirections/index.ts b/apps/extension/src/entrypoints/background/redirections/index.ts index 4c8350adb..f691db0b1 100644 --- a/apps/extension/src/entrypoints/background/redirections/index.ts +++ b/apps/extension/src/entrypoints/background/redirections/index.ts @@ -1,7 +1,8 @@ -import { mapRedirections } from './mapper'; -import { startHistoryWatch } from '@/utils/history'; import { trpcApi } from '@/apis/trpcApi'; import { redirectionsItem, mappedRedirectionsItem } from '@/storage/items'; +import { startHistoryWatch } from '@/utils/history'; + +import { mapRedirections } from './mapper'; export const redirect = async (tabId: number, url: URL) => { url.protocol = 'http:'; diff --git a/apps/extension/src/entrypoints/background/redirections/mapper.ts b/apps/extension/src/entrypoints/background/redirections/mapper.ts index 7b0beace5..df28850d9 100644 --- a/apps/extension/src/entrypoints/background/redirections/mapper.ts +++ b/apps/extension/src/entrypoints/background/redirections/mapper.ts @@ -1,4 +1,5 @@ import { type IRedirections } from '@bypass/shared'; + import { type IMappedRedirections } from '../interfaces/redirections'; export const mapRedirections = ( diff --git a/apps/extension/src/entrypoints/background/utils/index.ts b/apps/extension/src/entrypoints/background/utils/index.ts index adc28ba73..215237f55 100644 --- a/apps/extension/src/entrypoints/background/utils/index.ts +++ b/apps/extension/src/entrypoints/background/utils/index.ts @@ -1,6 +1,6 @@ +import { type EExtensionState } from '@/constants'; import { extStateItem } from '@/storage/items'; import { getIsExtensionActive } from '@/utils/common'; -import { type EExtensionState } from '@/constants'; const restrictedProtocols = new Set([ 'chrome:', // Chrome browser internal URLs diff --git a/apps/extension/src/entrypoints/background/utils/receiveRuntimeMessage.ts b/apps/extension/src/entrypoints/background/utils/receiveRuntimeMessage.ts index d7b74736f..334817b30 100644 --- a/apps/extension/src/entrypoints/background/utils/receiveRuntimeMessage.ts +++ b/apps/extension/src/entrypoints/background/utils/receiveRuntimeMessage.ts @@ -1,10 +1,11 @@ -import { getForumPageLinks } from '../misc/forumPageLinks'; import { type RuntimeInput, type RuntimeKeys, type RuntimeOutput, } from '@/utils/sendRuntimeMessage'; +import { getForumPageLinks } from '../misc/forumPageLinks'; + export const receiveRuntimeMessage = ( message: RuntimeInput, sendMessage: (data: RuntimeOutput[T]) => void diff --git a/apps/extension/src/entrypoints/background/websites/storageSync.ts b/apps/extension/src/entrypoints/background/websites/storageSync.ts index 2471e877b..e863640d6 100644 --- a/apps/extension/src/entrypoints/background/websites/storageSync.ts +++ b/apps/extension/src/entrypoints/background/websites/storageSync.ts @@ -1,4 +1,5 @@ import { type IWebsites } from '@bypass/shared'; + import { trpcApi } from '@/apis/trpcApi'; import { websitesItem } from '@/storage/items'; diff --git a/apps/extension/src/entrypoints/popup/components/ContextMenu.tsx b/apps/extension/src/entrypoints/popup/components/ContextMenu.tsx index 3d8328225..e7b02a6ad 100644 --- a/apps/extension/src/entrypoints/popup/components/ContextMenu.tsx +++ b/apps/extension/src/entrypoints/popup/components/ContextMenu.tsx @@ -1,10 +1,10 @@ -import { HugeiconsIcon } from '@hugeicons/react'; import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger, } from '@bypass/ui'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useRef } from 'react'; export interface IMenuOption { diff --git a/apps/extension/src/entrypoints/popup/components/Global.tsx b/apps/extension/src/entrypoints/popup/components/Global.tsx index ef8cffd4b..e4b8805c6 100644 --- a/apps/extension/src/entrypoints/popup/components/Global.tsx +++ b/apps/extension/src/entrypoints/popup/components/Global.tsx @@ -1,5 +1,6 @@ import { Toaster } from '@bypass/ui'; import { useHotkeys } from '@mantine/hooks'; + import StoreListener from './StoreListener'; function Global() { diff --git a/apps/extension/src/entrypoints/popup/components/PopupRoutes.tsx b/apps/extension/src/entrypoints/popup/components/PopupRoutes.tsx index 611711b1f..08fd419da 100644 --- a/apps/extension/src/entrypoints/popup/components/PopupRoutes.tsx +++ b/apps/extension/src/entrypoints/popup/components/PopupRoutes.tsx @@ -1,5 +1,6 @@ import { Suspense } from 'react'; import { Switch } from 'wouter'; + import { BookmarksPanelRoute } from '../panels/BookmarksPanel/routes'; import { HomePageRoute } from '../panels/HomePopup/routes'; import { PersonsPanelRoute } from '../panels/PersonsPanel/routes'; diff --git a/apps/extension/src/entrypoints/popup/components/StoreListener.tsx b/apps/extension/src/entrypoints/popup/components/StoreListener.tsx index 241a1b88c..dc30aeed2 100644 --- a/apps/extension/src/entrypoints/popup/components/StoreListener.tsx +++ b/apps/extension/src/entrypoints/popup/components/StoreListener.tsx @@ -1,6 +1,7 @@ -import useHistoryStore from '@store/history'; import { useEffect } from 'react'; + import { startHistoryWatch } from '@/utils/history'; +import useHistoryStore from '@store/history'; function StoreListener() { const monitorHistory = useHistoryStore((state) => state.monitorHistory); diff --git a/apps/extension/src/entrypoints/popup/hooks/useCurrentTab.ts b/apps/extension/src/entrypoints/popup/hooks/useCurrentTab.ts index f0ba8eae1..bd0da148b 100644 --- a/apps/extension/src/entrypoints/popup/hooks/useCurrentTab.ts +++ b/apps/extension/src/entrypoints/popup/hooks/useCurrentTab.ts @@ -1,4 +1,5 @@ import { useEffect, useState } from 'react'; + import { getCurrentTab } from '@popup/utils/tabs'; const useCurrentTab = () => { diff --git a/apps/extension/src/entrypoints/popup/index.tsx b/apps/extension/src/entrypoints/popup/index.tsx index fb0330681..314630374 100644 --- a/apps/extension/src/entrypoints/popup/index.tsx +++ b/apps/extension/src/entrypoints/popup/index.tsx @@ -2,6 +2,7 @@ import '@bypass/ui/styles/globals.css'; import { TooltipProvider } from '@bypass/ui'; import { StrictMode } from 'react'; import { createRoot } from 'react-dom/client'; + import './fonts.css'; import Global from './components/Global'; import PopupRoutes from './components/PopupRoutes'; diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx index f05d3bc38..19e1f705d 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx @@ -1,9 +1,11 @@ -import { z } from 'zod/mini'; -import { useForm } from '@tanstack/react-form'; -import { useDisclosure } from '@mantine/hooks'; -import { useCallback, useEffect, useMemo, useRef } from 'react'; -import { useLocation } from 'wouter'; -import { useShallow } from 'zustand/react/shallow'; +import { + EBookmarkOperation, + getBookmarksPanelUrl, + getDecodedFolderList, + getDefaultFolder, + ROOT_FOLDER_ID, + type ITransformedBookmark, +} from '@bypass/shared'; import { Button, Dialog, @@ -21,16 +23,16 @@ import { SelectTrigger, SelectValue, } from '@bypass/ui'; -import { - EBookmarkOperation, - getBookmarksPanelUrl, - getDecodedFolderList, - getDefaultFolder, - ROOT_FOLDER_ID, - type ITransformedBookmark, -} from '@bypass/shared'; -import { getCurrentTab } from '@popup/utils/tabs'; +import { useDisclosure } from '@mantine/hooks'; +import { useForm } from '@tanstack/react-form'; +import { useCallback, useEffect, useMemo, useRef } from 'react'; +import { useLocation } from 'wouter'; +import { z } from 'zod/mini'; +import { useShallow } from 'zustand/react/shallow'; + import { handleEscapeKey } from '@popup/utils/dialog'; +import { getCurrentTab } from '@popup/utils/tabs'; + import useBookmarkRouteStore from '../store/useBookmarkRouteStore'; import useBookmarkStore from '../store/useBookmarkStore'; import PersonSelect from './PersonSelect'; diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkContextMenu.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkContextMenu.tsx index 3fd0c2470..cef0d8722 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkContextMenu.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkContextMenu.tsx @@ -9,9 +9,11 @@ import { import { useHotkeys } from '@mantine/hooks'; import { type PropsWithChildren } from 'react'; import { useShallow } from 'zustand/react/shallow'; + import ContextMenu, { type IMenuOption } from '@popup/components/ContextMenu'; -import useBookmarkStore from '../store/useBookmarkStore'; + import useBookmarkRouteStore from '../store/useBookmarkRouteStore'; +import useBookmarkStore from '../store/useBookmarkStore'; import { getCutCount, getSelectedCount } from '../utils'; import { findBookmarkById } from '../utils/bookmark'; diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkRow.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkRow.tsx index 986e2d40b..65235daf6 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkRow.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkRow.tsx @@ -3,6 +3,7 @@ import { getGoogleFaviconUrl, type BookmarkProps, } from '@bypass/shared'; + import useHistoryStore from '@store/history'; function BookmarkRow( diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksHeader.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksHeader.tsx index e34c32dbc..c05fed4c5 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksHeader.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksHeader.tsx @@ -1,9 +1,10 @@ import { Header } from '@bypass/shared'; import { Button } from '@bypass/ui'; -import { useDisclosure, useHotkeys } from '@mantine/hooks'; import { BookmarkCheck01Icon, FolderAddIcon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; +import { useDisclosure, useHotkeys } from '@mantine/hooks'; import { useShallow } from 'zustand/react/shallow'; + import useBookmarkStore from '../store/useBookmarkStore'; import ConfirmationDialog from './ConfirmationDialog'; import { FolderAddEditDialog } from './FolderAddEditDialog'; diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksPanel.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksPanel.tsx index b376869be..c59272a5e 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksPanel.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarksPanel.tsx @@ -8,17 +8,19 @@ import { shouldRenderBookmarks, } from '@bypass/shared'; import { ScrollArea } from '@bypass/ui'; -import useHistoryStore from '@store/history'; import { useVirtualizer } from '@tanstack/react-virtual'; import { useCallback, useEffect, useRef, useState } from 'react'; import { useShallow } from 'zustand/react/shallow'; + +import { MAX_PANEL_SIZE } from '@/constants'; +import useHistoryStore from '@store/history'; + import useBookmarkRouteStore from '../store/useBookmarkRouteStore'; import useBookmarkStore from '../store/useBookmarkStore'; import BookmarkAddEditDialog from './BookmarkAddEditDialog'; import BookmarkContextMenu from './BookmarkContextMenu'; import BookmarksHeader from './BookmarksHeader'; import VirtualRow from './VirtualRow'; -import { MAX_PANEL_SIZE } from '@/constants'; function BookmarksPanel({ folderId, operation, bmUrl }: BMPanelQueryParams) { const startHistoryMonitor = useHistoryStore( diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/ConfirmationDialog.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/ConfirmationDialog.tsx index aea1edbe0..056319c9f 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/ConfirmationDialog.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/ConfirmationDialog.tsx @@ -1,3 +1,4 @@ +import { noOp } from '@bypass/shared'; import { Dialog, DialogContent, @@ -6,7 +7,7 @@ import { DialogTitle, Button, } from '@bypass/ui'; -import { noOp } from '@bypass/shared'; + import { handleEscapeKey } from '@popup/utils/dialog'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderAddEditDialog.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderAddEditDialog.tsx index c0232b25f..e9b74da94 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderAddEditDialog.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderAddEditDialog.tsx @@ -1,5 +1,3 @@ -import { z } from 'zod/mini'; -import { useForm } from '@tanstack/react-form'; import { Button, Dialog, @@ -11,6 +9,9 @@ import { FieldLabel, Input, } from '@bypass/ui'; +import { useForm } from '@tanstack/react-form'; +import { z } from 'zod/mini'; + import { handleEscapeKey } from '@popup/utils/dialog'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx index 26bbf75a8..a2eed4082 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx @@ -1,13 +1,15 @@ import { Folder, type FolderProps } from '@bypass/shared'; -import { useDisclosure } from '@mantine/hooks'; -import { HugeiconsIcon } from '@hugeicons/react'; import { FolderEditIcon, FolderRemoveIcon, StarIcon, StarOffIcon, } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; +import { useDisclosure } from '@mantine/hooks'; + import ContextMenu, { type IMenuOption } from '@popup/components/ContextMenu'; + import { FolderAddEditDialog } from './FolderAddEditDialog'; interface Props extends FolderProps { diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/PersonSelect.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/PersonSelect.tsx index a0721e512..0ccfcfe76 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/PersonSelect.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/PersonSelect.tsx @@ -25,8 +25,8 @@ import { TooltipTrigger, useComboboxAnchor, } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { UserWarning03Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useCallback, useEffect, useState } from 'react'; interface IOptionData { diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx index 3a6873e7f..1c8692ec5 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx @@ -1,6 +1,7 @@ import { type ContextBookmark, isFolderEmpty } from '@bypass/shared'; -import { useShallow } from 'zustand/react/shallow'; import clsx from 'clsx'; +import { useShallow } from 'zustand/react/shallow'; + import useBookmarkStore from '../store/useBookmarkStore'; import BookmarkRow from './BookmarkRow'; import FolderRow from './FolderRow'; diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/routes/index.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/routes/index.tsx index ffa168e88..e540d1c4d 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/routes/index.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/routes/index.tsx @@ -5,6 +5,7 @@ import { ROUTES, } from '@bypass/shared'; import { Route, useSearch } from 'wouter'; + import BookmarksPanel from '../components/BookmarksPanel'; const getQueryParams = (qs: string): BMPanelQueryParams => { diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/store/useBookmarkStore.ts b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/store/useBookmarkStore.ts index 35edecbdb..86bb0d628 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/store/useBookmarkStore.ts +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/store/useBookmarkStore.ts @@ -10,12 +10,14 @@ import { getGoogleFaviconUrl, getEncryptedFolder, } from '@bypass/shared'; -import { create } from 'zustand'; import { toast } from 'sonner'; +import { create } from 'zustand'; + +import { bookmarksItem } from '@/storage/items'; + import { isFolderContainsDir, setBookmarksInStorage } from '../utils'; import { findBookmarkById, findBookmarkByUrl } from '../utils/bookmark'; import { processBookmarksMove } from '../utils/manipulate'; -import { bookmarksItem } from '@/storage/items'; interface State { // State diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/bookmark.ts b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/bookmark.ts index 5017722f9..ebf70284a 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/bookmark.ts +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/bookmark.ts @@ -7,7 +7,7 @@ import { type IBookmarksObj, type ITransformedBookmark, } from '@bypass/shared'; -import { SIGN_IN_TOTAL_STEPS } from '../../HomePopup/constants/progress'; + import { trpcApi } from '@/apis/trpcApi'; import { bookmarksItem, @@ -17,6 +17,8 @@ import { } from '@/storage/items'; import useProgressStore from '@/store/progress'; +import { SIGN_IN_TOTAL_STEPS } from '../../HomePopup/constants/progress'; + export const syncBookmarksToStorage = async () => { const bookmarks = await trpcApi.firebaseData.bookmarksGet.query(); await bookmarksItem.setValue(bookmarks); diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/index.ts b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/index.ts index 96b9739b7..f2d995187 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/index.ts +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/utils/index.ts @@ -1,4 +1,5 @@ import { type IBookmarksObj, type ISelectedBookmarks } from '@bypass/shared'; + import { bookmarksItem, hasPendingBookmarksItem } from '@/storage/items'; export const isFolderContainsDir = ( diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/Authenticate.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/Authenticate.tsx index ae6feca71..e79087b6a 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/Authenticate.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/Authenticate.tsx @@ -1,12 +1,14 @@ import { Button, Spinner } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { Login02Icon, Logout02Icon } from '@hugeicons/core-free-icons'; -import useExtStore from '@store/extension'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useCallback, useEffect, useState } from 'react'; import { toast } from 'sonner'; -import { signIn, signOut } from '../utils/authentication'; + import useFirebaseStore from '@/store/firebase/useFirebaseStore'; import useProgressStore from '@/store/progress'; +import useExtStore from '@store/extension'; + +import { signIn, signOut } from '../utils/authentication'; function Authenticate() { const isSignedIn = useFirebaseStore((state) => state.isSignedIn); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/BookmarksPanelButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/BookmarksPanelButton.tsx index 8e1baec4e..a598d0e2d 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/BookmarksPanelButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/BookmarksPanelButton.tsx @@ -1,8 +1,9 @@ import { getBookmarksPanelUrl } from '@bypass/shared'; import { Button } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { CollectionsBookmarkIcon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useLocation } from 'wouter'; + import useFirebaseStore from '@/store/firebase/useFirebaseStore'; function BookmarksPanelButton() { diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/LastVisitedButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/LastVisitedButton.tsx index d0f26f8bd..8f8f296b4 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/LastVisitedButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/LastVisitedButton.tsx @@ -6,17 +6,18 @@ import { TooltipContent, TooltipTrigger, } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { CalendarAdd01Icon, Appointment01Icon, } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useCallback, useEffect, useState } from 'react'; -import { getlastVisitedText } from '@popup/utils/lastVisited'; -import useCurrentTab from '@popup/hooks/useCurrentTab'; + import { trpcApi } from '@/apis/trpcApi'; -import useFirebaseStore from '@/store/firebase/useFirebaseStore'; import { lastVisitedItem } from '@/storage/items'; +import useFirebaseStore from '@/store/firebase/useFirebaseStore'; +import useCurrentTab from '@popup/hooks/useCurrentTab'; +import { getlastVisitedText } from '@popup/utils/lastVisited'; function LastVisitedButton() { const isSignedIn = useFirebaseStore((state) => state.isSignedIn); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenDefaultsButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenDefaultsButton.tsx index 5340a85f4..aed9876d2 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenDefaultsButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenDefaultsButton.tsx @@ -1,10 +1,11 @@ import { Button, Spinner } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { LinkSquare02Icon } from '@hugeicons/core-free-icons'; -import useHistoryStore from '@store/history'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useState } from 'react'; -import useFirebaseStore from '@/store/firebase/useFirebaseStore'; + import { redirectionsItem } from '@/storage/items'; +import useFirebaseStore from '@/store/firebase/useFirebaseStore'; +import useHistoryStore from '@store/history'; function OpenDefaultsButton() { const startHistoryMonitor = useHistoryStore( diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx index 5a1bd45e9..4adea680b 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx @@ -1,9 +1,10 @@ import { Button, Spinner } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { CheckmarkBadge02Icon, WebDesign01Icon, } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; + import useFeedbackButton, { EButtonState } from './useFeedbackButton'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/index.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/index.tsx index 02947b531..209ff4e63 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/index.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/index.tsx @@ -1,11 +1,13 @@ -import useHistoryStore from '@store/history'; -import { useEffect, useState } from 'react'; import { sleep } from '@bypass/shared'; +import { useEffect, useState } from 'react'; + +import useFirebaseStore from '@/store/firebase/useFirebaseStore'; +import { sendRuntimeMessage } from '@/utils/sendRuntimeMessage'; import { isForumPage } from '@background/websites'; import useCurrentTab from '@popup/hooks/useCurrentTab'; +import useHistoryStore from '@store/history'; + import ButtonWithFeedback from './ButtonWithFeedback'; -import useFirebaseStore from '@/store/firebase/useFirebaseStore'; -import { sendRuntimeMessage } from '@/utils/sendRuntimeMessage'; const isCurrentPageForum = async (url = '') => { const hostname = url && new URL(url).hostname; diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/PersonsPanelButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/PersonsPanelButton.tsx index 0b019d28e..adc85e702 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/PersonsPanelButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/PersonsPanelButton.tsx @@ -1,8 +1,9 @@ import { ROUTES } from '@bypass/shared'; import { Button } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { UserAiIcon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useLocation } from 'wouter'; + import useFirebaseStore from '@/store/firebase/useFirebaseStore'; function PersonsPanelButton() { diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/QuickBookmarkButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/QuickBookmarkButton.tsx index d01867b8b..a5f241d64 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/QuickBookmarkButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/QuickBookmarkButton.tsx @@ -14,17 +14,19 @@ import { TooltipContent, TooltipTrigger, } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { BookmarkRemove01Icon, BookmarkAdd01Icon, } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useEffect, useState } from 'react'; import { useLocation } from 'wouter'; + +import { bookmarksItem } from '@/storage/items'; +import useFirebaseStore from '@/store/firebase/useFirebaseStore'; import { getCurrentTab } from '@popup/utils/tabs'; + import { findBookmarkByUrl } from '../../BookmarksPanel/utils/bookmark'; -import useFirebaseStore from '@/store/firebase/useFirebaseStore'; -import { bookmarksItem } from '@/storage/items'; function QuickBookmarkButton() { const [, navigate] = useLocation(); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ShortcutsPanelButton.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ShortcutsPanelButton.tsx index 692e71b3b..e2d92014b 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ShortcutsPanelButton.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ShortcutsPanelButton.tsx @@ -1,8 +1,9 @@ import { ROUTES } from '@bypass/shared'; import { Button } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { CommandIcon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useLocation } from 'wouter'; + import useFirebaseStore from '@/store/firebase/useFirebaseStore'; function ShortcutsPanelButton() { diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleExtension.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleExtension.tsx index f6000fd16..8518c77a9 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleExtension.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleExtension.tsx @@ -1,9 +1,10 @@ import { Switch } from '@bypass/ui'; -import useExtStore from '@store/extension'; import { useCallback, useEffect, useState } from 'react'; -import { getIsExtensionActive } from '@/utils/common'; + import { EExtensionState } from '@/constants'; import { extStateItem } from '@/storage/items'; +import { getIsExtensionActive } from '@/utils/common'; +import useExtStore from '@store/extension'; function ToggleExtension() { const turnOnExtension = useExtStore((state) => state.turnOnExtension); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleHistory.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleHistory.tsx index 0db3007c7..87d40b605 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleHistory.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/ToggleHistory.tsx @@ -1,9 +1,10 @@ import { Switch } from '@bypass/ui'; -import useExtStore from '@store/extension'; -import useHistoryStore from '@store/history'; import { useEffect, useEffectEvent, useState } from 'react'; -import { startHistoryWatch } from '@/utils/history'; + import { historyStartTimeItem } from '@/storage/items'; +import { startHistoryWatch } from '@/utils/history'; +import useExtStore from '@store/extension'; +import useHistoryStore from '@store/history'; const endHistoryWatch = async () => { const historyStartTime = await historyStartTimeItem.getValue(); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/UserProfile.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/UserProfile.tsx index 54cd7437b..51e8aad33 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/UserProfile.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/UserProfile.tsx @@ -1,6 +1,7 @@ import { Avatar, AvatarFallback, AvatarImage } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { UserWarning03Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; + import useFirebaseStore from '@/store/firebase/useFirebaseStore'; function UserProfile() { diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/containers/PopupHome.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/containers/PopupHome.tsx index 64682f899..54a27143b 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/containers/PopupHome.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/containers/PopupHome.tsx @@ -1,4 +1,7 @@ import { Progress, Spinner } from '@bypass/ui'; + +import useProgressStore from '@/store/progress'; + import Authenticate from '../components/Authenticate'; import BookmarksPanelButton from '../components/BookmarksPanelButton'; import LastVisitedButton from '../components/LastVisitedButton'; @@ -11,7 +14,6 @@ import ToggleExtension from '../components/ToggleExtension'; import ToggleHistory from '../components/ToggleHistory'; import UserProfile from '../components/UserProfile'; import useExtensionOutdated from '../hooks/useExtensionOutdated'; -import useProgressStore from '@/store/progress'; const handleOpenAsPage = () => { browser.tabs.create({ url: window.location.href }); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/hooks/useExtensionOutdated.ts b/apps/extension/src/entrypoints/popup/panels/HomePopup/hooks/useExtensionOutdated.ts index 3dd4d97e1..0c738db35 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/hooks/useExtensionOutdated.ts +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/hooks/useExtensionOutdated.ts @@ -1,4 +1,5 @@ import { useEffect } from 'react'; + import { trpcApi } from '@/apis/trpcApi'; import useFirebaseStore from '@/store/firebase/useFirebaseStore'; import useOutdatedExtensionStore from '@/store/outdatedExtension'; diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/routes/index.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/routes/index.tsx index df7097368..5e2d372b0 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/routes/index.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/routes/index.tsx @@ -1,5 +1,6 @@ import { ROUTES } from '@bypass/shared'; import { Route } from 'wouter'; + import PopupHome from '../containers/PopupHome'; export const HomePageRoute = ( diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/authentication.ts b/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/authentication.ts index 9dfbe479c..787b46829 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/authentication.ts +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/authentication.ts @@ -1,10 +1,11 @@ +import useFirebaseStore from '@/store/firebase/useFirebaseStore'; +import useProgressStore from '@/store/progress'; + import { SIGN_IN_TOTAL_STEPS, SIGN_OUT_TOTAL_STEPS, } from '../constants/progress'; import { processPostLogin, processPostLogout, processPreLogout } from './sync'; -import useFirebaseStore from '@/store/firebase/useFirebaseStore'; -import useProgressStore from '@/store/progress'; const userSignIn = async () => { const { firebaseSignIn } = useFirebaseStore.getState(); diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/sync.ts b/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/sync.ts index 6adb216f3..f6b85a987 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/sync.ts +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/utils/sync.ts @@ -1,4 +1,6 @@ import { ECacheBucketKeys, deleteAllCache } from '@bypass/shared'; + +import useProgressStore from '@/store/progress'; import { resetRedirections, syncRedirectionsToStorage, @@ -7,6 +9,7 @@ import { resetWebsites, syncWebsitesToStorage, } from '@background/websites/storageSync'; + import { cacheBookmarkFavicons, resetBookmarks, @@ -24,7 +27,6 @@ import { SIGN_OUT_TOTAL_STEPS, } from '../constants/progress'; import { resetLastVisited, syncLastVisitedToStorage } from './lastVisited'; -import useProgressStore from '@/store/progress'; const resetAuthentication = async () => { await browser.identity.clearAllCachedAuthTokens(); diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/AddOrEditPersonDialog.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/AddOrEditPersonDialog.tsx index 5faf866de..f8f304531 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/AddOrEditPersonDialog.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/AddOrEditPersonDialog.tsx @@ -1,4 +1,3 @@ -import { z } from 'zod/mini'; import { noOp, type IPerson, usePerson } from '@bypass/shared'; import { Avatar, @@ -15,15 +14,18 @@ import { Input, Spinner, } from '@bypass/ui'; +import { UserWarning03Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useDisclosure } from '@mantine/hooks'; import { useForm } from '@tanstack/react-form'; import { useSelector } from '@tanstack/react-store'; -import { HugeiconsIcon } from '@hugeicons/react'; -import { UserWarning03Icon } from '@hugeicons/core-free-icons'; import { useCallback, useEffect, useRef, useState } from 'react'; -import ImagePicker from './ImagePicker'; +import { z } from 'zod/mini'; + import { trpcApi } from '@/apis/trpcApi'; +import ImagePicker from './ImagePicker'; + const IMAGE_SIZE = 200; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/ImagePicker.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/ImagePicker.tsx index af3bc27e8..1a71a9f73 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/ImagePicker.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/ImagePicker.tsx @@ -9,15 +9,16 @@ import { Slider, Spinner, } from '@bypass/ui'; +import { useDebouncedValue } from '@mantine/hooks'; import { type ChangeEventHandler, type ClipboardEventHandler, useRef, useState, } from 'react'; -import { useDebouncedValue } from '@mantine/hooks'; import AvatarEditor, { type AvatarEditorRef } from 'react-avatar-editor'; import wretch from 'wretch'; + import { uploadFileToFirebase } from '../utils/uploadImage'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonHeader.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonHeader.tsx index 850410080..aa2a923fc 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonHeader.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonHeader.tsx @@ -1,8 +1,9 @@ import { Header, type IPerson } from '@bypass/shared'; import { Button, Switch } from '@bypass/ui'; -import { useDisclosure } from '@mantine/hooks'; import { UserAdd01Icon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; +import { useDisclosure } from '@mantine/hooks'; + import AddOrEditPersonDialog from './AddOrEditPersonDialog'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonVirtualCell.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonVirtualCell.tsx index b67111ebb..a32e1e081 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonVirtualCell.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonVirtualCell.tsx @@ -1,7 +1,9 @@ import { type IPerson, Person } from '@bypass/shared'; -import { useDisclosure } from '@mantine/hooks'; import { Delete02Icon, Edit01Icon } from '@hugeicons/core-free-icons'; +import { useDisclosure } from '@mantine/hooks'; + import ContextMenu, { type IMenuOption } from '@popup/components/ContextMenu'; + import AddOrEditPersonDialog from './AddOrEditPersonDialog'; interface Props { diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonsPanel.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonsPanel.tsx index 68c0bd5a8..3953ffbdc 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonsPanel.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/components/PersonsPanel.tsx @@ -14,16 +14,18 @@ import { usePerson, } from '@bypass/shared'; import { Spinner } from '@bypass/ui'; -import useHistoryStore from '@store/history'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; + +import { trpcApi } from '@/apis/trpcApi'; +import { MAX_PANEL_SIZE } from '@/constants'; +import { personsItem } from '@/storage/items'; +import useHistoryStore from '@store/history'; + import { getPersonPos, setPersonsInStorage } from '../utils'; import { updatePersonCacheAndImageUrls } from '../utils/sync'; import PersonHeader from './PersonHeader'; import PersonVirtualCell from './PersonVirtualCell'; -import { MAX_PANEL_SIZE } from '@/constants'; -import { trpcApi } from '@/apis/trpcApi'; -import { personsItem } from '@/storage/items'; function PersonsPanel() { const startHistoryMonitor = useHistoryStore( diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/routes/index.tsx b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/routes/index.tsx index 94737033a..918fb3466 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/routes/index.tsx +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/routes/index.tsx @@ -1,5 +1,6 @@ import { ROUTES } from '@bypass/shared'; import { Route } from 'wouter'; + import PersonsPanel from '../components/PersonsPanel'; export const PersonsPanelRoute = ( diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/index.ts b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/index.ts index 730c6c87c..ee22ae093 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/index.ts +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/index.ts @@ -1,4 +1,5 @@ import { decodePersons, type IPerson, type IPersons } from '@bypass/shared'; + import { personsItem, hasPendingPersonsItem } from '@/storage/items'; export const setPersonsInStorage = async (persons: IPersons) => { diff --git a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/sync.ts b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/sync.ts index 1be8af843..d7bc1b4fc 100644 --- a/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/sync.ts +++ b/apps/extension/src/entrypoints/popup/panels/PersonsPanel/utils/sync.ts @@ -6,8 +6,7 @@ import { type IPerson, type PersonImageUrls, } from '@bypass/shared'; -import { SIGN_IN_TOTAL_STEPS } from '../../HomePopup/constants/progress'; -import { getAllDecodedPersons } from '.'; + import { trpcApi } from '@/apis/trpcApi'; import { personsItem, @@ -16,6 +15,9 @@ import { } from '@/storage/items'; import useProgressStore from '@/store/progress'; +import { getAllDecodedPersons } from '.'; +import { SIGN_IN_TOTAL_STEPS } from '../../HomePopup/constants/progress'; + export const syncPersonsToStorage = async () => { const persons = await trpcApi.firebaseData.personsGet.query(); await personsItem.setValue(persons); diff --git a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/RedirectionRule.tsx b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/RedirectionRule.tsx index 40d192804..459766f1a 100644 --- a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/RedirectionRule.tsx +++ b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/RedirectionRule.tsx @@ -9,8 +9,6 @@ import { TooltipContent, TooltipTrigger, } from '@bypass/ui'; -import useHistoryStore from '@store/history'; -import { useEffect, useState } from 'react'; import { CalendarCheckOut02Icon, Delete02Icon, @@ -20,7 +18,11 @@ import { LinkSquare02Icon, } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; +import { useEffect, useState } from 'react'; + import { getlastVisitedText } from '@popup/utils/lastVisited'; +import useHistoryStore from '@store/history'; + import { DEFAULT_RULE_ALIAS } from '../constants'; import { ReorderButton } from './ReorderButton'; diff --git a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/ShortcutsPanel.tsx b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/ShortcutsPanel.tsx index f3f80403a..ebfd9b0ce 100644 --- a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/ShortcutsPanel.tsx +++ b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/components/ShortcutsPanel.tsx @@ -4,13 +4,15 @@ import { Link01Icon, Download03Icon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; import { useEffect, useState } from 'react'; import { toast } from 'sonner'; + +import { trpcApi } from '@/apis/trpcApi'; +import { MAX_PANEL_SIZE } from '@/constants'; +import { redirectionsItem } from '@/storage/items'; import { syncRedirectionsToStorage } from '@background/redirections'; + import { DEFAULT_RULE_ALIAS } from '../constants'; import { getValidRules, isMatchingRule } from '../utils'; import RedirectionRule from './RedirectionRule'; -import { MAX_PANEL_SIZE } from '@/constants'; -import { trpcApi } from '@/apis/trpcApi'; -import { redirectionsItem } from '@/storage/items'; function ShortcutsPanel() { const [redirections, setRedirections] = useState([]); diff --git a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/routes/index.tsx b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/routes/index.tsx index efb68f62f..8b9b62168 100644 --- a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/routes/index.tsx +++ b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/routes/index.tsx @@ -1,5 +1,6 @@ import { ROUTES } from '@bypass/shared'; import { Route } from 'wouter'; + import ShortcutsPanel from '../components/ShortcutsPanel'; export const ShortcutsPanelRoute = ( diff --git a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/utils/index.ts b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/utils/index.ts index 2be15567a..0f1a28e71 100644 --- a/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/utils/index.ts +++ b/apps/extension/src/entrypoints/popup/panels/ShortcutsPanel/utils/index.ts @@ -1,4 +1,5 @@ import { type IRedirection } from '@bypass/shared'; + import { DEFAULT_RULE_ALIAS } from '../constants'; export const getValidRules = (obj: IRedirection) => diff --git a/apps/extension/src/entrypoints/popup/provider/DynamicProvider.tsx b/apps/extension/src/entrypoints/popup/provider/DynamicProvider.tsx index f75fa40cc..7d29f2c4c 100644 --- a/apps/extension/src/entrypoints/popup/provider/DynamicProvider.tsx +++ b/apps/extension/src/entrypoints/popup/provider/DynamicProvider.tsx @@ -1,6 +1,7 @@ import { DynamicContext } from '@bypass/shared'; import { type PropsWithChildren, useMemo } from 'react'; import { useLocation, useSearch } from 'wouter'; + import { getFromChromeStorage, setToChromeStorage } from './utils'; function DynamicProvider({ children }: PropsWithChildren) { diff --git a/apps/extension/src/entrypoints/popup/utils/lastVisited.ts b/apps/extension/src/entrypoints/popup/utils/lastVisited.ts index 6f1ff2259..9ebf4f92c 100644 --- a/apps/extension/src/entrypoints/popup/utils/lastVisited.ts +++ b/apps/extension/src/entrypoints/popup/utils/lastVisited.ts @@ -1,4 +1,5 @@ import { sha256Hash } from '@bypass/shared'; + import { lastVisitedItem } from '@/storage/items'; export const getlastVisitedText = async (url: string) => { diff --git a/apps/extension/src/storage/items.ts b/apps/extension/src/storage/items.ts index e2500000f..07595f64b 100644 --- a/apps/extension/src/storage/items.ts +++ b/apps/extension/src/storage/items.ts @@ -1,4 +1,3 @@ -import { storage } from 'wxt/utils/storage'; import type { IBookmarksObj, IPersons, @@ -7,8 +6,10 @@ import type { IRedirections, IWebsites, } from '@bypass/shared'; -import type { IMappedRedirections } from '@/entrypoints/background/interfaces/redirections'; +import { storage } from 'wxt/utils/storage'; + import { EExtensionState } from '@/constants'; +import type { IMappedRedirections } from '@/entrypoints/background/interfaces/redirections'; export const bookmarksItem = storage.defineItem( 'local:bookmarks', diff --git a/apps/extension/src/store/firebase/api.ts b/apps/extension/src/store/firebase/api.ts index 23952299d..4cd698cb5 100644 --- a/apps/extension/src/store/firebase/api.ts +++ b/apps/extension/src/store/firebase/api.ts @@ -1,13 +1,15 @@ import { getFirebasePublicConfig } from '@bypass/configs/firebase.config'; import wretch from 'wretch'; import QueryStringAddon from 'wretch/addons/queryString'; -import { getExpiresAtMs } from './utils'; + import { env } from '@/constants/env'; import { type IAuthResponse, type IRefreshTokenResponse, } from '@/interfaces/firebase'; +import { getExpiresAtMs } from './utils'; + const firebaseConfig = getFirebasePublicConfig(import.meta.env.PROD); const identityApi = wretch('https://identitytoolkit.googleapis.com/v1') diff --git a/apps/extension/src/store/firebase/useFirebaseStore.ts b/apps/extension/src/store/firebase/useFirebaseStore.ts index 251d3a086..a58069496 100644 --- a/apps/extension/src/store/firebase/useFirebaseStore.ts +++ b/apps/extension/src/store/firebase/useFirebaseStore.ts @@ -1,5 +1,6 @@ import { create } from 'zustand'; import { persist } from 'zustand/middleware'; + import { TEST_AUTH_DATA_KEY } from '@/constants'; import { type IAuthResponse } from '@/interfaces/firebase'; import { refreshIdToken, signInWithCredential } from '@/store/firebase/api'; diff --git a/apps/extension/tests/auth.setup.ts b/apps/extension/tests/auth.setup.ts index b347c408c..9f7c178aa 100644 --- a/apps/extension/tests/auth.setup.ts +++ b/apps/extension/tests/auth.setup.ts @@ -1,9 +1,14 @@ import fs from 'node:fs'; import process from 'node:process'; -import { chromium, expect, test as setup } from '@playwright/test'; + import { TEST_TIMEOUTS } from '@bypass/shared/tests'; +import { chromium, expect, test as setup } from '@playwright/test'; import wretch from 'wretch'; import QueryStringAddon from 'wretch/addons/queryString'; + +import type { IAuthResponse } from '@/interfaces/firebase'; +import { getExpiresAtMs } from '@/store/firebase/utils'; + import { getFirebasePublicConfig } from '../../../packages/configs/firebase.config'; import { TEST_AUTH_DATA_KEY } from '../src/constants'; import { @@ -12,8 +17,6 @@ import { EXTENSION_STORAGE_PATH, } from './auth-constants'; import { getExtensionPath } from './utils/extension-path'; -import type { IAuthResponse } from '@/interfaces/firebase'; -import { getExpiresAtMs } from '@/store/firebase/utils'; const isCI = Boolean(process.env.PLAYWRIGHT_TEST_BASE_URL); const firebaseConfig = getFirebasePublicConfig(isCI); diff --git a/apps/extension/tests/fixtures/auth-fixture.ts b/apps/extension/tests/fixtures/auth-fixture.ts index f0294516f..9e94e56e2 100644 --- a/apps/extension/tests/fixtures/auth-fixture.ts +++ b/apps/extension/tests/fixtures/auth-fixture.ts @@ -1,5 +1,5 @@ -import { test as base } from './extension-fixture'; import { loadCachedStorageData } from './base-fixture'; +import { test as base } from './extension-fixture'; export const test = base.extend<{ login: void; diff --git a/apps/extension/tests/fixtures/background-fixture.ts b/apps/extension/tests/fixtures/background-fixture.ts index 40df915af..d6bf5b082 100644 --- a/apps/extension/tests/fixtures/background-fixture.ts +++ b/apps/extension/tests/fixtures/background-fixture.ts @@ -1,6 +1,8 @@ import fs from 'node:fs/promises'; import os from 'node:os'; import path from 'node:path'; + +import { TEST_TIMEOUTS } from '@bypass/shared/tests'; import { chromium, type BrowserContext, @@ -8,14 +10,15 @@ import { test as base, type Worker, } from '@playwright/test'; -import { TEST_TIMEOUTS } from '@bypass/shared/tests'; + +import { EExtensionState } from '@/constants'; + import { getExtensionPath } from '../utils/extension-path'; import { createSharedBackgroundSW, createSharedContext, getExtensionId, } from './base-fixture'; -import { EExtensionState } from '@/constants'; interface BaseBackgroundEnv { extensionId: string; diff --git a/apps/extension/tests/fixtures/base-fixture.ts b/apps/extension/tests/fixtures/base-fixture.ts index 5605c39af..32171c5a0 100644 --- a/apps/extension/tests/fixtures/base-fixture.ts +++ b/apps/extension/tests/fixtures/base-fixture.ts @@ -1,13 +1,15 @@ import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; + +import { TEST_TIMEOUTS } from '@bypass/shared/tests'; import { type BrowserContext, type Page, type Worker, chromium, } from '@playwright/test'; -import { TEST_TIMEOUTS } from '@bypass/shared/tests'; + import { CHROME_PROFILE_DIR, EXTENSION_STORAGE_PATH } from '../auth-constants'; import { getExtensionPath } from '../utils/extension-path'; diff --git a/apps/extension/tests/fixtures/bookmark-fixture.ts b/apps/extension/tests/fixtures/bookmark-fixture.ts index 9be423954..0d306265e 100644 --- a/apps/extension/tests/fixtures/bookmark-fixture.ts +++ b/apps/extension/tests/fixtures/bookmark-fixture.ts @@ -4,6 +4,7 @@ import { type Worker, test as base, } from '@playwright/test'; + import { createSharedBackgroundSW, createSharedContext, diff --git a/apps/extension/tests/fixtures/extension-fixture.ts b/apps/extension/tests/fixtures/extension-fixture.ts index 78143ec59..8e2aba1ff 100644 --- a/apps/extension/tests/fixtures/extension-fixture.ts +++ b/apps/extension/tests/fixtures/extension-fixture.ts @@ -1,12 +1,14 @@ import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; + import { type Worker, test as base, chromium, type BrowserContext, } from '@playwright/test'; + import { getExtensionPath } from '../utils/extension-path'; export const test = base.extend<{ diff --git a/apps/extension/tests/fixtures/home-popup-fixture.ts b/apps/extension/tests/fixtures/home-popup-fixture.ts index 6f852958d..2a50d9033 100644 --- a/apps/extension/tests/fixtures/home-popup-fixture.ts +++ b/apps/extension/tests/fixtures/home-popup-fixture.ts @@ -4,6 +4,7 @@ import { type Worker, test as base, } from '@playwright/test'; + import { getExtensionPath } from '../utils/extension-path'; import { createSharedBackgroundSW, diff --git a/apps/extension/tests/fixtures/persons-fixture.ts b/apps/extension/tests/fixtures/persons-fixture.ts index 83b09d3e0..42ecd92a6 100644 --- a/apps/extension/tests/fixtures/persons-fixture.ts +++ b/apps/extension/tests/fixtures/persons-fixture.ts @@ -4,6 +4,7 @@ import { type Worker, test as base, } from '@playwright/test'; + import { createSharedBackgroundSW, createSharedContext, diff --git a/apps/extension/tests/fixtures/shortcuts-fixture.ts b/apps/extension/tests/fixtures/shortcuts-fixture.ts index 18f42bf5f..8e270f711 100644 --- a/apps/extension/tests/fixtures/shortcuts-fixture.ts +++ b/apps/extension/tests/fixtures/shortcuts-fixture.ts @@ -4,6 +4,7 @@ import { type Worker, test as base, } from '@playwright/test'; + import { createSharedBackgroundSW, createSharedContext, diff --git a/apps/extension/tests/global-teardown.ts b/apps/extension/tests/global-teardown.ts index 727b7b3d9..d24bc35c2 100644 --- a/apps/extension/tests/global-teardown.ts +++ b/apps/extension/tests/global-teardown.ts @@ -1,5 +1,7 @@ import fs from 'node:fs'; + import { test as teardown } from '@playwright/test'; + import { AUTH_CACHE_DIR } from './auth-constants'; teardown('clean up cache directory', async () => { diff --git a/apps/extension/tests/specs/background-lifecycle.spec.ts b/apps/extension/tests/specs/background-lifecycle.spec.ts index 6da6613b2..aa7de50da 100644 --- a/apps/extension/tests/specs/background-lifecycle.spec.ts +++ b/apps/extension/tests/specs/background-lifecycle.spec.ts @@ -1,6 +1,7 @@ -import { test, expect } from '../fixtures/background-fixture'; import { EExtensionState } from '@/constants'; +import { test, expect } from '../fixtures/background-fixture'; + test.describe('Background Service Worker Lifecycle', () => { test('onInstalled writes extState=active on first install', async ({ isolatedBackground, diff --git a/apps/extension/tests/specs/background-navigation.spec.ts b/apps/extension/tests/specs/background-navigation.spec.ts index c9ff265c1..2c0669619 100644 --- a/apps/extension/tests/specs/background-navigation.spec.ts +++ b/apps/extension/tests/specs/background-navigation.spec.ts @@ -1,5 +1,6 @@ import { TEST_SHORTCUTS } from '@bypass/shared/tests'; import type { Page } from '@playwright/test'; + import { test, expect } from '../fixtures/background-fixture'; const allInputsAutocompleteOff = async (page: Page) => { diff --git a/apps/extension/tests/specs/bookmarks.spec.ts b/apps/extension/tests/specs/bookmarks.spec.ts index eef982cad..fdd584d61 100644 --- a/apps/extension/tests/specs/bookmarks.spec.ts +++ b/apps/extension/tests/specs/bookmarks.spec.ts @@ -6,6 +6,7 @@ import { fillSearchInput, openNewPageFromAction, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/bookmark-fixture'; import { BookmarksPanel } from '../utils/bookmarks-panel'; import { PersonsPanel } from '../utils/persons-panel'; diff --git a/apps/extension/tests/specs/persons.spec.ts b/apps/extension/tests/specs/persons.spec.ts index 74393c7cf..4942e806c 100644 --- a/apps/extension/tests/specs/persons.spec.ts +++ b/apps/extension/tests/specs/persons.spec.ts @@ -5,6 +5,7 @@ import { closeDialog, fillSearchInput, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/persons-fixture'; import { PersonsPanel } from '../utils/persons-panel'; diff --git a/apps/extension/tests/specs/shortcuts.spec.ts b/apps/extension/tests/specs/shortcuts.spec.ts index 259705bb9..350d5368a 100644 --- a/apps/extension/tests/specs/shortcuts.spec.ts +++ b/apps/extension/tests/specs/shortcuts.spec.ts @@ -4,6 +4,7 @@ import { fillSearchInput, openNewPageFromAction, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/shortcuts-fixture'; import { ShortcutsPanel } from '../utils/shortcuts-panel'; diff --git a/apps/extension/tests/specs/toggle-history.spec.ts b/apps/extension/tests/specs/toggle-history.spec.ts index 85a361968..fce1d8b5b 100644 --- a/apps/extension/tests/specs/toggle-history.spec.ts +++ b/apps/extension/tests/specs/toggle-history.spec.ts @@ -3,10 +3,11 @@ import { TEST_BOOKMARKS, openNewPageFromAction, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/home-popup-fixture'; import { BookmarksPanel } from '../utils/bookmarks-panel'; -import { PopupHomePanel } from '../utils/home-panel'; import { getHistoryItems } from '../utils/history-utils'; +import { PopupHomePanel } from '../utils/home-panel'; /** * ToggleHistory E2E Tests diff --git a/apps/extension/tests/utils/bookmarks-panel.ts b/apps/extension/tests/utils/bookmarks-panel.ts index 2c271b25a..df9b55431 100644 --- a/apps/extension/tests/utils/bookmarks-panel.ts +++ b/apps/extension/tests/utils/bookmarks-panel.ts @@ -1,4 +1,5 @@ import { expect, type Page } from '@playwright/test'; + import { clickDropdownPersonAndGetName, clickContextMenuItem as clickContextMenuItemUtil, diff --git a/apps/extension/tests/utils/home-panel.ts b/apps/extension/tests/utils/home-panel.ts index faee798cc..c0fe4218d 100644 --- a/apps/extension/tests/utils/home-panel.ts +++ b/apps/extension/tests/utils/home-panel.ts @@ -1,4 +1,5 @@ import { expect, type Page } from '@playwright/test'; + import { getStorageItem } from './test-utils'; export class PopupHomePanel { diff --git a/apps/extension/tests/utils/persons-panel.ts b/apps/extension/tests/utils/persons-panel.ts index c60645144..51940656b 100644 --- a/apps/extension/tests/utils/persons-panel.ts +++ b/apps/extension/tests/utils/persons-panel.ts @@ -1,4 +1,5 @@ import { expect, type Page } from '@playwright/test'; + import { clickDialogButton, clickContextMenuItem, diff --git a/apps/extension/tests/utils/test-utils.ts b/apps/extension/tests/utils/test-utils.ts index 2fc138d97..085d010cf 100644 --- a/apps/extension/tests/utils/test-utils.ts +++ b/apps/extension/tests/utils/test-utils.ts @@ -1,8 +1,8 @@ -import { expect, type Page } from '@playwright/test'; import { fillSearchInput as fillSearchInputShared, parseBadgeCount, } from '@bypass/shared/tests'; +import { expect, type Page } from '@playwright/test'; // Re-export shared utilities for convenience diff --git a/apps/extension/wxt.config.ts b/apps/extension/wxt.config.ts index 5415be129..fb688e976 100644 --- a/apps/extension/wxt.config.ts +++ b/apps/extension/wxt.config.ts @@ -1,9 +1,11 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; + import babel from '@rolldown/plugin-babel'; -import react, { reactCompilerPreset } from '@vitejs/plugin-react'; import tailwindcss from '@tailwindcss/vite'; +import react, { reactCompilerPreset } from '@vitejs/plugin-react'; import { defineConfig } from 'wxt'; + import { devManifest, prodOAuth2 } from './src/constants/manifest'; const envDir = path.resolve( diff --git a/apps/web/next.config.ts b/apps/web/next.config.ts index 70df31445..7d8555315 100644 --- a/apps/web/next.config.ts +++ b/apps/web/next.config.ts @@ -1,5 +1,6 @@ import path from 'node:path'; import { fileURLToPath } from 'node:url'; + import { type NextConfig } from 'next'; if (!process.env.VERCEL) { diff --git a/apps/web/src/app/api/storage-cleanup/route.ts b/apps/web/src/app/api/storage-cleanup/route.ts index 4ba510f47..9395b62dd 100644 --- a/apps/web/src/app/api/storage-cleanup/route.ts +++ b/apps/web/src/app/api/storage-cleanup/route.ts @@ -1,8 +1,9 @@ -import { verifyInternalToken } from '@app/helpers/verifyInternalToken'; import { cleanupStorage } from '@bypass/trpc'; -import { serverEnv } from '@app/constants/env/server'; import { type NextRequest, NextResponse } from 'next/server'; +import { serverEnv } from '@app/constants/env/server'; +import { verifyInternalToken } from '@app/helpers/verifyInternalToken'; + export async function POST(req: NextRequest) { verifyInternalToken(req); diff --git a/apps/web/src/app/api/upload-file/route.ts b/apps/web/src/app/api/upload-file/route.ts index 4b3343242..748fdd3e7 100644 --- a/apps/web/src/app/api/upload-file/route.ts +++ b/apps/web/src/app/api/upload-file/route.ts @@ -1,6 +1,8 @@ -import { authorizeUser } from '@app/helpers/authorizeUser'; import { uploadImageToFirebase } from '@bypass/trpc/appRouter'; import { type NextRequest, NextResponse } from 'next/server'; + +import { authorizeUser } from '@app/helpers/authorizeUser'; + import { validateAndProccessFile } from './utils'; export async function POST(request: NextRequest) { diff --git a/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx b/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx index 33d24b6c1..e6b15f7a4 100644 --- a/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx +++ b/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx @@ -1,4 +1,3 @@ -import { openNewTab } from '@app/utils'; import { Bookmark, type ContextBookmarks, @@ -9,6 +8,8 @@ import { } from '@bypass/shared'; import { memo } from 'react'; +import { openNewTab } from '@app/utils'; + interface Props { index: number; folders: IBookmarksObj['folders']; diff --git a/apps/web/src/app/bookmark-panel/hooks/usePreloadBookmarks.ts b/apps/web/src/app/bookmark-panel/hooks/usePreloadBookmarks.ts index 624db72d9..c85d84e5c 100644 --- a/apps/web/src/app/bookmark-panel/hooks/usePreloadBookmarks.ts +++ b/apps/web/src/app/bookmark-panel/hooks/usePreloadBookmarks.ts @@ -1,11 +1,3 @@ -import { useUser } from '@app/provider/AuthProvider'; -import { api } from '@app/utils/api'; -import { - getFromLocalStorage, - isExistsInLocalStorage, - removeFromLocalStorage, - setToLocalStorage, -} from '@app/utils/storage'; import { ECacheBucketKeys, addAllToCache, @@ -18,6 +10,15 @@ import { } from '@bypass/shared'; import { useCallback, useState } from 'react'; +import { useUser } from '@app/provider/AuthProvider'; +import { api } from '@app/utils/api'; +import { + getFromLocalStorage, + isExistsInLocalStorage, + removeFromLocalStorage, + setToLocalStorage, +} from '@app/utils/storage'; + const syncBookmarksToStorage = async () => { if (isExistsInLocalStorage(STORAGE_KEYS.bookmarks)) { return; diff --git a/apps/web/src/app/bookmark-panel/page.tsx b/apps/web/src/app/bookmark-panel/page.tsx index dd342af3a..bf5ce6443 100644 --- a/apps/web/src/app/bookmark-panel/page.tsx +++ b/apps/web/src/app/bookmark-panel/page.tsx @@ -1,6 +1,5 @@ 'use client'; -import { getFromLocalStorage, setToLocalStorage } from '@app/utils/storage'; import { BOOKMARK_ROW_HEIGHT, bookmarksMapper, @@ -17,6 +16,9 @@ import { ScrollArea } from '@bypass/ui'; import { useVirtualizer } from '@tanstack/react-virtual'; import { useSearchParams } from 'next/navigation'; import { useCallback, useEffect, useRef, useState } from 'react'; + +import { getFromLocalStorage, setToLocalStorage } from '@app/utils/storage'; + import VirtualRow from './components/VirtualRow'; export default function BookmarksPage() { diff --git a/apps/web/src/app/components/AppHeader.tsx b/apps/web/src/app/components/AppHeader.tsx index 53059cd79..be67d4780 100644 --- a/apps/web/src/app/components/AppHeader.tsx +++ b/apps/web/src/app/components/AppHeader.tsx @@ -1,12 +1,13 @@ 'use client'; -import { ROUTES } from '@app/constants/routes'; import { GithubIcon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; import Image from 'next/image'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; +import { ROUTES } from '@app/constants/routes'; + function AppHeader() { const router = useRouter(); const [clickCount, setClickCount] = useState(0); diff --git a/apps/web/src/app/components/SalientFeatures.tsx b/apps/web/src/app/components/SalientFeatures.tsx index 733b3cd31..d4383168c 100644 --- a/apps/web/src/app/components/SalientFeatures.tsx +++ b/apps/web/src/app/components/SalientFeatures.tsx @@ -1,6 +1,7 @@ -import { firstColumn, secondColumn } from '@app/constants/features'; import { HugeiconsIcon } from '@hugeicons/react'; +import { firstColumn, secondColumn } from '@app/constants/features'; + const allFeatures = [...firstColumn, ...secondColumn]; function SalientFeatures() { diff --git a/apps/web/src/app/constants/features.ts b/apps/web/src/app/constants/features.ts index dcb32f3fe..9b536240d 100644 --- a/apps/web/src/app/constants/features.ts +++ b/apps/web/src/app/constants/features.ts @@ -6,6 +6,7 @@ import { Shield01Icon, Touch01Icon, } from '@hugeicons/core-free-icons'; + import type Feature from '../components/types/feature'; export const firstColumn: Feature[] = [ diff --git a/apps/web/src/app/helpers/firebase/auth.ts b/apps/web/src/app/helpers/firebase/auth.ts index 178610b5d..fd62449c8 100644 --- a/apps/web/src/app/helpers/firebase/auth.ts +++ b/apps/web/src/app/helpers/firebase/auth.ts @@ -7,6 +7,7 @@ import { signOut, type User, } from 'firebase/auth'; + import firebaseApp from '.'; const auth = getAuth(firebaseApp); diff --git a/apps/web/src/app/helpers/verifyInternalToken.ts b/apps/web/src/app/helpers/verifyInternalToken.ts index 330b0c365..96055c551 100644 --- a/apps/web/src/app/helpers/verifyInternalToken.ts +++ b/apps/web/src/app/helpers/verifyInternalToken.ts @@ -1,6 +1,7 @@ -import { serverEnv } from '@app/constants/env/server'; import { type NextRequest } from 'next/server'; +import { serverEnv } from '@app/constants/env/server'; + export const verifyInternalToken = (req: NextRequest) => { const bearerToken = req.headers.get('Authorization'); const internalToken = bearerToken?.split('Bearer ')?.[1]; diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index d3e1570d0..13fbfe4cd 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -1,10 +1,11 @@ +import clsx from 'clsx'; import dayjs from 'dayjs'; import timezone from 'dayjs/plugin/timezone'; import utc from 'dayjs/plugin/utc'; -import { type ReactNode } from 'react'; import { type Metadata, type Viewport } from 'next'; import { Manrope } from 'next/font/google'; -import clsx from 'clsx'; +import { type ReactNode } from 'react'; + import './layout.css'; import AppProviders from './provider/AppProviders'; diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index 699e26174..0fc00ed89 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,9 +1,10 @@ import { type Metadata } from 'next'; -import { clientEnv } from './constants/env/client'; + import AppHeader from './components/AppHeader'; import Footer from './components/Footer'; import PageHeader from './components/PageHeader'; import SalientFeatures from './components/SalientFeatures'; +import { clientEnv } from './constants/env/client'; import { fetchExtensionData } from './page.utils'; const title = 'Bypass Links'; diff --git a/apps/web/src/app/persons-panel/hooks/usePreloadPerson.ts b/apps/web/src/app/persons-panel/hooks/usePreloadPerson.ts index 83b7e039d..21ea60bda 100644 --- a/apps/web/src/app/persons-panel/hooks/usePreloadPerson.ts +++ b/apps/web/src/app/persons-panel/hooks/usePreloadPerson.ts @@ -1,10 +1,3 @@ -import { useUser } from '@app/provider/AuthProvider'; -import { api } from '@app/utils/api'; -import { - isExistsInLocalStorage, - removeFromLocalStorage, - setToLocalStorage, -} from '@app/utils/storage'; import { ECacheBucketKeys, addAllToCache, @@ -17,6 +10,14 @@ import { } from '@bypass/shared'; import { useCallback, useState } from 'react'; +import { useUser } from '@app/provider/AuthProvider'; +import { api } from '@app/utils/api'; +import { + isExistsInLocalStorage, + removeFromLocalStorage, + setToLocalStorage, +} from '@app/utils/storage'; + const cachePersonImages = async (personImageUrls: PersonImageUrls) => { if (!personImageUrls) { console.log('Unable to cache person images since no person urls'); diff --git a/apps/web/src/app/persons-panel/page.tsx b/apps/web/src/app/persons-panel/page.tsx index 64fd284a5..e01b65e2f 100644 --- a/apps/web/src/app/persons-panel/page.tsx +++ b/apps/web/src/app/persons-panel/page.tsx @@ -1,7 +1,5 @@ 'use client'; -import { openNewTab } from '@app/utils'; -import { getFromLocalStorage } from '@app/utils/storage'; import { getDecryptedPerson, getFilteredPersons, @@ -17,6 +15,10 @@ import { } from '@bypass/shared'; import { Switch } from '@bypass/ui'; import { useEffect, useState } from 'react'; + +import { openNewTab } from '@app/utils'; +import { getFromLocalStorage } from '@app/utils/storage'; + import PersonVirtualCell from './components/PersonVirtualCell'; const onLinkOpen = (url: string) => { diff --git a/apps/web/src/app/provider/AppProviders.tsx b/apps/web/src/app/provider/AppProviders.tsx index 36ac3b8a4..a1a6dd5b3 100644 --- a/apps/web/src/app/provider/AppProviders.tsx +++ b/apps/web/src/app/provider/AppProviders.tsx @@ -2,8 +2,9 @@ import { TooltipProvider } from '@bypass/ui'; import { Analytics } from '@vercel/analytics/react'; -import { StrictMode, Suspense } from 'react'; import { SpeedInsights } from '@vercel/speed-insights/next'; +import { StrictMode, Suspense } from 'react'; + import { AuthProvider } from './AuthProvider'; import DynamicProvider from './DynamicProvider'; diff --git a/apps/web/src/app/provider/AuthProvider.tsx b/apps/web/src/app/provider/AuthProvider.tsx index 4d89e0dbe..77f6dff68 100644 --- a/apps/web/src/app/provider/AuthProvider.tsx +++ b/apps/web/src/app/provider/AuthProvider.tsx @@ -8,6 +8,7 @@ import { useMemo, useState, } from 'react'; + import { ROUTES } from '../constants/routes'; import { onAuthStateChange } from '../helpers/firebase/auth'; diff --git a/apps/web/src/app/provider/DynamicProvider.tsx b/apps/web/src/app/provider/DynamicProvider.tsx index c0c969d3d..8637a4449 100644 --- a/apps/web/src/app/provider/DynamicProvider.tsx +++ b/apps/web/src/app/provider/DynamicProvider.tsx @@ -1,6 +1,7 @@ import { DynamicContext } from '@bypass/shared'; import { useRouter, useSearchParams } from 'next/navigation'; import { type PropsWithChildren, useMemo } from 'react'; + import { getFromLocalStorage, setToLocalStorage } from '../utils/storage'; function DynamicProvider({ children }: PropsWithChildren) { diff --git a/apps/web/src/app/utils/api.ts b/apps/web/src/app/utils/api.ts index 0b4b56c10..5be07fc9d 100644 --- a/apps/web/src/app/utils/api.ts +++ b/apps/web/src/app/utils/api.ts @@ -1,7 +1,8 @@ -import { getAuthIdToken } from '@app/helpers/firebase/auth'; import { type AppRouter } from '@bypass/trpc'; import { createTRPCClient, httpBatchLink, loggerLink } from '@trpc/client'; +import { getAuthIdToken } from '@app/helpers/firebase/auth'; + const getBaseUrl = () => { if (typeof window !== 'undefined') { return ''; diff --git a/apps/web/src/app/web-ext/page.tsx b/apps/web/src/app/web-ext/page.tsx index 4dd5d2401..0154c6a4a 100644 --- a/apps/web/src/app/web-ext/page.tsx +++ b/apps/web/src/app/web-ext/page.tsx @@ -1,14 +1,7 @@ 'use client'; -import { - googleSignIn, - googleSignOut, - emailAndPasswordSignIn, -} from '@app/helpers/firebase/auth'; -import { useUser } from '@app/provider/AuthProvider'; import { Header, ROUTES } from '@bypass/shared'; import { Button, Spinner } from '@bypass/ui'; -import { TEST_CREDENTIALS_KEY } from '@app/constants'; import { Bookmark01Icon, Login02Icon, @@ -18,6 +11,15 @@ import { import { HugeiconsIcon } from '@hugeicons/react'; import { useRouter } from 'next/navigation'; import { useEffect, useState } from 'react'; + +import { TEST_CREDENTIALS_KEY } from '@app/constants'; +import { + googleSignIn, + googleSignOut, + emailAndPasswordSignIn, +} from '@app/helpers/firebase/auth'; +import { useUser } from '@app/provider/AuthProvider'; + import useWebPreload from './hooks/useWebPreload'; export default function Web() { diff --git a/apps/web/tests/auth.setup.ts b/apps/web/tests/auth.setup.ts index c942924c8..2467f11a7 100644 --- a/apps/web/tests/auth.setup.ts +++ b/apps/web/tests/auth.setup.ts @@ -1,8 +1,10 @@ import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; -import { chromium, expect, test as setup } from '@playwright/test'; + import { TEST_TIMEOUTS } from '@bypass/shared/tests'; +import { chromium, expect, test as setup } from '@playwright/test'; + import { TEST_CREDENTIALS_KEY } from '../src/app/constants'; import { AUTH_CACHE_DIR, WEB_STORAGE_PATH } from './auth-constants'; diff --git a/apps/web/tests/fixtures/auth-fixture.ts b/apps/web/tests/fixtures/auth-fixture.ts index e72f02f2b..f25646d0e 100644 --- a/apps/web/tests/fixtures/auth-fixture.ts +++ b/apps/web/tests/fixtures/auth-fixture.ts @@ -1,4 +1,5 @@ import { test as base, type BrowserContext, type Page } from '@playwright/test'; + import { createSharedContext } from './base-fixture'; export const test = base.extend< diff --git a/apps/web/tests/fixtures/base-fixture.ts b/apps/web/tests/fixtures/base-fixture.ts index 11dfe31f6..4552a7878 100644 --- a/apps/web/tests/fixtures/base-fixture.ts +++ b/apps/web/tests/fixtures/base-fixture.ts @@ -1,6 +1,8 @@ import fs from 'node:fs'; import path from 'node:path'; + import { chromium, type BrowserContext, type Cookie } from '@playwright/test'; + import { AUTH_CACHE_DIR, WEB_STORAGE_PATH } from '../auth-constants'; interface CachedStorageData { diff --git a/apps/web/tests/global-teardown.ts b/apps/web/tests/global-teardown.ts index 727b7b3d9..d24bc35c2 100644 --- a/apps/web/tests/global-teardown.ts +++ b/apps/web/tests/global-teardown.ts @@ -1,5 +1,7 @@ import fs from 'node:fs'; + import { test as teardown } from '@playwright/test'; + import { AUTH_CACHE_DIR } from './auth-constants'; teardown('clean up cache directory', async () => { diff --git a/apps/web/tests/page-object-models/bookmarks-panel.ts b/apps/web/tests/page-object-models/bookmarks-panel.ts index 495206161..eaaac3c0b 100644 --- a/apps/web/tests/page-object-models/bookmarks-panel.ts +++ b/apps/web/tests/page-object-models/bookmarks-panel.ts @@ -1,8 +1,8 @@ -import { expect, type Page, type Locator } from '@playwright/test'; import { clickDropdownPersonAndGetName, getNumericBadgeValue, } from '@bypass/shared/tests'; +import { expect, type Page, type Locator } from '@playwright/test'; export class BookmarksPanel { constructor(readonly page: Page) {} diff --git a/apps/web/tests/page-object-models/persons-panel.ts b/apps/web/tests/page-object-models/persons-panel.ts index 7e85f284a..ace8378e2 100644 --- a/apps/web/tests/page-object-models/persons-panel.ts +++ b/apps/web/tests/page-object-models/persons-panel.ts @@ -1,5 +1,5 @@ -import { expect, type Locator, type Page } from '@playwright/test'; import { getNumericBadgeValue, parseBadgeCount } from '@bypass/shared/tests'; +import { expect, type Locator, type Page } from '@playwright/test'; export class PersonsPanel { constructor(readonly page: Page) {} diff --git a/apps/web/tests/specs/bookmarks.spec.ts b/apps/web/tests/specs/bookmarks.spec.ts index 9f2f6638f..b9b549e8b 100644 --- a/apps/web/tests/specs/bookmarks.spec.ts +++ b/apps/web/tests/specs/bookmarks.spec.ts @@ -5,6 +5,7 @@ import { clearSearchInput, openNewPageFromAction, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/auth-fixture'; import { BookmarksPanel } from '../page-object-models/bookmarks-panel'; diff --git a/apps/web/tests/specs/download-page.spec.ts b/apps/web/tests/specs/download-page.spec.ts index 95e665b47..afd8fa7b5 100644 --- a/apps/web/tests/specs/download-page.spec.ts +++ b/apps/web/tests/specs/download-page.spec.ts @@ -1,4 +1,5 @@ import { expect, test } from '@playwright/test'; + import { DownloadPage } from '../page-object-models/download-page'; test.beforeEach(async ({ page }) => { diff --git a/apps/web/tests/specs/persons.spec.ts b/apps/web/tests/specs/persons.spec.ts index 173978624..e1c75336e 100644 --- a/apps/web/tests/specs/persons.spec.ts +++ b/apps/web/tests/specs/persons.spec.ts @@ -3,6 +3,7 @@ import { fillSearchInput, clearSearchInput, } from '@bypass/shared/tests'; + import { test, expect } from '../fixtures/auth-fixture'; import { PersonsPanel } from '../page-object-models/persons-panel'; diff --git a/packages/shared/src/components/Bookmarks/components/Bookmark.tsx b/packages/shared/src/components/Bookmarks/components/Bookmark.tsx index 259c9c19b..f81b2ea65 100644 --- a/packages/shared/src/components/Bookmarks/components/Bookmark.tsx +++ b/packages/shared/src/components/Bookmarks/components/Bookmark.tsx @@ -1,12 +1,13 @@ 'use client'; -import { useCallback, useEffect, useState } from 'react'; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from '@bypass/ui'; +import { useCallback, useEffect, useState } from 'react'; + import usePlatform from '../../../hooks/usePlatform'; import usePerson from '../../Persons/hooks/usePerson'; import { diff --git a/packages/shared/src/components/Bookmarks/components/Favicon.tsx b/packages/shared/src/components/Bookmarks/components/Favicon.tsx index e115fb0f6..e8bfea5c3 100644 --- a/packages/shared/src/components/Bookmarks/components/Favicon.tsx +++ b/packages/shared/src/components/Bookmarks/components/Favicon.tsx @@ -1,9 +1,10 @@ -import { useEffect, useState } from 'react'; -import { HugeiconsIcon } from '@hugeicons/react'; -import { Unlink02Icon } from '@hugeicons/core-free-icons'; import { Avatar, AvatarFallback, AvatarImage } from '@bypass/ui'; -import { getBlobUrlFromCache } from '../../../utils/cache'; +import { Unlink02Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; +import { useEffect, useState } from 'react'; + import { ECacheBucketKeys } from '../../../constants/cache'; +import { getBlobUrlFromCache } from '../../../utils/cache'; interface Props { url: string; diff --git a/packages/shared/src/components/Bookmarks/components/Folder.tsx b/packages/shared/src/components/Bookmarks/components/Folder.tsx index 5ef005ec5..b54fa3167 100644 --- a/packages/shared/src/components/Bookmarks/components/Folder.tsx +++ b/packages/shared/src/components/Bookmarks/components/Folder.tsx @@ -1,9 +1,10 @@ 'use client'; -import { HugeiconsIcon } from '@hugeicons/react'; +import { cn } from '@bypass/ui/lib/utils'; import { Folder01Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { use } from 'react'; -import { cn } from '@bypass/ui/lib/utils'; + import DynamicContext from '../../../provider/DynamicContext'; import { getBookmarksPanelUrl } from '../utils/url'; diff --git a/packages/shared/src/components/Bookmarks/components/PersonAvatars.tsx b/packages/shared/src/components/Bookmarks/components/PersonAvatars.tsx index 183f2364f..4f5bb5b81 100644 --- a/packages/shared/src/components/Bookmarks/components/PersonAvatars.tsx +++ b/packages/shared/src/components/Bookmarks/components/PersonAvatars.tsx @@ -1,6 +1,3 @@ -import { use } from 'react'; -import { HugeiconsIcon } from '@hugeicons/react'; -import { UserWarning03Icon } from '@hugeicons/core-free-icons'; import { Avatar, AvatarGroup, @@ -13,6 +10,10 @@ import { TooltipProvider, TooltipTrigger, } from '@bypass/ui'; +import { UserWarning03Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; +import { use } from 'react'; + import DynamicContext from '../../../provider/DynamicContext'; import { type IPersonWithImage } from '../../Persons/interfaces/persons'; import { getPersonsPanelUrl } from '../../Persons/utils/urls'; diff --git a/packages/shared/src/components/Bookmarks/hooks/useBookmark.ts b/packages/shared/src/components/Bookmarks/hooks/useBookmark.ts index 0a87d5391..5b634bbdb 100644 --- a/packages/shared/src/components/Bookmarks/hooks/useBookmark.ts +++ b/packages/shared/src/components/Bookmarks/hooks/useBookmark.ts @@ -1,7 +1,8 @@ import { useCallback } from 'react'; + import useStorage from '../../../hooks/useStorage'; -import { getDecryptedFolder, getDefaultFolder } from '../utils'; import { ROOT_FOLDER_ID } from '../constants'; +import { getDecryptedFolder, getDefaultFolder } from '../utils'; const useBookmark = () => { const { getBookmarks } = useStorage(); diff --git a/packages/shared/src/components/Bookmarks/interfaces/index.ts b/packages/shared/src/components/Bookmarks/interfaces/index.ts index 6d827231f..fc702fdf6 100644 --- a/packages/shared/src/components/Bookmarks/interfaces/index.ts +++ b/packages/shared/src/components/Bookmarks/interfaces/index.ts @@ -1,4 +1,5 @@ import { type z } from 'zod/mini'; + import { type EncodedBookmarkSchema, type EncodedFolderSchema, diff --git a/packages/shared/src/components/Bookmarks/schema/index.ts b/packages/shared/src/components/Bookmarks/schema/index.ts index 707365668..be5ce97ce 100644 --- a/packages/shared/src/components/Bookmarks/schema/index.ts +++ b/packages/shared/src/components/Bookmarks/schema/index.ts @@ -1,4 +1,5 @@ import { z } from 'zod/mini'; + import { PersonsSchema } from '../../Persons/schema'; export const EncodedBookmarkSchema = z.object({ diff --git a/packages/shared/src/components/Bookmarks/utils/index.ts b/packages/shared/src/components/Bookmarks/utils/index.ts index 86baebe34..3e442c56e 100644 --- a/packages/shared/src/components/Bookmarks/utils/index.ts +++ b/packages/shared/src/components/Bookmarks/utils/index.ts @@ -1,11 +1,11 @@ import { hasText } from '../../../utils/search'; +import { ROOT_FOLDER_ID, ROOT_FOLDER_NAME } from '../constants'; import { type ContextBookmarks, type IEncodedBookmark, type IBookmarksObj, type IEncodedFolder, } from '../interfaces'; -import { ROOT_FOLDER_ID, ROOT_FOLDER_NAME } from '../constants'; export const isFolderEmpty = ( folders: IBookmarksObj['folders'], diff --git a/packages/shared/src/components/Header.tsx b/packages/shared/src/components/Header.tsx index 9a261a65e..08aecef8b 100644 --- a/packages/shared/src/components/Header.tsx +++ b/packages/shared/src/components/Header.tsx @@ -2,6 +2,7 @@ import { Badge, Button } from '@bypass/ui'; import { ArrowLeft01Icon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; import { use } from 'react'; + import { HEADER_HEIGHT } from '../constants'; import DynamicContext from '../provider/DynamicContext'; import Search from './Search'; diff --git a/packages/shared/src/components/Persons/components/BookmarksList.tsx b/packages/shared/src/components/Persons/components/BookmarksList.tsx index 7278d2f26..e12320375 100644 --- a/packages/shared/src/components/Persons/components/BookmarksList.tsx +++ b/packages/shared/src/components/Persons/components/BookmarksList.tsx @@ -11,6 +11,7 @@ import { import { BookEditIcon } from '@hugeicons/core-free-icons'; import { HugeiconsIcon } from '@hugeicons/react'; import { use, useCallback, useEffect, useState } from 'react'; + import DynamicContext from '../../../provider/DynamicContext'; import Bookmark from '../../Bookmarks/components/Bookmark'; import { EBookmarkOperation } from '../../Bookmarks/constants'; diff --git a/packages/shared/src/components/Persons/components/Person.tsx b/packages/shared/src/components/Persons/components/Person.tsx index 9ed815f1d..ab39c76eb 100644 --- a/packages/shared/src/components/Persons/components/Person.tsx +++ b/packages/shared/src/components/Persons/components/Person.tsx @@ -1,5 +1,6 @@ import { Avatar, AvatarImage, Button } from '@bypass/ui'; import { use, useEffect, useState } from 'react'; + import DynamicContext from '../../../provider/DynamicContext'; import usePerson from '../hooks/usePerson'; import { type IPerson } from '../interfaces/persons'; diff --git a/packages/shared/src/components/Persons/components/Persons.tsx b/packages/shared/src/components/Persons/components/Persons.tsx index e70c02454..8e5a2add5 100644 --- a/packages/shared/src/components/Persons/components/Persons.tsx +++ b/packages/shared/src/components/Persons/components/Persons.tsx @@ -2,6 +2,7 @@ import { ScrollArea } from '@bypass/ui'; import { useElementSize } from '@mantine/hooks'; import { useVirtualizer } from '@tanstack/react-virtual'; import { type ReactNode, use, useCallback, useEffect, useState } from 'react'; + import usePlatform from '../../../hooks/usePlatform'; import DynamicContext from '../../../provider/DynamicContext'; import { deserializeQueryStringToObject } from '../../../utils/url'; diff --git a/packages/shared/src/components/Persons/hooks/usePerson.ts b/packages/shared/src/components/Persons/hooks/usePerson.ts index 802a3efd4..bf991bde0 100644 --- a/packages/shared/src/components/Persons/hooks/usePerson.ts +++ b/packages/shared/src/components/Persons/hooks/usePerson.ts @@ -1,9 +1,10 @@ import { useCallback } from 'react'; + +import { ECacheBucketKeys } from '../../../constants/cache'; import useStorage from '../../../hooks/useStorage'; import { getBlobUrlFromCache } from '../../../utils/cache'; import { type IPerson, type IPersonWithImage } from '../interfaces/persons'; import { decodePersons } from '../utils'; -import { ECacheBucketKeys } from '../../../constants/cache'; const usePerson = () => { const { getBookmarks, getPersons, getPersonImageUrls } = useStorage(); diff --git a/packages/shared/src/components/Persons/interfaces/persons.ts b/packages/shared/src/components/Persons/interfaces/persons.ts index 7c318c59a..bd5fc3cbc 100644 --- a/packages/shared/src/components/Persons/interfaces/persons.ts +++ b/packages/shared/src/components/Persons/interfaces/persons.ts @@ -1,4 +1,5 @@ import { type z } from 'zod/mini'; + import { type PersonSchema, type PersonsSchema } from '../schema'; export type IPerson = z.infer; diff --git a/packages/shared/src/components/Persons/utils/index.ts b/packages/shared/src/components/Persons/utils/index.ts index dafd742f7..f53fcc992 100644 --- a/packages/shared/src/components/Persons/utils/index.ts +++ b/packages/shared/src/components/Persons/utils/index.ts @@ -1,6 +1,6 @@ -import { type IPerson, type IPersons } from '../interfaces/persons'; import { hasText } from '../../../utils/search'; import { type IEncodedBookmark } from '../../Bookmarks/interfaces'; +import { type IPerson, type IPersons } from '../interfaces/persons'; export const getDecryptedPerson = (person: IPerson): IPerson => { return { diff --git a/packages/shared/src/components/Search.tsx b/packages/shared/src/components/Search.tsx index 3d97d4143..6b09f4adb 100644 --- a/packages/shared/src/components/Search.tsx +++ b/packages/shared/src/components/Search.tsx @@ -1,6 +1,6 @@ import { InputGroup, InputGroupAddon, InputGroupInput } from '@bypass/ui'; -import { HugeiconsIcon } from '@hugeicons/react'; import { Search02Icon } from '@hugeicons/core-free-icons'; +import { HugeiconsIcon } from '@hugeicons/react'; import { useDebouncedState, useHotkeys } from '@mantine/hooks'; import { useEffect, useEffectEvent } from 'react'; diff --git a/packages/shared/src/hooks/useStorage.ts b/packages/shared/src/hooks/useStorage.ts index 70881e52d..2319c940c 100644 --- a/packages/shared/src/hooks/useStorage.ts +++ b/packages/shared/src/hooks/useStorage.ts @@ -1,11 +1,12 @@ import { use, useCallback } from 'react'; -import DynamicContext from '../provider/DynamicContext'; + +import { type IBookmarksObj } from '../components/Bookmarks/interfaces'; import { type IPersons, type PersonImageUrls, } from '../components/Persons/interfaces/persons'; import { STORAGE_KEYS } from '../constants/storage'; -import { type IBookmarksObj } from '../components/Bookmarks/interfaces'; +import DynamicContext from '../provider/DynamicContext'; const useStorage = () => { const { storage } = use(DynamicContext); diff --git a/packages/shared/src/interfaces/ILastVisited.ts b/packages/shared/src/interfaces/ILastVisited.ts index af813b431..a97ce7916 100644 --- a/packages/shared/src/interfaces/ILastVisited.ts +++ b/packages/shared/src/interfaces/ILastVisited.ts @@ -1,4 +1,5 @@ import { type z } from 'zod/mini'; + import { type LastVisitedSchema } from '../schema/lastVisitedSchema'; export type ILastVisited = z.infer; diff --git a/packages/shared/src/interfaces/IRedirection.ts b/packages/shared/src/interfaces/IRedirection.ts index 7210f1824..b372b25db 100644 --- a/packages/shared/src/interfaces/IRedirection.ts +++ b/packages/shared/src/interfaces/IRedirection.ts @@ -1,4 +1,5 @@ import { type z } from 'zod/mini'; + import { type RedirectionSchema, type RedirectionsSchema, diff --git a/packages/shared/src/interfaces/IWebsites.ts b/packages/shared/src/interfaces/IWebsites.ts index c1f128c8c..337dd0b92 100644 --- a/packages/shared/src/interfaces/IWebsites.ts +++ b/packages/shared/src/interfaces/IWebsites.ts @@ -1,4 +1,5 @@ import { type z } from 'zod/mini'; + import { type WebsitesSchema } from '../schema/websitesSchema'; export type IWebsites = z.infer; diff --git a/packages/shared/src/provider/DynamicContext.ts b/packages/shared/src/provider/DynamicContext.ts index d2c197de7..5ef7ae0a3 100644 --- a/packages/shared/src/provider/DynamicContext.ts +++ b/packages/shared/src/provider/DynamicContext.ts @@ -1,4 +1,5 @@ import { createContext } from 'react'; + import { asyncNoOp, noOp } from '../utils'; interface IDynamicContext { diff --git a/packages/shared/src/utils/cache.ts b/packages/shared/src/utils/cache.ts index dfc964a1e..71f6c4b92 100644 --- a/packages/shared/src/utils/cache.ts +++ b/packages/shared/src/utils/cache.ts @@ -1,5 +1,6 @@ import pLimit from 'p-limit'; import wretch from 'wretch'; + import { type ECacheBucketKeys } from '../constants/cache'; const limit = pLimit(20); diff --git a/packages/trpc/src/constants/env.ts b/packages/trpc/src/constants/env.ts index e8892a3d9..d775f5b13 100644 --- a/packages/trpc/src/constants/env.ts +++ b/packages/trpc/src/constants/env.ts @@ -1,7 +1,8 @@ -import process from 'node:process'; import fs from 'node:fs'; import path from 'node:path'; +import process from 'node:process'; import { fileURLToPath } from 'node:url'; + import { createEnv } from '@t3-oss/env-core'; import { z } from 'zod/mini'; diff --git a/packages/trpc/src/middlewares/verifyAuthentication.ts b/packages/trpc/src/middlewares/verifyAuthentication.ts index bfb6b7b1a..630a290ca 100644 --- a/packages/trpc/src/middlewares/verifyAuthentication.ts +++ b/packages/trpc/src/middlewares/verifyAuthentication.ts @@ -1,4 +1,5 @@ import { TRPCError } from '@trpc/server'; + import { t } from '../trpc'; const verifyAuthMiddleware = t.middleware(async (opts) => { diff --git a/packages/trpc/src/routers/extension.ts b/packages/trpc/src/routers/extension.ts index c16ab7f01..0c6e6e30b 100644 --- a/packages/trpc/src/routers/extension.ts +++ b/packages/trpc/src/routers/extension.ts @@ -1,4 +1,5 @@ import { z } from 'zod/mini'; + import { protectedProcedure } from '../procedures'; import { getLatestExtension } from '../services/extensionService'; import { t } from '../trpc'; diff --git a/packages/trpc/src/routers/firebaseData.ts b/packages/trpc/src/routers/firebaseData.ts index 554c3cf2b..89b7a1f05 100644 --- a/packages/trpc/src/routers/firebaseData.ts +++ b/packages/trpc/src/routers/firebaseData.ts @@ -7,6 +7,7 @@ import { WebsitesSchema, } from '@bypass/shared/schema'; import { z } from 'zod/mini'; + import { protectedProcedure } from '../procedures'; import { getBookmarks, diff --git a/packages/trpc/src/routers/firebaseStorage.ts b/packages/trpc/src/routers/firebaseStorage.ts index 760331327..2caf61979 100644 --- a/packages/trpc/src/routers/firebaseStorage.ts +++ b/packages/trpc/src/routers/firebaseStorage.ts @@ -1,10 +1,11 @@ import { z } from 'zod/mini'; + import { protectedProcedure } from '../procedures'; -import { t } from '../trpc'; import { getFileFromFirebase, removeFileFromFirebase, } from '../services/firebaseAdminService'; +import { t } from '../trpc'; const firebaseStorageRouter = t.router({ getDownloadUrl: protectedProcedure diff --git a/packages/trpc/src/routers/index.ts b/packages/trpc/src/routers/index.ts index ec55ad1ea..dbb8130bb 100644 --- a/packages/trpc/src/routers/index.ts +++ b/packages/trpc/src/routers/index.ts @@ -1,6 +1,6 @@ import { t } from '../trpc'; -import firebaseDataRouter from './firebaseData'; import extensionRouter from './extension'; +import firebaseDataRouter from './firebaseData'; import firebaseStorageRouter from './firebaseStorage'; export const appRouter = t.router({ diff --git a/packages/trpc/src/services/extensionService.ts b/packages/trpc/src/services/extensionService.ts index 9adcb77a3..ca09c3d5d 100644 --- a/packages/trpc/src/services/extensionService.ts +++ b/packages/trpc/src/services/extensionService.ts @@ -1,6 +1,7 @@ import { getVersionFromFileName } from '@bypass/configs/manifest/extensionFile'; import { TRPCError } from '@trpc/server'; import { type AsyncReturnType } from 'type-fest'; + import { getAssetsByReleaseId, getLatestRelease } from './githubService'; type TGitHubResponse = AsyncReturnType['data']; diff --git a/packages/trpc/src/services/firebase/realtimeDBService.ts b/packages/trpc/src/services/firebase/realtimeDBService.ts index ee1e5d69d..137bb28c3 100644 --- a/packages/trpc/src/services/firebase/realtimeDBService.ts +++ b/packages/trpc/src/services/firebase/realtimeDBService.ts @@ -4,6 +4,7 @@ import { type IRedirection, type IRedirections, } from '@bypass/shared'; + import { type IUser } from '../../@types/trpc'; import { EFirebaseDBRef } from '../../constants/firebase'; import { diff --git a/packages/trpc/src/services/firebaseAdminService.ts b/packages/trpc/src/services/firebaseAdminService.ts index 54db52840..4cd8a13ed 100644 --- a/packages/trpc/src/services/firebaseAdminService.ts +++ b/packages/trpc/src/services/firebaseAdminService.ts @@ -1,9 +1,11 @@ import type { Buffer } from 'node:buffer'; + import { getFirebasePublicConfig } from '@bypass/configs/firebase.config'; import { cert, getApp, getApps, initializeApp } from 'firebase-admin/app'; import { getAuth } from 'firebase-admin/auth'; import { getDatabase } from 'firebase-admin/database'; import { getDownloadURL, getStorage } from 'firebase-admin/storage'; + import { env } from '../constants/env'; import { type EFirebaseDBRef, diff --git a/packages/trpc/src/services/githubService.ts b/packages/trpc/src/services/githubService.ts index 3d31afb1b..5bf3d11de 100644 --- a/packages/trpc/src/services/githubService.ts +++ b/packages/trpc/src/services/githubService.ts @@ -1,6 +1,7 @@ import { Octokit } from '@octokit/rest'; -import { REPO } from '../constants/github'; + import { env } from '../constants/env'; +import { REPO } from '../constants/github'; const octokit = new Octokit({ auth: env.GITHUB_TOKEN, diff --git a/packages/trpc/src/services/storageCleanupService.ts b/packages/trpc/src/services/storageCleanupService.ts index 854b82760..5cdba3cbc 100644 --- a/packages/trpc/src/services/storageCleanupService.ts +++ b/packages/trpc/src/services/storageCleanupService.ts @@ -1,4 +1,5 @@ import type { IPersons } from '@bypass/shared'; + import { EFirebaseDBRef } from '../constants/firebase'; import { deletePersonImageFromFirebase, diff --git a/packages/trpc/src/trpc.ts b/packages/trpc/src/trpc.ts index 8e42ffcbe..8ed122189 100644 --- a/packages/trpc/src/trpc.ts +++ b/packages/trpc/src/trpc.ts @@ -1,4 +1,5 @@ import { TRPCError, initTRPC } from '@trpc/server'; + import { type ITRPCContext } from './@types/trpc'; import { getFirebaseUser, diff --git a/packages/trpc/src/utils/firebase.ts b/packages/trpc/src/utils/firebase.ts index bd2a6e647..9431de42b 100644 --- a/packages/trpc/src/utils/firebase.ts +++ b/packages/trpc/src/utils/firebase.ts @@ -1,4 +1,5 @@ import filenamify from 'filenamify'; + import { EFirebaseDBRootKeys } from '../constants/firebase'; export const getFullDbPath = (ref: string, uid?: string) => { diff --git a/playwright.config.ts b/playwright.config.ts index 23237a34f..19bcd0302 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -1,5 +1,6 @@ import path from 'node:path'; import process from 'node:process'; + import { defineConfig } from '@playwright/test'; process.loadEnvFile(path.join(process.cwd(), '.env')); From 18ffe6cd76a1c499726d06908fea9d6afe6baa8f Mon Sep 17 00:00:00 2001 From: Amit Singh Date: Sun, 12 Jul 2026 15:16:55 +0530 Subject: [PATCH 3/7] style: sort tailwind classes via oxfmt sortTailwindcss MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Enable oxfmt sortTailwindcss (stylesheet = packages/ui globals.css, functions clsx/cn/cva). Mechanical class reordering only — no logic changes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .oxfmtrc.json | 5 ++- .../components/BookmarkAddEditDialog.tsx | 7 +--- .../BookmarksPanel/components/FolderRow.tsx | 7 +--- .../BookmarksPanel/components/VirtualRow.tsx | 10 ++---- .../OpenForumLinks/ButtonWithFeedback.tsx | 5 +-- .../panels/HomePopup/containers/PopupHome.tsx | 7 +--- .../components/AddOrEditPersonDialog.tsx | 5 +-- .../PersonsPanel/components/ImagePicker.tsx | 10 ++---- .../PersonsPanel/components/PersonsPanel.tsx | 4 +-- .../components/ShortcutsPanel.tsx | 10 ++---- .../bookmark-panel/components/VirtualRow.tsx | 7 +--- apps/web/src/app/components/AppHeader.tsx | 33 +++---------------- apps/web/src/app/components/Footer.tsx | 12 ++----- apps/web/src/app/components/PageHeader.tsx | 17 ++-------- .../src/app/components/SalientFeatures.tsx | 8 +---- apps/web/src/app/persons-panel/page.tsx | 9 +---- apps/web/src/app/web-ext/page.tsx | 7 +--- packages/shared/src/components/Header.tsx | 9 ++--- .../Persons/components/BookmarksList.tsx | 18 ++-------- .../components/Persons/components/Person.tsx | 18 ++-------- packages/shared/src/components/Search.tsx | 7 +--- 21 files changed, 38 insertions(+), 177 deletions(-) diff --git a/.oxfmtrc.json b/.oxfmtrc.json index 91d11c858..a2e59b93d 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -7,7 +7,10 @@ "bracketSpacing": true, "endOfLine": "lf", "sortPackageJson": false, - "sortTailwindcss": false, + "sortTailwindcss": { + "stylesheet": "packages/ui/src/styles/globals.css", + "functions": ["clsx", "cn", "cva"] + }, "sortImports": { "internalPattern": [ "@/", diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx index 19e1f705d..a4c16dd21 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/BookmarkAddEditDialog.tsx @@ -297,12 +297,7 @@ function BookmarkAddEditDialog({ curFolderId, handleScroll }: Props) { )} - + diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx index a2eed4082..c56a1fc1d 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/FolderRow.tsx @@ -71,12 +71,7 @@ function FolderRow({
{isDefault && ( -
+
)} diff --git a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx index 1c8692ec5..bece96311 100644 --- a/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx +++ b/apps/extension/src/entrypoints/popup/panels/BookmarksPanel/components/VirtualRow.tsx @@ -37,15 +37,9 @@ function VirtualRow({ bookmark, pos, isSelected, isCut }: Props) { className={clsx( 'box-border h-full cursor-pointer rounded-md select-none', 'hover:bg-muted', - ` - data-[is-selected=true]:bg-primary - data-[is-selected=true]:text-primary-foreground - `, + `data-[is-selected=true]:bg-primary data-[is-selected=true]:text-primary-foreground`, 'data-[is-selected=true]:hover:bg-primary/90', - ` - data-[is-cut=true]:border data-[is-cut=true]:border-dashed - data-[is-cut=true]:border-border data-[is-cut=true]:opacity-50 - ` + `data-[is-cut=true]:border data-[is-cut=true]:border-dashed data-[is-cut=true]:border-border data-[is-cut=true]:opacity-50` )} // Added to fix context menu style={{ zIndex: bookmark.isDir ? 1 : 'auto' }} diff --git a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx index 4adea680b..6b84dcc3f 100644 --- a/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx +++ b/apps/extension/src/entrypoints/popup/panels/HomePopup/components/OpenForumLinks/ButtonWithFeedback.tsx @@ -18,10 +18,7 @@ function ButtonWithFeedback({ openAllLinks, isForumPage }: Props) { if (isForumPage && buttonState === EButtonState.SUCCESS) { return ( -
+
{redirections?.map((redirection, index) => { const isMatch = isMatchingRule(redirection, searchText); return ( @@ -150,9 +146,7 @@ function ShortcutsPanel() { {isFetching && (
diff --git a/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx b/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx index e6b15f7a4..930dfbef9 100644 --- a/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx +++ b/apps/web/src/app/bookmark-panel/components/VirtualRow.tsx @@ -24,12 +24,7 @@ const VirtualRow = memo(({ index, folders, contextBookmarks }) => { const ctx = contextBookmarks[index]; return ( -
+
{ctx.isDir ? ( -
+
+
diff --git a/apps/web/src/app/web-ext/page.tsx b/apps/web/src/app/web-ext/page.tsx index 0154c6a4a..3177218ae 100644 --- a/apps/web/src/app/web-ext/page.tsx +++ b/apps/web/src/app/web-ext/page.tsx @@ -74,12 +74,7 @@ export default function Web() {
-
+