From a5d49ea8ce596d1d69d9d008dc01c1c7c5726f78 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:07:20 +0800 Subject: [PATCH 1/4] chore: update eslint --- .vscode/settings.json | 6 +- .../modules/app-layout/LAYOUT_ARCHITECTURE.md | 42 +- apps/landing/package.json | 2 - eslint-suppressions.json | 4217 +++++++++++++++++ eslint.config.mjs | 53 +- package.json | 7 +- packages/configs/package.json | 1 + pnpm-lock.yaml | 3178 ++++++------- pnpm-workspace.yaml | 1 + 9 files changed, 5815 insertions(+), 1692 deletions(-) create mode 100644 eslint-suppressions.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 2c3923db09..4b0a2e3144 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,10 +1,8 @@ { "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "[javascript][javascriptreact][typescript][typescriptreact][json][jsonc]": { - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit" - } + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" }, "files.associations": { "*.css": "tailwindcss" diff --git a/apps/desktop/layer/renderer/src/modules/app-layout/LAYOUT_ARCHITECTURE.md b/apps/desktop/layer/renderer/src/modules/app-layout/LAYOUT_ARCHITECTURE.md index 3a911a60be..cfd35ef220 100644 --- a/apps/desktop/layer/renderer/src/modules/app-layout/LAYOUT_ARCHITECTURE.md +++ b/apps/desktop/layer/renderer/src/modules/app-layout/LAYOUT_ARCHITECTURE.md @@ -8,7 +8,7 @@ The Follow application uses a sophisticated nested layout system built on React The application's layout system follows a hierarchical structure where each level handles specific responsibilities: -```mermaid +```mmd graph TD A[App.tsx - Root] --> B[AppLayer with Outlet] B --> C[MainLayout - pages/main/layout.tsx] @@ -33,7 +33,7 @@ graph TD **Purpose**: Root application wrapper **Outlet Usage**: `` renders the main layout tree -```typescript +```tsx // App.tsx structure // Electron only @@ -55,7 +55,7 @@ graph TD - Global error boundaries - App-wide panels (search, commands) -```typescript +```tsx // MainDestopLayout structure @@ -81,10 +81,10 @@ graph TD - Wide mode support - Persistent column width settings -```typescript +```tsx // TimelineEntryTwoColumnLayout structure
-
+
// Left: Entry list
// Resizable divider @@ -103,7 +103,7 @@ graph TD - Progress indicator FAB - Smooth scroll behavior -```typescript +```tsx // SubviewLayout structure
@@ -128,17 +128,17 @@ graph TD - Smooth entry transition animations - Resizable AI panel with persistent settings -```typescript +```tsx // AIEnhancedTimelineLayout structure
// Entry list - always visible // Animated header overlay - // Animated content overlay + // Animated content overlay
- // Optional resizable AI panel + // Optional resizable AI panel // Dynamic subscription control
``` @@ -159,7 +159,7 @@ The routing system connects URLs to specific layouts through the generated route ### Route Structure Analysis -```typescript +```tsx // From generated-routes.ts export const routes: RouteObject[] = [ { @@ -248,7 +248,7 @@ App (Outlet) Each layout level uses `` to render child routes, creating a flexible composition system: -```typescript +```tsx // Parent Layout function ParentLayout() { return ( @@ -266,9 +266,9 @@ function ParentLayout() { Layouts adapt based on route parameters and user preferences: -```typescript +```tsx // TimelineEntryTwoColumnLayout -const inWideMode = views.find(v => v.view === view)?.wideMode || false +const inWideMode = views.find((v) => v.view === view)?.wideMode || false return (
@@ -282,7 +282,7 @@ return ( Layouts provide context to their children: -```typescript +```tsx // MainDestopLayout @@ -318,7 +318,7 @@ Layouts provide context to their children: ### Mobile Layout (via `withResponsiveComponent`) -```typescript +```tsx export const Component = withResponsiveComponent( () => Promise.resolve({ default: MainDestopLayout }), async () => { @@ -332,7 +332,7 @@ export const Component = withResponsiveComponent( ### Layout-Level Error Handling -```typescript +```tsx // MainDestopLayout const errorTypes = [ ErrorComponentType.Page, @@ -340,7 +340,7 @@ const errorTypes = [ ErrorComponentType.FeedNotFound, ] as ErrorComponentType[] - +; ``` @@ -351,7 +351,7 @@ const errorTypes = [ All major layouts use React Router's lazy loading: -```typescript +```tsx const lazy16 = () => import("./pages/(main)/layout") ``` @@ -359,7 +359,7 @@ const lazy16 = () => import("./pages/(main)/layout") Critical layout dimensions are memoized: -```typescript +```tsx const entryColWidth = useMemo(() => getUISettings().entryColWidth, []) ``` @@ -367,7 +367,7 @@ const entryColWidth = useMemo(() => getUISettings().entryColWidth, []) Scroll and resize handlers use passive listeners and debouncing: -```typescript +```tsx $scroll.addEventListener("scroll", handler, { passive: true }) ``` @@ -382,7 +382,7 @@ $scroll.addEventListener("scroll", handler, { passive: true }) ### Layout Component Structure -````typescript +````tsx /** * LayoutName Component * diff --git a/apps/landing/package.json b/apps/landing/package.json index 61b06eecc0..e16a105b28 100644 --- a/apps/landing/package.json +++ b/apps/landing/package.json @@ -77,8 +77,6 @@ "code-inspector-plugin": "1.2.10", "cross-env": "10.1.0", "dotenv": "17.2.3", - "eslint": "9.38.0", - "eslint-config-hyoban": "4.0.10", "postcss": "8.5.6", "prettier": "3.6.2", "rimraf": "6.0.1", diff --git a/eslint-suppressions.json b/eslint-suppressions.json new file mode 100644 index 0000000000..7bfd56725b --- /dev/null +++ b/eslint-suppressions.json @@ -0,0 +1,4217 @@ +{ + ".claude/skills/desktop-release/SKILL.md": { + "md/code-lang-shorthand": { + "count": 12 + }, + "md/no-irregular-dash": { + "count": 1 + } + }, + ".claude/skills/installing-mobile-preview-builds/SKILL.md": { + "md/code-lang-shorthand": { + "count": 6 + } + }, + ".claude/skills/mobile-release/SKILL.md": { + "md/code-lang-shorthand": { + "count": 8 + } + }, + ".claude/skills/update-deps/SKILL.md": { + "markdown/fenced-code-language": { + "count": 1 + }, + "md/code-lang-shorthand": { + "count": 2 + }, + "md/no-irregular-dash": { + "count": 3 + } + }, + ".github/ISSUE_TEMPLATE/i18n.yml": { + "yaml/plain-scalar": { + "count": 2 + } + }, + ".github/actions/setup-version/action.yml": { + "yaml/plain-scalar": { + "count": 5 + } + }, + ".github/actions/setup-xcode/action.yml": { + "yaml/plain-scalar": { + "count": 5 + } + }, + ".github/advanced-issue-labeler.yml": { + "yaml/plain-scalar": { + "count": 9 + } + }, + ".github/dependabot.yaml": { + "yaml/plain-scalar": { + "count": 3 + } + }, + ".github/scripts/extract-release-info.mjs": { + "node/prefer-global/process": { + "count": 10 + } + }, + ".github/workflows/build-android.yml": { + "yaml/plain-scalar": { + "count": 6 + } + }, + ".github/workflows/build-desktop.yml": { + "yaml/plain-scalar": { + "count": 11 + } + }, + ".github/workflows/build-ios-development.yml": { + "yaml/plain-scalar": { + "count": 4 + } + }, + ".github/workflows/build-ios.yml": { + "yaml/plain-scalar": { + "count": 3 + } + }, + ".github/workflows/build-web.yml": { + "yaml/plain-scalar": { + "count": 1 + } + }, + ".github/workflows/deploy-cloudflare.yml": { + "yaml/plain-scalar": { + "count": 1 + } + }, + ".github/workflows/lint.yml": { + "yaml/plain-scalar": { + "count": 1 + } + }, + ".github/workflows/translator.yml": { + "yaml/plain-scalar": { + "count": 1 + } + }, + "AGENTS.md": { + "md/code-lang-shorthand": { + "count": 3 + }, + "md/no-irregular-dash": { + "count": 4 + } + }, + "CONTRIBUTING.md": { + "markdown/fenced-code-language": { + "count": 1 + }, + "markdown/require-alt-text": { + "count": 1 + } + }, + "README.md": { + "markdown/require-alt-text": { + "count": 17 + }, + "md/no-curly-quote": { + "count": 2 + }, + "md/no-irregular-dash": { + "count": 3 + }, + "md/no-url-trailing-slash": { + "count": 5 + } + }, + "api/vercel_webhook.ts": { + "no-console": { + "count": 4 + }, + "node/prefer-global/buffer": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/cli/src/browser-login.ts": { + "node/prefer-global/process": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/cli/src/client.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/cli/src/command.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/cli/src/commands/opml.ts": { + "node/prefer-global/buffer": { + "count": 1 + } + }, + "apps/cli/src/index.ts": { + "node/prefer-global/process": { + "count": 3 + } + }, + "apps/cli/tsconfig.json": { + "jsonc/sort-keys": { + "count": 1 + } + }, + "apps/desktop/AGENTS.md": { + "markdown/fenced-code-language": { + "count": 1 + }, + "md/code-lang-shorthand": { + "count": 1 + } + }, + "apps/desktop/changelog/0.2.5.md": { + "markdown/require-alt-text": { + "count": 1 + } + }, + "apps/desktop/changelog/0.2.7.md": { + "markdown/require-alt-text": { + "count": 3 + } + }, + "apps/desktop/changelog/0.3.6.md": { + "markdown/require-alt-text": { + "count": 1 + } + }, + "apps/desktop/changelog/0.4.3.md": { + "md/no-curly-quote": { + "count": 2 + }, + "md/no-irregular-dash": { + "count": 5 + } + }, + "apps/desktop/changelog/0.4.5.md": { + "md/no-curly-quote": { + "count": 4 + }, + "md/no-irregular-dash": { + "count": 2 + } + }, + "apps/desktop/changelog/0.4.6.md": { + "md/no-curly-quote": { + "count": 1 + } + }, + "apps/desktop/changelog/0.4.8.md": { + "md/no-curly-quote": { + "count": 5 + }, + "md/no-irregular-dash": { + "count": 3 + } + }, + "apps/desktop/changelog/0.5.0.md": { + "md/no-curly-quote": { + "count": 6 + } + }, + "apps/desktop/changelog/0.6.2.md": { + "md/no-curly-quote": { + "count": 9 + } + }, + "apps/desktop/changelog/0.6.3.md": { + "md/no-irregular-dash": { + "count": 1 + } + }, + "apps/desktop/changelog/0.9.0.md": { + "md/no-curly-quote": { + "count": 3 + } + }, + "apps/desktop/changelog/1.0.0.md": { + "md/no-irregular-dash": { + "count": 1 + } + }, + "apps/desktop/changelog/1.1.0.md": { + "md/no-curly-quote": { + "count": 2 + } + }, + "apps/desktop/changelog/1.2.2.md": { + "markdown/require-alt-text": { + "count": 2 + }, + "md/no-curly-quote": { + "count": 2 + }, + "md/no-irregular-dash": { + "count": 2 + } + }, + "apps/desktop/configs/vite.electron-render.config.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/configs/vite.render.config.ts": { + "node/prefer-global/process": { + "count": 5 + } + }, + "apps/desktop/forge.config.cts": { + "node/prefer-global/process": { + "count": 16 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/main/preload/index.ts": { + "node/prefer-global/process": { + "count": 5 + }, + "ts/ban-ts-comment": { + "count": 3 + } + }, + "apps/desktop/layer/main/src/bootstrap.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/constants/app.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/layer/main/src/env.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/layer/main/src/ipc/index.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/ipc/services/app.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/layer/main/src/ipc/services/integration.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/lib/api-client.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/lib/cleaner.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/lib/download.ts": { + "node/prefer-global/buffer": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/lib/proxy.ts": { + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/main/src/lib/router.ts": { + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/desktop/layer/main/src/lib/tray.ts": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/main/src/manager/app.ts": { + "node/prefer-global/process": { + "count": 4 + } + }, + "apps/desktop/layer/main/src/manager/bootstrap.ts": { + "dot-notation": { + "count": 1 + }, + "no-console": { + "count": 2 + }, + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/manager/lifecycle.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/manager/window.ts": { + "dot-notation": { + "count": 3 + }, + "no-useless-return": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 4 + } + }, + "apps/desktop/layer/main/src/updater/api.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/layer/main/src/updater/configs.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/layer/main/src/updater/follow-update-provider.ts": { + "node/prefer-global/process": { + "count": 8 + } + }, + "apps/desktop/layer/main/src/updater/index.ts": { + "node/prefer-global/process": { + "count": 8 + } + }, + "apps/desktop/layer/main/tsconfig.json": { + "jsonc/sort-keys": { + "count": 7 + } + }, + "apps/desktop/layer/renderer/setup-file.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/@types/constants.ts": { + "no-useless-computed-key": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/App.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/atoms/context-menu.ts": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/atoms/player.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/atoms/readability.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/atoms/server-configs.ts": { + "node/prefer-global/process": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/atoms/settings/ai.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/atoms/settings/general.ts": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/components/common/AppErrorBoundary.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/components/common/ErrorElement.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/common/Focusable.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/common/ImpressionTracker.tsx": { + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/common/ShadowDOM.tsx": { + "no-useless-computed-key": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/errors/EntryNotFound.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/errors/FeedNotFound.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/auto-completion/AutoCompletion.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx": { + "dot-notation": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/crop/AvatarUploadModal.tsx": { + "one-var": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/components/ui/keyboard-recorder/KeyRecorder.tsx": { + "no-console": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/markdown/components/Toc.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/components/ui/markdown/components/TocItem.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/markdown/renderers/MarkdownLink.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/components/ui/media/Media.tsx": { + "no-console": { + "count": 2 + }, + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/components/ui/media/PreviewMediaContent.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/components/ui/media/VideoPlayer.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "@eslint-react/no-use-context": { + "count": 2 + }, + "no-unneeded-ternary": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 19 + } + }, + "apps/desktop/layer/renderer/src/components/ui/modal/helper/useAsyncModal.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/components/ui/modal/stacked/declarative-modal.tsx": { + "react-refresh/only-export-components": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/components/ui/modal/stacked/helper.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/modal/stacked/hooks.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ui/modal/stacked/modal.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "prefer-arrow-callback": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/components/ui/peek-modal/EntryModalPreview.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/components/ux/transition/icon.tsx": { + "react-refresh/only-export-components": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/hooks/biz/useEntryActions.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/hooks/biz/useFeedActions.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/hooks/biz/useNavigateEntry.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/hooks/biz/useSubscriptionActions.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/hooks/common/useBizQuery.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/i18n.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/initialize/index.ts": { + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/desktop/layer/renderer/src/lib/dev.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/lib/error-parser.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/lib/load-language.ts": { + "no-eval": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/lib/log.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/lib/parse-html.ts": { + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/lib/utils.ts": { + "ts/no-non-null-asserted-optional-chain": { + "count": 6 + } + }, + "apps/desktop/layer/renderer/src/main.tsx": { + "@eslint-react/dom/no-flush-sync": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/action/action-setting.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/action/constants.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/action/rule-card.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/action/then-section.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/action/when-section.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/displays/AIChainOfThought.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/displays/AIDisplayFlowPart.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/layouts/ChatInterface.tsx": { + "ts/no-use-before-define": { + "count": 7 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/layouts/ChatShortcutsRow.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/layouts/ChatTitle.tsx": { + "no-useless-computed-key": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/layouts/WelcomeScreen.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/message/ImageThumbnail.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/message/UserRichTextMessage.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/message/animated/AnimatedMarkdown.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/components/message/parse-incomplete-markdown.ts": { + "no-cond-assign": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/editor/plugins/index.tsx": { + "react-refresh/only-export-components": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/editor/plugins/mention/MentionNode.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/editor/plugins/mention/constants.ts": { + "unicorn/escape-case": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/editor/plugins/mention/hooks/dateMentionUtils.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/editor/plugins/shortcut/constants.ts": { + "unicorn/escape-case": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/services/index.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/store/AIChatContext.ts": { + "ts/no-redeclare": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/utils/extractor.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/ai-chat/utils/file-validation.ts": { + "prefer-exponentiation-operator": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/LAYOUT_ARCHITECTURE.md": { + "markdown/fenced-code-language": { + "count": 3 + }, + "react-hooks/rules-of-hooks": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/MainDestopLayout.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/ai-enhanced-timeline/AIEnhancedTimelineLayout.tsx": { + "prefer-arrow-callback": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/ai-enhanced-timeline/MobileTimelineLayout.tsx": { + "prefer-arrow-callback": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/ai/AIChatFloatingPanel.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/subscription-column/SubscriptionColumn.tsx": { + "@eslint-react/hooks-extra/no-unnecessary-use-callback": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/subscription-column/components/PodcastButton.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/app-layout/subview/SubviewLayout.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/app-tip/AICopilotMedia.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/app-tip/AppTipModalContent.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app-tip/OverviewMedia.tsx": { + "unicorn/number-literal-case": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/app/EnvironmentIndicator.tsx": { + "@eslint-react/dom/no-missing-iframe-sandbox": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/claim/feed-claim-modal.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/command/commands/integration.tsx": { + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 13 + } + }, + "apps/desktop/layer/renderer/src/modules/command/commands/settings.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/command/hooks/use-command-binding.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/command/hooks/use-register-hotkey.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/command/registry/command.test-d.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/command/shortcuts/SettingShortcuts.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/customize-toolbar/dnd.tsx": { + "tailwindcss/no-unnecessary-whitespace": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/customize-toolbar/modal.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/DiscoverFeedCard.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/DiscoverFeedForm.tsx": { + "no-console": { + "count": 1 + }, + "ts/no-non-null-asserted-optional-chain": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/DiscoverImport.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/DiscoverTransform.tsx": { + "ts/no-non-null-asserted-optional-chain": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/FeedForm.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/Inbox/InboxTable.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/InboxForm.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/ListForm.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/OpmlAbstractGraphic.tsx": { + "unicorn/number-literal-case": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/discover/OpmlSelectionModal.tsx": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/desktop/layer/renderer/src/modules/editor/css-editor.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/EntryItemSkeleton.tsx": { + "@eslint-react/no-array-index-key": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/all-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/article-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/audio-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/notification-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/picture-item-stateless.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/picture-item.tsx": { + "prefer-arrow-callback": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/picture-masonry.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/social-media-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/Items/video-item.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/components/DateItem.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/components/FooterMarkItem.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/components/mark-all-button.tsx": { + "@eslint-react/hooks-extra/no-unnecessary-use-callback": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/context/EntriesContext.tsx": { + "react-refresh/only-export-components": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/grid.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntriesByView.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntryMarkReadHandler.tsx": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/index.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/item.tsx": { + "prefer-arrow-callback": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryItemWrapper.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/layouts/EntryListHeader.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/list.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/store/EntryColumnContext.ts": { + "ts/no-redeclare": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-column/templates/grid-item-template.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/EntryContent.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/EntryContentForPreview.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/actions/header-actions.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/actions/more-actions.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/actions/picture-gallery.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/ApplyEntryActions.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/EntryTimelineSidebar.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/WarnGoToExternalLink.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/entry-header/internal/EntryHeaderBreadcrumb.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/entry-header/internal/context.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/layouts/ArticleLayout.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/layouts/shared/VideoPlayer.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/selection/SharePosterModal.tsx": { + "unicorn/escape-case": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/entry-content/components/selection/TextSelectionToolbar.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/feed/feed-certification.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/feed/feed-icon.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/feed/feed-summary.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/integration/custom-integration-manager.ts": { + "no-new": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/panel/cmdf.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/panel/cmdk.tsx": { + "dot-notation": { + "count": 1 + }, + "prefer-arrow-callback": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 9 + } + }, + "apps/desktop/layer/renderer/src/modules/player/corner-player.tsx": { + "ts/no-use-before-define": { + "count": 14 + } + }, + "apps/desktop/layer/renderer/src/modules/player/entry-tts.ts": { + "no-unmodified-loop-condition": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/power/my-wallet-section/withdraw.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/profile/update-password-form.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/profile/user-profile-modal/UserProfileModalContent.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/profile/user-profile-modal/shared.tsx": { + "ts/no-non-null-asserted-optional-chain": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/renderer/components/TimeStamp.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/renderer/context.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 2 + }, + "ts/no-redeclare": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/renderer/html.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/renderer/markdown.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/control.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/helper/setting-builder.tsx": { + "@eslint-react/no-array-index-key": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/helper/withSettingEnable.tsx": { + "ts/ban-ts-comment": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/modal/SettingModalContent.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/modal/context.tsx": { + "react-refresh/only-export-components": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/modal/hooks.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/modal/layout.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/section.tsx": { + "@eslint-react/no-children-map": { + "count": 1 + }, + "@eslint-react/no-children-to-array": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/sections/fonts.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/ai.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/ai/mcp/MCPServiceModalContent.tsx": { + "no-new": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/ai/mcp/MCPServicesSection.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/appearance.tsx": { + "ts/no-use-before-define": { + "count": 11 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/data-control.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/feeds.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/general.tsx": { + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/integration/CustomIntegrationSection.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/integration/index.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/lists/modals.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/plan.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/settings/tabs/shortcut.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/FeedCategory.tsx": { + "prefer-arrow-callback": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/SortedFeedItems.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/SubscriptionColumnHeader.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/SubscriptionTabButton.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/TimelineTabsSettingsModal.tsx": { + "react-refresh/only-export-components": { + "count": 4 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/index.tsx": { + "@eslint-react/hooks-extra/no-unnecessary-use-callback": { + "count": 1 + }, + "@eslint-react/web-api/no-leaked-timeout": { + "count": 1 + }, + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/modules/subscription-column/subscription-list/SubscriptionList.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/modules/upgrade/container.tsx": { + "react/no-nested-component-definitions": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/modules/user/ProfileButton.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/(main)/(layer)/(subview)/discover/category/[category].tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/pages/(main)/(layer)/timeline/[timelineId]/[feedId]/index.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/(main)/(layer)/timeline/[timelineId]/layout.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/(main)/index.sync.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/about.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/appearance.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/data-control.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/feeds.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/general.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/integration.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/list.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/notifications.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/plan.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/profile.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/pages/settings/(settings)/shortcuts.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/app-grid-layout-container-provider.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/context-menu-provider.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/providers/extension-expose-provider.tsx": { + "ts/ban-ts-comment": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/inject-styles-provider.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/invalidate-query-provider.tsx": { + "react-refresh/only-export-components": { + "count": 2 + } + }, + "apps/desktop/layer/renderer/src/providers/popover-provider.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/root-providers.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/desktop/layer/renderer/src/providers/setting-sync.tsx": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/providers/wrapped-element-provider.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/push-notification.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/queries/rsshub.ts": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/desktop/layer/renderer/src/router.tsx": { + "dot-notation": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/router.web.tsx": { + "dot-notation": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/store/image/index.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/store/search/constants.ts": { + "ts/no-redeclare": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/store/search/types.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/store/utils/helper.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/src/wdyr.ts": { + "antfu/no-top-level-await": { + "count": 1 + } + }, + "apps/desktop/layer/renderer/tsconfig.json": { + "jsonc/sort-keys": { + "count": 7 + } + }, + "apps/desktop/layer/renderer/vitest.config.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/plugins/vite/ast.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/desktop/plugins/vite/cleanup.ts": { + "no-console": { + "count": 1 + } + }, + "apps/desktop/plugins/vite/compress.ts": { + "no-console": { + "count": 3 + }, + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/plugins/vite/generate-main-hash.ts": { + "node/prefer-global/process": { + "count": 4 + } + }, + "apps/desktop/plugins/vite/hmr.ts": { + "no-console": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/desktop/plugins/vite/html-inject.ts": { + "dot-notation": { + "count": 2 + } + }, + "apps/desktop/plugins/vite/utils/i18n-completeness.ts": { + "dot-notation": { + "count": 1 + } + }, + "apps/desktop/postcss.config.cjs": { + "node/prefer-global/process": { + "count": 3 + } + }, + "apps/desktop/scripts/apply-changelog.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/desktop/scripts/generate-appx-manifest.ts": { + "node/prefer-global/process": { + "count": 5 + } + }, + "apps/desktop/scripts/update-windows-yml.ts": { + "node/no-deprecated-api": { + "count": 1 + } + }, + "apps/desktop/tailwind.config.ts": { + "ts/no-require-imports": { + "count": 2 + } + }, + "apps/desktop/vite.config.ts": { + "no-alert": { + "count": 1 + }, + "node/prefer-global/buffer": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 6 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/eslint.config.mjs": { + "style/operator-linebreak": { + "count": 1 + }, + "style/quotes": { + "count": 1 + } + }, + "apps/landing/global.d.ts": { + "@typescript-eslint/method-signature-style": { + "count": 1 + }, + "@typescript-eslint/no-empty-object-type": { + "count": 1 + }, + "style/indent-binary-ops": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + }, + "ts/method-signature-style": { + "count": 3 + }, + "ts/no-empty-object-type": { + "count": 4 + } + }, + "apps/landing/next.config.mjs": { + "node/prefer-global/process": { + "count": 2 + }, + "style/quotes": { + "count": 1 + } + }, + "apps/landing/plugins/eslint-recursive-sort.mjs": { + "style/arrow-parens": { + "count": 1 + }, + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/app/[locale]/download/page.tsx": { + "style/operator-linebreak": { + "count": 2 + } + }, + "apps/landing/src/app/[locale]/error.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/landing/src/app/[locale]/layout.tsx": { + "style/arrow-parens": { + "count": 2 + }, + "style/quote-props": { + "count": 2 + } + }, + "apps/landing/src/app/[locale]/privacy-policy/page.tsx": { + "style/quotes": { + "count": 3 + } + }, + "apps/landing/src/app/[locale]/terms-of-service/page.tsx": { + "style/quotes": { + "count": 3 + } + }, + "apps/landing/src/atoms/viewport.ts": { + "style/arrow-parens": { + "count": 1 + }, + "style/quote-props": { + "count": 6 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/landing/src/components/common/ClientOnly.tsx": { + "curly": { + "count": 1 + } + }, + "apps/landing/src/components/common/HydrationEndDetector.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/landing/src/components/common/Lazyload.tsx": { + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + } + }, + "apps/landing/src/components/common/LightRays.tsx": { + "curly": { + "count": 10 + }, + "no-useless-return": { + "count": 1 + }, + "style/brace-style": { + "count": 2 + }, + "style/member-delimiter-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 7 + } + }, + "apps/landing/src/components/common/ScrollTop.tsx": { + "curly": { + "count": 1 + } + }, + "apps/landing/src/components/hoc/with-no-ssr.tsx": { + "curly": { + "count": 1 + } + }, + "apps/landing/src/components/layout/footer/Footer.tsx": { + "style/arrow-parens": { + "count": 2 + }, + "style/jsx-one-expression-per-line": { + "count": 2 + }, + "style/member-delimiter-style": { + "count": 3 + } + }, + "apps/landing/src/components/ui/3d-models/AISpline.ts": { + "style/arrow-parens": { + "count": 1 + }, + "style/exp-list-style": { + "count": 1 + } + }, + "apps/landing/src/components/ui/3d-models/AISplineLoader.tsx": { + "curly": { + "count": 3 + }, + "style/brace-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/accordion/Accordion.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/landing/src/components/ui/border-beam.tsx": { + "style/quote-props": { + "count": 2 + } + }, + "apps/landing/src/components/ui/button/Button.tsx": { + "style/indent": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/checkbox/Checkbox.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 2 + } + }, + "apps/landing/src/components/ui/collapse/CollapseCss.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/landing/src/components/ui/dialog/Dialog.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + }, + "style/indent-binary-ops": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/dropdown-menu/DropdownMenu.tsx": { + "style/operator-linebreak": { + "count": 3 + } + }, + "apps/landing/src/components/ui/effects/GridGuides.tsx": { + "no-multi-str": { + "count": 1 + } + }, + "apps/landing/src/components/ui/effects/TiltCard.tsx": { + "curly": { + "count": 1 + }, + "style/arrow-parens": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 2 + }, + "style/quote-props": { + "count": 2 + } + }, + "apps/landing/src/components/ui/glass/index.tsx": { + "curly": { + "count": 3 + }, + "style/brace-style": { + "count": 4 + }, + "style/operator-linebreak": { + "count": 2 + }, + "style/quote-props": { + "count": 3 + } + }, + "apps/landing/src/components/ui/highlighter.tsx": { + "curly": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/input/Input.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 2 + }, + "style/indent": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 4 + }, + "style/operator-linebreak": { + "count": 4 + } + }, + "apps/landing/src/components/ui/json-highlighter/index.tsx": { + "style/brace-style": { + "count": 4 + }, + "style/multiline-ternary": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 2 + } + }, + "apps/landing/src/components/ui/light-rays.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + }, + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/components/ui/markdown/index.tsx": { + "node/prefer-global/process": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + }, + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/components/ui/modal/ModalContainer.tsx": { + "curly": { + "count": 1 + }, + "style/arrow-parens": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/components/ui/modal/ModalManager.ts": { + "style/arrow-parens": { + "count": 2 + } + }, + "apps/landing/src/components/ui/panel/PanelSplitter.tsx": { + "curly": { + "count": 1 + } + }, + "apps/landing/src/components/ui/portal/provider.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/components/ui/prompts/BasePrompt.tsx": { + "style/brace-style": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/prompts/InputPrompt.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "style/brace-style": { + "count": 3 + }, + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/radio/index.tsx": { + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/relative-time/RelativeTime.tsx": { + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/landing/src/components/ui/scroll-areas/ScrollArea.tsx": { + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/segment-tab/SegmentTab.tsx": { + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/select/ComboboxSelect.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/ui/select/MultiSelect.tsx": { + "curly": { + "count": 2 + }, + "style/arrow-parens": { + "count": 3 + }, + "style/multiline-ternary": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/select/Select.tsx": { + "style/indent-binary-ops": { + "count": 1 + }, + "style/multiline-ternary": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 2 + } + }, + "apps/landing/src/components/ui/sheet/Sheet.tsx": { + "curly": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + }, + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/components/ui/switch/index.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + }, + "style/jsx-curly-brace-presence": { + "count": 1 + }, + "style/multiline-ternary": { + "count": 4 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/ui/theme-switcher/ThemeSwitcher.tsx": { + "@eslint-react/dom/no-flush-sync": { + "count": 1 + }, + "curly": { + "count": 2 + }, + "react-dom/no-flush-sync": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/landing/src/components/ui/transition/TextUpTransitionView.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/landing/src/components/ui/viewport/OnlyDesktop.tsx": { + "curly": { + "count": 2 + } + }, + "apps/landing/src/components/ui/viewport/OnlyMobile.tsx": { + "curly": { + "count": 2 + } + }, + "apps/landing/src/components/widgets/download/DownloadHero.tsx": { + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/download/PlatformDownloads.tsx": { + "style/arrow-parens": { + "count": 4 + } + }, + "apps/landing/src/components/widgets/landing/Audience.tsx": { + "curly": { + "count": 1 + }, + "style/arrow-parens": { + "count": 2 + }, + "style/brace-style": { + "count": 1 + }, + "style/jsx-one-expression-per-line": { + "count": 5 + } + }, + "apps/landing/src/components/widgets/landing/BuiltOpen.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "style/multiline-ternary": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 12 + } + }, + "apps/landing/src/components/widgets/landing/Features.tsx": { + "style/jsx-one-expression-per-line": { + "count": 1 + }, + "style/jsx-wrap-multilines": { + "count": 3 + }, + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/widgets/landing/Header.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "style/jsx-curly-brace-presence": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/landing/Hero.tsx": { + "no-useless-rename": { + "count": 1 + }, + "style/arrow-parens": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/landing/PromptDemo.tsx": { + "style/arrow-parens": { + "count": 2 + } + }, + "apps/landing/src/components/widgets/landing/SocialProof.tsx": { + "curly": { + "count": 1 + }, + "style/quotes": { + "count": 5 + } + }, + "apps/landing/src/components/widgets/landing/ViewsShowcase.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "style/member-delimiter-style": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/landing/WindowChrome.tsx": { + "style/multiline-ternary": { + "count": 2 + } + }, + "apps/landing/src/components/widgets/simulators/EntryPage.tsx": { + "style/jsx-one-expression-per-line": { + "count": 3 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/ListDemo.tsx": { + "style/arrow-parens": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/components/SimulatorReaders.tsx": { + "style/jsx-one-expression-per-line": { + "count": 2 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/AIChainOfThought.tsx": { + "curly": { + "count": 7 + }, + "no-useless-return": { + "count": 1 + }, + "style/jsx-one-expression-per-line": { + "count": 1 + }, + "style/jsx-wrap-multilines": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 4 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/AIReasoningPart.tsx": { + "curly": { + "count": 1 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 3 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/ToolInvocationComponent.tsx": { + "style/jsx-curly-brace-presence": { + "count": 4 + }, + "style/jsx-wrap-multilines": { + "count": 1 + }, + "style/multiline-ternary": { + "count": 4 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/animated/AnimatedMarkdown.tsx": { + "style/brace-style": { + "count": 4 + }, + "style/quote-props": { + "count": 18 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/animated/TokenizedText.tsx": { + "curly": { + "count": 2 + }, + "style/brace-style": { + "count": 3 + }, + "style/operator-linebreak": { + "count": 3 + } + }, + "apps/landing/src/components/widgets/simulators/components/ai/parse-incomplete-markdown.ts": { + "curly": { + "count": 2 + }, + "no-cond-assign": { + "count": 2 + }, + "style/brace-style": { + "count": 2 + }, + "style/operator-linebreak": { + "count": 19 + }, + "style/quotes": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/landing/src/components/widgets/simulators/components/chat/AiMockMessage.tsx": { + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 3 + }, + "style/arrow-parens": { + "count": 3 + }, + "style/indent": { + "count": 4 + }, + "style/indent-binary-ops": { + "count": 2 + }, + "style/member-delimiter-style": { + "count": 6 + }, + "style/multiline-ternary": { + "count": 4 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/components/chat/ListChatPlayer.tsx": { + "curly": { + "count": 5 + }, + "style/arrow-parens": { + "count": 9 + }, + "style/brace-style": { + "count": 2 + }, + "style/jsx-curly-brace-presence": { + "count": 1 + }, + "style/jsx-one-expression-per-line": { + "count": 3 + }, + "style/jsx-wrap-multilines": { + "count": 1 + }, + "style/member-delimiter-style": { + "count": 2 + }, + "style/multiline-ternary": { + "count": 12 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/components/chat/stream.ts": { + "style/brace-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/components/widgets/simulators/mocks.tsx": { + "style/quotes": { + "count": 3 + } + }, + "apps/landing/src/constants/download.ts": { + "style/member-delimiter-style": { + "count": 1 + } + }, + "apps/landing/src/constants/env.ts": { + "curly": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 5 + } + }, + "apps/landing/src/constants/site.ts": { + "style/quote-props": { + "count": 2 + } + }, + "apps/landing/src/hooks/biz/use-github-star.ts": { + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/hooks/common/use-click-away.ts": { + "@typescript-eslint/no-unsafe-function-type": { + "count": 1 + }, + "style/indent-binary-ops": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 2 + }, + "ts/no-unsafe-function-type": { + "count": 2 + } + }, + "apps/landing/src/hooks/common/use-is-client.ts": { + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + } + }, + "apps/landing/src/hooks/common/use-is-mounted.ts": { + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 1 + } + }, + "apps/landing/src/hooks/common/use-sync-effect.ts": { + "curly": { + "count": 1 + } + }, + "apps/landing/src/hooks/common/useMeasure.ts": { + "curly": { + "count": 4 + }, + "style/arrow-parens": { + "count": 4 + }, + "style/exp-list-style": { + "count": 2 + }, + "style/member-delimiter-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/hooks/shared/use-mask-scrollarea.ts": { + "curly": { + "count": 2 + }, + "react-hooks-extra/no-direct-set-state-in-use-effect": { + "count": 20 + }, + "style/arrow-parens": { + "count": 1 + }, + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/i18n/request.ts": { + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/i18n/routing.ts": { + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/legal/privacy.md": { + "hyoban/md-one-sentence-per-line": { + "count": 17 + }, + "md/no-curly-quote": { + "count": 12 + } + }, + "apps/landing/src/legal/tos.md": { + "hyoban/md-one-sentence-per-line": { + "count": 38 + }, + "md/no-curly-quote": { + "count": 19 + } + }, + "apps/landing/src/lib/color.ts": { + "style/arrow-parens": { + "count": 1 + }, + "style/brace-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 4 + } + }, + "apps/landing/src/lib/datetime.ts": { + "style/brace-style": { + "count": 5 + } + }, + "apps/landing/src/lib/dom.ts": { + "style/arrow-parens": { + "count": 2 + }, + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/lib/env.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/landing/src/lib/helper.ts": { + "one-var": { + "count": 1 + } + }, + "apps/landing/src/lib/jotai.ts": { + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/lib/platform.ts": { + "style/brace-style": { + "count": 2 + } + }, + "apps/landing/src/lib/scroller.ts": { + "style/operator-linebreak": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/landing/src/lib/sleep.ts": { + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/providers/root/event-provider.tsx": { + "style/brace-style": { + "count": 1 + } + }, + "apps/landing/src/providers/root/index.tsx": { + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/src/providers/root/page-scroll-info-provider.tsx": { + "react-refresh/only-export-components": { + "count": 5 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/landing/src/providers/root/react-query-provider.tsx": { + "curly": { + "count": 1 + }, + "style/brace-style": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/src/providers/shared/LayoutRightSideProvider.tsx": { + "curly": { + "count": 2 + } + }, + "apps/landing/src/providers/shared/WrappedElementProvider.tsx": { + "curly": { + "count": 2 + }, + "react-refresh/only-export-components": { + "count": 5 + }, + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/landing/src/proxy.ts": { + "style/arrow-parens": { + "count": 1 + }, + "style/operator-linebreak": { + "count": 1 + } + }, + "apps/landing/tsconfig.json": { + "jsonc/sort-keys": { + "count": 9 + } + }, + "apps/landing/worker/index.js": { + "style/arrow-parens": { + "count": 1 + } + }, + "apps/landing/wrangler.jsonc": { + "jsonc/comma-dangle": { + "count": 9 + } + }, + "apps/mobile/AGENTS.md": { + "md/code-lang-shorthand": { + "count": 1 + } + }, + "apps/mobile/README.md": { + "markdown/fenced-code-language": { + "count": 1 + }, + "md/code-lang-shorthand": { + "count": 3 + }, + "md/no-url-trailing-slash": { + "count": 4 + } + }, + "apps/mobile/app.config.ts": { + "node/prefer-global/process": { + "count": 3 + }, + "ts/no-require-imports": { + "count": 4 + } + }, + "apps/mobile/changelog/0.1.6.md": { + "md/no-curly-quote": { + "count": 1 + }, + "md/no-irregular-dash": { + "count": 6 + }, + "md/no-irregular-whitespace": { + "count": 2 + } + }, + "apps/mobile/changelog/0.1.8.md": { + "md/no-curly-quote": { + "count": 2 + }, + "md/no-irregular-dash": { + "count": 1 + } + }, + "apps/mobile/changelog/0.1.9.md": { + "md/no-curly-quote": { + "count": 1 + } + }, + "apps/mobile/changelog/0.2.0.md": { + "md/no-curly-quote": { + "count": 1 + } + }, + "apps/mobile/changelog/0.2.1.md": { + "md/no-curly-quote": { + "count": 4 + } + }, + "apps/mobile/changelog/0.2.4.md": { + "md/no-irregular-dash": { + "count": 2 + } + }, + "apps/mobile/native/README.md": { + "markdown/fenced-code-language": { + "count": 1 + }, + "markdown/heading-increment": { + "count": 1 + }, + "markdown/no-multiple-h1": { + "count": 4 + }, + "md/no-url-trailing-slash": { + "count": 4 + } + }, + "apps/mobile/plugins/with-follow-assets.js": { + "no-console": { + "count": 1 + } + }, + "apps/mobile/scripts/apply-changelog.ts": { + "node/prefer-global/process": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/mobile/src/@types/constants.ts": { + "no-useless-computed-key": { + "count": 4 + } + }, + "apps/mobile/src/App.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/atoms/settings/internal/helper.ts": { + "ts/ban-ts-comment": { + "count": 2 + } + }, + "apps/mobile/src/components/common/BlurEffect.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/common/ErrorBoundary.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/common/RefreshControl.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/common/SwipeableItem.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/components/layouts/header/FakeNativeHeaderTitle.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/layouts/header/NavigationHeader.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/mobile/src/components/layouts/tabbar/ReactNativeTab.ios.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/layouts/tabbar/Tabbar.tsx": { + "ts/no-use-before-define": { + "count": 11 + } + }, + "apps/mobile/src/components/layouts/tabbar/hooks.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/mobile/src/components/native/PagerView/index.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/native/webview/hooks.ts": { + "ts/no-require-imports": { + "count": 1 + } + }, + "apps/mobile/src/components/native/webview/native-webview.android.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/components/ui/accordion/AccordionItem.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/button/UIBarButton.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/carousel/MediaCarousel.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/context-menu/index.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/form/FormProvider.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/form/PickerIos.tsx": { + "@eslint-react/no-array-index-key": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/form/TextField.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/grouped/GroupedList.tsx": { + "@typescript-eslint/no-unsafe-function-type": { + "count": 1 + }, + "ts/no-unsafe-function-type": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/icon/fallback-icon.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/lightbox/ImageViewing/components/ImageDefaultHeader.tsx": { + "ts/no-use-before-define": { + "count": 9 + } + }, + "apps/mobile/src/components/ui/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx": { + "ts/ban-ts-comment": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/lightbox/ImageViewing/index.tsx": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/mobile/src/components/ui/lightbox/ImageViewing/transforms.ts": { + "one-var": { + "count": 3 + } + }, + "apps/mobile/src/components/ui/lightbox/lightboxState.tsx": { + "react-refresh/only-export-components": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/modal/imperative-modal/index.tsx": { + "react-refresh/only-export-components": { + "count": 2 + } + }, + "apps/mobile/src/components/ui/modal/imperative-modal/modal.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/qrcode/QRCode.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/qrcode/useQRCodeData.ts": { + "no-useless-return": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/slider/Slider.tsx": { + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/mobile/src/components/ui/slider/index.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/switch/Switch.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/components/ui/tabview/TabBar.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/mobile/src/components/ui/tabview/TabView.tsx": { + "@typescript-eslint/no-empty-object-type": { + "count": 1 + }, + "ts/no-empty-object-type": { + "count": 2 + }, + "ts/no-redeclare": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/toast/CenteredToast.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/mobile/src/components/ui/toast/ctx.tsx": { + "ts/no-redeclare": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/toast/manager.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/mobile/src/components/ui/typography/MonoText.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/database/index.ts": { + "no-console": { + "count": 1 + } + }, + "apps/mobile/src/hooks/useBackHandler.ts": { + "@eslint-react/web-api/no-leaked-event-listener": { + "count": 1 + } + }, + "apps/mobile/src/hooks/useIntentHandler.ts": { + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/initialize/index.ts": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/mobile/src/initialize/player.ts": { + "import/no-mutable-exports": { + "count": 1 + } + }, + "apps/mobile/src/lib/api-client.ts": { + "dot-notation": { + "count": 1 + } + }, + "apps/mobile/src/lib/client-session.ts": { + "one-var": { + "count": 1 + } + }, + "apps/mobile/src/lib/dialog.tsx": { + "react-refresh/only-export-components": { + "count": 4 + }, + "ts/no-use-before-define": { + "count": 9 + } + }, + "apps/mobile/src/lib/error-parser.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/lib/image.ts": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/lib/loading.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/lib/native/index.ios.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/lib/native/index.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/lib/navigation/StackNavigation.tsx": { + "ts/no-use-before-define": { + "count": 14 + } + }, + "apps/mobile/src/lib/navigation/WrappedScreenItem.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/lib/navigation/bottom-tab/TabBarPortal.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/lib/navigation/debug/DebugButtonGroup.tsx": { + "ts/no-use-before-define": { + "count": 10 + } + }, + "apps/mobile/src/lib/navigation/types.ts": { + "@typescript-eslint/no-empty-object-type": { + "count": 1 + }, + "ts/no-empty-object-type": { + "count": 1 + } + }, + "apps/mobile/src/main.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 3 + } + }, + "apps/mobile/src/modules/ai/summary.tsx": { + "ts/no-use-before-define": { + "count": 10 + } + }, + "apps/mobile/src/modules/context-menu/feeds.tsx": { + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/modules/context-menu/video.tsx": { + "no-useless-return": { + "count": 1 + } + }, + "apps/mobile/src/modules/debug/index.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/mobile/src/modules/dialogs/UpgradeRequiredDialog.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/discover/Category.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/discover/Recommendations.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/discover/SearchContent.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/discover/ctx.tsx": { + "react-refresh/only-export-components": { + "count": 5 + } + }, + "apps/mobile/src/modules/discover/search-tabs/SearchList.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/discover/search.tsx": { + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/mobile/src/modules/entry-content/EntryContentHeaderRightActions.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-content/EntryNavigationHeader.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-content/pull-up-navigation/use-pull-up-navigation.android.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-content/pull-up-navigation/use-pull-up-navigation.tsx": { + "no-useless-return": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/EntryListContentArticle.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/EntryListContentPicture.tsx": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/mobile/src/modules/entry-list/EntryListContentSocial.tsx": { + "@eslint-react/hooks-extra/no-unnecessary-use-callback": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/EntryListContentVideo.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/entry-list/EntryListSelector.tsx": { + "react-refresh/only-export-components": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/index.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/entry-list/templates/EntryNormalItem.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/mobile/src/modules/entry-list/templates/EntryPictureItem.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/templates/EntrySocialItem.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/entry-list/templates/EntryVideoItem.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/list/FollowList.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/login/email.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/mobile/src/modules/login/index.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/onboarding/step-preferences.tsx": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/mobile/src/modules/player/GlassPlayerTabBar.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/player/control.tsx": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "apps/mobile/src/modules/rsshub/preview-url.tsx": { + "no-console": { + "count": 1 + } + }, + "apps/mobile/src/modules/screen/PagerList.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/screen/TimelineSelectorProvider.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/screen/action.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/screen/atoms.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/modules/settings/components/OTPWindow.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/settings/routes/Account.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/settings/routes/Actions.tsx": { + "ts/no-use-before-define": { + "count": 7 + } + }, + "apps/mobile/src/modules/settings/routes/EditProfile.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/modules/settings/routes/EditRule.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/mobile/src/modules/settings/routes/Lists.tsx": { + "ts/no-use-before-define": { + "count": 7 + } + }, + "apps/mobile/src/modules/settings/routes/ManageList.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/modules/settings/routes/Plan.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/modules/subscription/SubscriptionLists.tsx": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/mobile/src/modules/subscription/items/ListSubscriptionItem.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/providers/ServerConfigsLoader.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/providers/index.tsx": { + "@eslint-react/no-missing-key": { + "count": 1 + }, + "react/no-missing-key": { + "count": 13 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/screens/(headless)/(debug)/text.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/screens/(headless)/DebugScreen.tsx": { + "ts/no-use-before-define": { + "count": 15 + } + }, + "apps/mobile/src/screens/(modal)/ForgetPasswordScreen.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/screens/(modal)/ListScreen.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/screens/(modal)/ProfileScreen.tsx": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "apps/mobile/src/screens/(modal)/RsshubFormScreen.tsx": { + "no-console": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 5 + } + }, + "apps/mobile/src/screens/(modal)/onboarding/SelectReadingModeScreen.tsx": { + "ts/no-use-before-define": { + "count": 6 + } + }, + "apps/mobile/src/screens/(stack)/(tabs)/settings.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/mobile/src/screens/(stack)/(tabs)/subscriptions.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/src/screens/(stack)/entries/[entryId]/EntryDetailScreen.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/src/sitemap.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/tailwind.config.ts": { + "ts/no-require-imports": { + "count": 2 + } + }, + "apps/mobile/tsconfig.json": { + "jsonc/sort-keys": { + "count": 6 + } + }, + "apps/mobile/web-app/html-renderer/src/common/WrappedElementProvider.tsx": { + "react-refresh/only-export-components": { + "count": 4 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/mobile/web-app/html-renderer/src/components/shiki/Shiki.tsx": { + "dot-notation": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/mobile/web-app/html-renderer/src/managers/webview-bridge.ts": { + "ts/ban-ts-comment": { + "count": 2 + } + }, + "apps/mobile/web-app/html-renderer/src/parser.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/mobile/web-app/html-renderer/tsconfig.json": { + "jsonc/sort-keys": { + "count": 6 + } + }, + "apps/ssr/api/index.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/ssr/client/@types/constants.ts": { + "no-useless-computed-key": { + "count": 3 + } + }, + "apps/ssr/client/atoms/settings/helper.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/ssr/client/components/items/grid.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/client/components/items/index.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/client/components/items/picture.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/ssr/client/i18n.ts": { + "no-console": { + "count": 1 + } + }, + "apps/ssr/client/initialize/sentry.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/client/lib/helper.ts": { + "no-console": { + "count": 1 + }, + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/client/modules/login/index.tsx": { + "no-useless-return": { + "count": 1 + } + }, + "apps/ssr/client/pages/(login)/layout.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/client/pages/(main)/share/users/[id]/index.tsx": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "apps/ssr/client/pages/(main)/share/users/[id]/metadata.ts": { + "no-undef-init": { + "count": 2 + }, + "prefer-promise-reject-errors": { + "count": 2 + } + }, + "apps/ssr/client/providers/root-providers.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "apps/ssr/client/query/entries.ts": { + "dot-notation": { + "count": 1 + } + }, + "apps/ssr/client/router.tsx": { + "dot-notation": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/ssr/global.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/ssr/helper/meta-map.ts": { + "no-console": { + "count": 5 + }, + "node/prefer-global/process": { + "count": 3 + } + }, + "apps/ssr/index.ts": { + "no-console": { + "count": 2 + }, + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/ssr/postcss.config.cjs": { + "node/prefer-global/process": { + "count": 1 + } + }, + "apps/ssr/src/lib/api-client.ts": { + "no-console": { + "count": 1 + }, + "no-useless-return": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/src/lib/dev-vite.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/ssr/src/lib/og/fonts.ts": { + "import/no-mutable-exports": { + "count": 1 + } + }, + "apps/ssr/src/router/global.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "apps/ssr/src/router/og/__base.tsx": { + "node/prefer-global/buffer": { + "count": 1 + }, + "react-refresh/only-export-components": { + "count": 1 + } + }, + "apps/ssr/src/router/og/feed.tsx": { + "no-throw-literal": { + "count": 1 + } + }, + "apps/ssr/src/router/og/index.ts": { + "node/prefer-global/buffer": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "apps/ssr/src/router/og/list.tsx": { + "no-throw-literal": { + "count": 1 + } + }, + "apps/ssr/src/router/og/user.tsx": { + "no-throw-literal": { + "count": 1 + } + }, + "apps/ssr/tsconfig.json": { + "jsonc/sort-keys": { + "count": 10 + } + }, + "apps/ssr/tsdown.config.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "apps/ssr/worker-entry.ts": { + "node/prefer-global/buffer": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "changelogithub.config.ts": { + "node/prefer-global/process": { + "count": 1 + } + }, + "packages/configs/tailwindcss/tw-css-plugin.js": { + "node/no-deprecated-api": { + "count": 1 + } + }, + "packages/configs/tailwindcss/web.ts": { + "ts/no-require-imports": { + "count": 6 + } + }, + "packages/configs/tsconfig.extend.json": { + "jsonc/sort-keys": { + "count": 9 + } + }, + "packages/internal/atoms/package.json": { + "jsonc/sort-keys": { + "count": 2 + } + }, + "packages/internal/atoms/src/helper/setting.ts": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "packages/internal/atoms/tsconfig.json": { + "jsonc/sort-keys": { + "count": 2 + } + }, + "packages/internal/components/src/common/Focusable/Focusable.tsx": { + "no-console": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/common/Focusable/GlobalFocusableProvider.tsx": { + "no-console": { + "count": 1 + } + }, + "packages/internal/components/src/common/Focusable/hooks.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/providers/stable-router-provider.tsx": { + "@typescript-eslint/no-empty-object-type": { + "count": 1 + } + }, + "packages/internal/components/src/ui/button/action-button.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "packages/internal/components/src/ui/collapse/Collapse.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "packages/internal/components/src/ui/collapse/CollapseCss.tsx": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "packages/internal/components/src/ui/form/index.tsx": { + "react-refresh/only-export-components": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/ui/input/TextAreaWrapper.tsx": { + "react-refresh/only-export-components": { + "count": 1 + } + }, + "packages/internal/components/src/ui/kbd/Kbd.tsx": { + "ts/ban-ts-comment": { + "count": 2 + }, + "ts/no-use-before-define": { + "count": 4 + } + }, + "packages/internal/components/src/ui/navigation-menu/index.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/ui/platform-icon/utils.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/ui/portal/provider.tsx": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/components/src/ui/progressive-blur/index.tsx": { + "prefer-exponentiation-operator": { + "count": 1 + } + }, + "packages/internal/components/src/ui/radio-group/context.ts": { + "ts/no-redeclare": { + "count": 1 + } + }, + "packages/internal/components/src/ui/segment/index.tsx": { + "@eslint-react/no-context-provider": { + "count": 1 + } + }, + "packages/internal/components/src/ui/shrinking-focus-border/index.tsx": { + "prefer-exponentiation-operator": { + "count": 2 + } + }, + "packages/internal/components/src/utils/parse-markdown.tsx": { + "ts/ban-ts-comment": { + "count": 1 + } + }, + "packages/internal/components/tsconfig.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/constants/tsconfig.json": { + "jsonc/sort-keys": { + "count": 2 + } + }, + "packages/internal/database/package.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/database/src/db.desktop.ts": { + "import/no-mutable-exports": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 3 + } + }, + "packages/internal/database/src/db.rn.ts": { + "import/no-mutable-exports": { + "count": 2 + } + }, + "packages/internal/hooks/src/factory/createHTMLMediaHook.ts": { + "no-useless-return": { + "count": 1 + } + }, + "packages/internal/hooks/src/optimistic/useOptimisticMutation.ts": { + "prefer-exponentiation-operator": { + "count": 1 + } + }, + "packages/internal/hooks/src/useLongPress.ts": { + "prefer-exponentiation-operator": { + "count": 2 + } + }, + "packages/internal/hooks/src/useMeasure.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/hooks/src/useRefValue.ts": { + "@typescript-eslint/no-unsafe-function-type": { + "count": 1 + }, + "ts/no-unsafe-function-type": { + "count": 1 + } + }, + "packages/internal/hooks/src/useSmoothScroll.ts": { + "prefer-exponentiation-operator": { + "count": 1 + } + }, + "packages/internal/hooks/tsconfig.json": { + "jsonc/sort-keys": { + "count": 4 + } + }, + "packages/internal/logger/tsconfig.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/models/package.json": { + "jsonc/sort-keys": { + "count": 1 + } + }, + "packages/internal/models/tsconfig.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/shared/package.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/shared/src/auth.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/shared/src/bridge.ts": { + "ts/ban-ts-comment": { + "count": 3 + } + }, + "packages/internal/shared/src/constants.ts": { + "dot-notation": { + "count": 1 + }, + "no-shadow-restricted-names": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 5 + } + }, + "packages/internal/shared/src/env.desktop.ts": { + "no-shadow-restricted-names": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 3 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/shared/src/env.rn.ts": { + "node/prefer-global/process": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/shared/src/env.ssr.ts": { + "node/prefer-global/process": { + "count": 3 + } + }, + "packages/internal/shared/src/event.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/shared/tsconfig.json": { + "jsonc/sort-keys": { + "count": 3 + } + }, + "packages/internal/store/package.json": { + "jsonc/sort-keys": { + "count": 17 + } + }, + "packages/internal/store/src/lib/helper.ts": { + "no-shadow-restricted-names": { + "count": 1 + }, + "no-useless-return": { + "count": 1 + } + }, + "packages/internal/store/src/modules/action/store.ts": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "packages/internal/store/src/modules/collection/store.ts": { + "ts/no-use-before-define": { + "count": 5 + } + }, + "packages/internal/store/src/modules/entry/store.ts": { + "ts/no-use-before-define": { + "count": 9 + } + }, + "packages/internal/store/src/modules/feed/getter.ts": { + "no-useless-return": { + "count": 1 + } + }, + "packages/internal/store/src/modules/feed/hooks.ts": { + "ts/ban-ts-comment": { + "count": 2 + } + }, + "packages/internal/store/src/modules/feed/store.ts": { + "dot-notation": { + "count": 3 + }, + "ts/no-use-before-define": { + "count": 6 + } + }, + "packages/internal/store/src/modules/image/store.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/store/src/modules/inbox/store.ts": { + "ts/no-use-before-define": { + "count": 7 + } + }, + "packages/internal/store/src/modules/list/store.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/store/src/modules/subscription/store.ts": { + "ts/no-use-before-define": { + "count": 3 + } + }, + "packages/internal/store/src/modules/translation/store.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/store/src/modules/unread/store.ts": { + "ts/no-use-before-define": { + "count": 8 + } + }, + "packages/internal/store/src/modules/user/store.ts": { + "ts/no-use-before-define": { + "count": 4 + } + }, + "packages/internal/store/src/morph/store-db.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/tracker/src/manager.ts": { + "no-console": { + "count": 1 + }, + "prefer-exponentiation-operator": { + "count": 1 + } + }, + "packages/internal/tracker/src/op/index.ts": { + "node/prefer-global/process": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "packages/internal/tracker/src/utils.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/utils/package.json": { + "jsonc/sort-keys": { + "count": 4 + } + }, + "packages/internal/utils/src/chain.ts": { + "no-throw-literal": { + "count": 1 + } + }, + "packages/internal/utils/src/cjk.ts": { + "unicorn/number-literal-case": { + "count": 8 + } + }, + "packages/internal/utils/src/color.ts": { + "one-var": { + "count": 1 + }, + "unicorn/number-literal-case": { + "count": 3 + } + }, + "packages/internal/utils/src/event-bus.rn.ts": { + "@typescript-eslint/no-empty-object-type": { + "count": 1 + } + }, + "packages/internal/utils/src/event-bus.ts": { + "@typescript-eslint/no-empty-object-type": { + "count": 1 + } + }, + "packages/internal/utils/src/headers.ts": { + "node/prefer-global/process": { + "count": 3 + } + }, + "packages/internal/utils/src/jotai.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/utils/src/lru-cache.test.ts": { + "test/prefer-lowercase-title": { + "count": 1 + } + }, + "packages/internal/utils/src/path-parser.test.ts": { + "test/consistent-test-it": { + "count": 26 + }, + "test/no-identical-title": { + "count": 1 + } + }, + "packages/internal/utils/src/path-parser.ts": { + "ts/no-use-before-define": { + "count": 1 + } + }, + "packages/internal/utils/src/scroller.ts": { + "ts/no-use-before-define": { + "count": 2 + } + }, + "packages/internal/utils/src/utils.spec.ts": { + "test/consistent-test-it": { + "count": 5 + } + }, + "packages/internal/utils/src/utils.ts": { + "one-var": { + "count": 1 + }, + "prefer-exponentiation-operator": { + "count": 1 + }, + "ts/ban-ts-comment": { + "count": 1 + } + }, + "packages/internal/utils/tsconfig.json": { + "jsonc/sort-keys": { + "count": 2 + } + }, + "packages/internal/utils/vitest.config.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "packages/readability/src/index.ts": { + "node/prefer-global/buffer": { + "count": 1 + }, + "node/prefer-global/process": { + "count": 1 + }, + "ts/no-use-before-define": { + "count": 2 + } + }, + "packages/readability/tsconfig.json": { + "jsonc/sort-keys": { + "count": 1 + } + }, + "plugins/eslint/eslint-package-json.js": { + "object-shorthand": { + "count": 2 + } + }, + "scripts/svg-to-rn.ts": { + "node/prefer-global/process": { + "count": 2 + } + }, + "tsconfig.json": { + "jsonc/sort-keys": { + "count": 1 + } + }, + "wiki/contribute-i18n.md": { + "md/code-lang-shorthand": { + "count": 1 + } + } +} diff --git a/eslint.config.mjs b/eslint.config.mjs index 1c032ec94f..e53c8c3ccb 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -11,7 +11,7 @@ import recursiveSort from "./plugins/eslint/eslint-recursive-sort.js" export default defineConfig( { - formatting: false, + stylistic: false, lessOpinionated: true, ignores: [ "resources/**", @@ -21,9 +21,14 @@ export default defineConfig( "apps/mobile/native/build/**", "**/generated-routes.ts", ], - preferESM: false, - tailwindCSS: { - order: false, + hyoban: false, + tailwindcss: { + overrides: { + "tailwindcss/enforce-consistent-class-order": "off", + }, + settings: { + tailwindConfig: path.join(import.meta.dirname, "apps/desktop/tailwind.config.ts"), + }, }, }, { @@ -37,10 +42,10 @@ export default defineConfig( }, rules: { "no-debug/no-debug-stack": "error", - "@eslint-react/no-clone-element": 0, - "@eslint-react/hooks-extra/no-direct-set-state-in-use-effect": 0, - "@eslint-react/dom/no-flush-sync": 1, - "@eslint-react/hooks-extra/no-unnecessary-use-callback": "warn", + "react/no-clone-element": 0, + "react-hooks-extra/no-direct-set-state-in-use-effect": 0, + "react-dom/no-flush-sync": 1, + "react/no-unnecessary-use-callback": "warn", "unicorn/no-array-callback-reference": 0, "no-restricted-syntax": 0, "no-restricted-globals": [ @@ -74,36 +79,36 @@ export default defineConfig( }, }, // use correct tailwind config for eslint - { - settings: { - tailwindcss: { - config: path.join(import.meta.dirname, "apps/desktop/tailwind.config.ts"), - }, - }, - }, { files: ["apps/ssr/**/*"], settings: { - tailwindcss: { - config: path.join(import.meta.dirname, "apps/ssr/tailwind.config.ts"), + "better-tailwindcss": { + tailwindConfig: path.join(import.meta.dirname, "apps/ssr/tailwind.config.ts"), }, }, }, { files: ["apps/mobile/**/*"], settings: { - tailwindcss: { - config: path.join(import.meta.dirname, "apps/mobile/tailwind.config.ts"), + "better-tailwindcss": { + tailwindConfig: path.join(import.meta.dirname, "apps/mobile/tailwind.config.ts"), }, }, }, { - files: ["**/*.tsx"], - rules: { - "@stylistic/jsx-self-closing-comp": "error", + files: ["apps/landing/**/*"], + settings: { + "better-tailwindcss": { + tailwindConfig: path.join(import.meta.dirname, "apps/landing/src/styles/globals.css"), + }, }, }, - // @ts-expect-error + // { + // files: ["**/*.tsx"], + // rules: { + // "@stylistic/jsx-self-closing-comp": "error", + // }, + // }, { files: ["locales/**/*.json"], plugins: { @@ -149,7 +154,7 @@ export default defineConfig( // @ts-expect-error "react-native": fixupPluginRules(reactNative), }, - files: ["apps/mobile/**/*"], + files: ["apps/mobile/**/*.{js,ts,tsx}"], rules: { "react-native/no-inline-styles": "warn", }, diff --git a/package.json b/package.json index 797e476a48..6eeae860a8 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@babel/parser": "7.29.0", "@babel/traverse": "7.29.0", "@babel/types": "7.29.0", - "@eslint/compat": "1.4.1", + "@eslint/compat": "2.0.2", "@tsslint/cli": "2.0.7", "@tsslint/config": "2.0.7", "@tsslint/eslint": "2.0.7", @@ -46,8 +46,8 @@ "@types/react-dom": "19.2.3", "@vercel/node": "5.6.3", "cross-env": "10.1.0", - "eslint": "9.39.1", - "eslint-config-hyoban": "4.0.10", + "eslint": "10.0.2", + "eslint-config-hyoban": "6.0.0", "eslint-plugin-react-native": "5.0.0", "fast-glob": "3.3.3", "glob": "11.0.3", @@ -61,6 +61,7 @@ "serialize-error": "2.1.0", "simple-git-hooks": "2.13.1", "svg-parser": "2.0.4", + "tailwindcss": "3.4.17", "tar": "7.5.7", "tsx": "4.21.0", "turbo": "2.8.7", diff --git a/packages/configs/package.json b/packages/configs/package.json index c06b302b47..2c1cf8f38f 100644 --- a/packages/configs/package.json +++ b/packages/configs/package.json @@ -29,6 +29,7 @@ "devDependencies": { "postcss": "8.5.6", "postcss-js": "5.0.3", + "tailwindcss": "3.4.17", "workspace-root": "3.3.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d0265d7236..4a7cf26e14 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,6 +33,7 @@ overrides: array.prototype.flatmap: npm:@nolyfill/array.prototype.flatmap@latest array.prototype.tosorted: npm:@nolyfill/array.prototype.tosorted@latest drizzle-orm: 0.45.1 + eslint-plugin-react-hooks>zod-validation-error: 4.0.2 global-agent>serialize-error: 7.0.1 has: npm:@nolyfill/has@latest is-core-module: npm:@nolyfill/is-core-module@1.0.39 @@ -95,8 +96,8 @@ importers: specifier: 7.29.0 version: 7.29.0 '@eslint/compat': - specifier: 1.4.1 - version: 1.4.1(eslint@9.39.1(jiti@2.6.1)) + specifier: 2.0.2 + version: 2.0.2(eslint@10.0.2(jiti@2.6.1)) '@tsslint/cli': specifier: 2.0.7 version: 2.0.7(typescript@5.9.3) @@ -122,14 +123,14 @@ importers: specifier: 10.1.0 version: 10.1.0 eslint: - specifier: 9.39.1 - version: 9.39.1(jiti@2.6.1) + specifier: 10.0.2 + version: 10.0.2(jiti@2.6.1) eslint-config-hyoban: - specifier: 4.0.10 - version: 4.0.10(@types/estree@1.0.8)(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(tailwindcss@4.1.16)(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) + specifier: 6.0.0 + version: 6.0.0(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@10.0.2(jiti@2.6.1))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) eslint-plugin-react-native: specifier: 5.0.0 - version: 5.0.0(eslint@9.39.1(jiti@2.6.1)) + version: 5.0.0(eslint@10.0.2(jiti@2.6.1)) fast-glob: specifier: 3.3.3 version: 3.3.3 @@ -144,7 +145,7 @@ importers: version: 3.8.1 prettier-plugin-tailwindcss: specifier: 0.7.2 - version: 0.7.2(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.8.1))(prettier@3.8.1) + version: 0.7.2(@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1))(prettier@3.8.1) raw-body: specifier: 3.0.2 version: 3.0.2 @@ -166,6 +167,9 @@ importers: svg-parser: specifier: 2.0.4 version: 2.0.4 + tailwindcss: + specifier: 3.4.17 + version: 3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)) tar: specifier: 7.5.7 version: 7.5.7 @@ -864,7 +868,7 @@ importers: version: 5.0.68(zod@4.3.6) axios: specifier: 1.13.0 - version: 1.13.0 + version: 1.13.0(debug@4.4.3) clsx: specifier: 2.1.1 version: 2.1.1 @@ -985,7 +989,7 @@ importers: version: 1.2.0 '@innei/prettier': specifier: 1.0.0 - version: 1.0.0 + version: 1.0.0(@vue/compiler-sfc@3.5.29) '@tailwindcss/postcss': specifier: 4.1.16 version: 4.1.16 @@ -1022,12 +1026,6 @@ importers: dotenv: specifier: 17.2.3 version: 17.2.3 - eslint: - specifier: 9.38.0 - version: 9.38.0(jiti@2.6.1) - eslint-config-hyoban: - specifier: 4.0.10 - version: 4.0.10(@types/estree@1.0.8)(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(tailwindcss@4.1.16)(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) postcss: specifier: 8.5.6 version: 8.5.6 @@ -1674,9 +1672,6 @@ importers: es-toolkit: specifier: 1.44.0 version: 1.44.0 - tailwindcss: - specifier: '>=3 || <4' - version: 3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)) tailwindcss-animate: specifier: 1.0.7 version: 1.0.7(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))) @@ -1699,6 +1694,9 @@ importers: postcss-js: specifier: 5.0.3 version: 5.0.3(postcss@8.5.6) + tailwindcss: + specifier: 3.4.17 + version: 3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)) workspace-root: specifier: 3.3.1 version: 3.3.1 @@ -2084,7 +2082,7 @@ importers: version: 0.1.44(@opentelemetry/api@1.9.0)(better-sqlite3@12.6.2)(expo-sqlite@16.0.10(expo@54.0.33)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0))(hono@4.12.1)(kysely@0.28.11) '@t3-oss/env-core': specifier: 0.13.10 - version: 0.13.10(typescript@5.9.3)(zod@3.25.76) + version: 0.13.10(typescript@5.9.3)(valibot@1.2.0(typescript@5.9.3))(zod@3.25.76) ai: specifier: 6.0.85 version: 6.0.85(zod@3.25.76) @@ -2308,8 +2306,69 @@ packages: resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - '@altano/repository-tools@2.0.1': - resolution: {integrity: sha512-YE/52CkFtb+YtHPgbWPai7oo5N9AKnMuP5LM+i2AG7G1H2jdYBCO1iDnkDE3dZ3C1MIgckaF+d5PNRulgt0bdw==} + '@antfu/eslint-config@7.6.1': + resolution: {integrity: sha512-MRiskHFHYPF0R3eWDUkPPiHUM3fWXwAviVv9O8iMH5hVJkgp60oJYBMzbImKdqSGMuuyOMY3GXxWbH60t9rK0g==} + hasBin: true + peerDependencies: + '@angular-eslint/eslint-plugin': ^21.1.0 + '@angular-eslint/eslint-plugin-template': ^21.1.0 + '@angular-eslint/template-parser': ^21.1.0 + '@eslint-react/eslint-plugin': ^2.11.0 + '@next/eslint-plugin-next': '>=15.0.0' + '@prettier/plugin-xml': ^3.4.1 + '@unocss/eslint-plugin': '>=0.50.0' + astro-eslint-parser: ^1.0.2 + eslint: ^9.10.0 || ^10.0.0 + eslint-plugin-astro: ^1.2.0 + eslint-plugin-format: '>=0.1.0' + eslint-plugin-jsx-a11y: '>=6.10.2' + eslint-plugin-react-hooks: ^7.0.0 + eslint-plugin-react-refresh: ^0.5.0 + eslint-plugin-solid: ^0.14.3 + eslint-plugin-svelte: '>=2.35.1' + eslint-plugin-vuejs-accessibility: ^2.4.1 + prettier-plugin-astro: ^0.14.0 + prettier-plugin-slidev: ^1.0.5 + svelte-eslint-parser: '>=0.37.0' + peerDependenciesMeta: + '@angular-eslint/eslint-plugin': + optional: true + '@angular-eslint/eslint-plugin-template': + optional: true + '@angular-eslint/template-parser': + optional: true + '@eslint-react/eslint-plugin': + optional: true + '@next/eslint-plugin-next': + optional: true + '@prettier/plugin-xml': + optional: true + '@unocss/eslint-plugin': + optional: true + astro-eslint-parser: + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-format: + optional: true + eslint-plugin-jsx-a11y: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + eslint-plugin-vuejs-accessibility: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-slidev: + optional: true + svelte-eslint-parser: + optional: true '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} @@ -2519,13 +2578,6 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@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-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} @@ -3137,9 +3189,15 @@ packages: '@clack/core@0.3.5': resolution: {integrity: sha512-5cfhQNH+1VQ2xLQlmzXMqUoiaH0lRBq9/CLW9lTyMbuKLC3+xEK01tHVvyut++mLOn5urSHmkm6I0Lg9MaJSTQ==} + '@clack/core@1.0.1': + resolution: {integrity: sha512-WKeyK3NOBwDOzagPR5H08rFk9D/WuN705yEbuZvKqlkmoLM2woKtXb10OO2k1NoSU4SFG947i2/SCYh+2u5e4g==} + '@clack/prompts@0.8.2': resolution: {integrity: sha512-6b9Ab2UiZwJYA9iMyboYyW9yJvAO9V753ZhS+DHKEjZRKAxPPOb7MXXu84lsPFG+vZt6FRFniZ8rXi+zCIw4yQ==} + '@clack/prompts@1.0.1': + resolution: {integrity: sha512-/42G73JkuYdyWZ6m8d/CJtBrGl1Hegyc7Fy78m5Ob+jF85TOUmLR5XLce/U3LxYAw0kJ8CT5aI99RIvPHcGp/Q==} + '@cloudflare/kv-asset-handler@0.4.2': resolution: {integrity: sha512-SIOD2DxrRRwQ+jgzlXCqoEFiKOFqaPjhnNTGKXSRLvp1HiOvapLaFG2kEr9dYQTYe8rKrd9uvDUzmAITeNyaHQ==} engines: {node: '>=18.0.0'} @@ -3303,6 +3361,15 @@ packages: '@dominicstop/ts-event-emitter@1.1.0': resolution: {integrity: sha512-CcxmJIvUb1vsFheuGGVSQf4KdPZC44XolpUT34+vlal+LyQoBUOn31pjFET5M9ctOxEpt8xa0M3/2M7uUiAoJw==} + '@dprint/formatter@0.5.1': + resolution: {integrity: sha512-cdZUrm0iv/FnnY3CKE2dEcVhNEzrC551aE2h2mTFwQCRBrqyARLDnb7D+3PlXTUVp3s34ftlnGOVCmhLT9DeKA==} + + '@dprint/markdown@0.21.1': + resolution: {integrity: sha512-XbZ/R7vRrBaZFYXG6vAvLvtaMVXHu8XB+xwie7OYrG+dPoGDP8UADGirIbzUyX8TmrAZcl6QBmalipTGlpzRmQ==} + + '@dprint/toml@0.7.0': + resolution: {integrity: sha512-eFaQTcfxKHB+YyTh83x7GEv+gDPuj9q5NFOTaoj5rZmQTbj6OgjjMxUicmS1R8zYcx8YAq5oA9J3YFa5U6x2gA==} + '@drizzle-team/brocli@0.10.2': resolution: {integrity: sha512-z33Il7l5dKjUgGULTqBsQBQwckHh5AbIuxhdsIxDDiZAzBOrZO6q9ogcWC65kU382AfynTfgNumVcNIjuIua6w==} @@ -3526,9 +3593,13 @@ packages: '@epic-web/invariant@1.0.0': resolution: {integrity: sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==} - '@es-joy/jsdoccomment@0.78.0': - resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} - engines: {node: '>=20.11.0'} + '@es-joy/jsdoccomment@0.84.0': + resolution: {integrity: sha512-0xew1CxOam0gV5OMjh2KjFQZsKL2bByX1+q4j3E73MpYIdyUxcZb/xQct9ccUb+ve5KGUYbCUxyPnYB7RbuP+w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@es-joy/resolve.exports@1.2.0': + resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} + engines: {node: '>=10'} '@esbuild-kit/core-utils@3.3.2': resolution: {integrity: sha512-sPRAnw9CdSsRmEtnsl2WXWdyquogVpB3yZ3dgwJfe8zrOzTsV7cJvmwrKVa+0ma5BoiGJ+BoqkMvawbayKUsqQ==} @@ -4138,6 +4209,12 @@ packages: cpu: [x64] os: [win32] + '@eslint-community/eslint-plugin-eslint-comments@4.6.0': + resolution: {integrity: sha512-2EX2bBQq1ez++xz2o9tEeEQkyvfieWgUFMH4rtJJri2q0Azvhja3hZGXsjPXs31R4fQkZDtWzNDDK2zQn5UE5g==} + 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 + '@eslint-community/eslint-utils@4.9.1': resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4148,45 +4225,50 @@ packages: resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint-react/ast@1.53.1': - resolution: {integrity: sha512-qvUC99ewtriJp9quVEOvZ6+RHcsMLfVQ0OhZ4/LupZUDhjW7GiX1dxJsFaxHdJ9rLNLhQyLSPmbAToeqUrSruQ==} - engines: {node: '>=18.18.0'} + '@eslint-react/ast@2.13.0': + resolution: {integrity: sha512-43+5gmqV3MpatTzKnu/V2i/jXjmepvwhrb9MaGQvnXHQgq9J7/C7VVCCcwp6Rvp2QHAFquAAdvQDSL8IueTpeA==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@eslint-react/core@1.53.1': - resolution: {integrity: sha512-8prroos5/Uvvh8Tjl1HHCpq4HWD3hV9tYkm7uXgKA6kqj0jHlgRcQzuO6ZPP7feBcK3uOeug7xrq03BuG8QKCA==} - engines: {node: '>=18.18.0'} + '@eslint-react/core@2.13.0': + resolution: {integrity: sha512-m62XDzkf1hpzW4sBc7uh7CT+8rBG2xz/itSADuEntlsg4YA7Jhb8hjU6VHf3wRFDwyfx5VnbV209sbJ7Azey0Q==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@eslint-react/eff@1.53.1': - resolution: {integrity: sha512-uq20lPRAmsWRjIZm+mAV/2kZsU2nDqn5IJslxGWe3Vfdw23hoyhEw3S1KKlxbftwbTvsZjKvVP0iw3bZo/NUpg==} - engines: {node: '>=18.18.0'} + '@eslint-react/eff@2.13.0': + resolution: {integrity: sha512-rEH2R8FQnUAblUW+v3ZHDU1wEhatbL1+U2B1WVuBXwSKqzF7BGaLqCPIU7o9vofumz5MerVfaCtJgI8jYe2Btg==} + engines: {node: '>=20.19.0'} - '@eslint-react/eslint-plugin@1.53.1': - resolution: {integrity: sha512-JZ2ciXNCC9CtBBAqYtwWH+Jy/7ZzLw+whei8atP4Fxsbh+Scs30MfEwBzuiEbNw6uF9eZFfPidchpr5RaEhqxg==} - engines: {node: '>=18.18.0'} + '@eslint-react/eslint-plugin@2.13.0': + resolution: {integrity: sha512-iaMXpqnJCTW7317hg8L4wx7u5aIiPzZ+d1p59X8wXFgMHzFX4hNu4IfV8oygyjmWKdLsjKE9sEpv/UYWczlb+A==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true - - '@eslint-react/kit@1.53.1': - resolution: {integrity: sha512-zOi2le9V4rMrJvQV4OeedGvMGvDT46OyFPOwXKs7m0tQu5vXVJ8qwIPaVQT1n/WIuvOg49OfmAVaHpGxK++xLQ==} - engines: {node: '>=18.18.0'} + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@eslint-react/shared@1.53.1': - resolution: {integrity: sha512-gomJQmFqQgQVI3Ra4vTMG/s6a4bx3JqeNiTBjxBJt4C9iGaBj458GkP4LJHX7TM6xUzX+fMSKOPX7eV3C/+UCw==} - engines: {node: '>=18.18.0'} + '@eslint-react/shared@2.13.0': + resolution: {integrity: sha512-IOloCqrZ7gGBT4lFf9+0/wn7TfzU7JBRjYwTSyb9SDngsbeRrtW95ZpgUpS8/jen1wUEm6F08duAooTZ2FtsWA==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@eslint-react/var@1.53.1': - resolution: {integrity: sha512-yzwopvPntcHU7mmDvWzRo1fb8QhjD8eDRRohD11rTV1u7nWO4QbJi0pOyugQakvte1/W11Y0Vr8Of0Ojk/A6zg==} - engines: {node: '>=18.18.0'} + '@eslint-react/var@2.13.0': + resolution: {integrity: sha512-dM+QaeiHR16qPQoJYg205MkdHYSWVa2B7ore5OFpOPlSwqDV3tLW7I+475WjbK7potq5QNPTxRa7VLp9FGeQqA==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@eslint/compat@1.4.1': - resolution: {integrity: sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/compat@2.0.2': + resolution: {integrity: sha512-pR1DoD0h3HfF675QZx0xsyrsU8q70Z/plx7880NOhS02NuWLgBCOMDL787nUeQ7EWLkxv3bPQJaarjcPQb2Dwg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: ^8.40 || 9 + eslint: ^8.40 || 9 || 10 peerDependenciesMeta: eslint: optional: true @@ -4195,17 +4277,17 @@ packages: resolution: {integrity: sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-array@0.21.1': - resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.2': + resolution: {integrity: sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/config-helpers@0.2.3': resolution: {integrity: sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/config-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-helpers@0.5.2': + resolution: {integrity: sha512-a5MxrdDXEvqnIq+LisyCX6tQMPF/dSJpCfBgBauY+pNZ28yCtSsTvyTYrMhaI+LK26bVyCJfJkT0u8KIj2i1dQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@eslint/core@0.14.0': resolution: {integrity: sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==} @@ -4215,14 +4297,18 @@ packages: resolution: {integrity: sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/core@0.16.0': - resolution: {integrity: sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==} - 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/core@1.1.0': + resolution: {integrity: sha512-/nr9K9wkr3P1EzFTdFdMoLuo1PmIxjmwvPozwoSodjNBdefGujXQUF93u1DDZpEaTuDvMsIQddsd35BwtrW9Xw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + + '@eslint/css-tree@3.6.9': + resolution: {integrity: sha512-3D5/OHibNEGk+wKwNwMbz63NMf367EoR4mVNNpxddCHKEb2Nez7z62J2U6YjtErSsZDoY0CsccmoUpdEbkogNA==} + engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} + '@eslint/eslintrc@3.3.3': resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4231,22 +4317,18 @@ packages: resolution: {integrity: sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.38.0': - resolution: {integrity: sha512-UZ1VpFvXf9J06YG9xQBdnzU+kthors6KjhMAl6f4gH4usHyh31rUf2DLGInT8RFYIReYXNSydgPY0V2LuWgl7A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.39.1': - resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} + '@eslint/markdown@7.5.1': + resolution: {integrity: sha512-R8uZemG9dKTbru/DQRPblbJyXpObwKzo8rv1KYGGuPUPtjM4LXBYM9q5CIZAComzZupws3tWbDwam5AFpPLyJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@eslint/object-schema@2.1.7': resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@3.0.2': + resolution: {integrity: sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/plugin-kit@0.3.5': resolution: {integrity: sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -4255,6 +4337,10 @@ packages: resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/plugin-kit@0.6.0': + resolution: {integrity: sha512-bIZEUzOI1jkhviX2cp5vNyXQc6olzb2ohewQubuYlMXZ2Q/XjBO0x0XhGPvc9fjSIiUN0vw+0hq53BJ4eQSJKQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@essentials/memoize-one@1.1.0': resolution: {integrity: sha512-HMkuIkKNe0EWSUpZhlaq9+5Yp47YhrMhxLMnXTRnEyE5N4xKLspAvMGjUFdi794VnEF1EcOZFS8rdROeujrgag==} @@ -5610,9 +5696,6 @@ packages: resolution: {integrity: sha512-juG5VWh4qAivzTAeMzvY9xs9HY5rAcr2E4I7tiSSCokRFi7XIZCAu92ZkSTsIj1OPceCifL3cpfteP3pDT9/QQ==} engines: {node: '>=14.0.0'} - '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} - '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -5831,9 +5914,127 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} + '@ota-meshi/ast-token-store@0.3.0': + resolution: {integrity: sha512-XRO0zi2NIUKq2lUk3T1ecFSld1fMWRKE6naRFGkgkdeosx7IslyUKNv5Dcb5PJTja9tHJoFu0v/7yEpAkrkrTg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@oxc-project/types@0.112.0': resolution: {integrity: sha512-m6RebKHIRsax2iCwVpYW2ErQwa4ywHJrE4sCK3/8JK8ZZAWOKXaRJFl/uP51gaVyyXlaS4+chU1nSCdzYf6QqQ==} + '@oxfmt/binding-android-arm-eabi@0.35.0': + resolution: {integrity: sha512-BaRKlM3DyG81y/xWTsE6gZiv89F/3pHe2BqX2H4JbiB8HNVlWWtplzgATAE5IDSdwChdeuWLDTQzJ92Lglw3ZA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.35.0': + resolution: {integrity: sha512-/O+EbuAJYs6nde/anv+aID6uHsGQApyE9JtYBo/79KyU8e6RBN3DMbT0ix97y1SOnCglurmL2iZ+hlohjP2PnQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.35.0': + resolution: {integrity: sha512-pGqRtqlNdn9d4VrmGUWVyQjkw79ryhI6je9y2jfqNUIZCfqceob+R97YYAoG7C5TFyt8ILdLVoN+L2vw/hSFyA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.35.0': + resolution: {integrity: sha512-8GmsDcSozTPjrCJeGpp+sCmS9+9V5yRrdEZ1p/sTWxPG5nYeAfSLuS0nuEYjXSO+CtdSbStIW6dxa+4NM58yRw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.35.0': + resolution: {integrity: sha512-QyfKfTe0ytHpFKHAcHCGQEzN45QSqq1AHJOYYxQMgLM3KY4xu8OsXHpCnINjDsV4XGnQzczJDU9e04Zmd8XqIQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.35.0': + resolution: {integrity: sha512-u+kv3JD6P3J38oOyUaiCqgY5TNESzBRZJ5lyZQ6c2czUW2v5SIN9E/KWWa9vxoc+P8AFXQFUVrdzGy1tK+nbPQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.35.0': + resolution: {integrity: sha512-1NiZroCiV57I7Pf8kOH4XGR366kW5zir3VfSMBU2D0V14GpYjiYmPYFAoJboZvp8ACnZKUReWyMkNKSa5ad58A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.35.0': + resolution: {integrity: sha512-7Q0Xeg7ZnW2nxnZ4R7aF6DEbCFls4skgHZg+I63XitpNvJCbVIU8MFOTZlvZGRsY9+rPgWPQGeUpLHlyx0wvMA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-arm64-musl@0.35.0': + resolution: {integrity: sha512-5Okqi+uhYFxwKz8hcnUftNNwdm8BCkf6GSCbcz9xJxYMm87k1E4p7PEmAAbhLTk7cjSdDre6TDL0pDzNX+Y22Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + + '@oxfmt/binding-linux-ppc64-gnu@0.35.0': + resolution: {integrity: sha512-9k66pbZQXM/lBJWys3Xbc5yhl4JexyfqkEf/tvtq8976VIJnLAAL3M127xHA3ifYSqxdVHfVGTg84eiBHCGcNw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-gnu@0.35.0': + resolution: {integrity: sha512-aUcY9ofKPtjO52idT6t0SAQvEF6ctjzUQa1lLp7GDsRpSBvuTrBQGeq0rYKz3gN8dMIQ7mtMdGD9tT4LhR8jAQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-riscv64-musl@0.35.0': + resolution: {integrity: sha512-C6yhY5Hvc2sGM+mCPek9ZLe5xRUOC/BvhAt2qIWFAeXMn4il04EYIjl3DsWiJr0xDMTJhvMOmD55xTRPlNp39w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + + '@oxfmt/binding-linux-s390x-gnu@0.35.0': + resolution: {integrity: sha512-RG2hlvOMK4OMZpO3mt8MpxLQ0AAezlFqhn5mI/g5YrVbPFyoCv9a34AAvbSJS501ocOxlFIRcKEuw5hFvddf9g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + + '@oxfmt/binding-linux-x64-gnu@0.35.0': + resolution: {integrity: sha512-wzmh90Pwvqj9xOKHJjkQYBpydRkaXG77ZvDz+iFDRRQpnqIEqGm5gmim2s6vnZIkDGsvKCuTdtxm0GFmBjM1+w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-linux-x64-musl@0.35.0': + resolution: {integrity: sha512-+HCqYCJPCUy5I+b2cf+gUVaApfgtoQT3HdnSg/l7NIcLHOhKstlYaGyrFZLmUpQt4WkFbpGKZZayG6zjRU0KFA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + + '@oxfmt/binding-openharmony-arm64@0.35.0': + resolution: {integrity: sha512-kFYmWfR9YL78XyO5ws+1dsxNvZoD973qfVMNFOS4e9bcHXGF7DvGC2tY5UDFwyMCeB33t3sDIuGONKggnVNSJA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.35.0': + resolution: {integrity: sha512-uD/NGdM65eKNCDGyTGdO8e9n3IHX+wwuorBvEYrPJXhDXL9qz6gzddmXH8EN04ejUXUujlq4FsoSeCfbg0Y+Jg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.35.0': + resolution: {integrity: sha512-oSRD2k8J2uxYDEKR2nAE/YTY9PobOEnhZgCmspHu0+yBQ665yH8lFErQVSTE7fcGJmJp/cC6322/gc8VFuQf7g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.35.0': + resolution: {integrity: sha512-WCDJjlS95NboR0ugI2BEwzt1tYvRDorDRM9Lvctls1SLyKYuNRCyrPwp1urUPFBnwgBNn9p2/gnmo7gFMySRoQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@peculiar/asn1-android@2.6.0': resolution: {integrity: sha512-cBRCKtYPF7vJGN76/yG8VbxRcHLPF3HnkoHhKOZeHpoVtbMYfY9ROKtH3DtYUY9m8uI1Mh47PRhHf2hSK3xcSQ==} @@ -7371,6 +7572,10 @@ packages: '@sinclair/typebox@0.27.10': resolution: {integrity: sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==} + '@sindresorhus/base62@1.0.0': + resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} + engines: {node: '>=18'} + '@sindresorhus/is@4.6.0': resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} engines: {node: '>=10'} @@ -7412,11 +7617,11 @@ packages: '@standard-schema/utils@0.3.0': resolution: {integrity: sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==} - '@stylistic/eslint-plugin@5.8.0': - resolution: {integrity: sha512-WNPVF/FfBAjyi3OA7gok8swRiImNLKI4dmV3iK/GC/0xSJR7eCzBFsw9hLZVgb1+MYNLy7aDsjohxN1hA/FIfQ==} + '@stylistic/eslint-plugin@5.9.0': + resolution: {integrity: sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: '>=9.0.0' + eslint: ^9.0.0 || ^10.0.0 '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} @@ -7721,6 +7926,9 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree-jsx@1.0.5': resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} @@ -7886,63 +8094,69 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.56.0': - resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==} + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.56.0 + '@typescript-eslint/parser': ^8.56.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.56.0': - resolution: {integrity: sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} 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.0.0' - '@typescript-eslint/project-service@8.56.0': - resolution: {integrity: sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.56.0': - resolution: {integrity: sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==} + '@typescript-eslint/rule-tester@8.56.1': + resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.56.0': - resolution: {integrity: sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==} + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.56.0': - resolution: {integrity: sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} 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.0.0' - '@typescript-eslint/types@8.56.0': - resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.56.0': - resolution: {integrity: sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==} + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.56.0': - resolution: {integrity: sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} 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.0.0' - '@typescript-eslint/visitor-keys@8.56.0': - resolution: {integrity: sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==} + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -7958,10 +8172,6 @@ packages: '@unocss/core@66.6.0': resolution: {integrity: sha512-Sxm7HmhsPIIzxbPnWembPyobuCeA5j9KxL+jIOW2c+kZiTFjHeju7vuVWX9jmAMMC+UyDuuCQ4yE+kBo3Y7SWQ==} - '@unocss/eslint-config@66.6.0': - resolution: {integrity: sha512-SSW5OtPX6vtWjNCOZoGPpVN3SDgfzLMaMN53mMlwZkFVdH+pAAtXok/DqDKq33hJX5Z9KA9xjUanNt4qi46EVQ==} - engines: {node: '>=14'} - '@unocss/eslint-plugin@66.6.0': resolution: {integrity: sha512-6i+kNVVGb5I+XOCUgLDHol6sxb28ahbJrmLL/eiAWflT850MUqtAlFeyHDYHzScnOFcPy1AcmeY0yM77GgERmg==} engines: {node: '>=14'} @@ -7983,101 +8193,6 @@ packages: next: optional: true - '@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==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - resolution: {integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - resolution: {integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==} - cpu: [arm64] - os: [linux] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==} - cpu: [ppc64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==} - cpu: [riscv64] - os: [linux] - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==} - cpu: [s390x] - os: [linux] - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==} - cpu: [x64] - os: [linux] - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - resolution: {integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - resolution: {integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - resolution: {integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==} - cpu: [x64] - os: [win32] - '@urql/core@4.0.11': resolution: {integrity: sha512-FFdY97vF5xnUrElcGw9erOLvtu+KGMLfwrLNDfv4IPgdp2IBsiGe+Kb7Aypfd3kH//BETewVSLm3+y2sSzjX6A==} @@ -8100,6 +8215,11 @@ packages: peerDependencies: react: 19.1.0 + '@valibot/to-json-schema@1.5.0': + resolution: {integrity: sha512-GE7DmSr1C2UCWPiV0upRH6mv0cCPsqYGs819fb6srCS1tWhyXrkGGe+zxUiwzn/L1BOfADH4sNjY/YHCuP8phQ==} + peerDependencies: + valibot: ^1.2.0 + '@vercel/build-utils@13.4.0': resolution: {integrity: sha512-hGBYt+olxUtDZu0W8DKl4NjY8tQC1eJUxDpkJdOhcugap4NnHeHZQ33vEKs0Z72bYlqotgu0AoEOv+ri5rlh4w==} @@ -8198,6 +8318,19 @@ packages: react-server-dom-webpack: optional: true + '@vitest/eslint-plugin@1.6.9': + resolution: {integrity: sha512-9WfPx1OwJ19QLCSRLkqVO7//1WcWnK3fE/3fJhKMAmDe8+9G4rB47xCNIIeCq3FdEzkIoLTfDlwDlPBaUTMhow==} + engines: {node: '>=18'} + peerDependencies: + eslint: '>=8.57.0' + typescript: '>=5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -8246,14 +8379,20 @@ packages: resolution: {integrity: sha512-rQ/BgMyLuIXSmbA0MSkIPHtcOw14QkeDbAq19sjvaS9LTRr905yij0S8lsyqN5JgOsbtIx7pAcyOxFMzPmqhZQ==} hasBin: true - '@vue/compiler-core@3.5.28': - resolution: {integrity: sha512-kviccYxTgoE8n6OCw96BNdYlBg2GOWfBuOW4Vqwrt7mSKWKwFVvI8egdTltqRgITGPsTFYtKYfxIG8ptX2PJHQ==} + '@vue/compiler-core@3.5.29': + resolution: {integrity: sha512-cuzPhD8fwRHk8IGfmYaR4eEe4cAyJEL66Ove/WZL7yWNL134nqLddSLwNRIsFlnnW1kK+p8Ck3viFnC0chXCXw==} - '@vue/compiler-dom@3.5.28': - resolution: {integrity: sha512-/1ZepxAb159jKR1btkefDP+J2xuWL5V3WtleRmxaT+K2Aqiek/Ab/+Ebrw2pPj0sdHO8ViAyyJWfhXXOP/+LQA==} + '@vue/compiler-dom@3.5.29': + resolution: {integrity: sha512-n0G5o7R3uBVmVxjTIYcz7ovr8sy7QObFG8OQJ3xGCDNhbG60biP/P5KnyY8NLd81OuT1WJflG7N4KWYHaeeaIg==} - '@vue/shared@3.5.28': - resolution: {integrity: sha512-cfWa1fCGBxrvaHRhvV3Is0MgmrbSCxYTXCSCau2I0a1Xw1N1pHAvkWCiXPRAqjvToILvguNyEwjevUqAuBQWvQ==} + '@vue/compiler-sfc@3.5.29': + resolution: {integrity: sha512-oJZhN5XJs35Gzr50E82jg2cYdZQ78wEwvRO6Y63TvLVTc+6xICzJHP1UIecdSPPYIbkautNBanDiWYa64QSFIA==} + + '@vue/compiler-ssr@3.5.29': + resolution: {integrity: sha512-Y/ARJZE6fpjzL5GH/phJmsFwx3g6t2KmHKHx5q+MLl2kencADKIrhH5MLF6HHpRMmlRAYBRSvv347Mepf1zVNw==} + + '@vue/shared@3.5.29': + resolution: {integrity: sha512-w7SR0A5zyRByL9XUkCfdLs7t9XOHUyJ67qPGQjOou3p6GvBeBW+AVjUUmlxtZ4PIYaRvE+1LmK44O4uajlZwcg==} '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -8377,8 +8516,8 @@ packages: resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} engines: {node: '>=0.4.0'} - acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} engines: {node: '>=0.4.0'} hasBin: true @@ -8445,8 +8584,8 @@ packages: peerDependencies: ajv: ^8.8.2 - ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ajv@6.14.0: + resolution: {integrity: sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==} ajv@8.11.0: resolution: {integrity: sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==} @@ -8559,6 +8698,10 @@ packages: resolution: {integrity: sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==} engines: {node: '>= 10'} + are-docs-informative@0.0.2: + resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} + engines: {node: '>=14'} + arg@4.1.0: resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==} @@ -8724,9 +8867,6 @@ packages: axios@1.13.0: resolution: {integrity: sha512-zt40Pz4zcRXra9CVV31KeyofwiNvAbJ5B6YPz9pMJ+yOSLikvPT4Yi5LjfgjRa9CawVYBaD1JQzIVcIvBejKeA==} - axios@1.13.5: - resolution: {integrity: sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==} - b4a@1.7.5: resolution: {integrity: sha512-iEsKNwDh1wiWTps1/hdkNdmBgDlDVZP5U57ZVOlt+dNFqpc/lpPouCIxZw+DYBgc4P9NDfIZMPNR4CHNhzwLIA==} peerDependencies: @@ -9312,10 +9452,6 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - cliui@9.0.1: - resolution: {integrity: sha512-k7ndgKhwoQveBL+/1tqGJYNz097I7WOvwbmmU2AR5+magtbjPWQTS1C5vzGkBC8Ym8UWRzfKUzUUqFLypY4Q+w==} - engines: {node: '>=20'} - clone-response@1.0.3: resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} @@ -9431,10 +9567,6 @@ packages: resolution: {integrity: sha512-taEtr3ozUmOB7it68Jll7s0Pwm+aoiHyXKrEC8SEodL4rNpdfDLqa7PfBlrgFoCNNdR8ImL+muti5IGvktJAAg==} engines: {node: '>= 6'} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - comment-parser@1.4.5: resolution: {integrity: sha512-aRDkn3uyIlCFfk5NUA+VdwMmMsh8JGhc4hapfV4yxymHGQ3BVskMQfoXGpCo5IoBuQ9tS5iiVKhCpTcB4pW4qw==} engines: {node: '>= 12.0.0'} @@ -9902,10 +10034,6 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - detect-indent@7.0.2: - resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} - engines: {node: '>=12.20'} - detect-libc@1.0.3: resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} engines: {node: '>=0.10'} @@ -9915,10 +10043,6 @@ packages: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} - detect-newline@4.0.1: - resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} @@ -9931,9 +10055,9 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@27.5.1: - resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} diff@4.0.4: resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} @@ -10464,45 +10588,27 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-compat-utils@0.6.5: - resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} + eslint-compat-utils@0.5.1: + resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} engines: {node: '>=12'} peerDependencies: eslint: '>=6.0.0' - eslint-config-flat-gitignore@2.1.0: - resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} + eslint-config-flat-gitignore@2.2.1: + resolution: {integrity: sha512-wA5EqN0era7/7Gt5Botlsfin/UNY0etJSEeBgbUlFLFrBi47rAN//+39fI7fpYcl8RENutlFtvp/zRa/M/pZNg==} peerDependencies: - eslint: ^9.5.0 + eslint: ^9.5.0 || ^10.0.0 - eslint-config-hyoban@4.0.10: - resolution: {integrity: sha512-doWDgD8yz9zRt7u4Tu1dJL4RzkLElEzb4J0zAH5/+7bj2H8TVXsbScRJtAUeiBrUPCSr3+oseDl5Ld2BbTmYCw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^9.0.0 - typescript: '>=4.8.4' - peerDependenciesMeta: - typescript: - optional: true + eslint-config-hyoban@6.0.0: + resolution: {integrity: sha512-uNVtpqS2eITr9wHYkgZIGLFRSkV0JmQ0vnZFA1tLjdxIMPaKJsEOy1HtOShlzAttG3PVbr6hW4rnGgp8Kk6EsQ==} - eslint-fix-utils@0.4.1: - resolution: {integrity: sha512-1xPtnB7RYRHKrFGll3kRv5gOodHm3/jkk76jrKMZ2yk/G8HU9XoN1I9iHgh1ToAqmGG0/FFrybZMqmqUWp4asA==} - engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0} - peerDependencies: - '@types/estree': '>=1' - eslint: '>=8' - peerDependenciesMeta: - '@types/estree': - optional: true + eslint-flat-config-utils@3.0.1: + resolution: {integrity: sha512-VMA3u86bLzNAwD/7DkLtQ9lolgIOx2Sj0kTMMnBvrvEz7w0rQj4aGCR+lqsqtld63gKiLyT4BnQZ3gmGDXtvjg==} - 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} + eslint-formatting-reporter@0.0.0: + resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true + eslint: '>=8.40.0' eslint-json-compat-utils@0.2.1: resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} @@ -10515,98 +10621,130 @@ packages: '@eslint/json': optional: true + eslint-markdown@0.5.0: + resolution: {integrity: sha512-EVY0viuqqPLNxo+/hcSuSsG2OhKlAi+NOzSICLZk1WqgI5OzAwGBELXnN6KoZWNp/ISzzeRtvUayavv9tlSpvg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} + peerDependencies: + eslint: ^9.31.0 || ^10.0.0-rc.0 + peerDependenciesMeta: + eslint: + optional: true + + eslint-merge-processors@2.0.0: + resolution: {integrity: sha512-sUuhSf3IrJdGooquEUB5TNpGNpBoQccbnaLHsb1XkBLUPPqCNivCpY05ZcpCOiV9uHwO2yxXEWVczVclzMxYlA==} + peerDependencies: + eslint: '*' + + eslint-parser-plain@0.1.1: + resolution: {integrity: sha512-KRgd6wuxH4U8kczqPp+Oyk4irThIhHWxgFgLDtpgjUGVIS3wGrJntvZW/p6hHq1T4FOwnOtCNkvAI4Kr+mQ/Hw==} + eslint-plugin-antfu@3.2.2: resolution: {integrity: sha512-Qzixht2Dmd/pMbb5EnKqw2V8TiWHbotPlsORO8a+IzCLFwE0RxK8a9k4DCTFPzBwyxJzH+0m2Mn8IUGeGQkyUw==} peerDependencies: eslint: '*' - eslint-plugin-command@3.4.0: - resolution: {integrity: sha512-EW4eg/a7TKEhG0s5IEti72kh3YOTlnhfFNuctq5WnB1fst37/IHTd5OkD+vnlRf3opTvUcSRihAateP6bT5ZcA==} + eslint-plugin-better-tailwindcss@4.3.1: + resolution: {integrity: sha512-b6xM31GukKz0WlgMD0tQdY/rLjf/9mWIk8EcA45ngOKJPPQf1C482xZtBlT357jyunQE2mOk4NlPcL4i9Pr85A==} + 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-command@3.5.2: + resolution: {integrity: sha512-PA59QAkQDwvcCMEt5lYLJLI3zDGVKJeC4id/pcRY2XdRYhSGW7iyYT1VC1N3bmpuvu6Qb/9QptiS3GJMjeGTJg==} peerDependencies: + '@typescript-eslint/rule-tester': '*' + '@typescript-eslint/typescript-estree': '*' + '@typescript-eslint/utils': '*' eslint: '*' - eslint-plugin-hyoban@0.6.1: - resolution: {integrity: sha512-DJI5rCIATcK2e4f7TMt1+sdMSXEAytcn469dLV0hSn4lVvVXsT6uLH/Pogj/cm+m6I8AuUWoHGj/OId5M8tLCg==} + 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-format@2.0.1: + resolution: {integrity: sha512-0BA65p5DAiuKtx5MmMJfPk9WaTjoHHbyVW7ZXRhaZoA1fdiMHhay9QRiDL2wr0hJWZxdF7CRThOK/70VUKVg2g==} + peerDependencies: + eslint: ^8.40.0 || ^9.0.0 || ^10.0.0 + + eslint-plugin-hyoban@0.13.3: + resolution: {integrity: sha512-M3gae1C14RTwmy/kJDzLrz9oA1VppkPs+vu8dU4NHwgIuru7X+QxVmi7jJPI/picSEwE7Isd3PfMpv8KmJtUnw==} peerDependencies: eslint: '*' - eslint-plugin-import-x@4.16.1: - resolution: {integrity: sha512-vPZZsiOKaBAIATpFE2uMI4w5IRwdv/FpQ+qZZMR4E+PeOcM4OeoEbqxRMnywdxP19TyB/3h6QBB0EWon7letSQ==} + eslint-plugin-import-lite@0.5.2: + resolution: {integrity: sha512-XvfdWOC5dSLEI9krIPRlNmKSI2ViIE9pVylzfV9fCq0ZpDaNeUk6o0wZv0OzN83QdadgXp1NsY0qjLINxwYCsw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/utils': ^8.0.0 - eslint: ^8.57.0 || ^9.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true + eslint: '>=9.0.0' - eslint-plugin-jsonc@2.21.1: - resolution: {integrity: sha512-dbNR5iEnQeORwsK2WZzr3QaMtFCY3kKJVMRHPzUpKzMhmVy2zIpVgFDpX8MNoIdoqz6KCpCfOJavhfiSbZbN+w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-plugin-jsdoc@62.7.1: + resolution: {integrity: sha512-4Zvx99Q7d1uggYBUX/AIjvoyqXhluGbbKrRmG8SQTLprPFg6fa293tVJH1o1GQwNe3lUydd8ZHzn37OaSncgSQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=6.0.0' + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-package-json@0.45.2: - resolution: {integrity: sha512-ti6G8qfNt9qFFUoosJFB/nx66OfAFlytv7jLBW7/jIuo0OJkF95FgIozhHkoqhwNe1gB+KXWSmRg7v1LToE+Jw==} - engines: {node: ^=20.19.0 || >=22.12.0} + eslint-plugin-jsonc@3.1.1: + resolution: {integrity: sha512-7TSQO8ZyvOuXWb0sYke3KUSh0DJA4/QviKfuzD3/Cy3XDjtrIrTWQbjb7j/Yy2l/DgwuM+lCS2c/jqJifv5jhg==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=8.0.0' - jsonc-eslint-parser: ^2.0.0 + eslint: '>=9.38.0' - eslint-plugin-react-debug@1.53.1: - resolution: {integrity: sha512-WNOiQ6jhodJE88VjBU/IVDM+2Zr9gKHlBFDUSA3fQ0dMB5RiBVj5wMtxbxRuipK/GqNJbteqHcZoYEod7nfddg==} - engines: {node: '>=18.18.0'} + 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.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true + eslint: '>=8.23.0' - eslint-plugin-react-dom@1.53.1: - resolution: {integrity: sha512-UYrWJ2cS4HpJ1A5XBuf1HfMpPoLdfGil+27g/ldXfGemb4IXqlxHt4ANLyC8l2CWcE3SXGJW7mTslL34MG0qTQ==} - engines: {node: '>=18.18.0'} + eslint-plugin-no-only-tests@3.3.0: + resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} + engines: {node: '>=5.0.0'} + + eslint-plugin-perfectionist@5.6.0: + resolution: {integrity: sha512-pxrLrfRp5wl1Vol1fAEa/G5yTXxefTPJjz07qC7a8iWFXcOZNuWBItMQ2OtTzfQIvMq6bMyYcrzc3Wz++na55Q==} + engines: {node: ^20.0.0 || >=22.0.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.45.0 || ^9.0.0 || ^10.0.0 - eslint-plugin-react-google-translate@0.1.1: - resolution: {integrity: sha512-70w3YW211yFSexWLshO+rSVtr6NDuA0qaU/ARVQ9pG0WFia5CyGFhKCed6LKKngdgfQTzjrcWlg7IPJehJwTsg==} - engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} + eslint-plugin-pnpm@1.6.0: + resolution: {integrity: sha512-dxmt9r3zvPaft6IugS4i0k16xag3fTbOvm/road5uV9Y8qUCQT0xzheSh3gMlYAlC6vXRpfArBDsTZ7H7JKCbg==} peerDependencies: - eslint: '>=7' + eslint: ^9.0.0 || ^10.0.0 - eslint-plugin-react-hooks-extra@1.53.1: - resolution: {integrity: sha512-fshTnMWNn9NjFLIuy7HzkRgGK29vKv4ZBO9UMr+kltVAfKLMeXXP6021qVKk66i/XhQjbktiS+vQsu1Rd3ZKvg==} - engines: {node: '>=18.18.0'} + eslint-plugin-react-dom@2.13.0: + resolution: {integrity: sha512-+2IZzQ1WEFYOWatW+xvNUqmZn55YBCufzKA7hX3XQ/8eu85Mp4vnlOyNvdVHEOGhUnGuC6+9+zLK+IlEHKdKLQ==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-hooks@6.0.0-rc.2: - resolution: {integrity: sha512-2cnFkQl2xld2BgKDtxLSd/JqkpZHBXZKcz+ZurfiQ7GECzMckIddJN5PZyWach3MN4h/CjwfqPigAtYxInXtuw==} + eslint-plugin-react-hooks-extra@2.13.0: + resolution: {integrity: sha512-qIbha1nzuyhXM9SbEfrcGVqmyvQu7GAOB2sy9Y4Qo5S8nCqw4fSBxq+8lSce5Tk5Y7XzIkgHOhNyXEvUHRWFMQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-react-hooks@7.0.1: + resolution: {integrity: sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==} 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-naming-convention@1.53.1: - resolution: {integrity: sha512-rvZ/B/CSVF8d34HQ4qIt90LRuxotVx+KUf3i1OMXAyhsagEFMRe4gAlPJiRufZ+h9lnuu279bEdd+NINsXOteA==} - engines: {node: '>=18.18.0'} + eslint-plugin-react-naming-convention@2.13.0: + resolution: {integrity: sha512-uSd25JzSg2R4p81s3Wqck0AdwRlO9Yc+cZqTEXv7vW8exGGAM3mWnF6hgrgdqVJqBEGJIbS/Vx1r5BdKcY/MHA==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' eslint-plugin-react-native-globals@0.1.2: resolution: {integrity: sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==} @@ -10616,56 +10754,54 @@ packages: peerDependencies: eslint: ^3.17.0 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - eslint-plugin-react-refresh@0.4.26: - resolution: {integrity: sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ==} + eslint-plugin-react-refresh@0.5.2: + resolution: {integrity: sha512-hmgTH57GfzoTFjVN0yBwTggnsVUF2tcqi7RJZHqi9lIezSs4eFyAMktA68YD4r5kNw1mxyY4dmkyoFDb3FIqrA==} peerDependencies: - eslint: '>=8.40' + eslint: ^9 || ^10 - eslint-plugin-react-web-api@1.53.1: - resolution: {integrity: sha512-INVZ3Cbl9/b+sizyb43ChzEPXXYuDsBGU9BIg7OVTNPyDPloCXdI+dQFAcSlDocZhPrLxhPV3eT6+gXbygzYXg==} - engines: {node: '>=18.18.0'} + eslint-plugin-react-rsc@2.13.0: + resolution: {integrity: sha512-RaftgITDLQm1zIgYyvR51sBdy4FlVaXFts5VISBaKbSUB0oqXyzOPxMHasfr9BCSjPLKus9zYe+G/Hr6rjFLXQ==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-react-x@1.53.1: - resolution: {integrity: sha512-MwMNnVwiPem0U6SlejDF/ddA4h/lmP6imL1RDZ2m3pUBrcdcOwOx0gyiRVTA3ENnhRlWfHljHf5y7m8qDSxMEg==} - engines: {node: '>=18.18.0'} + eslint-plugin-react-web-api@2.13.0: + resolution: {integrity: sha512-nmJbzIAte7PeAkp22CwcKEASkKi49MshSdiDGO1XuN3f4N4/8sBfDcWbQuLPde6JiuzDT/0+l7Gi8wwTHtR1kg==} + engines: {node: '>=20.19.0'} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - ts-api-utils: ^2.1.0 - typescript: ^4.9.5 || ^5.3.3 - peerDependenciesMeta: - ts-api-utils: - optional: true - typescript: - optional: true + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - eslint-plugin-regexp@2.10.0: - resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==} - engines: {node: ^18 || >=20} + eslint-plugin-react-x@2.13.0: + resolution: {integrity: sha512-cMNX0+ws/fWTgVxn52qAQbaFF2rqvaDAtjrPUzY6XOzPjY0rJQdR2tSlWJttz43r2yBfqu+LGvHlGpWL2wfpTQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + eslint-plugin-regexp@3.0.0: + resolution: {integrity: sha512-iW7hgAV8NOG6E2dz+VeKpq67YLQ9jaajOKYpoOSic2/q8y9BMdXBKkSR9gcMtbqEhNQzdW41E3wWzvhp8ExYwQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - eslint: '>=8.44.0' + eslint: '>=9.38.0' eslint-plugin-simple-import-sort@12.1.1: resolution: {integrity: sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA==} peerDependencies: eslint: '>=5.0.0' - eslint-plugin-tailwindcss@4.0.0-beta.0: - resolution: {integrity: sha512-WWCajZgQu38Sd67ZCl2W6i3MRzqB0d+H8s4qV9iB6lBJbsDOIpIlj6R1Fj2FXkoWErbo05pZnZYbCGIU9o/DsA==} - engines: {node: '>=18.12.0'} + eslint-plugin-toml@1.3.0: + resolution: {integrity: sha512-+jjKAs2WRNom9PU1APlrL1kNexy1RHoKB7SHw7FLZBlqOCYXUKyG3Quiv1XUICdWDJ6oGVgW/mSm+BDuQrcc3w==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} peerDependencies: - tailwindcss: ^3.4.0 || ^4.0.0 + eslint: '>=9.38.0' - eslint-plugin-unicorn@61.0.2: - resolution: {integrity: sha512-zLihukvneYT7f74GNbVJXfWIiNQmkc/a9vYBTE4qPkQZswolWNdu+Wsp9sIXno1JOzdn6OUwLPd19ekXVkahRA==} + eslint-plugin-unicorn@63.0.0: + resolution: {integrity: sha512-Iqecl9118uQEXYh7adylgEmGfkn5es3/mlQTLLkd4pXkIk9CTGrAbeUux+YljSa2ohXCBmQQ0+Ej1kZaFgcfkA==} engines: {node: ^20.10.0 || >=21.0.0} peerDependencies: - eslint: '>=9.29.0' + eslint: '>=9.38.0' eslint-plugin-unused-imports@4.4.1: resolution: {integrity: sha512-oZGYUz1X3sRMGUB+0cZyK2VcvRX5lm/vB56PgNNcU+7ficUCKm66oZWKUubXWnOuPjQ8PvmXtCViXBMONPe7tQ==} @@ -10676,6 +10812,32 @@ packages: '@typescript-eslint/eslint-plugin': optional: true + eslint-plugin-vue@10.8.0: + resolution: {integrity: sha512-f1J/tcbnrpgC8suPN5AtdJ5MQjuXbSU9pGRSSYAuF3SHoiYCOdEX6O22pLaRyLHXvDcOe+O5ENgc1owQ587agA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@stylistic/eslint-plugin': ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + '@typescript-eslint/parser': ^7.0.0 || ^8.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + vue-eslint-parser: ^10.0.0 + peerDependenciesMeta: + '@stylistic/eslint-plugin': + optional: true + '@typescript-eslint/parser': + optional: true + + eslint-plugin-yml@3.3.0: + resolution: {integrity: sha512-kRja5paNrMfZnbNqDbZSFrSHz5x7jmGBQq7d6z/+wRvWD4Y0yb1fbjojBg3ReMewFhBB7nD2nPC86+m3HmILJA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0} + peerDependencies: + eslint: '>=9.38.0' + + eslint-processor-vue-blocks@2.0.0: + resolution: {integrity: sha512-u4W0CJwGoWY3bjXAuFpc/b6eK3NQEI8MoeW7ritKj3G3z/WtHrKjkqf+wk8mPEy5rlMGS+k6AZYOw2XBoN/02Q==} + peerDependencies: + '@vue/compiler-sfc': ^3.3.0 + eslint: '>=9.0.0' + eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} @@ -10684,6 +10846,10 @@ packages: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.1: + resolution: {integrity: sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + 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} @@ -10692,23 +10858,13 @@ 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.0: - resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@9.27.0: - resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - eslint@9.38.0: - resolution: {integrity: sha512-t5aPOpmtJcZcz5UJyY2GbvpDlsK5E8JqRqoKtfiKE3cNh437KIqfJr3A3AKf5k64NPx6d0G3dno6XDY05PqPtw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint@10.0.2: + resolution: {integrity: sha512-uYixubwmqJZH+KLVYIVKY1JQt7tysXhtj21WSvjcSmU5SVNzMus1bgLe+pAt816yQ8opKfheVVoPLqvVMGejYw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: jiti: '*' @@ -10716,8 +10872,8 @@ packages: jiti: optional: true - eslint@9.39.1: - resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} + eslint@9.27.0: + resolution: {integrity: sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -10733,9 +10889,9 @@ 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} + espree@11.1.1: + resolution: {integrity: sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -11160,6 +11316,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==} @@ -11183,6 +11342,12 @@ packages: fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} @@ -11198,6 +11363,9 @@ packages: fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + fault@2.0.1: + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + faye-websocket@0.11.4: resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} engines: {node: '>=0.8.0'} @@ -11343,6 +11511,10 @@ packages: resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} engines: {node: '>= 6'} + format@0.2.2: + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} + foxact@0.2.49: resolution: {integrity: sha512-9Pbu4IbkaNqtS/H4887/QWegclMpBn54mzbPp3t1mg0iJuB83jpQGBY2fshal50NmchlAFIT/GSWBFsa0YI31Q==} peerDependencies: @@ -11547,9 +11719,6 @@ packages: resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==} hasBin: true - git-hooks-list@4.2.1: - resolution: {integrity: sha512-WNvqJjOxxs/8ZP9+DWdwWJ7cDsd60NHf39XnD82pDVrKO5q7xfPqpkK6hwEAmBa/ZSEE4IOoR75EzbbIuwGlMw==} - git-raw-commits@5.0.0: resolution: {integrity: sha512-I2ZXrXeOc0KrCvC7swqtIFXFN+rbjnC7b2T943tvemIOVNl+XP8YnA9UVwqFhzzLClnSA60KR/qEjLpXzs73Qg==} engines: {node: '>=18'} @@ -11563,6 +11732,9 @@ packages: github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@2.0.0: + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -11626,6 +11798,10 @@ packages: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} + globals@17.4.0: + resolution: {integrity: sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -11655,9 +11831,6 @@ packages: resolution: {integrity: sha512-is3hDn9zb8XXnjbEeAEIqxTpLHUiGBqjegLmXPuyMBfKAggpadWFku4/AP8iYAGBX6qR9/5UIUIp47V0XI3aMw==} hasBin: true - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - graphql-tag@2.12.6: resolution: {integrity: sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==} engines: {node: '>=10'} @@ -11809,6 +11982,9 @@ packages: resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} @@ -12376,23 +12552,14 @@ packages: jsc-safe-url@0.2.4: resolution: {integrity: sha512-0wM3YBWtYePOjfyXQH5MWQ8H7sdk5EXSwZvmSLKk2RboVQ2Bu239jycHDz5J/8Blf3K0Qnoy2b6xD+z10MFB+Q==} - jsdoc-type-pratt-parser@4.8.0: - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} - engines: {node: '>=12.0.0'} - - jsdoc-type-pratt-parser@7.0.0: - resolution: {integrity: sha512-c7YbokssPOSHmqTbSAmTtnVgAVa/7lumWNYqomgd5KOMyPrRve2anx6lonfOsXEQacqF9FKVUj7bLg4vRSvdYA==} + jsdoc-type-pratt-parser@7.1.1: + resolution: {integrity: sha512-/2uqY7x6bsrpi3i9LVU6J89352C0rpMk0as8trXxCtvd4kPk1ke/Eyif6wqfSLvoNJqcDG9Vk4UsXgygzCt2xA==} engines: {node: '>=20.0.0'} jsep@1.4.0: resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} engines: {node: '>= 10.16.0'} - 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'} @@ -12436,9 +12603,9 @@ packages: engines: {node: '>=6'} hasBin: true - jsonc-eslint-parser@2.4.2: - resolution: {integrity: sha512-1e4qoRgnn448pRuMvKGsFFymUCquZV0mpGgOyIKNgD3JVDTsVJyRBGH/Fm0tBb8WsWGgmB1mDe6/yJMQM37DUA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + jsonc-eslint-parser@3.1.0: + resolution: {integrity: sha512-75EA7EWZExL/j+MDKQrRbdzcRI2HOkRlmUw8fZJc1ioqFEOvBsq7Rt+A6yCxOt9w/TYNpkt52gC6nm/g5tFIng==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} jsonfile@4.0.0: resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} @@ -13020,6 +13187,9 @@ packages: mdast-util-from-markdown@2.0.2: resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + mdast-util-frontmatter@2.0.1: + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + mdast-util-gfm-autolink-literal@2.0.1: resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} @@ -13071,6 +13241,9 @@ packages: mdn-data@2.12.2: resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} + mdn-data@2.23.0: + resolution: {integrity: sha512-786vq1+4079JSeu2XdcDjrhi/Ry7BWtjDl9WtGPWLiIHb2T66GvIVflZTBoSNZ5JqTtJGYEVMuFA/lbQlMOyDQ==} + mem@4.3.0: resolution: {integrity: sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==} engines: {node: '>=6'} @@ -13156,6 +13329,9 @@ packages: micromark-extension-directive@4.0.0: resolution: {integrity: sha512-/C2nqVmXXmiseSSuCdItCMho7ybwwop6RrrRPk0KbOHW21JKoCldC+8rFOaundDoRBUWBnJJcxeA/Kvi34WQXg==} + micromark-extension-frontmatter@2.0.0: + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -13302,9 +13478,9 @@ packages: resolution: {integrity: sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==} engines: {node: 20 || >=22} - minimatch@10.2.1: - resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} - engines: {node: 20 || >=22} + minimatch@10.2.4: + resolution: {integrity: sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -13498,11 +13674,6 @@ packages: napi-build-utils@2.0.0: resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - nativewind@4.2.1: resolution: {integrity: sha512-10uUB2Dlli3MH3NDL5nMHqJHz1A3e/E6mzjTj6cl7hHECClJ7HpE6v+xZL+GXdbwQSnWE+UWMIMsNz7yOQkAJQ==} engines: {node: '>=16'} @@ -13515,6 +13686,10 @@ packages: natural-orderby@2.0.3: resolution: {integrity: sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==} + natural-orderby@5.0.0: + resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} + engines: {node: '>=18'} + nbump@2.1.8: resolution: {integrity: sha512-xbqzRVnGPNCVHBi4+0qrm1jSpZPZ1uZaJrYt/JAvnhf2WDeELGvDxdcqL9fn9ExlwU4g7K9GjdG7gVI794bceg==} hasBin: true @@ -13718,6 +13893,9 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-deep-merge@2.0.0: + resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==} + object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} @@ -13828,6 +14006,11 @@ packages: overlap-area@1.1.0: resolution: {integrity: sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==} + oxfmt@0.35.0: + resolution: {integrity: sha512-QYeXWkP+aLt7utt5SLivNIk09glWx9QE235ODjgcEZ3sd1VMaUBSpLymh6ZRCA76gD2rMP4bXanUz/fx+nLM9Q==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + p-cancelable@2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} @@ -13883,11 +14066,6 @@ packages: package-json-from-dist@1.0.1: resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} - package-json-validator@0.23.0: - resolution: {integrity: sha512-HJokcABTkX8Calu86WCG0EknqWwf+doB7Xk3/EnXoO5/mjHC8H+D66UDZBjHtyZ1MIo0lrdSasbdOCHlr80n6Q==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - package-manager-detector@1.5.0: resolution: {integrity: sha512-uBj69dVlYe/+wxj8JOpr97XfsxH/eumMt6HqjNTmJDf/6NO9s+0uxeOneIz3AsPt2m6y9PqzDzd3ATcU17MNfw==} @@ -13920,6 +14098,13 @@ packages: parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + parse-gitignore@2.0.0: + resolution: {integrity: sha512-RmVuCHWsfu0QPNW+mraxh/xjQVw/lhUCUru8Zni3Ctq3AoMhpDTq0OVdKS6iesd6Kqb7viCV3isAL43dciOSog==} + engines: {node: '>=14'} + + parse-imports-exports@0.2.4: + resolution: {integrity: sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==} + parse-json@2.2.0: resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} engines: {node: '>=0.10.0'} @@ -13944,6 +14129,9 @@ packages: resolution: {integrity: sha512-Nt/a5SfCLiTnQAjx3fHlqp8hRgTL3z7kTQZzvIMS9uCAepnCyjpdEc6M/sz69WqMBdaDBw9sF1F1UaHROYzGkQ==} engines: {node: '>=10'} + parse-statements@1.0.11: + resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} @@ -13953,6 +14141,9 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + parse5@8.0.0: + resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==} + parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -14179,6 +14370,9 @@ packages: resolution: {integrity: sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==} engines: {node: '>=14.19.0'} + pnpm-workspace-yaml@1.6.0: + resolution: {integrity: sha512-uUy4dK3E11sp7nK+hnT7uAWfkBMe00KaUw8OG3NuNlYQoTk4sc9pcdIy1+XIP85v9Tvr02mK3JPaNNrP0QyRaw==} + portfinder@1.0.38: resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==} engines: {node: '>= 10.12'} @@ -14514,6 +14708,10 @@ 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-package-json@2.8.0: resolution: {integrity: sha512-WxtodH/wWavfw3MR7yK/GrS4pASEQ+iSTkdtSxPJWvqzG55ir5nvbLt9rw5AOiEcqqPCRM92WCtR1rk3TG3JSQ==} hasBin: true @@ -15390,10 +15588,6 @@ packages: regjsgen@0.8.0: resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} - regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} - hasBin: true - regjsparser@0.13.0: resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} hasBin: true @@ -15470,10 +15664,6 @@ packages: resolution: {integrity: sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==} engines: {node: '>= 4.0.0'} - requireindex@1.2.0: - resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} - engines: {node: '>=0.10.5'} - resedit@2.0.3: resolution: {integrity: sha512-oTeemxwoMuxxTYxXUwjkrOPfngTQehlv0/HoYFNkB4uzsP1Un1A9nI8JQKGOFkxpqkC7qkMs0lUsGrvUlbLNUA==} engines: {node: '>=14', npm: '>=7'} @@ -15481,6 +15671,10 @@ packages: reselect@5.1.1: resolution: {integrity: sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==} + reserved-identifiers@1.2.0: + resolution: {integrity: sha512-yE7KUfFvaBFzGPs5H3Ops1RevfUEsDc5Iz65rOwWg4lE8HJSYtle77uul3+573457oHvBKuHYDl/xqUkKpEEdw==} + engines: {node: '>=18'} + resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -15919,17 +16113,9 @@ packages: sort-object-keys@1.1.3: resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==} - sort-object-keys@2.1.0: - resolution: {integrity: sha512-SOiEnthkJKPv2L6ec6HMwhUcN0/lppkeYuN1x63PbyPRrgSPIuBJCiYxYyvWRTtjMlOi14vQUCGUJqS6PLVm8g==} - sort-order@1.1.2: resolution: {integrity: sha512-Q8tOrwB1TSv9fNUXym9st3TZJODtmcOIi2JWCkVNQPrRg17KPwlpwweTEb7pMwUIFMTAgx2/JsQQXEPFzYQj3A==} - sort-package-json@3.6.1: - resolution: {integrity: sha512-Chgejw1+10p2D0U2tB7au1lHtz6TkFnxmvZktyBCRyV0GgmF6nl1IxXxAsPtJVsUyg/fo+BfCMAVVFUVRkAHrQ==} - engines: {node: '>=20'} - hasBin: true - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} @@ -15966,6 +16152,9 @@ packages: spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + spdx-expression-parse@4.0.0: + resolution: {integrity: sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==} + spdx-license-ids@3.0.22: resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} @@ -15991,10 +16180,6 @@ packages: resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - stack-utils@2.0.6: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} @@ -16255,10 +16440,9 @@ packages: resolution: {integrity: sha512-yEFYrVhod+hdNyx7g5Bnkkb0G6si8HJurOoOEgC8B/O0uXLHlaey/65KRv6cuWBNhBgHKAROVpc7QyYqE5gFng==} engines: {node: '>=20'} - tailwind-api-utils@1.0.3: - resolution: {integrity: sha512-KpzUHkH1ug1sq4394SLJX38ZtpeTiqQ1RVyFTTSY2XuHsNSTWUkRo108KmyyrMWdDbQrLYkSHaNKj/a3bmA4sQ==} - peerDependencies: - tailwindcss: ^3.3.0 || ^4.0.0 || ^4.0.0-beta + tailwind-csstree@0.1.4: + resolution: {integrity: sha512-FzD187HuFIZEyeR7Xy6sJbJll2d4SybS90satC8SKIuaNRC05CxMvdzN7BUsfDQffcnabckRM5OIcfArjsZ0mg==} + engines: {node: '>=18.18'} tailwind-merge@3.3.1: resolution: {integrity: sha512-gBXpgUm/3rp1lMZZrM/w7D8GKqshif0zAymAhbCyIt8KMe+0v9DQ7cdYLR4FHH/cKpdTXb+A/tKKU3eolfsI+g==} @@ -16458,6 +16642,10 @@ packages: resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} engines: {node: ^18.0.0 || >=20.0.0} + tinypool@2.1.0: + resolution: {integrity: sha512-Pugqs6M0m7Lv1I7FtxN4aoyToKg1C4tu+/381vH35y8oENM/Ai7f7C4StcoK4/+BSw9ebcS8jRiVrORFKCALLw==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -16501,6 +16689,10 @@ packages: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + to-valid-identifier@1.0.0: + resolution: {integrity: sha512-41wJyvKep3yT2tyPqX/4blcfybknGB4D+oETKLs7Q76UiPqRpUJK3hr1nxelyYO0PHKVzJwlu0aCeEAsGI6rpw==} + engines: {node: '>=20'} + toad-cache@3.7.0: resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==} engines: {node: '>=12'} @@ -16513,6 +16705,10 @@ packages: resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==} engines: {node: '>=10'} + toml-eslint-parser@1.0.3: + resolution: {integrity: sha512-A5F0cM6+mDleacLIEUkmfpkBbnHJFV1d2rprHU2MXNk7mlxHq2zGojA+SRvQD1RoMo9gqjZPWEaKG4v1BQ48lw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -16599,6 +16795,14 @@ packages: typescript: optional: true + 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'} + tsdown@0.20.3: resolution: {integrity: sha512-qWOUXSbe4jN8JZEgrkc/uhJpC8VN2QpNu3eZkBWwNuTEjc/Ik1kcc54ycfcQ5QPRHeu9OQXaLfCI3o7pEJgB2w==} engines: {node: '>=20.19.0'} @@ -16743,13 +16947,6 @@ packages: resolution: {integrity: sha512-JnTrzGu+zPV3aXIUhnyWJj4z/wigMsdYajGLIYakqyOW1nPllzXEJee0QQbHj+CTIQtXGlAjuK0UY+2xTyjVAw==} engines: {node: '>=20'} - typescript-eslint@8.56.0: - resolution: {integrity: sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==} - 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.0.0' - typescript@5.4.5: resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} @@ -16932,9 +17129,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==} - unrun@0.2.27: resolution: {integrity: sha512-Mmur1UJpIbfxasLOhPRvox/QS4xBiDii71hMP7smfRthGcwFL2OAmYRgduLANOAU4LUkvVamuP+02U+c90jlrw==} engines: {node: '>=20.19.0'} @@ -17046,6 +17240,14 @@ packages: v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + valibot@1.2.0: + resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==} + peerDependencies: + typescript: '>=5' + peerDependenciesMeta: + typescript: + optional: true + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -17053,10 +17255,6 @@ packages: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - validate-npm-package-name@6.0.2: - resolution: {integrity: sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==} - engines: {node: ^18.17.0 || >=20.5.0} - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -17216,6 +17414,12 @@ packages: vscode-uri@3.1.0: resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} + vue-eslint-parser@10.4.0: + resolution: {integrity: sha512-Vxi9pJdbN3ZnVGLODVtZ7y4Y2kzAAE2Cm0CZ3ZDRvydVYxZ6VrnBhLikBsRS+dpwj4Jv4UCv21PTEwF5rQ9WXg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + wa-sqlite@https://codeload.github.com/rhashimoto/wa-sqlite/tar.gz/03c00ed67cd934bd664ae310234bba317928f851: resolution: {tarball: https://codeload.github.com/rhashimoto/wa-sqlite/tar.gz/03c00ed67cd934bd664ae310234bba317928f851} version: 1.0.8 @@ -17505,6 +17709,10 @@ packages: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + xml2js@0.6.0: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} engines: {node: '>=4.0.0'} @@ -17550,6 +17758,10 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} + yaml-eslint-parser@2.0.0: + resolution: {integrity: sha512-h0uDm97wvT2bokfwwTmY6kJ1hp6YDFL0nRHwNKz8s/VD1FH/vvZjAKoMUE+un0eaYBSG7/c6h+lJTP+31tjgTw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} @@ -17572,10 +17784,6 @@ packages: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs-parser@22.0.0: - resolution: {integrity: sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yargs@15.4.1: resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} engines: {node: '>=8'} @@ -17584,10 +17792,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yargs@18.0.0: - resolution: {integrity: sha512-4UEqdc2RYGHZc7Doyqkrqiln3p9X2DZVxaGbwhn2pi7MrRagKaOcIKe8L3OxYcbhXLgLFUS3zAYuQjKBQgmuNg==} - engines: {node: ^20.19.0 || ^22.12.0 || >=23} - yauzl@2.10.0: resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} @@ -17632,11 +17836,11 @@ packages: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} - zod-validation-error@3.5.4: - resolution: {integrity: sha512-+hEiRIiPobgyuFlEojnqjJnhFvg4r/i3cqgcm67eehZf/WBaK3g6cD02YU9mtdVxZjv8CzCA9n/Rhrs3yAAvAw==} + zod-validation-error@4.0.2: + resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} peerDependencies: - zod: ^3.24.4 + zod: ^3.25.0 || ^4.0.0 zod@3.22.4: resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} @@ -17771,7 +17975,59 @@ snapshots: '@alloc/quick-lru@5.2.0': {} - '@altano/repository-tools@2.0.1': {} + '@antfu/eslint-config@7.6.1(@eslint-react/eslint-plugin@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint-plugin-format@2.0.1(eslint@10.0.2(jiti@2.6.1)))(eslint-plugin-react-hooks@7.0.1(eslint@10.0.2(jiti@2.6.1)))(eslint-plugin-react-refresh@0.5.2(eslint@10.0.2(jiti@2.6.1)))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@antfu/install-pkg': 1.1.0 + '@clack/prompts': 1.0.1 + '@eslint-community/eslint-plugin-eslint-comments': 4.6.0(eslint@10.0.2(jiti@2.6.1)) + '@eslint/markdown': 7.5.1 + '@stylistic/eslint-plugin': 5.9.0(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@vitest/eslint-plugin': 1.6.9(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + ansis: 4.2.0 + cac: 6.7.14 + eslint: 10.0.2(jiti@2.6.1) + eslint-config-flat-gitignore: 2.2.1(eslint@10.0.2(jiti@2.6.1)) + eslint-flat-config-utils: 3.0.1 + eslint-merge-processors: 2.0.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-antfu: 3.2.2(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-command: 3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-import-lite: 0.5.2(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-jsdoc: 62.7.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-jsonc: 3.1.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-n: 17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-no-only-tests: 3.3.0 + eslint-plugin-perfectionist: 5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-pnpm: 1.6.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-regexp: 3.0.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-toml: 1.3.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-unicorn: 63.0.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-vue: 10.8.0(@stylistic/eslint-plugin@5.9.0(eslint@10.0.2(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.0.2(jiti@2.6.1))) + eslint-plugin-yml: 3.3.0(eslint@10.0.2(jiti@2.6.1)) + eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.29)(eslint@10.0.2(jiti@2.6.1)) + globals: 17.4.0 + local-pkg: 1.1.2 + parse-gitignore: 2.0.0 + toml-eslint-parser: 1.0.3 + vue-eslint-parser: 10.4.0(eslint@10.0.2(jiti@2.6.1)) + yaml-eslint-parser: 2.0.0 + optionalDependencies: + '@eslint-react/eslint-plugin': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@unocss/eslint-plugin': 66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-format: 2.0.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react-refresh: 0.5.2(eslint@10.0.2(jiti@2.6.1)) + transitivePeerDependencies: + - '@eslint/json' + - '@typescript-eslint/rule-tester' + - '@typescript-eslint/typescript-estree' + - '@typescript-eslint/utils' + - '@vue/compiler-sfc' + - supports-color + - typescript + - vitest '@antfu/install-pkg@1.1.0': dependencies: @@ -18047,14 +18303,6 @@ snapshots: '@babel/core': 7.29.0 '@babel/helper-plugin-utils': 7.28.6 - '@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.28.6(@babel/core@7.29.0) - '@babel/helper-plugin-utils': 7.28.6 - transitivePeerDependencies: - - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.29.0)': dependencies: '@babel/core': 7.29.0 @@ -18710,7 +18958,7 @@ snapshots: '@babel/types@8.0.0-rc.1': dependencies: '@babel/helper-string-parser': 8.0.0-rc.2 - '@babel/helper-validator-identifier': 8.0.0-rc.1 + '@babel/helper-validator-identifier': 8.0.0-rc.2 '@babel/types@8.0.0-rc.2': dependencies: @@ -18801,12 +19049,23 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 + '@clack/core@1.0.1': + dependencies: + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@clack/prompts@0.8.2': dependencies: '@clack/core': 0.3.5 picocolors: 1.1.1 sisteransi: 1.0.5 + '@clack/prompts@1.0.1': + dependencies: + '@clack/core': 1.0.1 + picocolors: 1.1.1 + sisteransi: 1.0.5 + '@cloudflare/kv-asset-handler@0.4.2': {} '@cloudflare/unenv-preset@2.14.0(unenv@2.0.0-rc.24)(workerd@1.20260219.0)': @@ -18866,7 +19125,7 @@ snapshots: '@code-inspector/core@1.2.10': dependencies: - '@vue/compiler-dom': 3.5.28 + '@vue/compiler-dom': 3.5.29 chalk: 4.1.2 dotenv: 16.6.1 launch-ide: 1.2.0 @@ -18876,8 +19135,8 @@ snapshots: '@code-inspector/core@1.4.2': dependencies: - '@vue/compiler-dom': 3.5.28 - chalk: 4.1.1 + '@vue/compiler-dom': 3.5.29 + chalk: 4.1.2 dotenv: 16.6.1 launch-ide: 1.4.0 portfinder: 1.0.38 @@ -18964,8 +19223,8 @@ snapshots: '@develar/schema-utils@2.6.5': dependencies: - ajv: 6.12.6 - ajv-keywords: 3.5.2(ajv@6.12.6) + ajv: 6.14.0 + ajv-keywords: 3.5.2(ajv@6.14.0) '@dnd-kit/accessibility@3.1.1(react@19.1.0)': dependencies: @@ -18994,6 +19253,12 @@ snapshots: '@dominicstop/ts-event-emitter@1.1.0': {} + '@dprint/formatter@0.5.1': {} + + '@dprint/markdown@0.21.1': {} + + '@dprint/toml@0.7.0': {} + '@drizzle-team/brocli@0.10.2': {} '@edge-runtime/format@2.2.1': {} @@ -19503,13 +19768,15 @@ snapshots: '@epic-web/invariant@1.0.0': {} - '@es-joy/jsdoccomment@0.78.0': + '@es-joy/jsdoccomment@0.84.0': dependencies: '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.56.0 - comment-parser: 1.4.1 + '@typescript-eslint/types': 8.56.1 + comment-parser: 1.4.5 esquery: 1.7.0 - jsdoc-type-pratt-parser: 7.0.0 + jsdoc-type-pratt-parser: 7.1.1 + + '@es-joy/resolve.exports@1.2.0': {} '@esbuild-kit/core-utils@3.3.2': dependencies: @@ -19821,216 +20088,103 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true - '@eslint-community/eslint-utils@4.9.1(eslint@9.27.0(jiti@2.6.1))': + '@eslint-community/eslint-plugin-eslint-comments@4.6.0(eslint@10.0.2(jiti@2.6.1))': dependencies: - eslint: 9.27.0(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 + escape-string-regexp: 4.0.0 + eslint: 10.0.2(jiti@2.6.1) + ignore: 7.0.5 - '@eslint-community/eslint-utils@4.9.1(eslint@9.38.0(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.2(jiti@2.6.1))': dependencies: - eslint: 9.38.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@9.39.1(jiti@2.6.1))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.27.0(jiti@2.6.1))': dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 9.27.0(jiti@2.6.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} - '@eslint-react/ast@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@eslint-react/ast@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/ast@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) string-ts: 2.3.1 - ts-pattern: 5.9.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@eslint-react/core@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - birecord: 0.1.1 - ts-pattern: 5.9.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@eslint-react/core@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - birecord: 0.1.1 - ts-pattern: 5.9.0 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@eslint-react/eff@1.53.1': {} - - '@eslint-react/eslint-plugin@1.53.1(eslint@9.38.0(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - eslint-plugin-react-debug: 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-dom: 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-hooks-extra: 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-naming-convention: 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-web-api: 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-x: 1.53.1(eslint@9.38.0(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - ts-api-utils - - '@eslint-react/eslint-plugin@1.53.1(eslint@9.39.1(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - eslint-plugin-react-debug: 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-dom: 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-hooks-extra: 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-naming-convention: 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-web-api: 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-x: 1.53.1(eslint@9.39.1(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - - ts-api-utils - '@eslint-react/kit@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/core@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 - zod: 4.3.6 + typescript: 5.9.3 transitivePeerDependencies: - - eslint - supports-color - - typescript - '@eslint-react/kit@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - ts-pattern: 5.9.0 - zod: 4.3.6 - transitivePeerDependencies: - - eslint - - supports-color - - typescript + '@eslint-react/eff@2.13.0': {} - '@eslint-react/shared@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/eslint-plugin@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - ts-pattern: 5.9.0 - zod: 4.3.6 + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + eslint-plugin-react-dom: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-hooks-extra: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-naming-convention: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-rsc: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-web-api: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint-plugin-react-x: 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 transitivePeerDependencies: - - eslint - supports-color - - typescript - '@eslint-react/shared@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/shared@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - ts-pattern: 5.9.0 - zod: 4.3.6 - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@eslint-react/var@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 + '@eslint-react/eff': 2.13.0 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 + typescript: 5.9.3 + zod: 3.25.76 transitivePeerDependencies: - - eslint - supports-color - - typescript - '@eslint-react/var@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@eslint-react/var@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 + typescript: 5.9.3 transitivePeerDependencies: - - eslint - supports-color - - typescript - '@eslint/compat@1.4.1(eslint@9.38.0(jiti@2.6.1))': + '@eslint/compat@2.0.2(eslint@10.0.2(jiti@2.6.1))': dependencies: - '@eslint/core': 0.17.0 - optionalDependencies: - eslint: 9.38.0(jiti@2.6.1) - - '@eslint/compat@1.4.1(eslint@9.39.1(jiti@2.6.1))': - dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.1.0 optionalDependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) '@eslint/config-array@0.20.1': dependencies: @@ -20040,19 +20194,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/config-array@0.21.1': + '@eslint/config-array@0.23.2': dependencies: - '@eslint/object-schema': 2.1.7 + '@eslint/object-schema': 3.0.2 debug: 4.4.3(supports-color@8.1.1) - minimatch: 3.1.2 + minimatch: 10.2.4 transitivePeerDependencies: - supports-color '@eslint/config-helpers@0.2.3': {} - '@eslint/config-helpers@0.4.2': + '@eslint/config-helpers@0.5.2': dependencies: - '@eslint/core': 0.17.0 + '@eslint/core': 1.1.0 '@eslint/core@0.14.0': dependencies: @@ -20062,17 +20216,22 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.16.0': + '@eslint/core@0.17.0': dependencies: '@types/json-schema': 7.0.15 - '@eslint/core@0.17.0': + '@eslint/core@1.1.0': dependencies: '@types/json-schema': 7.0.15 + '@eslint/css-tree@3.6.9': + dependencies: + mdn-data: 2.23.0 + source-map-js: 1.2.1 + '@eslint/eslintrc@3.3.3': dependencies: - ajv: 6.12.6 + ajv: 6.14.0 debug: 4.4.3(supports-color@8.1.1) espree: 10.4.0 globals: 14.0.0 @@ -20086,14 +20245,24 @@ snapshots: '@eslint/js@9.27.0': {} - '@eslint/js@9.38.0': {} - - '@eslint/js@9.39.1': {} - - '@eslint/js@9.39.2': {} + '@eslint/markdown@7.5.1': + dependencies: + '@eslint/core': 0.17.0 + '@eslint/plugin-kit': 0.4.1 + github-slugger: 2.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-frontmatter: 2.0.1 + mdast-util-gfm: 3.1.0 + micromark-extension-frontmatter: 2.0.0 + micromark-extension-gfm: 3.0.0 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color '@eslint/object-schema@2.1.7': {} + '@eslint/object-schema@3.0.2': {} + '@eslint/plugin-kit@0.3.5': dependencies: '@eslint/core': 0.15.2 @@ -20104,6 +20273,11 @@ snapshots: '@eslint/core': 0.17.0 levn: 0.4.1 + '@eslint/plugin-kit@0.6.0': + dependencies: + '@eslint/core': 1.1.0 + levn: 0.4.1 + '@essentials/memoize-one@1.1.0': {} '@essentials/one-key-map@1.2.0': {} @@ -20196,7 +20370,7 @@ snapshots: '@expo/code-signing-certificates@0.0.5': dependencies: - node-forge: 1.3.1 + node-forge: 1.3.3 nullthrows: 1.1.1 '@expo/code-signing-certificates@0.0.6': @@ -20515,7 +20689,7 @@ snapshots: '@expo/pkcs12@0.1.3': dependencies: - node-forge: 1.3.1 + node-forge: 1.3.3 '@expo/plist@0.2.0': dependencies: @@ -20603,7 +20777,7 @@ snapshots: '@segment/loosely-validate-event': 2.0.0 fetch-retry: 4.1.1 md5: 2.3.0 - node-fetch: 2.6.7(encoding@0.1.13) + node-fetch: 2.7.0(encoding@0.1.13) remove-trailing-slash: 0.1.1 uuid: 8.3.2 transitivePeerDependencies: @@ -20623,14 +20797,14 @@ snapshots: '@expo/logger': 1.0.221 '@expo/spawn-async': 1.7.2 arg: 5.0.2 - fs-extra: 11.2.0 + fs-extra: 11.3.3 joi: 17.13.3 jsep: 1.4.0 lodash.clonedeep: 4.5.0 lodash.get: 4.4.2 this-file: 2.0.3 uuid: 9.0.1 - yaml: 2.6.0 + yaml: 2.8.2 '@expo/sudo-prompt@9.3.2': {} @@ -21620,7 +21794,20 @@ snapshots: - bufferutil - utf-8-validate - '@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.8.1)': + '@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.6.2)': + dependencies: + '@babel/generator': 7.29.1 + '@babel/parser': 7.29.0 + '@babel/traverse': 7.29.0 + '@babel/types': 7.29.0 + prettier: 3.6.2 + semver: 7.7.4 + optionalDependencies: + '@vue/compiler-sfc': 3.5.29 + transitivePeerDependencies: + - supports-color + + '@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1)': dependencies: '@babel/generator': 7.29.1 '@babel/parser': 7.29.0 @@ -21628,8 +21815,11 @@ snapshots: '@babel/types': 7.29.0 prettier: 3.8.1 semver: 7.7.4 + optionalDependencies: + '@vue/compiler-sfc': 3.5.29 transitivePeerDependencies: - supports-color + optional: true '@iconify-json/logos@1.2.10': dependencies: @@ -21664,7 +21854,7 @@ snapshots: '@iconify/types': 2.0.0 '@iconify/utils': 2.3.0 '@types/tar': 6.1.13 - axios: 1.13.0 + axios: 1.13.0(debug@4.4.3) cheerio: 1.0.0 domhandler: 5.0.3 extract-zip: 2.0.1 @@ -21870,14 +22060,14 @@ snapshots: '@img/sharp-win32-x64@0.34.5': optional: true - '@innei/prettier@1.0.0': + '@innei/prettier@1.0.0(@vue/compiler-sfc@3.5.29)': dependencies: - '@ianvs/prettier-plugin-sort-imports': 4.4.2(prettier@3.8.1) + '@ianvs/prettier-plugin-sort-imports': 4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.6.2) prettier: 3.8.1 prettier-package-json: 2.8.0 prettier-plugin-autocorrect: 0.4.3(prettier@3.8.1) prettier-plugin-sh: 0.18.0(prettier@3.8.1) - prettier-plugin-tailwindcss: 0.6.14(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.8.1))(prettier@3.8.1) + prettier-plugin-tailwindcss: 0.6.14(@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1))(prettier@3.8.1) transitivePeerDependencies: - '@prettier/plugin-hermes' - '@prettier/plugin-oxc' @@ -22394,13 +22584,6 @@ snapshots: '@mozilla/readability@0.6.0(patch_hash=61709486ef07e9c8175a4b3f19f1aa4e2a1a75a3c557643c574d6cdacd6dd959)': {} - '@napi-rs/wasm-runtime@0.2.12': - dependencies: - '@emnapi/core': 1.8.1 - '@emnapi/runtime': 1.8.1 - '@tybys/wasm-util': 0.10.1 - optional: true - '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.8.1 @@ -22667,8 +22850,67 @@ snapshots: '@opentelemetry/api@1.9.0': {} + '@ota-meshi/ast-token-store@0.3.0': {} + '@oxc-project/types@0.112.0': {} + '@oxfmt/binding-android-arm-eabi@0.35.0': + optional: true + + '@oxfmt/binding-android-arm64@0.35.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.35.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.35.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.35.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.35.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.35.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.35.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.35.0': + optional: true + + '@oxfmt/binding-linux-ppc64-gnu@0.35.0': + optional: true + + '@oxfmt/binding-linux-riscv64-gnu@0.35.0': + optional: true + + '@oxfmt/binding-linux-riscv64-musl@0.35.0': + optional: true + + '@oxfmt/binding-linux-s390x-gnu@0.35.0': + optional: true + + '@oxfmt/binding-linux-x64-gnu@0.35.0': + optional: true + + '@oxfmt/binding-linux-x64-musl@0.35.0': + optional: true + + '@oxfmt/binding-openharmony-arm64@0.35.0': + optional: true + + '@oxfmt/binding-win32-arm64-msvc@0.35.0': + optional: true + + '@oxfmt/binding-win32-ia32-msvc@0.35.0': + optional: true + + '@oxfmt/binding-win32-x64-msvc@0.35.0': + optional: true + '@peculiar/asn1-android@2.6.0': dependencies: '@peculiar/asn1-schema': 2.6.0 @@ -24270,6 +24512,8 @@ snapshots: '@sinclair/typebox@0.27.10': {} + '@sindresorhus/base62@1.0.0': {} + '@sindresorhus/is@4.6.0': {} '@sindresorhus/is@7.2.0': {} @@ -24307,21 +24551,11 @@ snapshots: '@standard-schema/utils@0.3.0': {} - '@stylistic/eslint-plugin@5.8.0(eslint@9.38.0(jiti@2.6.1))': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - '@typescript-eslint/types': 8.56.0 - eslint: 9.38.0(jiti@2.6.1) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.3 - - '@stylistic/eslint-plugin@5.8.0(eslint@9.39.1(jiti@2.6.1))': + '@stylistic/eslint-plugin@5.9.0(eslint@10.0.2(jiti@2.6.1))': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/types': 8.56.0 - eslint: 9.39.1(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/types': 8.56.1 + eslint: 10.0.2(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 estraverse: 5.3.0 @@ -24346,9 +24580,10 @@ snapshots: dependencies: defer-to-connect: 2.0.1 - '@t3-oss/env-core@0.13.10(typescript@5.9.3)(zod@3.25.76)': + '@t3-oss/env-core@0.13.10(typescript@5.9.3)(valibot@1.2.0(typescript@5.9.3))(zod@3.25.76)': optionalDependencies: typescript: 5.9.3 + valibot: 1.2.0(typescript@5.9.3) zod: 3.25.76 '@tailwindcss/container-queries@0.1.1(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))': @@ -24533,13 +24768,13 @@ snapshots: '@volar/language-core': 2.4.28 '@volar/language-hub': 0.0.1 '@volar/typescript': 2.4.28 - minimatch: 10.2.1 + minimatch: 10.2.4 typescript: 5.9.3 '@tsslint/config@2.0.7(typescript@5.9.3)': dependencies: '@tsslint/types': 2.0.7 - minimatch: 10.2.1 + minimatch: 10.2.4 ts-api-utils: 2.4.0(typescript@5.9.3) transitivePeerDependencies: - typescript @@ -24548,12 +24783,12 @@ snapshots: dependencies: '@tsslint/types': 2.0.7 esbuild: 0.27.3 - minimatch: 10.2.1 + minimatch: 10.2.4 '@tsslint/eslint@2.0.7(jiti@2.6.1)(typescript@5.9.3)': dependencies: '@tsslint/config': 2.0.7(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.0(eslint@9.27.0(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.27.0(jiti@2.6.1))(typescript@5.9.3) eslint: 9.27.0(jiti@2.6.1) transitivePeerDependencies: - jiti @@ -24650,6 +24885,8 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 + '@types/esrecurse@4.3.1': {} + '@types/estree-jsx@1.0.5': dependencies: '@types/estree': 1.0.8 @@ -24814,31 +25051,15 @@ snapshots: '@types/node': 25.2.3 optional: true - '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.0 - eslint: 9.38.0(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.0 - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 + eslint: 10.0.2(jiti@2.6.1) ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -24846,94 +25067,84 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.0(eslint@9.27.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.0 + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.27.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/parser@8.56.1(eslint@9.27.0(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.0 + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.38.0(jiti@2.6.1) + eslint: 9.27.0(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/project-service@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.56.0 + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.39.1(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.56.0(typescript@5.9.3)': + '@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - debug: 4.4.3(supports-color@8.1.1) - typescript: 5.9.3 + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + ajv: 6.14.0 + eslint: 10.0.2(jiti@2.6.1) + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + semver: 7.7.4 transitivePeerDependencies: - supports-color + - typescript - '@typescript-eslint/scope-manager@8.56.0': - dependencies: - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/visitor-keys': 8.56.0 - - '@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.9.3)': + '@typescript-eslint/scope-manager@8.56.1': dependencies: - typescript: 5.9.3 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 - '@typescript-eslint/type-utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 9.38.0(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/type-utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.56.0': {} + '@typescript-eslint/types@8.56.1': {} - '@typescript-eslint/typescript-estree@8.56.0(typescript@5.9.3)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3)': dependencies: - '@typescript-eslint/project-service': 8.56.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/visitor-keys': 8.56.0 + '@typescript-eslint/project-service': 8.56.1(typescript@5.9.3) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/visitor-keys': 8.56.1 debug: 4.4.3(supports-color@8.1.1) - minimatch: 9.0.5 + minimatch: 10.2.4 semver: 7.7.4 tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.9.3) @@ -24941,32 +25152,21 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) typescript: 5.9.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.56.0': + '@typescript-eslint/visitor-keys@8.56.1': dependencies: - '@typescript-eslint/types': 8.56.0 - eslint-visitor-keys: 5.0.0 + '@typescript-eslint/types': 8.56.1 + eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.0': {} @@ -24976,41 +25176,14 @@ snapshots: dependencies: '@unocss/core': 66.6.0 unconfig: 7.5.0 + optional: true - '@unocss/core@66.6.0': {} - - '@unocss/eslint-config@66.6.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@unocss/eslint-plugin': 66.6.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@unocss/eslint-config@66.6.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@unocss/eslint-plugin': 66.6.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - eslint - - supports-color - - typescript - - '@unocss/eslint-plugin@66.6.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@unocss/config': 66.6.0 - '@unocss/core': 66.6.0 - '@unocss/rule-utils': 66.6.0 - magic-string: 0.30.21 - synckit: 0.11.12 - transitivePeerDependencies: - - eslint - - supports-color - - typescript + '@unocss/core@66.6.0': + optional: true - '@unocss/eslint-plugin@66.6.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)': + '@unocss/eslint-plugin@66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)': dependencies: - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) '@unocss/config': 66.6.0 '@unocss/core': 66.6.0 '@unocss/rule-utils': 66.6.0 @@ -25020,11 +25193,13 @@ snapshots: - eslint - supports-color - typescript + optional: true '@unocss/rule-utils@66.6.0': dependencies: '@unocss/core': 66.6.0 magic-string: 0.30.21 + optional: true '@unpic/core@1.0.3': dependencies: @@ -25038,65 +25213,6 @@ snapshots: optionalDependencies: next: 16.0.11(@babel/core@7.29.0)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) - '@unrs/resolver-binding-android-arm-eabi@1.11.1': - optional: true - - '@unrs/resolver-binding-android-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.11.1': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.11.1': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.11.1': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.11.1': - dependencies: - '@napi-rs/wasm-runtime': 0.2.12 - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.11.1': - optional: true - '@urql/core@4.0.11(graphql@16.8.1)': dependencies: '@0no-co/graphql.web': 1.2.0(graphql@16.8.1) @@ -25113,7 +25229,7 @@ snapshots: '@urql/exchange-retry@1.2.0(graphql@16.8.1)': dependencies: - '@urql/core': 4.0.11(graphql@16.8.1) + '@urql/core': 5.2.0(graphql@16.8.1) wonka: 6.3.5 transitivePeerDependencies: - graphql @@ -25130,6 +25246,10 @@ snapshots: '@use-gesture/core': 10.3.1 react: 19.1.0 + '@valibot/to-json-schema@1.5.0(valibot@1.2.0(typescript@5.9.3))': + dependencies: + valibot: 1.2.0(typescript@5.9.3) + '@vercel/build-utils@13.4.0': dependencies: '@vercel/python-analysis': 0.4.1 @@ -25140,8 +25260,8 @@ snapshots: dependencies: '@mapbox/node-pre-gyp': 2.0.3(encoding@0.1.13) '@rollup/pluginutils': 5.3.0(rollup@4.57.1) - acorn: 8.15.0 - acorn-import-attributes: 1.9.5(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-attributes: 1.9.5(acorn@8.16.0) async-sema: 3.1.1 bindings: 1.5.0 estree-walker: 2.0.2 @@ -25324,6 +25444,17 @@ snapshots: optionalDependencies: react-server-dom-webpack: 19.2.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(webpack@5.105.2) + '@vitest/eslint-plugin@1.6.9(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2))': + dependencies: + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + optionalDependencies: + typescript: 5.9.3 + vitest: 3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - supports-color + '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.3 @@ -25384,20 +25515,37 @@ snapshots: '@vscode/vscode-languagedetection@1.0.22': {} - '@vue/compiler-core@3.5.28': + '@vue/compiler-core@3.5.29': dependencies: '@babel/parser': 7.29.0 - '@vue/shared': 3.5.28 + '@vue/shared': 3.5.29 entities: 7.0.1 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.28': + '@vue/compiler-dom@3.5.29': + dependencies: + '@vue/compiler-core': 3.5.29 + '@vue/shared': 3.5.29 + + '@vue/compiler-sfc@3.5.29': + dependencies: + '@babel/parser': 7.29.0 + '@vue/compiler-core': 3.5.29 + '@vue/compiler-dom': 3.5.29 + '@vue/compiler-ssr': 3.5.29 + '@vue/shared': 3.5.29 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.29': dependencies: - '@vue/compiler-core': 3.5.28 - '@vue/shared': 3.5.28 + '@vue/compiler-dom': 3.5.29 + '@vue/shared': 3.5.29 - '@vue/shared@3.5.28': {} + '@vue/shared@3.5.29': {} '@webassemblyjs/ast@1.14.1': dependencies: @@ -25532,27 +25680,27 @@ snapshots: mime-types: 2.1.35 negotiator: 0.6.3 - acorn-import-attributes@1.9.5(acorn@8.15.0): + acorn-import-attributes@1.9.5(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-import-phases@1.0.4(acorn@8.15.0): + acorn-import-phases@1.0.4(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn-jsx@5.3.2(acorn@8.15.0): + acorn-jsx@5.3.2(acorn@8.16.0): dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn-loose@8.5.2: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 acorn-walk@8.3.4: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 - acorn@8.15.0: {} + acorn@8.16.0: {} add-stream@1.0.0: {} @@ -25617,16 +25765,16 @@ snapshots: optionalDependencies: ajv: 8.18.0 - ajv-keywords@3.5.2(ajv@6.12.6): + ajv-keywords@3.5.2(ajv@6.14.0): dependencies: - ajv: 6.12.6 + ajv: 6.14.0 ajv-keywords@5.1.0(ajv@8.18.0): dependencies: ajv: 8.18.0 fast-deep-equal: 3.1.3 - ajv@6.12.6: + ajv@6.14.0: dependencies: fast-deep-equal: 3.1.3 fast-json-stable-stringify: 2.1.0 @@ -25796,6 +25944,8 @@ snapshots: tar-stream: 2.2.0 zip-stream: 4.1.1 + are-docs-informative@0.0.2: {} + arg@4.1.0: {} arg@4.1.3: {} @@ -25934,15 +26084,7 @@ snapshots: await-lock@2.2.2: {} - axios@1.13.0: - dependencies: - follow-redirects: 1.15.11(debug@4.4.3) - form-data: 4.0.5 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - axios@1.13.5(debug@4.4.3): + axios@1.13.0(debug@4.4.3): dependencies: follow-redirects: 1.15.11(debug@4.4.3) form-data: 4.0.5 @@ -26650,12 +26792,6 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 - cliui@9.0.1: - dependencies: - string-width: 7.2.0 - strip-ansi: 7.1.2 - wrap-ansi: 9.0.2 - clone-response@1.0.3: dependencies: mimic-response: 1.0.1 @@ -26779,8 +26915,6 @@ snapshots: core-util-is: 1.0.3 esprima: 4.0.1 - comment-parser@1.4.1: {} - comment-parser@1.4.5: {} common-tags@1.8.2: {} @@ -27265,14 +27399,10 @@ snapshots: destroy@1.2.0: {} - detect-indent@7.0.2: {} - detect-libc@1.0.3: {} detect-libc@2.1.2: {} - detect-newline@4.0.1: {} - detect-node-es@1.1.0: {} detect-node@2.1.0: @@ -27284,7 +27414,7 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@27.5.1: {} + diff-sequences@29.6.3: {} diff@4.0.4: {} @@ -27328,7 +27458,7 @@ snapshots: dependencies: '@types/plist': 3.0.5 '@types/verror': 1.10.11 - ajv: 6.12.6 + ajv: 6.14.0 crc: 3.8.0 iconv-corefoundation: 1.1.7 plist: 3.1.0 @@ -27945,605 +28075,379 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.6.5(eslint@9.38.0(jiti@2.6.1)): - dependencies: - eslint: 9.38.0(jiti@2.6.1) - semver: 7.7.4 - - eslint-compat-utils@0.6.5(eslint@9.39.1(jiti@2.6.1)): + eslint-compat-utils@0.5.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) semver: 7.7.4 - eslint-config-flat-gitignore@2.1.0(eslint@9.38.0(jiti@2.6.1)): + eslint-config-flat-gitignore@2.2.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint/compat': 1.4.1(eslint@9.38.0(jiti@2.6.1)) - eslint: 9.38.0(jiti@2.6.1) + '@eslint/compat': 2.0.2(eslint@10.0.2(jiti@2.6.1)) + eslint: 10.0.2(jiti@2.6.1) - eslint-config-flat-gitignore@2.1.0(eslint@9.39.1(jiti@2.6.1)): + eslint-config-hyoban@6.0.0(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint@10.0.2(jiti@2.6.1))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - '@eslint/compat': 1.4.1(eslint@9.39.1(jiti@2.6.1)) - eslint: 9.39.1(jiti@2.6.1) - - eslint-config-hyoban@4.0.10(@types/estree@1.0.8)(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(tailwindcss@4.1.16)(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3): - dependencies: - '@eslint-react/eslint-plugin': 1.53.1(eslint@9.38.0(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) - '@eslint/js': 9.39.2 - '@stylistic/eslint-plugin': 5.8.0(eslint@9.38.0(jiti@2.6.1)) - '@typescript-eslint/types': 8.56.0 - '@unocss/eslint-config': 66.6.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@antfu/eslint-config': 7.6.1(@eslint-react/eslint-plugin@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@unocss/eslint-plugin@66.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@vue/compiler-sfc@3.5.29)(eslint-plugin-format@2.0.1(eslint@10.0.2(jiti@2.6.1)))(eslint-plugin-react-hooks@7.0.1(eslint@10.0.2(jiti@2.6.1)))(eslint-plugin-react-refresh@0.5.2(eslint@10.0.2(jiti@2.6.1)))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4(@edge-runtime/vm@3.2.0)(@types/debug@4.1.12)(@types/node@25.2.3)(happy-dom@20.6.1(bufferutil@4.1.0))(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)) + '@eslint-react/eslint-plugin': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) defu: 6.1.4 - eslint: 9.38.0(jiti@2.6.1) - eslint-config-flat-gitignore: 2.1.0(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-antfu: 3.2.2(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-command: 3.4.0(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-hyoban: 0.6.1(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-jsonc: 2.21.1(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-package-json: 0.45.2(@types/estree@1.0.8)(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.2) - eslint-plugin-react-google-translate: 0.1.1(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-react-hooks: 6.0.0-rc.2(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-react-refresh: 0.4.26(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-regexp: 2.10.0(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-tailwindcss: 4.0.0-beta.0(tailwindcss@4.1.16) - eslint-plugin-unicorn: 61.0.2(eslint@9.38.0(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)) - globals: 16.5.0 - jsonc-eslint-parser: 2.4.2 + eslint-flat-config-utils: 3.0.1 + eslint-markdown: 0.5.0(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-better-tailwindcss: 4.3.1(eslint@10.0.2(jiti@2.6.1))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3) + eslint-plugin-format: 2.0.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-hyoban: 0.13.3(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react-hooks: 7.0.1(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-react-refresh: 0.5.2(eslint@10.0.2(jiti@2.6.1)) + eslint-plugin-simple-import-sort: 12.1.1(eslint@10.0.2(jiti@2.6.1)) local-pkg: 1.1.2 - read-package-up: 11.0.0 - typescript-eslint: 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 transitivePeerDependencies: + - '@angular-eslint/eslint-plugin' + - '@angular-eslint/eslint-plugin-template' + - '@angular-eslint/template-parser' - '@eslint/json' - - '@types/estree' - - '@typescript-eslint/eslint-plugin' + - '@next/eslint-plugin-next' + - '@prettier/plugin-xml' + - '@typescript-eslint/rule-tester' + - '@typescript-eslint/typescript-estree' - '@typescript-eslint/utils' - - eslint-import-resolver-node + - '@unocss/eslint-plugin' + - '@vue/compiler-sfc' + - astro-eslint-parser + - eslint + - eslint-plugin-astro + - eslint-plugin-jsx-a11y + - eslint-plugin-solid + - eslint-plugin-svelte + - eslint-plugin-vuejs-accessibility + - oxlint + - prettier-plugin-astro + - prettier-plugin-slidev - supports-color + - svelte-eslint-parser - tailwindcss - - ts-api-utils + - typescript + - vitest - eslint-config-hyoban@4.0.10(@types/estree@1.0.8)(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(tailwindcss@4.1.16)(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3): + eslint-flat-config-utils@3.0.1: dependencies: - '@eslint-react/eslint-plugin': 1.53.1(eslint@9.39.1(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3) - '@eslint/js': 9.39.2 - '@stylistic/eslint-plugin': 5.8.0(eslint@9.39.1(jiti@2.6.1)) - '@typescript-eslint/types': 8.56.0 - '@unocss/eslint-config': 66.6.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - defu: 6.1.4 - eslint: 9.39.1(jiti@2.6.1) - eslint-config-flat-gitignore: 2.1.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-antfu: 3.2.2(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-command: 3.4.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-hyoban: 0.6.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-jsonc: 2.21.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-package-json: 0.45.2(@types/estree@1.0.8)(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.2) - eslint-plugin-react-google-translate: 0.1.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-react-hooks: 6.0.0-rc.2(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-react-refresh: 0.4.26(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-regexp: 2.10.0(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-simple-import-sort: 12.1.1(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-tailwindcss: 4.0.0-beta.0(tailwindcss@4.1.16) - eslint-plugin-unicorn: 61.0.2(eslint@9.39.1(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.4.1(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)) - globals: 16.5.0 - jsonc-eslint-parser: 2.4.2 - local-pkg: 1.1.2 - read-package-up: 11.0.0 - typescript-eslint: 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - '@eslint/json' - - '@types/estree' - - '@typescript-eslint/eslint-plugin' - - '@typescript-eslint/utils' - - eslint-import-resolver-node - - supports-color - - tailwindcss - - ts-api-utils + '@eslint/config-helpers': 0.5.2 + pathe: 2.0.3 - eslint-fix-utils@0.4.1(@types/estree@1.0.8)(eslint@9.38.0(jiti@2.6.1)): + eslint-formatting-reporter@0.0.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.38.0(jiti@2.6.1) - optionalDependencies: - '@types/estree': 1.0.8 + eslint: 10.0.2(jiti@2.6.1) + prettier-linter-helpers: 1.0.1 - eslint-fix-utils@0.4.1(@types/estree@1.0.8)(eslint@9.39.1(jiti@2.6.1)): + eslint-json-compat-utils@0.2.1(eslint@10.0.2(jiti@2.6.1))(jsonc-eslint-parser@3.1.0): dependencies: - eslint: 9.39.1(jiti@2.6.1) - optionalDependencies: - '@types/estree': 1.0.8 + eslint: 10.0.2(jiti@2.6.1) + esquery: 1.7.0 + jsonc-eslint-parser: 3.1.0 - eslint-import-context@0.1.9(unrs-resolver@1.11.1): + eslint-markdown@0.5.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - get-tsconfig: 4.13.6 - stable-hash-x: 0.2.0 + '@eslint/markdown': 7.5.1 + micromark-util-normalize-identifier: 2.0.1 + parse5: 8.0.0 optionalDependencies: - unrs-resolver: 1.11.1 + eslint: 10.0.2(jiti@2.6.1) + transitivePeerDependencies: + - supports-color - eslint-json-compat-utils@0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): + eslint-merge-processors@2.0.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.38.0(jiti@2.6.1) - esquery: 1.7.0 - jsonc-eslint-parser: 2.4.2 + eslint: 10.0.2(jiti@2.6.1) - eslint-json-compat-utils@0.2.1(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): - dependencies: - eslint: 9.39.1(jiti@2.6.1) - esquery: 1.7.0 - jsonc-eslint-parser: 2.4.2 + eslint-parser-plain@0.1.1: {} - eslint-plugin-antfu@3.2.2(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-antfu@3.2.2(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.38.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-antfu@3.2.2(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-better-tailwindcss@4.3.1(eslint@10.0.2(jiti@2.6.1))(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)))(typescript@5.9.3): dependencies: - eslint: 9.39.1(jiti@2.6.1) + '@eslint/css-tree': 3.6.9 + '@valibot/to-json-schema': 1.5.0(valibot@1.2.0(typescript@5.9.3)) + enhanced-resolve: 5.19.0 + jiti: 2.6.1 + synckit: 0.11.12 + tailwind-csstree: 0.1.4 + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3)) + tsconfig-paths-webpack-plugin: 4.2.0 + valibot: 1.2.0(typescript@5.9.3) + optionalDependencies: + eslint: 10.0.2(jiti@2.6.1) + transitivePeerDependencies: + - typescript - eslint-plugin-command@3.4.0(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-command@3.5.2(@typescript-eslint/rule-tester@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(@typescript-eslint/typescript-estree@8.56.1(typescript@5.9.3))(@typescript-eslint/utils@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@es-joy/jsdoccomment': 0.78.0 - eslint: 9.38.0(jiti@2.6.1) + '@es-joy/jsdoccomment': 0.84.0 + '@typescript-eslint/rule-tester': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.9.3) + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-command@3.4.0(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-es-x@7.8.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@es-joy/jsdoccomment': 0.78.0 - eslint: 9.39.1(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint-community/regexpp': 4.12.2 + eslint: 10.0.2(jiti@2.6.1) + eslint-compat-utils: 0.5.1(eslint@10.0.2(jiti@2.6.1)) - eslint-plugin-hyoban@0.6.1(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-format@2.0.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.38.0(jiti@2.6.1) + '@dprint/formatter': 0.5.1 + '@dprint/markdown': 0.21.1 + '@dprint/toml': 0.7.0 + eslint: 10.0.2(jiti@2.6.1) + eslint-formatting-reporter: 0.0.0(eslint@10.0.2(jiti@2.6.1)) + eslint-parser-plain: 0.1.1 + ohash: 2.0.11 + oxfmt: 0.35.0 + prettier: 3.8.1 + synckit: 0.11.12 - eslint-plugin-hyoban@0.6.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-hyoban@0.13.3(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) + fast-string-width: 3.0.2 - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-import-lite@0.5.2(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.56.0 - comment-parser: 1.4.5 - debug: 4.4.3(supports-color@8.1.1) - eslint: 9.38.0(jiti@2.6.1) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - is-glob: 4.0.3 - minimatch: 10.2.1 - semver: 7.7.4 - stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 - optionalDependencies: - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - transitivePeerDependencies: - - supports-color + eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-jsdoc@62.7.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@typescript-eslint/types': 8.56.0 + '@es-joy/jsdoccomment': 0.84.0 + '@es-joy/resolve.exports': 1.2.0 + are-docs-informative: 0.0.2 comment-parser: 1.4.5 debug: 4.4.3(supports-color@8.1.1) - eslint: 9.39.1(jiti@2.6.1) - eslint-import-context: 0.1.9(unrs-resolver@1.11.1) - is-glob: 4.0.3 - minimatch: 10.2.1 + escape-string-regexp: 4.0.0 + eslint: 10.0.2(jiti@2.6.1) + espree: 11.1.1 + esquery: 1.7.0 + html-entities: 2.6.0 + object-deep-merge: 2.0.0 + parse-imports-exports: 0.2.4 semver: 7.7.4 - stable-hash-x: 0.2.0 - unrs-resolver: 1.11.1 - optionalDependencies: - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + spdx-expression-parse: 4.0.0 + to-valid-identifier: 1.0.0 transitivePeerDependencies: - supports-color - eslint-plugin-jsonc@2.21.1(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-jsonc@3.1.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - diff-sequences: 27.5.1 - eslint: 9.38.0(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.38.0(jiti@2.6.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.2) - espree: 10.4.0 - graphemer: 1.4.0 - jsonc-eslint-parser: 2.4.2 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 + '@ota-meshi/ast-token-store': 0.3.0 + diff-sequences: 29.6.3 + eslint: 10.0.2(jiti@2.6.1) + eslint-json-compat-utils: 0.2.1(eslint@10.0.2(jiti@2.6.1))(jsonc-eslint-parser@3.1.0) + jsonc-eslint-parser: 3.1.0 natural-compare: 1.4.0 synckit: 0.11.12 transitivePeerDependencies: - '@eslint/json' - eslint-plugin-jsonc@2.21.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-n@17.24.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - diff-sequences: 27.5.1 - eslint: 9.39.1(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.1(jiti@2.6.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.2) - espree: 10.4.0 - graphemer: 1.4.0 - jsonc-eslint-parser: 2.4.2 - natural-compare: 1.4.0 - synckit: 0.11.12 - transitivePeerDependencies: - - '@eslint/json' - - eslint-plugin-package-json@0.45.2(@types/estree@1.0.8)(eslint@9.38.0(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): - dependencies: - '@altano/repository-tools': 2.0.1 - change-case: 5.4.4 - detect-indent: 7.0.2 - detect-newline: 4.0.1 - eslint: 9.38.0(jiti@2.6.1) - eslint-fix-utils: 0.4.1(@types/estree@1.0.8)(eslint@9.38.0(jiti@2.6.1)) - jsonc-eslint-parser: 2.4.2 - package-json-validator: 0.23.0 - semver: 7.7.4 - sort-object-keys: 1.1.3 - sort-package-json: 3.6.1 - validate-npm-package-name: 6.0.2 - transitivePeerDependencies: - - '@types/estree' - - eslint-plugin-package-json@0.45.2(@types/estree@1.0.8)(eslint@9.39.1(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): - dependencies: - '@altano/repository-tools': 2.0.1 - change-case: 5.4.4 - detect-indent: 7.0.2 - detect-newline: 4.0.1 - eslint: 9.39.1(jiti@2.6.1) - eslint-fix-utils: 0.4.1(@types/estree@1.0.8)(eslint@9.39.1(jiti@2.6.1)) - jsonc-eslint-parser: 2.4.2 - package-json-validator: 0.23.0 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + enhanced-resolve: 5.19.0 + eslint: 10.0.2(jiti@2.6.1) + eslint-plugin-es-x: 7.8.0(eslint@10.0.2(jiti@2.6.1)) + get-tsconfig: 4.13.6 + globals: 15.15.0 + globrex: 0.1.2 + ignore: 5.3.2 semver: 7.7.4 - sort-object-keys: 1.1.3 - sort-package-json: 3.6.1 - validate-npm-package-name: 6.0.2 - transitivePeerDependencies: - - '@types/estree' - - eslint-plugin-react-debug@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: - typescript: 5.9.3 + ts-declaration-location: 1.0.7(typescript@5.9.3) transitivePeerDependencies: - - supports-color + - typescript - eslint-plugin-react-debug@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color + eslint-plugin-no-only-tests@3.3.0: {} - eslint-plugin-react-dom@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-perfectionist@5.6.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - compare-versions: 6.1.1 - eslint: 9.38.0(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: - typescript: 5.9.3 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) + natural-orderby: 5.0.0 transitivePeerDependencies: - supports-color + - typescript - eslint-plugin-react-dom@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-pnpm@1.6.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + empathic: 2.0.0 + eslint: 10.0.2(jiti@2.6.1) + jsonc-eslint-parser: 3.1.0 + pathe: 2.0.3 + pnpm-workspace-yaml: 1.6.0 + tinyglobby: 0.2.15 + yaml: 2.8.2 + yaml-eslint-parser: 2.0.0 + + eslint-plugin-react-dom@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): + dependencies: + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.39.1(jiti@2.6.1) - string-ts: 2.3.1 + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-google-translate@0.1.1(eslint@9.38.0(jiti@2.6.1)): - dependencies: - eslint: 9.38.0(jiti@2.6.1) - requireindex: 1.2.0 - - eslint-plugin-react-google-translate@0.1.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-react-hooks-extra@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - eslint: 9.39.1(jiti@2.6.1) - requireindex: 1.2.0 - - eslint-plugin-react-hooks-extra@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - string-ts: 2.3.1 + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks-extra@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-hooks@6.0.0-rc.2(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-react-hooks@7.0.1(eslint@10.0.2(jiti@2.6.1)): dependencies: '@babel/core': 7.29.0 '@babel/parser': 7.29.0 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - eslint: 9.38.0(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) hermes-parser: 0.25.1 zod: 3.25.76 - zod-validation-error: 3.5.4(zod@3.25.76) + zod-validation-error: 4.0.2(zod@3.25.76) transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@6.0.0-rc.2(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-react-naming-convention@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@babel/core': 7.29.0 - '@babel/parser': 7.29.0 - '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.29.0) - eslint: 9.39.1(jiti@2.6.1) - 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-naming-convention@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-naming-convention@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + compare-versions: 6.1.1 + eslint: 10.0.2(jiti@2.6.1) string-ts: 2.3.1 ts-pattern: 5.9.0 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color eslint-plugin-react-native-globals@0.1.2: {} - eslint-plugin-react-native@5.0.0(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-react-native@5.0.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) eslint-plugin-react-native-globals: 0.1.2 - eslint-plugin-react-refresh@0.4.26(eslint@9.38.0(jiti@2.6.1)): - dependencies: - eslint: 9.38.0(jiti@2.6.1) - - eslint-plugin-react-refresh@0.4.26(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-react-refresh@0.5.2(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-react-web-api@1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-rsc@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - string-ts: 2.3.1 + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-web-api@1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): + eslint-plugin-react-web-api@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - string-ts: 2.3.1 + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + birecord: 0.1.1 + eslint: 10.0.2(jiti@2.6.1) ts-pattern: 5.9.0 - optionalDependencies: typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-react-x@1.53.1(eslint@9.38.0(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3): + eslint-plugin-react-x@2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/ast': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/core': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/eff': 2.13.0 + '@eslint-react/shared': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@eslint-react/var': 2.13.0(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.56.1 + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/types': 8.56.1 + '@typescript-eslint/utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) compare-versions: 6.1.1 - eslint: 9.38.0(jiti@2.6.1) - is-immutable-type: 5.0.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - optionalDependencies: + eslint: 10.0.2(jiti@2.6.1) + is-immutable-type: 5.0.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) ts-api-utils: 2.4.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-x@1.53.1(eslint@9.39.1(jiti@2.6.1))(ts-api-utils@2.4.0(typescript@5.9.3))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 1.53.1 - '@eslint-react/kit': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/shared': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 1.53.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.56.0 - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.56.0 - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - compare-versions: 6.1.1 - eslint: 9.39.1(jiti@2.6.1) - is-immutable-type: 5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 ts-pattern: 5.9.0 - optionalDependencies: - ts-api-utils: 2.4.0(typescript@5.9.3) typescript: 5.9.3 transitivePeerDependencies: - supports-color - eslint-plugin-regexp@2.10.0(eslint@9.38.0(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - comment-parser: 1.4.5 - eslint: 9.38.0(jiti@2.6.1) - jsdoc-type-pratt-parser: 4.8.0 - refa: 0.12.1 - regexp-ast-analysis: 0.7.1 - scslre: 0.3.0 - - eslint-plugin-regexp@2.10.0(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-regexp@3.0.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 comment-parser: 1.4.5 - eslint: 9.39.1(jiti@2.6.1) - jsdoc-type-pratt-parser: 4.8.0 + eslint: 10.0.2(jiti@2.6.1) + jsdoc-type-pratt-parser: 7.1.1 refa: 0.12.1 regexp-ast-analysis: 0.7.1 scslre: 0.3.0 - eslint-plugin-simple-import-sort@12.1.1(eslint@9.38.0(jiti@2.6.1)): - dependencies: - eslint: 9.38.0(jiti@2.6.1) - - eslint-plugin-simple-import-sort@12.1.1(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-simple-import-sort@12.1.1(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) + eslint: 10.0.2(jiti@2.6.1) - eslint-plugin-tailwindcss@4.0.0-beta.0(tailwindcss@4.1.16): + eslint-plugin-toml@1.3.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - fast-glob: 3.3.3 - postcss: 8.5.6 - synckit: 0.11.12 - tailwind-api-utils: 1.0.3(tailwindcss@4.1.16) - tailwindcss: 4.1.16 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 + '@ota-meshi/ast-token-store': 0.3.0 + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.0.2(jiti@2.6.1) + toml-eslint-parser: 1.0.3 + transitivePeerDependencies: + - supports-color - eslint-plugin-unicorn@61.0.2(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-unicorn@63.0.0(eslint@10.0.2(jiti@2.6.1)): dependencies: '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - '@eslint/plugin-kit': 0.3.5 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) change-case: 5.4.4 ci-info: 4.4.0 clean-regexp: 1.0.0 core-js-compat: 3.48.0 - eslint: 9.38.0(jiti@2.6.1) - esquery: 1.7.0 + eslint: 10.0.2(jiti@2.6.1) find-up-simple: 1.0.1 globals: 16.5.0 indent-string: 5.0.0 @@ -28551,43 +28455,48 @@ snapshots: jsesc: 3.1.0 pluralize: 8.0.0 regexp-tree: 0.1.27 - regjsparser: 0.12.0 + regjsparser: 0.13.0 semver: 7.7.4 strip-indent: 4.1.1 - eslint-plugin-unicorn@61.0.2(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1)): dependencies: - '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) - '@eslint/plugin-kit': 0.3.5 - change-case: 5.4.4 - ci-info: 4.4.0 - clean-regexp: 1.0.0 - core-js-compat: 3.48.0 - eslint: 9.39.1(jiti@2.6.1) - 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.7.4 - strip-indent: 4.1.1 + eslint: 10.0.2(jiti@2.6.1) + optionalDependencies: + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1)): + eslint-plugin-vue@10.8.0(@stylistic/eslint-plugin@5.9.0(eslint@10.0.2(jiti@2.6.1)))(@typescript-eslint/parser@8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3))(eslint@10.0.2(jiti@2.6.1))(vue-eslint-parser@10.4.0(eslint@10.0.2(jiti@2.6.1))): dependencies: - eslint: 9.38.0(jiti@2.6.1) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) + eslint: 10.0.2(jiti@2.6.1) + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 7.1.1 + semver: 7.7.4 + vue-eslint-parser: 10.4.0(eslint@10.0.2(jiti@2.6.1)) + xml-name-validator: 4.0.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) + '@stylistic/eslint-plugin': 5.9.0(eslint@10.0.2(jiti@2.6.1)) + '@typescript-eslint/parser': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-unused-imports@4.4.1(@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)): + eslint-plugin-yml@3.3.0(eslint@10.0.2(jiti@2.6.1)): dependencies: - eslint: 9.39.1(jiti@2.6.1) - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 + '@ota-meshi/ast-token-store': 0.3.0 + debug: 4.4.3(supports-color@8.1.1) + diff-sequences: 29.6.3 + escape-string-regexp: 5.0.0 + eslint: 10.0.2(jiti@2.6.1) + natural-compare: 1.4.0 + yaml-eslint-parser: 2.0.0 + transitivePeerDependencies: + - supports-color + + eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.29)(eslint@10.0.2(jiti@2.6.1)): + dependencies: + '@vue/compiler-sfc': 3.5.29 + eslint: 10.0.2(jiti@2.6.1) eslint-scope@5.1.1: dependencies: @@ -28599,35 +28508,38 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@9.1.1: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@3.4.3: {} eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@5.0.0: {} + eslint-visitor-keys@5.0.1: {} - eslint@9.27.0(jiti@2.6.1): + eslint@10.0.2(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.27.0(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.2(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.20.1 - '@eslint/config-helpers': 0.2.3 - '@eslint/core': 0.14.0 - '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.27.0 - '@eslint/plugin-kit': 0.3.5 + '@eslint/config-array': 0.23.2 + '@eslint/config-helpers': 0.5.2 + '@eslint/core': 1.1.0 + '@eslint/plugin-kit': 0.6.0 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - '@types/json-schema': 7.0.15 - ajv: 6.12.6 - chalk: 4.1.2 + ajv: 6.14.0 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 + eslint-scope: 9.1.1 + eslint-visitor-keys: 5.0.1 + espree: 11.1.1 esquery: 1.7.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -28638,8 +28550,7 @@ snapshots: imurmurhash: 0.1.4 is-glob: 4.0.3 json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 + minimatch: 10.2.4 natural-compare: 1.4.0 optionator: 0.9.4 optionalDependencies: @@ -28647,62 +28558,22 @@ snapshots: transitivePeerDependencies: - supports-color - eslint@9.38.0(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.38.0(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.16.0 - '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.38.0 - '@eslint/plugin-kit': 0.4.1 - '@humanfs/node': 0.16.7 - '@humanwhocodes/module-importer': 1.0.1 - '@humanwhocodes/retry': 0.4.3 - '@types/estree': 1.0.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.6 - debug: 4.4.3(supports-color@8.1.1) - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.7.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 8.0.0 - find-up: 5.0.0 - glob-parent: 6.0.2 - ignore: 5.3.2 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - json-stable-stringify-without-jsonify: 1.0.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.4 - optionalDependencies: - jiti: 2.6.1 - transitivePeerDependencies: - - supports-color - - eslint@9.39.1(jiti@2.6.1): + eslint@9.27.0(jiti@2.6.1): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1(jiti@2.6.1)) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.27.0(jiti@2.6.1)) '@eslint-community/regexpp': 4.12.2 - '@eslint/config-array': 0.21.1 - '@eslint/config-helpers': 0.4.2 - '@eslint/core': 0.17.0 + '@eslint/config-array': 0.20.1 + '@eslint/config-helpers': 0.2.3 + '@eslint/core': 0.14.0 '@eslint/eslintrc': 3.3.3 - '@eslint/js': 9.39.1 - '@eslint/plugin-kit': 0.4.1 + '@eslint/js': 9.27.0 + '@eslint/plugin-kit': 0.3.5 '@humanfs/node': 0.16.7 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.3 '@types/estree': 1.0.8 - ajv: 6.12.6 + '@types/json-schema': 7.0.15 + ajv: 6.14.0 chalk: 4.1.2 cross-spawn: 7.0.6 debug: 4.4.3(supports-color@8.1.1) @@ -28733,15 +28604,15 @@ snapshots: espree@10.4.0: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) eslint-visitor-keys: 4.2.1 - espree@9.6.1: + espree@11.1.1: dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 + acorn: 8.16.0 + acorn-jsx: 5.3.2(acorn@8.16.0) + eslint-visitor-keys: 5.0.1 esprima@4.0.1: {} @@ -29195,6 +29066,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-diff@1.3.0: {} + fast-fifo@1.3.2: {} fast-glob@3.3.2: @@ -29230,6 +29103,12 @@ snapshots: dependencies: fast-decode-uri-component: 1.0.1 + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + fast-uri@3.1.0: {} fastify-plugin@5.1.0: {} @@ -29258,6 +29137,10 @@ snapshots: dependencies: reusify: 1.1.0 + fault@2.0.1: + dependencies: + format: 0.2.2 + faye-websocket@0.11.4: dependencies: websocket-driver: 0.7.4 @@ -29483,6 +29366,8 @@ snapshots: hasown: 2.0.2 mime-types: 2.1.35 + format@0.2.2: {} + foxact@0.2.49(react@19.1.0): dependencies: client-only: 0.0.1 @@ -29696,8 +29581,6 @@ snapshots: nypm: 0.6.5 pathe: 2.0.3 - git-hooks-list@4.2.1: {} - git-raw-commits@5.0.0(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1): dependencies: '@conventional-changelog/git-client': 1.0.1(conventional-commits-filter@5.0.0)(conventional-commits-parser@6.2.1) @@ -29716,6 +29599,8 @@ snapshots: github-from-package@0.0.0: {} + github-slugger@2.0.0: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -29739,14 +29624,14 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 4.2.3 - minimatch: 10.2.1 + minimatch: 10.2.4 minipass: 7.1.3 package-json-from-dist: 1.0.1 path-scurry: 2.0.1 glob@13.0.5: dependencies: - minimatch: 10.2.1 + minimatch: 10.2.4 minipass: 7.1.3 path-scurry: 2.0.1 @@ -29800,6 +29685,8 @@ snapshots: globals@16.5.0: {} + globals@17.4.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 @@ -29841,8 +29728,6 @@ snapshots: dependencies: lodash.merge: 4.6.2 - graphemer@1.4.0: {} - graphql-tag@2.12.6(graphql@16.8.1): dependencies: graphql: 16.8.1 @@ -30119,6 +30004,8 @@ snapshots: dependencies: lru-cache: 10.4.3 + html-entities@2.6.0: {} + html-escaper@3.0.3: {} html-minifier-terser@7.2.0: @@ -30419,20 +30306,10 @@ snapshots: is-hexadecimal@2.0.1: {} - is-immutable-type@5.0.1(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): + is-immutable-type@5.0.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3): dependencies: - '@typescript-eslint/type-utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - ts-api-utils: 2.4.0(typescript@5.9.3) - ts-declaration-location: 1.0.7(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - is-immutable-type@5.0.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/type-utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) + '@typescript-eslint/type-utils': 8.56.1(eslint@10.0.2(jiti@2.6.1))(typescript@5.9.3) + eslint: 10.0.2(jiti@2.6.1) ts-api-utils: 2.4.0(typescript@5.9.3) ts-declaration-location: 1.0.7(typescript@5.9.3) typescript: 5.9.3 @@ -30637,7 +30514,7 @@ snapshots: jks-js@1.1.0: dependencies: - node-forge: 1.3.1 + node-forge: 1.3.3 node-int64: 0.4.0 node-rsa: 1.1.1 @@ -30702,14 +30579,10 @@ snapshots: jsc-safe-url@0.2.4: {} - jsdoc-type-pratt-parser@4.8.0: {} - - jsdoc-type-pratt-parser@7.0.0: {} + jsdoc-type-pratt-parser@7.1.1: {} jsep@1.4.0: {} - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -30742,11 +30615,10 @@ snapshots: json5@2.2.3: {} - jsonc-eslint-parser@2.4.2: + jsonc-eslint-parser@3.1.0: dependencies: - acorn: 8.15.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + acorn: 8.16.0 + eslint-visitor-keys: 5.0.1 semver: 7.7.4 jsonfile@4.0.0: @@ -31342,6 +31214,17 @@ snapshots: transitivePeerDependencies: - supports-color + mdast-util-frontmatter@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + escape-string-regexp: 5.0.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-extension-frontmatter: 2.0.0 + transitivePeerDependencies: + - supports-color + mdast-util-gfm-autolink-literal@2.0.1: dependencies: '@types/mdast': 4.0.4 @@ -31479,6 +31362,8 @@ snapshots: mdn-data@2.12.2: {} + mdn-data@2.23.0: {} + mem@4.3.0: dependencies: map-age-cleaner: 0.1.3 @@ -31699,6 +31584,13 @@ snapshots: micromark-util-types: 2.0.2 parse-entities: 4.0.2 + micromark-extension-frontmatter@2.0.0: + dependencies: + fault: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + micromark-extension-gfm-autolink-literal@2.1.0: dependencies: micromark-util-character: 2.1.1 @@ -31928,7 +31820,7 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.1 - minimatch@10.2.1: + minimatch@10.2.4: dependencies: brace-expansion: 5.0.2 @@ -32008,7 +31900,7 @@ snapshots: mlly@1.8.0: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 pathe: 2.0.3 pkg-types: 1.3.1 ufo: 1.6.3 @@ -32046,7 +31938,7 @@ snapshots: msedge-tts@2.0.4(bufferutil@4.1.0): dependencies: - axios: 1.13.5(debug@4.4.3) + axios: 1.13.0(debug@4.4.3) buffer: 6.0.3 isomorphic-ws: 5.0.0(ws@8.19.0(bufferutil@4.1.0)) stream-browserify: 3.0.0 @@ -32107,8 +31999,6 @@ snapshots: napi-build-utils@2.0.0: {} - napi-postinstall@0.3.4: {} - nativewind@4.2.1(react-native-reanimated@4.1.6(@babel/core@7.29.0)(react-native-worklets@0.5.1(@babel/core@7.29.0)(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0))(react-native-safe-area-context@5.6.2(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0))(react-native-svg@15.12.1(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.29.0)(@types/react@19.1.17)(bufferutil@4.1.0)(react@19.1.0))(react@19.1.0)(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@25.2.3)(typescript@5.9.3))): dependencies: comment-json: 4.5.1 @@ -32127,6 +32017,8 @@ snapshots: natural-orderby@2.0.3: {} + natural-orderby@5.0.0: {} + nbump@2.1.8(conventional-commits-filter@5.0.0): dependencies: c12: 3.3.3 @@ -32324,6 +32216,8 @@ snapshots: object-assign@4.1.1: {} + object-deep-merge@2.0.0: {} + object-hash@3.0.0: {} object-is@1.1.6: @@ -32451,6 +32345,30 @@ snapshots: dependencies: '@daybrush/utils': 1.13.0 + oxfmt@0.35.0: + dependencies: + tinypool: 2.1.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.35.0 + '@oxfmt/binding-android-arm64': 0.35.0 + '@oxfmt/binding-darwin-arm64': 0.35.0 + '@oxfmt/binding-darwin-x64': 0.35.0 + '@oxfmt/binding-freebsd-x64': 0.35.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.35.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.35.0 + '@oxfmt/binding-linux-arm64-gnu': 0.35.0 + '@oxfmt/binding-linux-arm64-musl': 0.35.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.35.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.35.0 + '@oxfmt/binding-linux-riscv64-musl': 0.35.0 + '@oxfmt/binding-linux-s390x-gnu': 0.35.0 + '@oxfmt/binding-linux-x64-gnu': 0.35.0 + '@oxfmt/binding-linux-x64-musl': 0.35.0 + '@oxfmt/binding-openharmony-arm64': 0.35.0 + '@oxfmt/binding-win32-arm64-msvc': 0.35.0 + '@oxfmt/binding-win32-ia32-msvc': 0.35.0 + '@oxfmt/binding-win32-x64-msvc': 0.35.0 + p-cancelable@2.1.1: {} p-defer@1.0.0: {} @@ -32493,12 +32411,6 @@ snapshots: package-json-from-dist@1.0.1: {} - package-json-validator@0.23.0: - dependencies: - semver: 7.7.4 - validate-npm-package-license: 3.0.4 - yargs: 18.0.0 - package-manager-detector@1.5.0: {} package-manager-detector@1.6.0: {} @@ -32540,6 +32452,12 @@ snapshots: is-decimal: 2.0.1 is-hexadecimal: 2.0.1 + parse-gitignore@2.0.0: {} + + parse-imports-exports@0.2.4: + dependencies: + parse-statements: 1.0.11 + parse-json@2.2.0: dependencies: error-ex: 1.3.4 @@ -32568,6 +32486,8 @@ snapshots: dependencies: pngjs: 3.4.0 + parse-statements@1.0.11: {} + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 @@ -32581,6 +32501,10 @@ snapshots: dependencies: entities: 6.0.1 + parse5@8.0.0: + dependencies: + entities: 6.0.1 + parseurl@1.3.3: {} pascal-case@3.1.2: @@ -32776,6 +32700,10 @@ snapshots: pngjs@7.0.0: {} + pnpm-workspace-yaml@1.6.0: + dependencies: + yaml: 2.8.2 + portfinder@1.0.38: dependencies: async: 3.2.6 @@ -33059,6 +32987,10 @@ snapshots: prelude-ls@1.2.1: {} + prettier-linter-helpers@1.0.1: + dependencies: + fast-diff: 1.3.0 + prettier-package-json@2.8.0: dependencies: '@types/parse-author': 2.0.3 @@ -33082,17 +33014,17 @@ snapshots: prettier: 3.8.1 sh-syntax: 0.5.8 - prettier-plugin-tailwindcss@0.6.14(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.8.1))(prettier@3.8.1): + prettier-plugin-tailwindcss@0.6.14(@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1))(prettier@3.8.1): dependencies: prettier: 3.8.1 optionalDependencies: - '@ianvs/prettier-plugin-sort-imports': 4.4.2(prettier@3.8.1) + '@ianvs/prettier-plugin-sort-imports': 4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.6.2) - prettier-plugin-tailwindcss@0.7.2(@ianvs/prettier-plugin-sort-imports@4.4.2(prettier@3.8.1))(prettier@3.8.1): + prettier-plugin-tailwindcss@0.7.2(@ianvs/prettier-plugin-sort-imports@4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1))(prettier@3.8.1): dependencies: prettier: 3.8.1 optionalDependencies: - '@ianvs/prettier-plugin-sort-imports': 4.4.2(prettier@3.8.1) + '@ianvs/prettier-plugin-sort-imports': 4.4.2(@vue/compiler-sfc@3.5.29)(prettier@3.8.1) prettier@3.6.2: {} @@ -33941,10 +33873,6 @@ snapshots: regjsgen@0.8.0: {} - regjsparser@0.12.0: - dependencies: - jsesc: 3.0.2 - regjsparser@0.13.0: dependencies: jsesc: 3.1.0 @@ -34068,14 +33996,14 @@ snapshots: rc: 1.2.8 resolve: 1.7.1 - requireindex@1.2.0: {} - resedit@2.0.3: dependencies: pe-library: 1.0.1 reselect@5.1.1: {} + reserved-identifiers@1.2.0: {} + resolve-alpn@1.2.1: {} resolve-from@4.0.0: {} @@ -34444,7 +34372,7 @@ snapshots: dependencies: decode-ico: 0.4.1 ico-endec: 0.1.6 - sharp: 0.33.5 + sharp: 0.34.5 sharp@0.33.5: dependencies: @@ -34627,20 +34555,8 @@ snapshots: sort-object-keys@1.1.3: {} - sort-object-keys@2.1.0: {} - sort-order@1.1.2: {} - sort-package-json@3.6.1: - dependencies: - detect-indent: 7.0.2 - detect-newline: 4.0.1 - git-hooks-list: 4.2.1 - is-plain-obj: 4.1.0 - semver: 7.7.4 - sort-object-keys: 2.1.0 - tinyglobby: 0.2.15 - source-map-js@1.2.1: {} source-map-support@0.5.21: @@ -34672,6 +34588,11 @@ snapshots: spdx-exceptions: 2.5.0 spdx-license-ids: 3.0.22 + spdx-expression-parse@4.0.0: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.22 + spdx-license-ids@3.0.22: {} split2@4.2.0: {} @@ -34691,8 +34612,6 @@ snapshots: dependencies: minipass: 3.3.6 - stable-hash-x@0.2.0: {} - stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 @@ -34948,12 +34867,7 @@ snapshots: tagged-tag@1.0.0: {} - tailwind-api-utils@1.0.3(tailwindcss@4.1.16): - dependencies: - enhanced-resolve: 5.19.0 - jiti: 2.6.1 - local-pkg: 1.1.2 - tailwindcss: 4.1.16 + tailwind-csstree@0.1.4: {} tailwind-merge@3.3.1: {} @@ -35117,7 +35031,7 @@ snapshots: terser@5.46.0: dependencies: '@jridgewell/source-map': 0.3.11 - acorn: 8.15.0 + acorn: 8.16.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -35180,6 +35094,8 @@ snapshots: tinypool@1.1.1: {} + tinypool@2.1.0: {} + tinyrainbow@2.0.0: {} tinyspy@4.0.4: {} @@ -35215,6 +35131,11 @@ snapshots: dependencies: is-number: 7.0.0 + to-valid-identifier@1.0.0: + dependencies: + '@sindresorhus/base62': 1.0.0 + reserved-identifiers: 1.2.0 + toad-cache@3.7.0: {} toidentifier@1.0.1: {} @@ -35224,6 +35145,10 @@ snapshots: '@tokenizer/token': 0.3.0 ieee754: 1.2.1 + toml-eslint-parser@1.0.3: + dependencies: + eslint-visitor-keys: 5.0.1 + tr46@0.0.3: {} tr46@1.0.1: @@ -35279,7 +35204,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 25.2.3 - acorn: 8.15.0 + acorn: 8.16.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -35299,6 +35224,19 @@ snapshots: optionalDependencies: typescript: 5.9.3 + tsconfig-paths-webpack-plugin@4.2.0: + dependencies: + chalk: 4.1.2 + enhanced-resolve: 5.19.0 + tapable: 2.3.0 + tsconfig-paths: 4.2.0 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + tsdown@0.20.3(synckit@0.11.12)(typescript@5.9.3): dependencies: ansis: 4.2.0 @@ -35433,28 +35371,6 @@ snapshots: dependencies: tagged-tag: 1.0.0 - typescript-eslint@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.38.0(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.38.0(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - typescript-eslint@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.56.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.1(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - typescript@5.4.5: {} typescript@5.9.3: {} @@ -35623,7 +35539,7 @@ snapshots: unplugin@2.1.0: dependencies: - acorn: 8.15.0 + acorn: 8.16.0 webpack-virtual-modules: 0.6.2 optional: true @@ -35633,30 +35549,6 @@ snapshots: picomatch: 4.0.3 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 - unrun@0.2.27(synckit@0.11.12): dependencies: rolldown: 1.0.0-rc.3 @@ -35756,6 +35648,10 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + valibot@1.2.0(typescript@5.9.3): + optionalDependencies: + typescript: 5.9.3 + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -35763,8 +35659,6 @@ snapshots: validate-npm-package-name@5.0.1: {} - validate-npm-package-name@6.0.2: {} - vary@1.1.2: {} vaul@1.1.2(@types/react-dom@19.2.3(@types/react@19.1.17))(@types/react@19.1.17)(react-dom@19.1.0(react@19.1.0))(react@19.1.0): @@ -35853,7 +35747,7 @@ snapshots: vite-plugin-mkcert@1.17.9(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2)): dependencies: - axios: 1.13.5(debug@4.4.3) + axios: 1.13.0(debug@4.4.3) debug: 4.4.3(supports-color@8.1.1) picocolors: 1.1.1 vite: 7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(terser@5.46.0)(tsx@4.21.0)(yaml@2.8.2) @@ -35983,6 +35877,18 @@ snapshots: vscode-uri@3.1.0: {} + vue-eslint-parser@10.4.0(eslint@10.0.2(jiti@2.6.1)): + dependencies: + debug: 4.4.3(supports-color@8.1.1) + eslint: 10.0.2(jiti@2.6.1) + eslint-scope: 9.1.1 + eslint-visitor-keys: 5.0.1 + espree: 11.1.1 + esquery: 1.7.0 + semver: 7.7.4 + transitivePeerDependencies: + - supports-color + wa-sqlite@https://codeload.github.com/rhashimoto/wa-sqlite/tar.gz/03c00ed67cd934bd664ae310234bba317928f851: {} walker@1.0.8: @@ -36022,8 +35928,8 @@ snapshots: '@webassemblyjs/ast': 1.14.1 '@webassemblyjs/wasm-edit': 1.14.1 '@webassemblyjs/wasm-parser': 1.14.1 - acorn: 8.15.0 - acorn-import-phases: 1.0.4(acorn@8.15.0) + acorn: 8.16.0 + acorn-import-phases: 1.0.4(acorn@8.16.0) browserslist: 4.28.1 chrome-trace-event: 1.0.4 enhanced-resolve: 5.19.0 @@ -36351,6 +36257,8 @@ snapshots: simple-plist: 1.3.1 uuid: 7.0.3 + xml-name-validator@4.0.0: {} + xml2js@0.6.0: dependencies: sax: 1.4.4 @@ -36381,6 +36289,11 @@ snapshots: yallist@5.0.0: {} + yaml-eslint-parser@2.0.0: + dependencies: + eslint-visitor-keys: 5.0.1 + yaml: 2.8.2 + yaml@1.10.2: {} yaml@2.6.0: {} @@ -36394,8 +36307,6 @@ snapshots: yargs-parser@21.1.1: {} - yargs-parser@22.0.0: {} - yargs@15.4.1: dependencies: cliui: 6.0.0 @@ -36420,15 +36331,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yargs@18.0.0: - dependencies: - cliui: 9.0.1 - escalade: 3.2.0 - get-caller-file: 2.0.5 - string-width: 7.2.0 - y18n: 5.0.8 - yargs-parser: 22.0.0 - yauzl@2.10.0: dependencies: buffer-crc32: 0.2.13 @@ -36482,7 +36384,7 @@ snapshots: compress-commons: 4.1.2 readable-stream: 3.6.2 - zod-validation-error@3.5.4(zod@3.25.76): + zod-validation-error@4.0.2(zod@3.25.76): dependencies: zod: 3.25.76 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 433d0d83f7..372009de5f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -48,6 +48,7 @@ overrides: array.prototype.flatmap: npm:@nolyfill/array.prototype.flatmap@latest array.prototype.tosorted: npm:@nolyfill/array.prototype.tosorted@latest drizzle-orm: 0.45.1 + eslint-plugin-react-hooks>zod-validation-error: 4.0.2 global-agent>serialize-error: 7.0.1 has: npm:@nolyfill/has@latest is-core-module: npm:@nolyfill/is-core-module@1.0.39 From a35d08f312c8873a213e0c141693cd732f5aef73 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:15:27 +0800 Subject: [PATCH 2/4] remove sub eslint config --- apps/landing/eslint.config.mjs | 80 ---------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 apps/landing/eslint.config.mjs diff --git a/apps/landing/eslint.config.mjs b/apps/landing/eslint.config.mjs deleted file mode 100644 index 7b431334b3..0000000000 --- a/apps/landing/eslint.config.mjs +++ /dev/null @@ -1,80 +0,0 @@ -// @ts-check -import { defineConfig } from 'eslint-config-hyoban' - -import recursiveSort from './plugins/eslint-recursive-sort.mjs' - -export default defineConfig( - { - formatting: false, - lessOpinionated: true, - ignores: ['dist/**'], - preferESM: false, - }, - { - settings: { - tailwindcss: { - whitelist: ['center'], - }, - }, - rules: { - 'tailwindcss/classnames-order': 'off', - 'tailwindcss/no-custom-classname': 'off', - 'unicorn/prefer-math-trunc': 'off', - 'unicorn/expiring-todo-comments': 0, - '@eslint-react/no-clone-element': 0, - '@eslint-react/hooks-extra/no-direct-set-state-in-use-effect': 0, - // NOTE: Disable this temporarily - 'react-compiler/react-compiler': 0, - 'no-restricted-syntax': 0, - 'package-json/valid-name': 0, - - // disable react compiler rules for now - 'react-hooks/no-unused-directives': 'off', - 'react-hooks/static-components': 'off', - 'react-hooks/use-memo': 'off', - 'react-hooks/component-hook-factories': 'off', - 'react-hooks/preserve-manual-memoization': 'off', - 'react-hooks/immutability': 'off', - 'react-hooks/globals': 'off', - 'react-hooks/refs': 'off', - 'react-hooks/set-state-in-effect': 'off', - 'react-hooks/error-boundaries': 'off', - 'react-hooks/purity': 'off', - 'react-hooks/set-state-in-render': 'off', - 'react-hooks/unsupported-syntax': 'off', - 'react-hooks/config': 'off', - 'react-hooks/gating': 'off', - - 'no-restricted-globals': [ - 'error', - { - name: 'location', - message: - "Since you don't use the same router instance in electron and browser, you can't use the global location to get the route info. \n\n" + - 'You can use `useLocaltion` or `getReadonlyRoute` to get the route info.', - }, - ], - }, - }, - { - files: ['**/*.tsx'], - rules: { - '@stylistic/jsx-self-closing-comp': 'error', - }, - }, - { - files: ['locales/**/*.json'], - plugins: { - 'recursive-sort': recursiveSort, - }, - rules: { - 'recursive-sort/recursive-sort': 'error', - }, - }, - { - files: ['package.json'], - rules: { - 'package-json/valid-name': 0, - }, - }, -) From d4be2c7187899a29d461de030b1778571696cc38 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:17:00 +0800 Subject: [PATCH 3/4] update suppression --- eslint-suppressions.json | 756 +-------------------------------------- 1 file changed, 5 insertions(+), 751 deletions(-) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 7bfd56725b..34b120e0d8 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -1751,14 +1751,6 @@ "count": 1 } }, - "apps/landing/eslint.config.mjs": { - "style/operator-linebreak": { - "count": 1 - }, - "style/quotes": { - "count": 1 - } - }, "apps/landing/global.d.ts": { "@typescript-eslint/method-signature-style": { "count": 1 @@ -1766,12 +1758,6 @@ "@typescript-eslint/no-empty-object-type": { "count": 1 }, - "style/indent-binary-ops": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - }, "ts/method-signature-style": { "count": 3 }, @@ -1782,22 +1768,6 @@ "apps/landing/next.config.mjs": { "node/prefer-global/process": { "count": 2 - }, - "style/quotes": { - "count": 1 - } - }, - "apps/landing/plugins/eslint-recursive-sort.mjs": { - "style/arrow-parens": { - "count": 1 - }, - "style/brace-style": { - "count": 1 - } - }, - "apps/landing/src/app/[locale]/download/page.tsx": { - "style/operator-linebreak": { - "count": 2 } }, "apps/landing/src/app/[locale]/error.tsx": { @@ -1805,105 +1775,19 @@ "count": 1 } }, - "apps/landing/src/app/[locale]/layout.tsx": { - "style/arrow-parens": { - "count": 2 - }, - "style/quote-props": { - "count": 2 - } - }, - "apps/landing/src/app/[locale]/privacy-policy/page.tsx": { - "style/quotes": { - "count": 3 - } - }, - "apps/landing/src/app/[locale]/terms-of-service/page.tsx": { - "style/quotes": { - "count": 3 - } - }, "apps/landing/src/atoms/viewport.ts": { - "style/arrow-parens": { - "count": 1 - }, - "style/quote-props": { - "count": 6 - }, "ts/ban-ts-comment": { "count": 1 } }, - "apps/landing/src/components/common/ClientOnly.tsx": { - "curly": { - "count": 1 - } - }, "apps/landing/src/components/common/HydrationEndDetector.tsx": { "react-refresh/only-export-components": { "count": 1 } }, - "apps/landing/src/components/common/Lazyload.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - } - }, "apps/landing/src/components/common/LightRays.tsx": { - "curly": { - "count": 10 - }, "no-useless-return": { "count": 1 - }, - "style/brace-style": { - "count": 2 - }, - "style/member-delimiter-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 7 - } - }, - "apps/landing/src/components/common/ScrollTop.tsx": { - "curly": { - "count": 1 - } - }, - "apps/landing/src/components/hoc/with-no-ssr.tsx": { - "curly": { - "count": 1 - } - }, - "apps/landing/src/components/layout/footer/Footer.tsx": { - "style/arrow-parens": { - "count": 2 - }, - "style/jsx-one-expression-per-line": { - "count": 2 - }, - "style/member-delimiter-style": { - "count": 3 - } - }, - "apps/landing/src/components/ui/3d-models/AISpline.ts": { - "style/arrow-parens": { - "count": 1 - }, - "style/exp-list-style": { - "count": 1 - } - }, - "apps/landing/src/components/ui/3d-models/AISplineLoader.tsx": { - "curly": { - "count": 3 - }, - "style/brace-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 } }, "apps/landing/src/components/ui/accordion/Accordion.tsx": { @@ -1914,287 +1798,48 @@ "count": 2 } }, - "apps/landing/src/components/ui/border-beam.tsx": { - "style/quote-props": { - "count": 2 - } - }, - "apps/landing/src/components/ui/button/Button.tsx": { - "style/indent": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/checkbox/Checkbox.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 2 - } - }, "apps/landing/src/components/ui/collapse/CollapseCss.tsx": { "ts/no-use-before-define": { "count": 2 } }, - "apps/landing/src/components/ui/dialog/Dialog.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "style/indent-binary-ops": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/ui/dropdown-menu/DropdownMenu.tsx": { - "style/operator-linebreak": { - "count": 3 - } - }, "apps/landing/src/components/ui/effects/GridGuides.tsx": { "no-multi-str": { "count": 1 } }, - "apps/landing/src/components/ui/effects/TiltCard.tsx": { - "curly": { - "count": 1 - }, - "style/arrow-parens": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 2 - }, - "style/quote-props": { - "count": 2 - } - }, - "apps/landing/src/components/ui/glass/index.tsx": { - "curly": { - "count": 3 - }, - "style/brace-style": { - "count": 4 - }, - "style/operator-linebreak": { - "count": 2 - }, - "style/quote-props": { - "count": 3 - } - }, - "apps/landing/src/components/ui/highlighter.tsx": { - "curly": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/ui/input/Input.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 2 - }, - "style/indent": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 4 - }, - "style/operator-linebreak": { - "count": 4 - } - }, - "apps/landing/src/components/ui/json-highlighter/index.tsx": { - "style/brace-style": { - "count": 4 - }, - "style/multiline-ternary": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 2 - } - }, - "apps/landing/src/components/ui/light-rays.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "style/arrow-parens": { - "count": 1 - } - }, "apps/landing/src/components/ui/markdown/index.tsx": { "node/prefer-global/process": { "count": 1 }, "react-refresh/only-export-components": { "count": 1 - }, - "style/brace-style": { - "count": 1 } }, "apps/landing/src/components/ui/modal/ModalContainer.tsx": { - "curly": { - "count": 1 - }, - "style/arrow-parens": { - "count": 2 - }, "ts/no-use-before-define": { "count": 1 } }, - "apps/landing/src/components/ui/modal/ModalManager.ts": { - "style/arrow-parens": { - "count": 2 - } - }, - "apps/landing/src/components/ui/panel/PanelSplitter.tsx": { - "curly": { - "count": 1 - } - }, "apps/landing/src/components/ui/portal/provider.tsx": { "ts/no-use-before-define": { "count": 1 } }, - "apps/landing/src/components/ui/prompts/BasePrompt.tsx": { - "style/brace-style": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/prompts/InputPrompt.tsx": { - "style/arrow-parens": { - "count": 1 - }, - "style/brace-style": { - "count": 3 - }, - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/radio/index.tsx": { - "style/operator-linebreak": { - "count": 1 - } - }, "apps/landing/src/components/ui/relative-time/RelativeTime.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 1 - }, "ts/ban-ts-comment": { "count": 1 } }, - "apps/landing/src/components/ui/scroll-areas/ScrollArea.tsx": { - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/segment-tab/SegmentTab.tsx": { - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/select/ComboboxSelect.tsx": { - "style/arrow-parens": { - "count": 1 - }, - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/ui/select/MultiSelect.tsx": { - "curly": { - "count": 2 - }, - "style/arrow-parens": { - "count": 3 - }, - "style/multiline-ternary": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/ui/select/Select.tsx": { - "style/indent-binary-ops": { - "count": 1 - }, - "style/multiline-ternary": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 2 - } - }, "apps/landing/src/components/ui/sheet/Sheet.tsx": { - "curly": { - "count": 1 - }, "react-refresh/only-export-components": { "count": 1 - }, - "style/arrow-parens": { - "count": 1 - } - }, - "apps/landing/src/components/ui/switch/index.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - }, - "style/jsx-curly-brace-presence": { - "count": 1 - }, - "style/multiline-ternary": { - "count": 4 - }, - "style/operator-linebreak": { - "count": 1 } }, "apps/landing/src/components/ui/theme-switcher/ThemeSwitcher.tsx": { "@eslint-react/dom/no-flush-sync": { "count": 1 }, - "curly": { - "count": 2 - }, - "react-dom/no-flush-sync": { - "count": 1 - }, "ts/no-use-before-define": { "count": 2 } @@ -2204,410 +1849,84 @@ "count": 1 } }, - "apps/landing/src/components/ui/viewport/OnlyDesktop.tsx": { - "curly": { - "count": 2 - } - }, - "apps/landing/src/components/ui/viewport/OnlyMobile.tsx": { - "curly": { - "count": 2 - } - }, - "apps/landing/src/components/widgets/download/DownloadHero.tsx": { - "style/arrow-parens": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/download/PlatformDownloads.tsx": { - "style/arrow-parens": { - "count": 4 - } - }, - "apps/landing/src/components/widgets/landing/Audience.tsx": { - "curly": { - "count": 1 - }, - "style/arrow-parens": { - "count": 2 - }, - "style/brace-style": { - "count": 1 - }, - "style/jsx-one-expression-per-line": { - "count": 5 - } - }, "apps/landing/src/components/widgets/landing/BuiltOpen.tsx": { - "style/arrow-parens": { + "tailwindcss/no-unnecessary-whitespace": { "count": 1 }, - "style/multiline-ternary": { - "count": 2 - }, "ts/no-use-before-define": { "count": 12 } }, - "apps/landing/src/components/widgets/landing/Features.tsx": { - "style/jsx-one-expression-per-line": { - "count": 1 - }, - "style/jsx-wrap-multilines": { - "count": 3 - }, - "style/multiline-ternary": { - "count": 2 - } - }, - "apps/landing/src/components/widgets/landing/Header.tsx": { - "style/arrow-parens": { - "count": 1 - }, - "style/jsx-curly-brace-presence": { - "count": 1 - } - }, "apps/landing/src/components/widgets/landing/Hero.tsx": { "no-useless-rename": { "count": 1 }, - "style/arrow-parens": { - "count": 2 - }, - "ts/no-use-before-define": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/landing/PromptDemo.tsx": { - "style/arrow-parens": { - "count": 2 - } - }, - "apps/landing/src/components/widgets/landing/SocialProof.tsx": { - "curly": { - "count": 1 - }, - "style/quotes": { - "count": 5 - } - }, - "apps/landing/src/components/widgets/landing/ViewsShowcase.tsx": { - "style/arrow-parens": { + "tailwindcss/no-unnecessary-whitespace": { "count": 1 }, - "style/member-delimiter-style": { + "ts/no-use-before-define": { "count": 1 } }, "apps/landing/src/components/widgets/landing/WindowChrome.tsx": { - "style/multiline-ternary": { - "count": 2 + "tailwindcss/no-unnecessary-whitespace": { + "count": 1 } }, "apps/landing/src/components/widgets/simulators/EntryPage.tsx": { - "style/jsx-one-expression-per-line": { - "count": 3 - }, "ts/no-use-before-define": { "count": 1 } }, "apps/landing/src/components/widgets/simulators/ListDemo.tsx": { - "style/arrow-parens": { - "count": 1 - }, "ts/no-use-before-define": { "count": 1 } }, - "apps/landing/src/components/widgets/simulators/components/SimulatorReaders.tsx": { - "style/jsx-one-expression-per-line": { - "count": 2 - } - }, "apps/landing/src/components/widgets/simulators/components/ai/AIChainOfThought.tsx": { - "curly": { - "count": 7 - }, "no-useless-return": { "count": 1 }, - "style/jsx-one-expression-per-line": { - "count": 1 - }, - "style/jsx-wrap-multilines": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 4 - }, "ts/no-use-before-define": { "count": 3 } }, - "apps/landing/src/components/widgets/simulators/components/ai/AIReasoningPart.tsx": { - "curly": { - "count": 1 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 3 - } - }, - "apps/landing/src/components/widgets/simulators/components/ai/ToolInvocationComponent.tsx": { - "style/jsx-curly-brace-presence": { - "count": 4 - }, - "style/jsx-wrap-multilines": { - "count": 1 - }, - "style/multiline-ternary": { - "count": 4 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/simulators/components/ai/animated/AnimatedMarkdown.tsx": { - "style/brace-style": { - "count": 4 - }, - "style/quote-props": { - "count": 18 - } - }, - "apps/landing/src/components/widgets/simulators/components/ai/animated/TokenizedText.tsx": { - "curly": { - "count": 2 - }, - "style/brace-style": { - "count": 3 - }, - "style/operator-linebreak": { - "count": 3 - } - }, "apps/landing/src/components/widgets/simulators/components/ai/parse-incomplete-markdown.ts": { - "curly": { - "count": 2 - }, "no-cond-assign": { "count": 2 }, - "style/brace-style": { - "count": 2 - }, - "style/operator-linebreak": { - "count": 19 - }, - "style/quotes": { - "count": 2 - }, "ts/no-use-before-define": { "count": 3 } }, - "apps/landing/src/components/widgets/simulators/components/chat/AiMockMessage.tsx": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 3 - }, - "style/arrow-parens": { - "count": 3 - }, - "style/indent": { - "count": 4 - }, - "style/indent-binary-ops": { - "count": 2 - }, - "style/member-delimiter-style": { - "count": 6 - }, - "style/multiline-ternary": { - "count": 4 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/simulators/components/chat/ListChatPlayer.tsx": { - "curly": { - "count": 5 - }, - "style/arrow-parens": { - "count": 9 - }, - "style/brace-style": { - "count": 2 - }, - "style/jsx-curly-brace-presence": { - "count": 1 - }, - "style/jsx-one-expression-per-line": { - "count": 3 - }, - "style/jsx-wrap-multilines": { - "count": 1 - }, - "style/member-delimiter-style": { - "count": 2 - }, - "style/multiline-ternary": { - "count": 12 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/simulators/components/chat/stream.ts": { - "style/brace-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/components/widgets/simulators/mocks.tsx": { - "style/quotes": { - "count": 3 - } - }, - "apps/landing/src/constants/download.ts": { - "style/member-delimiter-style": { - "count": 1 - } - }, "apps/landing/src/constants/env.ts": { - "curly": { - "count": 1 - }, "node/prefer-global/process": { "count": 5 } }, - "apps/landing/src/constants/site.ts": { - "style/quote-props": { - "count": 2 - } - }, - "apps/landing/src/hooks/biz/use-github-star.ts": { - "style/brace-style": { - "count": 1 - } - }, "apps/landing/src/hooks/common/use-click-away.ts": { "@typescript-eslint/no-unsafe-function-type": { "count": 1 }, - "style/indent-binary-ops": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 2 - }, "ts/no-unsafe-function-type": { "count": 2 } }, - "apps/landing/src/hooks/common/use-is-client.ts": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - } - }, - "apps/landing/src/hooks/common/use-is-mounted.ts": { - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 1 - } - }, - "apps/landing/src/hooks/common/use-sync-effect.ts": { - "curly": { - "count": 1 - } - }, "apps/landing/src/hooks/common/useMeasure.ts": { - "curly": { - "count": 4 - }, - "style/arrow-parens": { - "count": 4 - }, - "style/exp-list-style": { - "count": 2 - }, - "style/member-delimiter-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - }, "ts/no-use-before-define": { "count": 1 } }, - "apps/landing/src/hooks/shared/use-mask-scrollarea.ts": { - "curly": { - "count": 2 - }, - "react-hooks-extra/no-direct-set-state-in-use-effect": { - "count": 20 - }, - "style/arrow-parens": { - "count": 1 - }, - "style/brace-style": { - "count": 1 - } - }, - "apps/landing/src/i18n/request.ts": { - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/i18n/routing.ts": { - "style/operator-linebreak": { - "count": 1 - } - }, "apps/landing/src/legal/privacy.md": { - "hyoban/md-one-sentence-per-line": { - "count": 17 - }, "md/no-curly-quote": { "count": 12 } }, "apps/landing/src/legal/tos.md": { - "hyoban/md-one-sentence-per-line": { - "count": 38 - }, "md/no-curly-quote": { "count": 19 } }, - "apps/landing/src/lib/color.ts": { - "style/arrow-parens": { - "count": 1 - }, - "style/brace-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 4 - } - }, - "apps/landing/src/lib/datetime.ts": { - "style/brace-style": { - "count": 5 - } - }, - "apps/landing/src/lib/dom.ts": { - "style/arrow-parens": { - "count": 2 - }, - "style/brace-style": { - "count": 1 - } - }, "apps/landing/src/lib/env.ts": { "node/prefer-global/process": { "count": 1 @@ -2618,39 +1937,11 @@ "count": 1 } }, - "apps/landing/src/lib/jotai.ts": { - "style/arrow-parens": { - "count": 1 - } - }, - "apps/landing/src/lib/platform.ts": { - "style/brace-style": { - "count": 2 - } - }, "apps/landing/src/lib/scroller.ts": { - "style/operator-linebreak": { - "count": 1 - }, "ts/no-use-before-define": { "count": 2 } }, - "apps/landing/src/lib/sleep.ts": { - "style/arrow-parens": { - "count": 1 - } - }, - "apps/landing/src/providers/root/event-provider.tsx": { - "style/brace-style": { - "count": 1 - } - }, - "apps/landing/src/providers/root/index.tsx": { - "style/arrow-parens": { - "count": 1 - } - }, "apps/landing/src/providers/root/page-scroll-info-provider.tsx": { "react-refresh/only-export-components": { "count": 5 @@ -2659,26 +1950,7 @@ "count": 1 } }, - "apps/landing/src/providers/root/react-query-provider.tsx": { - "curly": { - "count": 1 - }, - "style/brace-style": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - } - }, - "apps/landing/src/providers/shared/LayoutRightSideProvider.tsx": { - "curly": { - "count": 2 - } - }, "apps/landing/src/providers/shared/WrappedElementProvider.tsx": { - "curly": { - "count": 2 - }, "react-refresh/only-export-components": { "count": 5 }, @@ -2686,29 +1958,11 @@ "count": 4 } }, - "apps/landing/src/proxy.ts": { - "style/arrow-parens": { - "count": 1 - }, - "style/operator-linebreak": { - "count": 1 - } - }, "apps/landing/tsconfig.json": { "jsonc/sort-keys": { "count": 9 } }, - "apps/landing/worker/index.js": { - "style/arrow-parens": { - "count": 1 - } - }, - "apps/landing/wrangler.jsonc": { - "jsonc/comma-dangle": { - "count": 9 - } - }, "apps/mobile/AGENTS.md": { "md/code-lang-shorthand": { "count": 1 From e73e5b673b96769f516a4deb8caa17bf9b9d0892 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:19:15 +0800 Subject: [PATCH 4/4] save --- .claude/skills/desktop-release/SKILL.md | 24 +- .../installing-mobile-preview-builds/SKILL.md | 12 +- .claude/skills/mobile-release/SKILL.md | 16 +- .claude/skills/update-deps/SKILL.md | 4 +- .github/ISSUE_TEMPLATE/i18n.yml | 2 +- .github/actions/setup-version/action.yml | 10 +- .github/actions/setup-xcode/action.yml | 10 +- .github/advanced-issue-labeler.yml | 6 +- .github/dependabot.yaml | 6 +- .github/workflows/build-android.yml | 12 +- .github/workflows/build-desktop.yml | 22 +- .github/workflows/build-ios-development.yml | 8 +- .github/workflows/build-ios.yml | 6 +- .github/workflows/build-web.yml | 2 +- .github/workflows/deploy-cloudflare.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/translator.yml | 2 +- AGENTS.md | 6 +- README.md | 4 +- apps/cli/tsconfig.json | 2 +- apps/desktop/AGENTS.md | 2 +- apps/desktop/changelog/0.4.3.md | 2 +- apps/desktop/changelog/0.4.5.md | 6 +- apps/desktop/changelog/0.4.6.md | 2 +- apps/desktop/changelog/0.4.8.md | 6 +- apps/desktop/changelog/0.5.0.md | 6 +- apps/desktop/changelog/0.6.2.md | 10 +- apps/desktop/changelog/0.9.0.md | 4 +- apps/desktop/changelog/1.1.0.md | 2 +- apps/desktop/changelog/1.2.2.md | 2 +- .../main/src/ipc/services/integration.ts | 1 - apps/desktop/layer/main/src/lib/proxy.ts | 4 +- apps/desktop/layer/main/src/lib/router.ts | 1 - .../layer/main/src/manager/bootstrap.ts | 2 +- apps/desktop/layer/main/src/manager/window.ts | 7 +- apps/desktop/layer/main/tsconfig.json | 18 +- .../layer/renderer/src/@types/constants.ts | 8 +- .../layer/renderer/src/atoms/player.ts | 1 - .../src/components/common/ShadowDOM.tsx | 2 +- .../ui/code-highlighter/shiki/Shiki.tsx | 2 +- .../components/ui/crop/AvatarUploadModal.tsx | 12 +- .../src/components/ui/media/VideoPlayer.tsx | 2 +- .../src/components/ui/modal/stacked/modal.tsx | 652 +++++++++--------- .../ai-chat/components/layouts/ChatTitle.tsx | 2 +- .../editor/plugins/mention/constants.ts | 2 +- .../editor/plugins/shortcut/constants.ts | 2 +- .../src/modules/ai-chat/utils/extractor.ts | 1 - .../modules/ai-chat/utils/file-validation.ts | 2 +- .../AIEnhancedTimelineLayout.tsx | 2 +- .../MobileTimelineLayout.tsx | 143 ++-- .../modules/command/commands/integration.tsx | 1 - .../src/modules/customize-toolbar/dnd.tsx | 2 +- .../entry-column/Items/picture-item.tsx | 140 ++-- .../hooks/useEntryMarkReadHandler.tsx | 1 - .../src/modules/entry-column/item.tsx | 7 +- .../components/selection/SharePosterModal.tsx | 2 +- .../layer/renderer/src/modules/panel/cmdk.tsx | 90 +-- .../subscription-column/FeedCategory.tsx | 4 +- .../src/modules/subscription-column/index.tsx | 2 +- .../renderer/src/providers/setting-sync.tsx | 1 - apps/desktop/layer/renderer/src/router.tsx | 2 +- .../desktop/layer/renderer/src/router.web.tsx | 2 +- .../layer/renderer/src/store/utils/helper.ts | 1 - apps/desktop/layer/renderer/tsconfig.json | 30 +- apps/desktop/plugins/vite/html-inject.ts | 4 +- .../plugins/vite/utils/i18n-completeness.ts | 2 +- .../src/components/common/LightRays.tsx | 1 - .../components/widgets/landing/BuiltOpen.tsx | 2 +- .../src/components/widgets/landing/Hero.tsx | 4 +- .../widgets/landing/WindowChrome.tsx | 2 +- .../components/ai/AIChainOfThought.tsx | 1 - apps/landing/src/legal/privacy.md | 8 +- apps/landing/src/legal/tos.md | 10 +- apps/landing/src/lib/helper.ts | 8 +- apps/landing/tsconfig.json | 24 +- apps/mobile/AGENTS.md | 2 +- apps/mobile/README.md | 6 +- apps/mobile/changelog/0.1.6.md | 2 +- apps/mobile/changelog/0.1.8.md | 2 +- apps/mobile/changelog/0.1.9.md | 2 +- apps/mobile/changelog/0.2.0.md | 2 +- apps/mobile/changelog/0.2.1.md | 4 +- apps/mobile/src/@types/constants.ts | 8 +- .../src/components/layouts/tabbar/hooks.ts | 1 - .../ui/lightbox/ImageViewing/transforms.ts | 18 +- .../src/components/ui/qrcode/useQRCodeData.ts | 4 +- apps/mobile/src/hooks/useIntentHandler.ts | 1 - apps/mobile/src/lib/api-client.ts | 2 +- apps/mobile/src/lib/client-session.ts | 4 +- .../mobile/src/modules/context-menu/feeds.tsx | 1 - .../mobile/src/modules/context-menu/video.tsx | 1 - .../use-pull-up-navigation.tsx | 1 - apps/mobile/tsconfig.json | 14 +- .../src/components/shiki/Shiki.tsx | 2 +- .../web-app/html-renderer/tsconfig.json | 18 +- apps/ssr/client/@types/constants.ts | 6 +- apps/ssr/client/lib/helper.ts | 1 - apps/ssr/client/modules/login/index.tsx | 1 - .../pages/(main)/share/users/[id]/metadata.ts | 4 +- apps/ssr/client/query/entries.ts | 2 +- apps/ssr/client/router.tsx | 2 +- apps/ssr/src/lib/api-client.ts | 2 +- apps/ssr/tsconfig.json | 30 +- eslint-suppressions.json | 634 ----------------- packages/configs/tsconfig.extend.json | 18 +- packages/internal/atoms/package.json | 8 +- packages/internal/atoms/tsconfig.json | 6 +- .../src/ui/progressive-blur/index.tsx | 2 +- .../src/ui/shrinking-focus-border/index.tsx | 4 +- packages/internal/components/tsconfig.json | 8 +- packages/internal/constants/tsconfig.json | 6 +- packages/internal/database/package.json | 12 +- .../hooks/src/factory/createHTMLMediaHook.ts | 1 - .../src/optimistic/useOptimisticMutation.ts | 2 +- packages/internal/hooks/src/useLongPress.ts | 3 +- .../internal/hooks/src/useSmoothScroll.ts | 2 +- packages/internal/hooks/tsconfig.json | 10 +- packages/internal/logger/tsconfig.json | 8 +- packages/internal/models/package.json | 4 +- packages/internal/models/tsconfig.json | 8 +- packages/internal/shared/package.json | 12 +- packages/internal/shared/src/constants.ts | 2 +- packages/internal/shared/tsconfig.json | 12 +- packages/internal/store/package.json | 68 +- packages/internal/store/src/lib/helper.ts | 1 - .../internal/store/src/modules/feed/getter.ts | 1 - .../internal/store/src/modules/feed/store.ts | 6 +- packages/internal/tracker/src/manager.ts | 2 +- packages/internal/utils/package.json | 8 +- packages/internal/utils/src/cjk.ts | 1 - packages/internal/utils/src/color.ts | 4 +- packages/internal/utils/src/lru-cache.test.ts | 2 +- .../internal/utils/src/path-parser.test.ts | 52 +- packages/internal/utils/src/utils.spec.ts | 10 +- packages/internal/utils/src/utils.ts | 10 +- packages/internal/utils/tsconfig.json | 6 +- packages/readability/tsconfig.json | 4 +- plugins/eslint/eslint-package-json.js | 78 +-- tsconfig.json | 4 +- wiki/contribute-i18n.md | 2 +- 140 files changed, 958 insertions(+), 1623 deletions(-) diff --git a/.claude/skills/desktop-release/SKILL.md b/.claude/skills/desktop-release/SKILL.md index 2ccd562078..f95f47ba2c 100644 --- a/.claude/skills/desktop-release/SKILL.md +++ b/.claude/skills/desktop-release/SKILL.md @@ -18,11 +18,11 @@ Perform a regular desktop release. This skill handles the full release workflow ## Step 1: Gather changes since last release 1. Find the last release tag: - ```bash + ```sh git tag --sort=-creatordate | grep '^desktop/v' | head -1 ``` 2. Get all commits since that tag on the current branch: - ```bash + ```sh git log ..HEAD --oneline --no-merges ``` 3. Categorize commits into: @@ -38,7 +38,7 @@ Perform a regular desktop release. This skill handles the full release workflow 3. Wait for user confirmation or edits before writing. 4. Write the final content to `apps/desktop/changelog/next.md`, following the template format: - ```markdown + ```md # What's new in vNEXT_VERSION ## Shiny new things @@ -65,11 +65,11 @@ Perform a regular desktop release. This skill handles the full release workflow `nbump` requires a clean working tree. Commit changelog edits before running bump. 1. Stage the changelog update: - ```bash + ```sh git add apps/desktop/changelog/next.md ``` 2. Commit it on `dev`: - ```bash + ```sh git commit -m "docs(desktop): prepare release changelog" ``` 3. If there are no changes to commit, continue without creating an extra commit. @@ -79,11 +79,11 @@ Perform a regular desktop release. This skill handles the full release workflow This is critical for determining whether users need a full app update or can use the lightweight renderer hot update. 1. Check what files changed in `apps/desktop/layer/main/` since the last release tag: - ```bash + ```sh git diff ..HEAD --name-only -- apps/desktop/layer/main/ ``` 2. Also check changes to `apps/desktop/package.json` fields other than version/mainHash (since package.json is included in the hash calculation): - ```bash + ```sh git diff ..HEAD -- apps/desktop/package.json ``` @@ -104,11 +104,11 @@ Present your analysis to the user with: 1. Save the current mainHash from `apps/desktop/package.json` for later comparison. 2. Verify working tree is clean before bump: - ```bash + ```sh git status --short ``` 3. Change directory to `apps/desktop/` and run the bump: - ```bash + ```sh cd apps/desktop && pnpm bump ``` 4. This command will: @@ -126,17 +126,17 @@ Present your analysis to the user with: If Step 4 decided mainHash should NOT be updated, restore the old value now. The bump has already committed, pushed, and created the PR on a new release branch, so we amend the commit and force push. This is safe because the release branch was just created. 1. Change back to the repo root first (Step 5 left the working directory at `apps/desktop/`): - ```bash + ```sh cd ../.. ``` 2. Ensure you are on the `release/desktop/{NEW_VERSION}` branch (bump should have switched to it). 3. Replace the recalculated mainHash with the saved old value in `apps/desktop/package.json`. 4. Stage and amend the release commit: - ```bash + ```sh git add apps/desktop/package.json && git commit --amend --no-edit ``` 5. Force push the release branch: - ```bash + ```sh git push --force origin release/desktop/{NEW_VERSION} ``` diff --git a/.claude/skills/installing-mobile-preview-builds/SKILL.md b/.claude/skills/installing-mobile-preview-builds/SKILL.md index c842a1536b..8ba5e94cd0 100644 --- a/.claude/skills/installing-mobile-preview-builds/SKILL.md +++ b/.claude/skills/installing-mobile-preview-builds/SKILL.md @@ -21,13 +21,13 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c - Run from repo root and ensure `apps/mobile` exists. - Verify `pnpm`, `xcrun`, `xcodebuild`, and `eas-cli` are available. - Verify EAS login: - ```bash + ```sh cd apps/mobile pnpm dlx eas-cli whoami ``` 2. Resolve target device. - List paired devices: - ```bash + ```sh xcrun devicectl list devices ``` - Choose device in this order: @@ -35,7 +35,7 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c - Otherwise, first paired iPhone. 3. Trigger local `preview` iOS build. - ```bash + ```sh mkdir -p .context/preview-install cd apps/mobile pnpm dlx eas-cli build -p ios --profile preview --non-interactive --local --output=./build-preview.ipa @@ -44,14 +44,14 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c ``` 4. Install to device locally. - ```bash + ```sh unzip -q -o .context/preview-install/folo-preview.ipa -d .context/preview-install/unpacked APP_PATH=$(find .context/preview-install/unpacked/Payload -maxdepth 1 -name '*.app' -type d | head -n 1) xcrun devicectl device install app --device "" "$APP_PATH" ``` 5. Try launching app. - ```bash + ```sh xcrun devicectl device process launch --device "" is.follow --activate ``` @@ -64,7 +64,7 @@ Use this skill to create a fresh local `preview` iOS build and install it on a c - failing command - key error message from command output - If app config fails with `Assets source directory not found ... /out/rn-web`, prebuild assets then retry once: - ```bash + ```sh pnpm --filter @follow/rn-micro-web-app build --outDir out/rn-web/html-renderer ``` diff --git a/.claude/skills/mobile-release/SKILL.md b/.claude/skills/mobile-release/SKILL.md index 308abb9656..8ad43fffbc 100644 --- a/.claude/skills/mobile-release/SKILL.md +++ b/.claude/skills/mobile-release/SKILL.md @@ -18,15 +18,15 @@ Perform a regular mobile release. This skill handles the full release workflow f ## Step 1: Gather changes since last release 1. Find the last release tag (both old `mobile@` and new `mobile/v` prefixes exist): - ```bash + ```sh git tag --sort=-creatordate | grep -E '^mobile[@/]' | head -1 ``` 2. If no tag found, find the last release commit by matching only the subject line: - ```bash + ```sh git log --format="%H %s" | grep "^[a-f0-9]* release(mobile): release v" | head -1 | awk '{print $1}' ``` 3. Get all commits since the last release on the current branch: - ```bash + ```sh git log ..HEAD --oneline --no-merges ``` 4. Categorize commits into: @@ -42,7 +42,7 @@ Perform a regular mobile release. This skill handles the full release workflow f 3. Wait for user confirmation or edits before writing. 4. Write the final content to `apps/mobile/changelog/next.md`, following the template format: - ```markdown + ```md # What's New in vNEXT_VERSION ## Shiny new things @@ -69,11 +69,11 @@ Perform a regular mobile release. This skill handles the full release workflow f `nbump` requires a clean working tree. Commit changelog edits before running bump. 1. Stage the changelog update: - ```bash + ```sh git add apps/mobile/changelog/next.md ``` 2. Commit it on `dev`: - ```bash + ```sh git commit -m "docs(mobile): prepare release changelog" ``` 3. If there are no changes to commit, continue without creating an extra commit. @@ -81,11 +81,11 @@ Perform a regular mobile release. This skill handles the full release workflow f ## Step 4: Execute bump 1. Verify working tree is clean before bump: - ```bash + ```sh git status --short ``` 2. Change directory to `apps/mobile/` and run the bump: - ```bash + ```sh cd apps/mobile && pnpm bump ``` 3. This is an interactive `nbump` command that prompts for version selection. It will: diff --git a/.claude/skills/update-deps/SKILL.md b/.claude/skills/update-deps/SKILL.md index ab08c837e9..d6e3b46747 100644 --- a/.claude/skills/update-deps/SKILL.md +++ b/.claude/skills/update-deps/SKILL.md @@ -108,7 +108,7 @@ After all updates are applied: Run these commands sequentially in the repo root and capture results: -```bash +```sh pnpm install pnpm typecheck pnpm test @@ -119,7 +119,7 @@ pnpm lint Run these commands sequentially in `BACKEND_DIR` and capture results: -```bash +```sh pnpm install pnpm typecheck pnpm test diff --git a/.github/ISSUE_TEMPLATE/i18n.yml b/.github/ISSUE_TEMPLATE/i18n.yml index e125c70bde..ab0781c118 100644 --- a/.github/ISSUE_TEMPLATE/i18n.yml +++ b/.github/ISSUE_TEMPLATE/i18n.yml @@ -1,7 +1,7 @@ name: 🌐 Internationalization (i18n) description: Contribute to or report issues with translations title: "[i18n]: " -labels: ["i18n", "triage"] +labels: [i18n, triage] body: - type: markdown attributes: diff --git a/.github/actions/setup-version/action.yml b/.github/actions/setup-version/action.yml index c790bdd7dc..b8a5776514 100644 --- a/.github/actions/setup-version/action.yml +++ b/.github/actions/setup-version/action.yml @@ -1,18 +1,18 @@ name: Setup Version -description: "Setup Version" +description: Setup Version inputs: type: required: true description: "Type of the app, either 'desktop' or 'mobile'" - default: "desktop" + default: desktop outputs: APP_VERSION: - description: "App Version" + description: App Version value: ${{ steps.version.outputs.APP_VERSION }} runs: - using: "composite" + using: composite steps: - - name: "Write Version" + - name: Write Version id: version shell: bash run: | diff --git a/.github/actions/setup-xcode/action.yml b/.github/actions/setup-xcode/action.yml index 7bc7e9c0c7..90d6e8d1b0 100644 --- a/.github/actions/setup-xcode/action.yml +++ b/.github/actions/setup-xcode/action.yml @@ -1,13 +1,13 @@ -name: "Setup Xcode" -description: "Setup specific Xcode version for iOS builds" +name: Setup Xcode +description: Setup specific Xcode version for iOS builds inputs: xcode-version: - description: "Xcode version to use" + description: Xcode version to use required: false - default: "26.0.1" + default: 26.0.1 runs: - using: "composite" + using: composite steps: - uses: maxim-lobanov/setup-xcode@v1 with: diff --git a/.github/advanced-issue-labeler.yml b/.github/advanced-issue-labeler.yml index 707546174e..9a321b34ea 100644 --- a/.github/advanced-issue-labeler.yml +++ b/.github/advanced-issue-labeler.yml @@ -1,9 +1,9 @@ policy: - section: - id: [platform] - block-list: ["None", "Other"] + block-list: [None, Other] label: - name: "platform: desktop" - keys: ["Desktop - macOS", "Desktop - Windows", "Desktop - Linux", "Desktop - Web"] + keys: [Desktop - macOS, Desktop - Windows, Desktop - Linux, Desktop - Web] - name: "platform: mobile" - keys: ["Mobile - iOS", "Mobile - Android", "Mobile - Web"] + keys: [Mobile - iOS, Mobile - Android, Mobile - Web] diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 04675b97b5..45a9e09250 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -33,15 +33,15 @@ updates: # filter not work - dependency-name: unplugin-ast - versions: ["0.14.5"] + versions: [0.14.5] open-pull-requests-limit: 100 groups: minor-and-patch: applies-to: version-updates update-types: - - "minor" - - "patch" + - minor + - patch pathed: patterns: - immer diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index ebb6765a9c..62b7a83c35 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -6,7 +6,7 @@ on: - "**" paths: - "apps/mobile/**" - - "pnpm-lock.yaml" + - pnpm-lock.yaml workflow_dispatch: inputs: profile: @@ -15,11 +15,11 @@ on: options: - preview - production - description: "Build profile" + description: Build profile release: type: boolean default: false - description: "Create a release draft for the build" + description: Create a release draft for the build concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.profile }} @@ -52,13 +52,13 @@ jobs: uses: actions/setup-node@v6 with: node-version: 22 - cache: "pnpm" + cache: pnpm - name: Set up JDK 17 uses: actions/setup-java@v5 with: java-version: "17" - distribution: "zulu" + distribution: zulu - name: Setup Android SDK uses: android-actions/setup-android@v3 @@ -102,7 +102,7 @@ jobs: id: version uses: ./.github/actions/setup-version with: - type: "mobile" + type: mobile - name: Prepare Release Notes if: github.event.inputs.release == 'true' diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index ea61e1d0e7..fcd66c26ae 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -7,16 +7,16 @@ on: paths: - "apps/desktop/**" - "packages/**" - - "pnpm-lock.yaml" - - ".github/workflows/build-desktop.yml" + - pnpm-lock.yaml + - .github/workflows/build-desktop.yml workflow_dispatch: inputs: tag_version: type: boolean - description: "Tag Version" + description: Tag Version store: type: boolean - description: "Build for Mac App Store and Microsoft Store" + description: Build for Mac App Store and Microsoft Store build_version: type: string description: "Build Version, only available when mas is true" @@ -76,7 +76,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 22 - cache: "pnpm" + cache: pnpm - name: Install Python setuptools if: runner.os == 'macOS' @@ -228,12 +228,12 @@ jobs: if: runner.os == 'windows' && env.RELEASE == 'true' && github.event.inputs.store != 'true' with: api-token: "${{ secrets.SIGNPATH_API_TOKEN }}" - organization-id: "8c651516-fdaf-40a1-9fea-001dffde850e" - project-slug: "Folo" - signing-policy-slug: "release-signing" - artifact-configuration-slug: "github" + organization-id: 8c651516-fdaf-40a1-9fea-001dffde850e + project-slug: Folo + signing-policy-slug: release-signing + artifact-configuration-slug: github github-artifact-id: "${{ steps.upload-unsigned-windows-x64-exe.outputs.artifact-id }}" - output-artifact-directory: "apps/desktop/out/make/" + output-artifact-directory: apps/desktop/out/make/ - name: Update latest.yml if: runner.os == 'windows' && env.RELEASE == 'true' && github.event.inputs.store != 'true' @@ -294,7 +294,7 @@ jobs: id: version uses: ./.github/actions/setup-version with: - type: "desktop" + type: desktop - name: Prepare Release Notes if: env.RELEASE == 'true' diff --git a/.github/workflows/build-ios-development.yml b/.github/workflows/build-ios-development.yml index 1529315efc..3146c58364 100644 --- a/.github/workflows/build-ios-development.yml +++ b/.github/workflows/build-ios-development.yml @@ -7,8 +7,8 @@ on: paths: - "apps/mobile/web-app/**" - "apps/mobile/native/**" - - "apps/mobile/package.json" - - "apps/mobile/app.config.ts" + - apps/mobile/package.json + - apps/mobile/app.config.ts concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -90,7 +90,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 22 - cache: "pnpm" + cache: pnpm - name: 📱 Setup EAS uses: expo/expo-github-action@v8 @@ -134,7 +134,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 22 - cache: "pnpm" + cache: pnpm - name: 📱 Setup EAS uses: expo/expo-github-action@v8 diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 3ca17f8149..d0bde93ad1 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -6,7 +6,7 @@ on: - "**" paths: - "apps/mobile/**" - - "pnpm-lock.yaml" + - pnpm-lock.yaml workflow_dispatch: inputs: profile: @@ -15,7 +15,7 @@ on: options: - preview - production - description: "Build profile" + description: Build profile concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.inputs.profile }} @@ -103,7 +103,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: 22 - cache: "pnpm" + cache: pnpm - name: 📱 Setup EAS uses: expo/expo-github-action@v8 diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index 7bee7824c9..7029b9bcfa 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -37,7 +37,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} - cache: "pnpm" + cache: pnpm - name: Install dependencies run: pnpm install - name: Build web and SSR server diff --git a/.github/workflows/deploy-cloudflare.yml b/.github/workflows/deploy-cloudflare.yml index bb53a8466b..d469aa3d82 100644 --- a/.github/workflows/deploy-cloudflare.yml +++ b/.github/workflows/deploy-cloudflare.yml @@ -36,7 +36,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} - cache: "pnpm" + cache: pnpm - name: Install dependencies run: pnpm install diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 684111fa08..bf0608e1dc 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -42,7 +42,7 @@ jobs: uses: actions/setup-node@v6 with: node-version: ${{ matrix.node-version }} - cache: "pnpm" + cache: pnpm - name: Install dependencies run: pnpm install - name: Build web and SSR server diff --git a/.github/workflows/translator.yml b/.github/workflows/translator.yml index dea91e207c..422c917b13 100644 --- a/.github/workflows/translator.yml +++ b/.github/workflows/translator.yml @@ -1,4 +1,4 @@ -name: "🌍 translator" +name: 🌍 translator on: issues: types: [opened, edited] diff --git a/AGENTS.md b/AGENTS.md index a874465368..b94dcd2fbe 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -13,7 +13,7 @@ This file provides concise, agent-focused guidance for working in this monorepo. ## Setup commands -```bash +```sh # Install deps pnpm install @@ -38,7 +38,7 @@ pnpm run build:web ## Quality gates (must-pass before commit/PR) -```bash +```sh # 1) Typecheck first (required) pnpm run typecheck @@ -53,7 +53,7 @@ pnpm run test - Follow this order strictly: typecheck → lint → test. - After every modification, run the following checks to catch errors early: -```bash +```sh npm exec turbo run format:check typecheck lint npm exec turbo run test ``` diff --git a/README.md b/README.md index bae550000d..a54bf3f0ef 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@

-As they say, your thoughts are what you read—and we’ve been consuming noisy feeds for too long! Folo organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing. +As they say, your thoughts are what you read—and we've been consuming noisy feeds for too long! Folo organizes content into one timeline, keeping you updated on what matters, noise-free. Share lists, explore collections, and enjoy distraction-free browsing. ## 👋🏻 Getting Started & Join Our Community @@ -97,7 +97,7 @@ Because we know content is more than just text. From articles to videos, images ### More Than Just An App -This isn’t just another app. Folo is a community — introducing a new era of openness and community-driven experience. +This isn't just another app. Folo is a community — introducing a new era of openness and community-driven experience. ![](https://github.com/user-attachments/assets/62004a04-eaea-4f5d-bfbf-4e68b6b90286) diff --git a/apps/cli/tsconfig.json b/apps/cli/tsconfig.json index 7120363422..7062eab258 100644 --- a/apps/cli/tsconfig.json +++ b/apps/cli/tsconfig.json @@ -2,8 +2,8 @@ "extends": "@follow/configs/tsconfig.extend.json", "compilerOptions": { "target": "ES2022", - "module": "ESNext", "lib": ["ES2022"], + "module": "ESNext", "moduleResolution": "Bundler", "types": ["node"], "noEmit": true diff --git a/apps/desktop/AGENTS.md b/apps/desktop/AGENTS.md index 67b689b6ce..006955c90f 100644 --- a/apps/desktop/AGENTS.md +++ b/apps/desktop/AGENTS.md @@ -17,7 +17,7 @@ The renderer is the **primary web application** - a Vite + React SPA that can ru ## Development Commands -```bash +```sh # Recommended: Browser development (faster) pnpm run dev:web diff --git a/apps/desktop/changelog/0.4.3.md b/apps/desktop/changelog/0.4.3.md index 7566c7eace..197a8c9e65 100644 --- a/apps/desktop/changelog/0.4.3.md +++ b/apps/desktop/changelog/0.4.3.md @@ -21,5 +21,5 @@ - Fixed TTS playback failure (a4d1653) - Fixed corner player not navigating to the correct entry (#1401) - Fixed issue that prevented saving to Readwise (53da938) -- Fixed missing “Mark above as read” option in the picture masonry layout footer (e018736) +- Fixed missing "Mark above as read" option in the picture masonry layout footer (e018736) - Fixed a potential login drop issue (0ee8510) diff --git a/apps/desktop/changelog/0.4.5.md b/apps/desktop/changelog/0.4.5.md index 8536462415..98ae8f771f 100644 --- a/apps/desktop/changelog/0.4.5.md +++ b/apps/desktop/changelog/0.4.5.md @@ -2,11 +2,11 @@ ## Shiny new things -- Translation view toggle – choose between “translation-only” or bilingual display (#3568) +- Translation view toggle – choose between "translation-only" or bilingual display (#3568) - Mark Above/Below as Read option in the context menu (#3570) - Automation actions: auto start entries that match your rules (#3625) - Trending Feeds now spotlighted on the Discover page (eb6a409) -- Timeline previews for feeds you haven’t subscribed to yet (eb26cde) +- Timeline previews for feeds you haven't subscribed to yet (eb26cde) - Invite-code gates removed – no invite code needed anymore (cee647c) ## Improvements @@ -25,7 +25,7 @@ - Fixed occasional misplacement of the scroll indicator (87c9a48) - Font settings now apply correctly (5aed9a7) -- Different views no longer clash with one another’s scroll positions (#3627) +- Different views no longer clash with one another's scroll positions (#3627) - Picture and video view sizes no longer interfere with each other (#3645) - Correct sorting icon in the feed list (#3675) - Custom fonts containing spaces now render properly (#3674) diff --git a/apps/desktop/changelog/0.4.6.md b/apps/desktop/changelog/0.4.6.md index 3be482b93f..b21e307198 100644 --- a/apps/desktop/changelog/0.4.6.md +++ b/apps/desktop/changelog/0.4.6.md @@ -13,7 +13,7 @@ - Clearer RSSHub error messages. (ed95fb6b) - AI summary is now enabled by default. (f329ae9) - Social-media view shows a richer action bar. (b06d8ff) -- No more notification-permission prompts when your actions don’t need them. (450b759) +- No more notification-permission prompts when your actions don't need them. (450b759) - Discover page now remembers your language preference. (180933b) ## No longer broken diff --git a/apps/desktop/changelog/0.4.8.md b/apps/desktop/changelog/0.4.8.md index 858d6909d1..8b004ad96d 100644 --- a/apps/desktop/changelog/0.4.8.md +++ b/apps/desktop/changelog/0.4.8.md @@ -10,14 +10,14 @@ ## Improvements -- Suscription form now shows each list’s subscriber count and last-updated time (e525edc) -- Video view now displays the video’s total duration (2234b4b) +- Suscription form now shows each list's subscriber count and last-updated time (e525edc) +- Video view now displays the video's total duration (2234b4b) - Added compatibility for both `folo` and `follow` URI schemes (4fa171b) ## No longer broken - Resolved blur effect not applying on the macOS Electron vibrancy layer (33ef0c4) -- “More” label stays hidden when the entry-history limit isn’t reached (04583a3) +- "More" label stays hidden when the entry-history limit isn't reached (04583a3) - Fixed certain videos failing to render inside entries (c48b94a) ## Thanks diff --git a/apps/desktop/changelog/0.5.0.md b/apps/desktop/changelog/0.5.0.md index 43c203db51..21f4da98d8 100644 --- a/apps/desktop/changelog/0.5.0.md +++ b/apps/desktop/changelog/0.5.0.md @@ -14,17 +14,17 @@ - Implemented smooth scrolling (6c73ae5) - Significant overall performance boost - AI will skip summarising extra-short articles to avoid trivial summaries (852fb1d) -- Added “Reset to defaults” button to the shortcuts page (#3834) +- Added "Reset to defaults" button to the shortcuts page (#3834) - Added a border around 2-factor QR codes for better scan reliability (f7faf78) - RSSHub routes top-feed list now respects your Discover-language setting (14d4da3) - Audio player now prefers episode artwork over feed artwork (#3855) - You can now manually paste your login token to bypass Microsoft Store deeplink issues (47e07a4) -- Added “Check for updates” button in Settings (ef304cd) +- Added "Check for updates" button in Settings (ef304cd) ## No longer broken - Dropdown menus now keep keyboard focus when opened (f31d43d) -- “Mark as read” button is now perfectly centred (#3836) +- "Mark as read" button is now perfectly centred (#3836) - Entry list no longer displays stale cached items (0a167ac) - Squashed numerous shortcut-key bugs diff --git a/apps/desktop/changelog/0.6.2.md b/apps/desktop/changelog/0.6.2.md index f713608eb0..30c8f288b0 100644 --- a/apps/desktop/changelog/0.6.2.md +++ b/apps/desktop/changelog/0.6.2.md @@ -2,7 +2,7 @@ ## Shiny new things -- New “Fade Read Items” option dims read entries in the timeline (eeeea47) +- New "Fade Read Items" option dims read entries in the timeline (eeeea47) - YouTube videos now play directly in the Articles view (#4096) - Choose your own accent color for the interface (47129d5) @@ -12,20 +12,20 @@ - Added a Sign In / Sign Up toggle on the email page (81c544a) - Smarter visibility logic for the picture action bar (#4033) - Edit Feed now shows only categories relevant to the current view (#4094) -- “Mark above as read” button no longer appear in the Starred list (#4083) +- "Mark above as read" button no longer appear in the Starred list (#4083) - RSSHub and Trending queries persist between sessions (7a95a15) - Refined profile layout (#4101) ## No longer broken - Discover page scroll indicator now can reach 100% (#3962) -- “Mark as Read” keyboard shortcut works again (24113f7) +- "Mark as Read" keyboard shortcut works again (24113f7) - Fixed infinite scrolling when dragging in Customize Toolbar settings (#4018) -- Fixed the bug that you can’t mark an entry as Unread (8ea13a3) +- Fixed the bug that you can't mark an entry as Unread (8ea13a3) - Clicking Read more in Social Media view no longer refreshes the page (#4027) - Entries with special characters in the title can be saved to Obsidian (f6cff2a) - Image downloads are now reliable (#4095) -- Corrected Inbox “Mark as Read” logic (7c1bf99) +- Corrected Inbox "Mark as Read" logic (7c1bf99) - Prevented feed click event from bubbling to route item (#4113) - Fixed the bug that source content not triggered automatically (c5edc76) diff --git a/apps/desktop/changelog/0.9.0.md b/apps/desktop/changelog/0.9.0.md index 850b8bd894..e5be169f11 100644 --- a/apps/desktop/changelog/0.9.0.md +++ b/apps/desktop/changelog/0.9.0.md @@ -3,10 +3,10 @@ ## Improvements - Removed the limit on the maximum number of views (b69a935) -- Allow hiding the “All” view (0882e47) +- Allow hiding the "All" view (0882e47) - Introduced a right-click menu for views, allowing quick access to hide or open settings (60dcd42) - Added a smooth sliding animation when opening entry details (1720ebb) ## No longer broken -- Fixed an issue where the scrollbar didn’t reset when switching between entry details (21124f5) +- Fixed an issue where the scrollbar didn't reset when switching between entry details (21124f5) diff --git a/apps/desktop/changelog/1.1.0.md b/apps/desktop/changelog/1.1.0.md index 95d4e1830c..d0414ca036 100644 --- a/apps/desktop/changelog/1.1.0.md +++ b/apps/desktop/changelog/1.1.0.md @@ -20,7 +20,7 @@ ## No longer broken - Fixed an issue where the Windows EXE software update check failed to run properly. -- Fixed a bug preventing category movement in the “All” view. +- Fixed a bug preventing category movement in the "All" view. - Fixed occasional AI chat interruptions under certain conditions. ## Thanks diff --git a/apps/desktop/changelog/1.2.2.md b/apps/desktop/changelog/1.2.2.md index ea0c5feb67..71e96f55e4 100644 --- a/apps/desktop/changelog/1.2.2.md +++ b/apps/desktop/changelog/1.2.2.md @@ -5,7 +5,7 @@ - **AI** - Added **BYOK (Bring Your Own Key)** support — choose your own AI provider freely. - Improved **AI Memory**: you can now update or refine past memories whenever you need. - - Reduced the “guiding tone” in **AI Summary** so summaries feel more natural and personal. + - Reduced the "guiding tone" in **AI Summary** so summaries feel more natural and personal. - Introduced **AI Timeline Sort (Beta)**: your timeline can now rearrange itself based on your reading preferences. ![](https://cdn.follow.is/ai-memory.mp4) diff --git a/apps/desktop/layer/main/src/ipc/services/integration.ts b/apps/desktop/layer/main/src/ipc/services/integration.ts index 035fb9035b..737aa68a59 100644 --- a/apps/desktop/layer/main/src/ipc/services/integration.ts +++ b/apps/desktop/layer/main/src/ipc/services/integration.ts @@ -155,7 +155,6 @@ ${content} } store.set("qbittorrentSID", match[1]) - return } async checkQBittorrentAuth(context: IpcContext, input: CheckQBittorrentAuthInput) { diff --git a/apps/desktop/layer/main/src/lib/proxy.ts b/apps/desktop/layer/main/src/lib/proxy.ts index 94bbee9b62..53f6fdfce7 100644 --- a/apps/desktop/layer/main/src/lib/proxy.ts +++ b/apps/desktop/layer/main/src/lib/proxy.ts @@ -51,9 +51,7 @@ const normalizeProxyUri = (userProxy: string) => { // There are multiple ways to specify a proxy in Electron, // but for security reasons, we only support simple proxy URLs for now. return `${proxyUrl.protocol}//${proxyUrl.hostname}${proxyUrl.port ? `:${proxyUrl.port}` : ""}` - } catch { - return - } + } catch {} } const BYPASS_RULES = [""].join(";") diff --git a/apps/desktop/layer/main/src/lib/router.ts b/apps/desktop/layer/main/src/lib/router.ts index d063b145d9..f86edf0379 100644 --- a/apps/desktop/layer/main/src/lib/router.ts +++ b/apps/desktop/layer/main/src/lib/router.ts @@ -99,7 +99,6 @@ export const handleUrlRouting = (url: string) => { minHeight: 600, resizable, }) - return } } } catch (err) { diff --git a/apps/desktop/layer/main/src/manager/bootstrap.ts b/apps/desktop/layer/main/src/manager/bootstrap.ts index 2d0205ed9f..3986d7898b 100644 --- a/apps/desktop/layer/main/src/manager/bootstrap.ts +++ b/apps/desktop/layer/main/src/manager/bootstrap.ts @@ -21,7 +21,7 @@ import { logger } from "../logger" import { cleanupOldRender } from "../updater/hot-updater" import { AppManager } from "./app" -const apiURL = process.env["VITE_API_URL"] || import.meta.env.VITE_API_URL +const apiURL = process.env.VITE_API_URL || import.meta.env.VITE_API_URL const buildSafeHeaders = createBuildSafeHeaders(env.VITE_WEB_URL, [ env.VITE_OPENPANEL_API_URL || "", IMAGE_PROXY_URL, diff --git a/apps/desktop/layer/main/src/manager/window.ts b/apps/desktop/layer/main/src/manager/window.ts index e8d33e0d66..5bef44b864 100644 --- a/apps/desktop/layer/main/src/manager/window.ts +++ b/apps/desktop/layer/main/src/manager/window.ts @@ -357,9 +357,9 @@ class WindowManagerStatic { // HMR for renderer base on electron-vite cli. // Load the remote URL for development or the local html file for production. - if (is.dev && process.env["ELECTRON_RENDERER_URL"]) { - window.loadURL(process.env["ELECTRON_RENDERER_URL"] + (options?.extraPath || "")) - logger.log(process.env["ELECTRON_RENDERER_URL"] + (options?.extraPath || "")) + if (is.dev && process.env.ELECTRON_RENDERER_URL) { + window.loadURL(process.env.ELECTRON_RENDERER_URL + (options?.extraPath || "")) + logger.log(process.env.ELECTRON_RENDERER_URL + (options?.extraPath || "")) } else { // Production entry const dynamicRenderEntry = loadDynamicRenderEntry() @@ -450,7 +450,6 @@ class WindowManagerStatic { this.windows.mainWindow.show() callWindowExpose(this.windows.mainWindow).showSetting(path) - return } else { this.windows.mainWindow = this.createMainWindow() this.windows.mainWindow.show() diff --git a/apps/desktop/layer/main/tsconfig.json b/apps/desktop/layer/main/tsconfig.json index a6f78f0af2..cf308fbf21 100644 --- a/apps/desktop/layer/main/tsconfig.json +++ b/apps/desktop/layer/main/tsconfig.json @@ -2,20 +2,20 @@ "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", "compilerOptions": { "composite": true, - "outDir": "dist", - "types": ["electron-vite/node", "@follow/types/vite", "@follow/types/global"], - "moduleResolution": "Bundler", - "noImplicitReturns": false, - "noUnusedLocals": false, - "noUnusedParameters": false, - "noUncheckedIndexedAccess": true, - "noImplicitOverride": true, "experimentalDecorators": true, "baseUrl": ".", + "moduleResolution": "Bundler", "paths": { "@pkg": ["../../package.json"], "@locales/*": ["../../../../locales/*"], "~/*": ["./src/*"] - } + }, + "types": ["electron-vite/node", "@follow/types/vite", "@follow/types/global"], + "noImplicitOverride": true, + "noImplicitReturns": false, + "noUncheckedIndexedAccess": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "outDir": "dist" } } diff --git a/apps/desktop/layer/renderer/src/@types/constants.ts b/apps/desktop/layer/renderer/src/@types/constants.ts index a1ee081670..6b30efee18 100644 --- a/apps/desktop/layer/renderer/src/@types/constants.ts +++ b/apps/desktop/layer/renderer/src/@types/constants.ts @@ -5,10 +5,10 @@ export type RendererSupportedLanguages = (typeof langs)[number] export const dayjsLocaleImportMap = { en: ["en", () => import("dayjs/locale/en")], - ["zh-CN"]: ["zh-cn", () => import("dayjs/locale/zh-cn")], - ["ja"]: ["ja", () => import("dayjs/locale/ja")], - ["zh-TW"]: ["zh-tw", () => import("dayjs/locale/zh-tw")], - ["fr-FR"]: ["fr", () => import("dayjs/locale/fr")], + "zh-CN": ["zh-cn", () => import("dayjs/locale/zh-cn")], + ja: ["ja", () => import("dayjs/locale/ja")], + "zh-TW": ["zh-tw", () => import("dayjs/locale/zh-tw")], + "fr-FR": ["fr", () => import("dayjs/locale/fr")], } export const ns = ["common", "lang", "errors", "app", "settings", "shortcuts", "ai"] as const export const defaultNS = "app" as const diff --git a/apps/desktop/layer/renderer/src/atoms/player.ts b/apps/desktop/layer/renderer/src/atoms/player.ts index 4822f55ba1..24f4c972dd 100644 --- a/apps/desktop/layer/renderer/src/atoms/player.ts +++ b/apps/desktop/layer/renderer/src/atoms/player.ts @@ -158,7 +158,6 @@ export const AudioPlayer = { currentTime: this.audio.currentTime, }) this.teardown() - return }, togglePlayAndPause() { const curV = getAudioPlayerAtomValue() diff --git a/apps/desktop/layer/renderer/src/components/common/ShadowDOM.tsx b/apps/desktop/layer/renderer/src/components/common/ShadowDOM.tsx index 44c46a0783..420fc7de3e 100644 --- a/apps/desktop/layer/renderer/src/components/common/ShadowDOM.tsx +++ b/apps/desktop/layer/renderer/src/components/common/ShadowDOM.tsx @@ -48,7 +48,7 @@ const cloneStylesElement = () => { createElement(MemoedDangerousHTMLStyle, { key, children: style.cssText, - ["data-href"]: style.ref.href, + "data-href": style.ref.href, }), ) } diff --git a/apps/desktop/layer/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx b/apps/desktop/layer/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx index 9573e33c2e..2a1df77b38 100644 --- a/apps/desktop/layer/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx +++ b/apps/desktop/layer/renderer/src/components/ui/code-highlighter/shiki/Shiki.tsx @@ -189,7 +189,7 @@ const ShikiCode: FC< className={cn( "group relative my-4 overflow-hidden rounded-lg border backdrop-blur-sm", styles["shiki-wrapper"], - transparent ? styles["transparent"] : null, + transparent ? styles.transparent : null, className, )} style={{ diff --git a/apps/desktop/layer/renderer/src/components/ui/crop/AvatarUploadModal.tsx b/apps/desktop/layer/renderer/src/components/ui/crop/AvatarUploadModal.tsx index 649f631a2b..ff51004129 100644 --- a/apps/desktop/layer/renderer/src/components/ui/crop/AvatarUploadModal.tsx +++ b/apps/desktop/layer/renderer/src/components/ui/crop/AvatarUploadModal.tsx @@ -168,8 +168,8 @@ export const AvatarUploadModal = ({ const imageAspectRatio = img.naturalWidth / img.naturalHeight const containerAspectRatio = containerWidth / containerHeight - let displayWidth = 0, - displayHeight = 0 + let displayWidth = 0 + let displayHeight = 0 if (imageAspectRatio > containerAspectRatio) { // The image is wider, use the container width @@ -342,10 +342,10 @@ export const AvatarUploadModal = ({ const imageAspectRatio = img.naturalWidth / img.naturalHeight const containerAspectRatio = containerWidth / containerHeight - let displayWidth = 0, - displayHeight = 0, - offsetX = 0, - offsetY = 0 + let displayWidth = 0 + let displayHeight = 0 + let offsetX = 0 + let offsetY = 0 if (imageAspectRatio > containerAspectRatio) { // The image is wider, use the container width diff --git a/apps/desktop/layer/renderer/src/components/ui/media/VideoPlayer.tsx b/apps/desktop/layer/renderer/src/components/ui/media/VideoPlayer.tsx index 51e1d8106b..a4e11a341d 100644 --- a/apps/desktop/layer/renderer/src/components/ui/media/VideoPlayer.tsx +++ b/apps/desktop/layer/renderer/src/components/ui/media/VideoPlayer.tsx @@ -103,7 +103,7 @@ export const VideoPlayer = ({ rest.onClick?.(e) handleClick(e) }, - muted: isPlayer ? false : true, + muted: !isPlayer, onDoubleClick(e) { rest.onDoubleClick?.(e) if (!isPlayer) return diff --git a/apps/desktop/layer/renderer/src/components/ui/modal/stacked/modal.tsx b/apps/desktop/layer/renderer/src/components/ui/modal/stacked/modal.tsx index 1201fc53af..e581232f12 100644 --- a/apps/desktop/layer/renderer/src/components/ui/modal/stacked/modal.tsx +++ b/apps/desktop/layer/renderer/src/components/ui/modal/stacked/modal.tsx @@ -47,211 +47,265 @@ import type { ModalOverlayOptions, ModalProps } from "./types" const DragBar = ELECTRON_BUILD ? ( ) : null -export const ModalInternal = memo(function Modal({ - ref, - item, - overlayOptions, - onClose: onPropsClose, - children, - isTop, - index, - isBottom, -}: { - item: ModalProps & { id: string } - index: number - - isTop?: boolean - isBottom?: boolean - overlayOptions?: ModalOverlayOptions - onClose?: (open: boolean) => void -} & PropsWithChildren & { ref?: React.Ref }) { - const { - CustomModalComponent, - content, - title, - clickOutsideToDismiss, - - modalClassName, - modalContainerClassName, - modalContentClassName, - - wrapper: Wrapper = Fragment, - max, - icon, - canClose = true, - - draggable = false, - resizeable = false, - resizeDefaultSize, - modal = true, - autoFocus = true, - } = item - - const setStack = useSetAtom(modalStackAtom) - - // Animation controls - const { animateController, playNoticeAnimation, playExitAnimation, isClosing, readyToClose } = - useModalAnimate(!!isTop, item.id) - - // Simple dismiss logic - const close = useEventCallback(async (forceClose = false) => { - if (!canClose && !forceClose) return - readyToClose() - try { - if (CustomModalComponent) { - // Custom modals handle their own animation - setStack((p) => p.filter((modal) => modal.id !== item.id)) - } else { - // Play exit animation then remove from stack\ - await playExitAnimation() +export const ModalInternal = memo( + ({ + ref, + item, + overlayOptions, + onClose: onPropsClose, + children, + isTop, + index, + isBottom, + }: { + item: ModalProps & { id: string } + index: number + + isTop?: boolean + isBottom?: boolean + overlayOptions?: ModalOverlayOptions + onClose?: (open: boolean) => void + } & PropsWithChildren & { ref?: React.Ref }) => { + const { + CustomModalComponent, + content, + title, + clickOutsideToDismiss, + + modalClassName, + modalContainerClassName, + modalContentClassName, + + wrapper: Wrapper = Fragment, + max, + icon, + canClose = true, + + draggable = false, + resizeable = false, + resizeDefaultSize, + modal = true, + autoFocus = true, + } = item + + const setStack = useSetAtom(modalStackAtom) + + // Animation controls + const { animateController, playNoticeAnimation, playExitAnimation, isClosing, readyToClose } = + useModalAnimate(!!isTop, item.id) + + // Simple dismiss logic + const close = useEventCallback(async (forceClose = false) => { + if (!canClose && !forceClose) return + readyToClose() + try { + if (CustomModalComponent) { + // Custom modals handle their own animation + setStack((p) => p.filter((modal) => modal.id !== item.id)) + } else { + // Play exit animation then remove from stack\ + await playExitAnimation() + setStack((p) => p.filter((modal) => modal.id !== item.id)) + } + } catch (error) { + // If animation fails, still remove from stack + console.warn("Modal animation failed:", error) setStack((p) => p.filter((modal) => modal.id !== item.id)) } - } catch (error) { - // If animation fails, still remove from stack - console.warn("Modal animation failed:", error) - setStack((p) => p.filter((modal) => modal.id !== item.id)) - } - - item.onClose?.() - onPropsClose?.(false) - }) - const onClose = useCallback( - (open: boolean): void => { - if (!open) { - close() - } - }, - [close], - ) + item.onClose?.() + onPropsClose?.(false) + }) - const modalSettingOverlay = useUISettingKey("modalOverlay") + const onClose = useCallback( + (open: boolean): void => { + if (!open) { + close() + } + }, + [close], + ) - const dismiss = useCallback( - (e: SyntheticEvent) => { - e.stopPropagation() - close(true) - }, - [close], - ) + const modalSettingOverlay = useUISettingKey("modalOverlay") - const modalElementRef = useRef(null) - const { - handleDrag, - handleResizeStart, - handleResizeStop, - relocateModal, - preferDragDir, - isResizeable, - resizeableStyle, - - dragController, - } = useModalResizeAndDrag(modalElementRef, { - resizeable, - draggable, - }) - - const getIndex = useEventCallback(() => index) - const [modalContentRef, setModalContentRef] = useState(null) - const ModalProps: ModalActionsInternal = useMemo( - () => ({ - dismiss: close, - getIndex, - setClickOutSideToDismiss: (v) => { - setStack((state) => - produce(state, (draft) => { - const model = draft.find((modal) => modal.id === item.id) - if (!model) return - if (model.clickOutsideToDismiss === v) return - model.clickOutsideToDismiss = v - }), - ) + const dismiss = useCallback( + (e: SyntheticEvent) => { + e.stopPropagation() + close(true) }, - }), - [close, getIndex, item.id, setStack], - ) - useModalSubscriber(item.id, ModalProps) - - const ModalContextProps = useMemo( - () => ({ - ...ModalProps, - ref: { current: modalContentRef }, - modalElementRef, - }), - [ModalProps, modalContentRef], - ) + [close], + ) - const [edgeElementRef, setEdgeElementRef] = useState(null) + const modalElementRef = useRef(null) + const { + handleDrag, + handleResizeStart, + handleResizeStop, + relocateModal, + preferDragDir, + isResizeable, + resizeableStyle, + + dragController, + } = useModalResizeAndDrag(modalElementRef, { + resizeable, + draggable, + }) + + const getIndex = useEventCallback(() => index) + const [modalContentRef, setModalContentRef] = useState(null) + const ModalProps: ModalActionsInternal = useMemo( + () => ({ + dismiss: close, + getIndex, + setClickOutSideToDismiss: (v) => { + setStack((state) => + produce(state, (draft) => { + const model = draft.find((modal) => modal.id === item.id) + if (!model) return + if (model.clickOutsideToDismiss === v) return + model.clickOutsideToDismiss = v + }), + ) + }, + }), + [close, getIndex, item.id, setStack], + ) + useModalSubscriber(item.id, ModalProps) + + const ModalContextProps = useMemo( + () => ({ + ...ModalProps, + ref: { current: modalContentRef }, + modalElementRef, + }), + [ModalProps, modalContentRef], + ) - const finalChildren = useMemo( - () => ( - - - {children ?? createElement(content, ModalProps)} - - - ), - [ModalProps, children, content, edgeElementRef], - ) + const [edgeElementRef, setEdgeElementRef] = useState(null) + + const finalChildren = useMemo( + () => ( + + + {children ?? createElement(content, ModalProps)} + + + ), + [ModalProps, children, content, edgeElementRef], + ) - useEffect(() => { - if (isClosing) { - // Radix dialog will block pointer events - document.body.style.pointerEvents = "auto" - } - }, [isClosing]) - - const modalStyle = resizeableStyle - const { handleSelectStart, handleDetectSelectEnd, isSelectingRef } = useModalSelect() - const handleClickOutsideToDismiss = useCallback( - (e: SyntheticEvent) => { - if (isSelectingRef.current) return - - if (modal && clickOutsideToDismiss && canClose) { - dismiss(e) - } else if (modal) { - playNoticeAnimation() + useEffect(() => { + if (isClosing) { + // Radix dialog will block pointer events + document.body.style.pointerEvents = "auto" } - }, - [canClose, clickOutsideToDismiss, dismiss, modal, playNoticeAnimation, isSelectingRef], - ) + }, [isClosing]) + + const modalStyle = resizeableStyle + const { handleSelectStart, handleDetectSelectEnd, isSelectingRef } = useModalSelect() + const handleClickOutsideToDismiss = useCallback( + (e: SyntheticEvent) => { + if (isSelectingRef.current) return + + if (modal && clickOutsideToDismiss && canClose) { + dismiss(e) + } else if (modal) { + playNoticeAnimation() + } + }, + [canClose, clickOutsideToDismiss, dismiss, modal, playNoticeAnimation, isSelectingRef], + ) - const openAutoFocus = useCallback( - (event: Event) => { - if (!autoFocus) { - event.preventDefault() - } - }, - [autoFocus], - ) + const openAutoFocus = useCallback( + (event: Event) => { + if (!autoFocus) { + event.preventDefault() + } + }, + [autoFocus], + ) - const measureDragConstraints = useRef((constraints: BoundingBox) => { - if (getOS() === "Windows") { - return { - ...constraints, - top: constraints.top + ElECTRON_CUSTOM_TITLEBAR_HEIGHT, + const measureDragConstraints = useRef((constraints: BoundingBox) => { + if (getOS() === "Windows") { + return { + ...constraints, + top: constraints.top + ElECTRON_CUSTOM_TITLEBAR_HEIGHT, + } } + return constraints + }).current + + useImperativeHandle(ref, () => modalElementRef.current!) + const currentModalZIndex = MODAL_STACK_Z_INDEX + index * 2 + + const Overlay = ( +