diff --git a/apps/website/package.json b/apps/website/package.json index fe08537617..b0ee432ada 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -14,12 +14,12 @@ "@eslint-react/eff": "workspace:*", "bsky-react-post": "^0.1.7", "clsx": "^2.1.1", - "fumadocs-core": "15.7.4", + "fumadocs-core": "15.7.7", "fumadocs-docgen": "3.0.0", - "fumadocs-mdx": "11.8.1", - "fumadocs-twoslash": "3.1.6", + "fumadocs-mdx": "11.8.2", + "fumadocs-twoslash": "3.1.7", "fumadocs-typescript": "4.0.6", - "fumadocs-ui": "15.7.4", + "fumadocs-ui": "15.7.7", "lucide-react": "^0.542.0", "next": "^15.5.2", "next-view-transitions": "^0.3.4", diff --git a/package.json b/package.json index eb81a6826c..64aadee599 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "@typescript-eslint/rule-tester": "^8.41.0", "@typescript-eslint/types": "^8.41.0", "ansis": "^4.1.0", - "cspell": "^9.2.0", + "cspell": "^9.2.1", "dedent": "^1.6.0", "dprint": "^0.50.1", "effect": "^3.17.9", diff --git a/packages/plugins/eslint-plugin-react-debug/src/configs/all.ts b/packages/plugins/eslint-plugin-react-debug/src/configs/all.ts index 8595ec67f0..9067ce8dd4 100644 --- a/packages/plugins/eslint-plugin-react-debug/src/configs/all.ts +++ b/packages/plugins/eslint-plugin-react-debug/src/configs/all.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; export const name = "react-debug/all"; @@ -9,7 +9,7 @@ export const rules = { "react-debug/hook": "warn", "react-debug/is-from-react": "warn", "react-debug/jsx": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS, diff --git a/packages/plugins/eslint-plugin-react-debug/src/index.ts b/packages/plugins/eslint-plugin-react-debug/src/index.ts index cb8d8e4895..05d4a44230 100644 --- a/packages/plugins/eslint-plugin-react-debug/src/index.ts +++ b/packages/plugins/eslint-plugin-react-debug/src/index.ts @@ -1,24 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as allConfig from "./configs/all"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-debug": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-debug"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-debug", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-debug/src/plugin.ts b/packages/plugins/eslint-plugin-react-debug/src/plugin.ts index 4644b06f9a..a4acae105f 100644 --- a/packages/plugins/eslint-plugin-react-debug/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-debug/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; diff --git a/packages/plugins/eslint-plugin-react-dom/src/configs/recommended.ts b/packages/plugins/eslint-plugin-react-dom/src/configs/recommended.ts index c31494ef95..b6068618e4 100644 --- a/packages/plugins/eslint-plugin-react-dom/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin-react-dom/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; export const name = "react-dom/recommended"; @@ -19,7 +19,7 @@ export const rules = { "react-dom/no-unsafe-target-blank": "warn", "react-dom/no-use-form-state": "error", "react-dom/no-void-elements-with-children": "error", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS, diff --git a/packages/plugins/eslint-plugin-react-dom/src/index.ts b/packages/plugins/eslint-plugin-react-dom/src/index.ts index 16eb55842b..a237809bfb 100644 --- a/packages/plugins/eslint-plugin-react-dom/src/index.ts +++ b/packages/plugins/eslint-plugin-react-dom/src/index.ts @@ -1,24 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as recommendedConfig from "./configs/recommended"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-dom": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-dom"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-dom", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-dom/src/plugin.ts b/packages/plugins/eslint-plugin-react-dom/src/plugin.ts index dc42812911..4cf4a20a4c 100644 --- a/packages/plugins/eslint-plugin-react-dom/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-dom/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; diff --git a/packages/plugins/eslint-plugin-react-hooks-extra/src/configs/recommended.ts b/packages/plugins/eslint-plugin-react-hooks-extra/src/configs/recommended.ts index f1038949f2..adbfe8c409 100644 --- a/packages/plugins/eslint-plugin-react-hooks-extra/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin-react-hooks-extra/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; export const name = "react-hooks-extra/recommended"; @@ -6,4 +6,4 @@ export const rules = { "react-hooks-extra/no-direct-set-state-in-use-effect": "warn", "react-hooks-extra/no-unnecessary-use-prefix": "warn", "react-hooks-extra/prefer-use-state-lazy-initialization": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; diff --git a/packages/plugins/eslint-plugin-react-hooks-extra/src/index.ts b/packages/plugins/eslint-plugin-react-hooks-extra/src/index.ts index c0b5985e8a..0fc6698681 100644 --- a/packages/plugins/eslint-plugin-react-hooks-extra/src/index.ts +++ b/packages/plugins/eslint-plugin-react-hooks-extra/src/index.ts @@ -1,24 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as recommendedConfig from "./configs/recommended"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-hooks-extra": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-hooks-extra"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-hooks-extra", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-hooks-extra/src/plugin.ts b/packages/plugins/eslint-plugin-react-hooks-extra/src/plugin.ts index 51d6140202..0bd53a4e10 100644 --- a/packages/plugins/eslint-plugin-react-hooks-extra/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-hooks-extra/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; import noDirectSetStateInUseEffect from "./rules/no-direct-set-state-in-use-effect"; diff --git a/packages/plugins/eslint-plugin-react-naming-convention/src/configs/recommended.ts b/packages/plugins/eslint-plugin-react-naming-convention/src/configs/recommended.ts index e62065a87b..86de6e029c 100644 --- a/packages/plugins/eslint-plugin-react-naming-convention/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin-react-naming-convention/src/configs/recommended.ts @@ -1,8 +1,8 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; export const name = "react-naming-convention/recommended"; export const rules = { "react-naming-convention/context-name": "warn", // "react-naming-convention/use-state": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; diff --git a/packages/plugins/eslint-plugin-react-naming-convention/src/index.ts b/packages/plugins/eslint-plugin-react-naming-convention/src/index.ts index f2d2997f2e..288943c2dc 100644 --- a/packages/plugins/eslint-plugin-react-naming-convention/src/index.ts +++ b/packages/plugins/eslint-plugin-react-naming-convention/src/index.ts @@ -1,24 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as recommendedConfig from "./configs/recommended"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-naming-convention": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-naming-convention"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-naming-convention", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-naming-convention/src/plugin.ts b/packages/plugins/eslint-plugin-react-naming-convention/src/plugin.ts index 90783b842d..7bb00cfba6 100644 --- a/packages/plugins/eslint-plugin-react-naming-convention/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-naming-convention/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; diff --git a/packages/plugins/eslint-plugin-react-web-api/src/configs/recommended.ts b/packages/plugins/eslint-plugin-react-web-api/src/configs/recommended.ts index 4af03019e7..d77d872f43 100644 --- a/packages/plugins/eslint-plugin-react-web-api/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin-react-web-api/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; export const name = "react-web-api/recommended"; @@ -8,7 +8,7 @@ export const rules = { "react-web-api/no-leaked-interval": "warn", "react-web-api/no-leaked-resize-observer": "warn", "react-web-api/no-leaked-timeout": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS, diff --git a/packages/plugins/eslint-plugin-react-web-api/src/index.ts b/packages/plugins/eslint-plugin-react-web-api/src/index.ts index b33ba47e2f..6892523fad 100644 --- a/packages/plugins/eslint-plugin-react-web-api/src/index.ts +++ b/packages/plugins/eslint-plugin-react-web-api/src/index.ts @@ -1,24 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as recommendedConfig from "./configs/recommended"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-web-api": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-web-api"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-web-api", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-web-api/src/plugin.ts b/packages/plugins/eslint-plugin-react-web-api/src/plugin.ts index e6ac500448..0d064c931d 100644 --- a/packages/plugins/eslint-plugin-react-web-api/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-web-api/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; diff --git a/packages/plugins/eslint-plugin-react-x/src/configs/recommended-type-checked.ts b/packages/plugins/eslint-plugin-react-x/src/configs/recommended-type-checked.ts index 67b86de339..a7775f185b 100644 --- a/packages/plugins/eslint-plugin-react-x/src/configs/recommended-type-checked.ts +++ b/packages/plugins/eslint-plugin-react-x/src/configs/recommended-type-checked.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import * as recommendedTypeScript from "./recommended-typescript"; @@ -8,7 +8,7 @@ export const rules = { ...recommendedTypeScript.rules, "react-x/no-leaked-conditional-rendering": "warn", // "react-x/prefer-read-only-props": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { ...recommendedTypeScript.settings, diff --git a/packages/plugins/eslint-plugin-react-x/src/configs/recommended-typescript.ts b/packages/plugins/eslint-plugin-react-x/src/configs/recommended-typescript.ts index 1ef3916d21..7b1be297bd 100644 --- a/packages/plugins/eslint-plugin-react-x/src/configs/recommended-typescript.ts +++ b/packages/plugins/eslint-plugin-react-x/src/configs/recommended-typescript.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import * as recommended from "./recommended"; @@ -10,7 +10,7 @@ export const rules = { "react-x/jsx-no-undef": "off", "react-x/jsx-uses-react": "off", "react-x/jsx-uses-vars": "off", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { ...recommended.settings, diff --git a/packages/plugins/eslint-plugin-react-x/src/configs/recommended.ts b/packages/plugins/eslint-plugin-react-x/src/configs/recommended.ts index 7e1deae045..63ac526b1c 100644 --- a/packages/plugins/eslint-plugin-react-x/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin-react-x/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; export const name = "react-x/recommended"; @@ -46,7 +46,7 @@ export const rules = { "react-x/no-unused-state": "warn", "react-x/no-use-context": "warn", "react-x/no-useless-forward-ref": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const settings = { "react-x": DEFAULT_ESLINT_REACT_SETTINGS, diff --git a/packages/plugins/eslint-plugin-react-x/src/index.ts b/packages/plugins/eslint-plugin-react-x/src/index.ts index 30860c3147..a999ff689d 100644 --- a/packages/plugins/eslint-plugin-react-x/src/index.ts +++ b/packages/plugins/eslint-plugin-react-x/src/index.ts @@ -1,26 +1,11 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatibleConfig } from "@eslint-react/shared"; +import { getConfigAdapters } from "@eslint-react/shared"; import * as recommendedConfig from "./configs/recommended"; import * as recommendedTypeCheckedConfig from "./configs/recommended-type-checked"; import * as recommendedTypeScriptConfig from "./configs/recommended-typescript"; import { plugin } from "./plugin"; -function toFlatConfig(config: CompatibleConfig) { - return { - ...config, - plugins: { - "react-x": plugin, - }, - }; -} - -function toLegacyConfig({ rules }: { rules: RulePreset }) { - return { - plugins: ["react-x"], - rules, - }; -} +const { toFlatConfig, toLegacyConfig } = getConfigAdapters("react-x", plugin); export default { ...plugin, diff --git a/packages/plugins/eslint-plugin-react-x/src/plugin.ts b/packages/plugins/eslint-plugin-react-x/src/plugin.ts index d4ffb4968c..7c45cfbf9f 100644 --- a/packages/plugins/eslint-plugin-react-x/src/plugin.ts +++ b/packages/plugins/eslint-plugin-react-x/src/plugin.ts @@ -1,4 +1,4 @@ -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatiblePlugin } from "@eslint-react/kit"; import { name, version } from "../package.json"; import avoidShorthandBoolean from "./rules/avoid-shorthand-boolean"; diff --git a/packages/plugins/eslint-plugin/src/configs/all.ts b/packages/plugins/eslint-plugin/src/configs/all.ts index 8154ec953f..0cf22df9b7 100644 --- a/packages/plugins/eslint-plugin/src/configs/all.ts +++ b/packages/plugins/eslint-plugin/src/configs/all.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import reactDebug from "eslint-plugin-react-debug"; import reactHooksExtra from "eslint-plugin-react-hooks-extra"; import reactNamingConvention from "eslint-plugin-react-naming-convention"; @@ -103,7 +103,7 @@ export const rules = { "@eslint-react/naming-convention/filename": "warn", "@eslint-react/naming-convention/filename-extension": "warn", "@eslint-react/naming-convention/use-state": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { ...x.plugins, diff --git a/packages/plugins/eslint-plugin/src/configs/disable-debug.ts b/packages/plugins/eslint-plugin/src/configs/disable-debug.ts index 2cb1eb5202..153eee79a2 100644 --- a/packages/plugins/eslint-plugin/src/configs/disable-debug.ts +++ b/packages/plugins/eslint-plugin/src/configs/disable-debug.ts @@ -1,7 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { rules as debugRules } from "./debug"; export const name = "@eslint-react/disable-debug"; -export const rules: RulePreset = Object.fromEntries(Object.entries(debugRules).map(([rule]) => [rule, "off"])); +export const rules: Record = Object.fromEntries( + Object.entries(debugRules).map(([rule]) => [rule, "off"]), +); diff --git a/packages/plugins/eslint-plugin/src/configs/disable-dom.ts b/packages/plugins/eslint-plugin/src/configs/disable-dom.ts index 5897c7d377..d2036662b1 100644 --- a/packages/plugins/eslint-plugin/src/configs/disable-dom.ts +++ b/packages/plugins/eslint-plugin/src/configs/disable-dom.ts @@ -1,7 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { rules as domRules } from "./dom"; export const name = "@eslint-react/disable-dom"; -export const rules: RulePreset = Object.fromEntries(Object.entries(domRules).map(([key]) => [key, "off"] as const)); +export const rules: Record = Object.fromEntries( + Object.entries(domRules).map(([key]) => [key, "off"] as const), +); diff --git a/packages/plugins/eslint-plugin/src/configs/disable-type-checked.ts b/packages/plugins/eslint-plugin/src/configs/disable-type-checked.ts index 76f08dc801..d2272286bb 100644 --- a/packages/plugins/eslint-plugin/src/configs/disable-type-checked.ts +++ b/packages/plugins/eslint-plugin/src/configs/disable-type-checked.ts @@ -1,8 +1,8 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; export const name = "@eslint-react/disable-type-checked"; -export const rules: RulePreset = { +export const rules: Record = { "@eslint-react/no-leaked-conditional-rendering": "off", "@eslint-react/prefer-read-only-props": "off", }; diff --git a/packages/plugins/eslint-plugin/src/configs/disable-web-api.ts b/packages/plugins/eslint-plugin/src/configs/disable-web-api.ts index d4b8e08eac..0ae2127a7e 100644 --- a/packages/plugins/eslint-plugin/src/configs/disable-web-api.ts +++ b/packages/plugins/eslint-plugin/src/configs/disable-web-api.ts @@ -1,7 +1,9 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { rules as webApiRules } from "./web-api"; export const name = "@eslint-react/disable-web-api"; -export const rules: RulePreset = Object.fromEntries(Object.entries(webApiRules).map(([key]) => [key, "off"] as const)); +export const rules: Record = Object.fromEntries( + Object.entries(webApiRules).map(([key]) => [key, "off"] as const), +); diff --git a/packages/plugins/eslint-plugin/src/configs/dom.ts b/packages/plugins/eslint-plugin/src/configs/dom.ts index 9ae4c201b6..7dd0442767 100644 --- a/packages/plugins/eslint-plugin/src/configs/dom.ts +++ b/packages/plugins/eslint-plugin/src/configs/dom.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; import reactDom from "eslint-plugin-react-dom"; @@ -20,7 +20,7 @@ export const rules = { "@eslint-react/dom/no-unsafe-target-blank": "warn", "@eslint-react/dom/no-use-form-state": "error", "@eslint-react/dom/no-void-elements-with-children": "error", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { "@eslint-react/dom": reactDom, diff --git a/packages/plugins/eslint-plugin/src/configs/off.ts b/packages/plugins/eslint-plugin/src/configs/off.ts index a4434d19ed..35204ad408 100644 --- a/packages/plugins/eslint-plugin/src/configs/off.ts +++ b/packages/plugins/eslint-plugin/src/configs/off.ts @@ -1,11 +1,11 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { rules as allRules } from "./all"; import { rules as disableTypeCheckedRules } from "./disable-type-checked"; export const name = "@eslint-react/off"; -export const rules: RulePreset = { +export const rules: Record = { ...Object.fromEntries(Object.entries(allRules).map(([key]) => [key, "off"] as const)), ...disableTypeCheckedRules, }; diff --git a/packages/plugins/eslint-plugin/src/configs/recommended-type-checked.ts b/packages/plugins/eslint-plugin/src/configs/recommended-type-checked.ts index 62ef6c7dd7..b05d697585 100644 --- a/packages/plugins/eslint-plugin/src/configs/recommended-type-checked.ts +++ b/packages/plugins/eslint-plugin/src/configs/recommended-type-checked.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import * as recommendedTypeScript from "./recommended-typescript"; @@ -8,7 +8,7 @@ export const rules = { ...recommendedTypeScript.rules, "@eslint-react/no-leaked-conditional-rendering": "warn", // "@eslint-react/prefer-read-only-props": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { ...recommendedTypeScript.plugins, diff --git a/packages/plugins/eslint-plugin/src/configs/recommended-typescript.ts b/packages/plugins/eslint-plugin/src/configs/recommended-typescript.ts index 9f2d96634c..43460293da 100644 --- a/packages/plugins/eslint-plugin/src/configs/recommended-typescript.ts +++ b/packages/plugins/eslint-plugin/src/configs/recommended-typescript.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import * as recommended from "./recommended"; @@ -10,7 +10,7 @@ export const rules = { "@eslint-react/jsx-no-duplicate-props": "off", "@eslint-react/jsx-uses-react": "off", "@eslint-react/jsx-uses-vars": "off", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { ...recommended.plugins, diff --git a/packages/plugins/eslint-plugin/src/configs/recommended.ts b/packages/plugins/eslint-plugin/src/configs/recommended.ts index c206d9db24..cb1fa1ffd0 100644 --- a/packages/plugins/eslint-plugin/src/configs/recommended.ts +++ b/packages/plugins/eslint-plugin/src/configs/recommended.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import reactDebug from "eslint-plugin-react-debug"; import reactHooksExtra from "eslint-plugin-react-hooks-extra"; import reactNamingConvention from "eslint-plugin-react-naming-convention"; @@ -20,7 +20,7 @@ export const rules = { "@eslint-react/naming-convention/context-name": "warn", // "@eslint-react/naming-convention/use-state": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { ...x.plugins, diff --git a/packages/plugins/eslint-plugin/src/configs/web-api.ts b/packages/plugins/eslint-plugin/src/configs/web-api.ts index f983c038b9..802bd8bfa5 100644 --- a/packages/plugins/eslint-plugin/src/configs/web-api.ts +++ b/packages/plugins/eslint-plugin/src/configs/web-api.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import reactWebApi from "eslint-plugin-react-web-api"; import * as dom from "./dom"; @@ -10,7 +10,7 @@ export const rules = { "@eslint-react/web-api/no-leaked-interval": "warn", "@eslint-react/web-api/no-leaked-resize-observer": "warn", "@eslint-react/web-api/no-leaked-timeout": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { "@eslint-react/web-api": reactWebApi, diff --git a/packages/plugins/eslint-plugin/src/configs/x.ts b/packages/plugins/eslint-plugin/src/configs/x.ts index f57bcca8c6..86edcd39d2 100644 --- a/packages/plugins/eslint-plugin/src/configs/x.ts +++ b/packages/plugins/eslint-plugin/src/configs/x.ts @@ -1,4 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; +import type { RuleConfig } from "@eslint-react/kit"; import { DEFAULT_ESLINT_REACT_SETTINGS } from "@eslint-react/shared"; import react from "eslint-plugin-react-x"; @@ -47,7 +47,7 @@ export const rules = { "@eslint-react/no-unused-state": "warn", "@eslint-react/no-use-context": "warn", "@eslint-react/no-useless-forward-ref": "warn", -} as const satisfies RulePreset; +} as const satisfies Record; export const plugins = { "@eslint-react": react, diff --git a/packages/plugins/eslint-plugin/src/index.ts b/packages/plugins/eslint-plugin/src/index.ts index 51571c98e1..1e37e16465 100644 --- a/packages/plugins/eslint-plugin/src/index.ts +++ b/packages/plugins/eslint-plugin/src/index.ts @@ -1,5 +1,4 @@ -import type { RulePreset } from "@eslint-react/kit"; -import type { CompatiblePlugin } from "@eslint-react/shared"; +import type { CompatibleConfig, CompatiblePlugin } from "@eslint-react/kit"; import reactDebug from "eslint-plugin-react-debug"; import reactDom from "eslint-plugin-react-dom"; import reactHooksExtra from "eslint-plugin-react-hooks-extra"; @@ -22,7 +21,7 @@ import * as recommendedTypeScriptConfig from "./configs/recommended-typescript"; import * as xConfig from "./configs/x"; import { padKeysLeft } from "./utils"; -function toLegacyConfig({ rules }: { rules: RulePreset }) { +function toLegacyConfig({ rules }: CompatibleConfig) { return { plugins: ["@eslint-react"], rules, diff --git a/packages/shared/docs/README.md b/packages/shared/docs/README.md index 48cd90a61f..cf3b6f0bcc 100644 --- a/packages/shared/docs/README.md +++ b/packages/shared/docs/README.md @@ -6,8 +6,6 @@ ## Interfaces -- [CompatibleConfig](interfaces/CompatibleConfig.md) -- [CompatiblePlugin](interfaces/CompatiblePlugin.md) - [CustomComponentNormalized](interfaces/CustomComponentNormalized.md) - [CustomComponentPropNormalized](interfaces/CustomComponentPropNormalized.md) - [ESLintReactSettingsNormalized](interfaces/ESLintReactSettingsNormalized.md) @@ -38,6 +36,7 @@ - [coerceSettings](functions/coerceSettings.md) - [decodeESLintSettings](functions/decodeESLintSettings.md) - [decodeSettings](functions/decodeSettings.md) +- [getConfigAdapters](functions/getConfigAdapters.md) - [getId](functions/getId.md) - [getReactVersion](functions/getReactVersion.md) - [getSettingsFromContext](functions/getSettingsFromContext.md) diff --git a/packages/shared/docs/functions/getConfigAdapters.md b/packages/shared/docs/functions/getConfigAdapters.md new file mode 100644 index 0000000000..1b20d5a48f --- /dev/null +++ b/packages/shared/docs/functions/getConfigAdapters.md @@ -0,0 +1,79 @@ +[**@eslint-react/shared**](../README.md) + +*** + +[@eslint-react/shared](../README.md) / getConfigAdapters + +# Function: getConfigAdapters() + +> **getConfigAdapters**(`pluginName`, `plugin`): `object` + +## Parameters + +### pluginName + +`string` + +### plugin + +`CompatiblePlugin` + +## Returns + +`object` + +### toFlatConfig() + +> **toFlatConfig**: (`config`) => `object` + +#### Parameters + +##### config + +`CompatibleConfig` + +#### Returns + +`object` + +##### name? + +> `optional` **name**: `string` + +##### plugins + +> **plugins**: `object` + +###### Index Signature + +\[`key`: `string`\]: `CompatiblePlugin` + +##### rules? + +> `optional` **rules**: [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `RuleConfig`\<`unknown`[]\>\> + +##### settings? + +> `optional` **settings**: `SettingsConfig` + +### toLegacyConfig() + +> **toLegacyConfig**: (`__namedParameters`) => `object` + +#### Parameters + +##### \_\_namedParameters + +`CompatibleConfig` + +#### Returns + +`object` + +##### plugins + +> **plugins**: `string`[] + +##### rules + +> **rules**: `undefined` \| [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `RuleConfig`\<`unknown`[]\>\> diff --git a/packages/shared/docs/interfaces/CompatibleConfig.md b/packages/shared/docs/interfaces/CompatibleConfig.md deleted file mode 100644 index 3dc0ee966e..0000000000 --- a/packages/shared/docs/interfaces/CompatibleConfig.md +++ /dev/null @@ -1,19 +0,0 @@ -[**@eslint-react/shared**](../README.md) - -*** - -[@eslint-react/shared](../README.md) / CompatibleConfig - -# Interface: CompatibleConfig - -## Properties - -### name? - -> `optional` **name**: `string` - -*** - -### rules? - -> `optional` **rules**: [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `any`\> diff --git a/packages/shared/docs/interfaces/CompatiblePlugin.md b/packages/shared/docs/interfaces/CompatiblePlugin.md deleted file mode 100644 index ffe28f37f0..0000000000 --- a/packages/shared/docs/interfaces/CompatiblePlugin.md +++ /dev/null @@ -1,27 +0,0 @@ -[**@eslint-react/shared**](../README.md) - -*** - -[@eslint-react/shared](../README.md) / CompatiblePlugin - -# Interface: CompatiblePlugin - -## Properties - -### meta - -> **meta**: `object` - -#### name - -> **name**: `string` - -#### version - -> **version**: `string` - -*** - -### rules - -> **rules**: [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)\<`string`, `any`\> diff --git a/packages/shared/src/compatibility-types.ts b/packages/shared/src/compatibility-types.ts deleted file mode 100644 index 35fb5810a7..0000000000 --- a/packages/shared/src/compatibility-types.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * This file contains types that are intentionally wide/inaccurate, that exist - * for the purpose of satisfying both `defineConfig()` and `tseslint.config()`. - * See https://github.com/typescript-eslint/typescript-eslint/issues/10899 - * See https://github.com/typescript-eslint/typescript-eslint/blob/3a65920088a37d5a28ebb6f36fb82b7a091d3cb1/packages/typescript-eslint/src/compatibility-types.ts - */ - -export interface CompatiblePlugin { - meta: { - name: string; - version: string; - }; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - rules: Record; -} - -export interface CompatibleConfig { - name?: string; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - rules?: Record; -} diff --git a/packages/shared/src/get-config-adapters.ts b/packages/shared/src/get-config-adapters.ts new file mode 100644 index 0000000000..0208a0c343 --- /dev/null +++ b/packages/shared/src/get-config-adapters.ts @@ -0,0 +1,19 @@ +import type { CompatibleConfig, CompatiblePlugin } from "@eslint-react/kit"; + +export function getConfigAdapters(pluginName: string, plugin: CompatiblePlugin) { + function toFlatConfig(config: CompatibleConfig) { + return { + ...config, + plugins: { + [pluginName]: plugin, + }, + }; + } + function toLegacyConfig({ rules }: CompatibleConfig) { + return { + plugins: [pluginName], + rules, + }; + } + return { toFlatConfig, toLegacyConfig } as const; +} diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index e1b2137f66..4ab3a3a0a3 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -1,5 +1,5 @@ -export type * from "./compatibility-types"; export * from "./constants"; +export * from "./get-config-adapters"; export * from "./get-doc-url"; export * from "./get-id"; export * from "./get-react-version"; diff --git a/packages/utilities/kit/src/types.ts b/packages/utilities/kit/src/types.ts index dc1e739065..aa486cd9b4 100644 --- a/packages/utilities/kit/src/types.ts +++ b/packages/utilities/kit/src/types.ts @@ -4,20 +4,28 @@ import type * as tseslint from "@typescript-eslint/utils/ts-eslint"; * Rule severity. * @since 0.0.1 */ -export type RuleSeverity = "error" | "off" | "warn"; +export type SeverityName = "off" | "warn" | "error"; /** - * Rule declaration. - * @internal - * @since 0.0.1 + * The numeric severity level for a rule. + * + * - `0` means off. + * - `1` means warn. + * - `2` means error. */ -export type RuleDeclaration = [RuleSeverity, Record?] | RuleSeverity; +export type SeverityLevel = 0 | 1 | 2; /** - * Rule config preset. + * The severity of a rule in a configuration. + */ +export type Severity = SeverityName | SeverityLevel; + +/** + * Rule declaration. + * @internal * @since 0.0.1 */ -export type RulePreset = Record; +export type RuleConfig = Severity | [Severity, ...Partial]; /** * Rule context. @@ -42,3 +50,45 @@ export type RuleFeature = | "MOD" // Codemod | "TSC" // TypeScript Type Checking | "EXP"; // Experimental + +export type RulePolicy = number; + +export type RuleSuggest = { + messageId: MessageIds; + data?: Record; + fix: tseslint.ReportFixFunction; +}; + +/** + * A collection of settings. + */ +export interface SettingsConfig { + [key: string]: unknown; +} + +/* + * The following types that are intentionally wide/inaccurate, that exist + * for the purpose of satisfying both `defineConfig()` and `tseslint.config()`. + * See https://github.com/typescript-eslint/typescript-eslint/issues/10899 + */ + +export interface CompatibleRule { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + meta: Record; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + create: (...args: any[]) => any; +} + +export interface CompatiblePlugin { + meta: { + name: string; + version: string; + }; + rules: Record; +} + +export interface CompatibleConfig { + name?: string; + rules?: Record; + settings?: SettingsConfig; +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 189a9f634a..d7f4c4ae9f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -73,8 +73,8 @@ importers: specifier: ^4.1.0 version: 4.1.0 cspell: - specifier: ^9.2.0 - version: 9.2.0 + specifier: ^9.2.1 + version: 9.2.1 dedent: specifier: ^1.6.0 version: 1.6.0 @@ -290,23 +290,23 @@ importers: specifier: ^2.1.1 version: 2.1.1 fumadocs-core: - specifier: 15.7.4 - version: 15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + specifier: 15.7.7 + version: 15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) fumadocs-docgen: specifier: 3.0.0 - version: 3.0.0(fumadocs-core@15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) + version: 3.0.0(fumadocs-core@15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)) fumadocs-mdx: - specifier: 11.8.1 - version: 11.8.1(fumadocs-core@15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.5)(yaml@2.8.1)) + specifier: 11.8.2 + version: 11.8.2(fumadocs-core@15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.5)(yaml@2.8.1)) fumadocs-twoslash: - specifier: 3.1.6 - version: 3.1.6(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(fumadocs-ui@15.7.4(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) + specifier: 3.1.7 + version: 3.1.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(fumadocs-ui@15.7.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2) fumadocs-typescript: specifier: 4.0.6 version: 4.0.6(@types/react@19.1.12)(typescript@5.9.2) fumadocs-ui: - specifier: 15.7.4 - version: 15.7.4(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12) + specifier: 15.7.7 + version: 15.7.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12) lucide-react: specifier: ^0.542.0 version: 0.542.0(react@19.1.1) @@ -1897,28 +1897,28 @@ packages: '@chevrotain/utils@11.0.3': resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} - '@cspell/cspell-bundled-dicts@9.2.0': - resolution: {integrity: sha512-e4qb78SQWqHkRw47W8qFJ3RPijhSLkADF+T0oH8xl3r/golq1RGp2/KrWOqGRRofUSTiIKYqaMX7mbAyFnOxyA==} + '@cspell/cspell-bundled-dicts@9.2.1': + resolution: {integrity: sha512-85gHoZh3rgZ/EqrHIr1/I4OLO53fWNp6JZCqCdgaT7e3sMDaOOG6HoSxCvOnVspXNIf/1ZbfTCDMx9x79Xq0AQ==} engines: {node: '>=20'} - '@cspell/cspell-json-reporter@9.2.0': - resolution: {integrity: sha512-qHdkW8eyknCSDEsqCG8OHBMal03LQf21H2LVWhtwszEQ4BQRKcWctc+VIgkO69F/jLaN2wi/yhhMufXWHAEzIg==} + '@cspell/cspell-json-reporter@9.2.1': + resolution: {integrity: sha512-LiiIWzLP9h2etKn0ap6g2+HrgOGcFEF/hp5D8ytmSL5sMxDcV13RrmJCEMTh1axGyW0SjQEFjPnYzNpCL1JjGA==} engines: {node: '>=20'} - '@cspell/cspell-pipe@9.2.0': - resolution: {integrity: sha512-RO3adcsr7Ek+4511nyEOWDhOYYU1ogRs1Mo5xx3kDIdcKAJzhFdGry35T2wqft4dPASLCXcemBrhoS+hdQ+z+Q==} + '@cspell/cspell-pipe@9.2.1': + resolution: {integrity: sha512-2N1H63If5cezLqKToY/YSXon4m4REg/CVTFZr040wlHRbbQMh5EF3c7tEC/ue3iKAQR4sm52ihfqo1n4X6kz+g==} engines: {node: '>=20'} - '@cspell/cspell-resolver@9.2.0': - resolution: {integrity: sha512-0Xvwq0iezfO71Alw+DjsGxacAzydqOAxdXnY4JknHuxt2l8GTSMjRwj65QAflv3PN6h1QoRZEeWdiKtusceWAw==} + '@cspell/cspell-resolver@9.2.1': + resolution: {integrity: sha512-fRPQ6GWU5eyh8LN1TZblc7t24TlGhJprdjJkfZ+HjQo+6ivdeBPT7pC7pew6vuMBQPS1oHBR36hE0ZnJqqkCeg==} engines: {node: '>=20'} - '@cspell/cspell-service-bus@9.2.0': - resolution: {integrity: sha512-ZDvcOTFk3cCVW+OjlkljeP7aSuV8tIguVn+GMco1/A+961hsEP20hngK9zJtyfpXqyvJKtvCVlyzS+z8VRrZGg==} + '@cspell/cspell-service-bus@9.2.1': + resolution: {integrity: sha512-k4M6bqdvWbcGSbcfLD7Lf4coZVObsISDW+sm/VaWp9aZ7/uwiz1IuGUxL9WO4JIdr9CFEf7Ivmvd2txZpVOCIA==} engines: {node: '>=20'} - '@cspell/cspell-types@9.2.0': - resolution: {integrity: sha512-hL4ltFwiARpFxlfXt4GiTWQxIFyZp4wrlp7dozZbitYO6QlYc5fwQ8jBc5zFUqknuH4gx/sCMLNXhAv3enNGZQ==} + '@cspell/cspell-types@9.2.1': + resolution: {integrity: sha512-FQHgQYdTHkcpxT0u1ddLIg5Cc5ePVDcLg9+b5Wgaubmc5I0tLotgYj8c/mvStWuKsuZIs6sUopjJrE91wk6Onw==} engines: {node: '>=20'} '@cspell/dict-ada@4.1.1': @@ -1936,8 +1936,8 @@ packages: '@cspell/dict-companies@3.2.5': resolution: {integrity: sha512-H51R0w7c6RwJJPqH7Gs65tzP6ouZsYDEHmmol6MIIk0kQaOIBuFP2B3vIxHLUr2EPRVFZsMW8Ni7NmVyaQlwsg==} - '@cspell/dict-cpp@6.0.10': - resolution: {integrity: sha512-VyD8o7kUH2R9Ep/KXRoFy97QJn8qVW6wcQUfGVowNkc/Ux9o3gZlWlQwpzoyhTrg9uHKzKp5aL25eE7e5K1v1g==} + '@cspell/dict-cpp@6.0.12': + resolution: {integrity: sha512-N4NsCTttVpMqQEYbf0VQwCj6np+pJESov0WieCN7R/0aByz4+MXEiDieWWisaiVi8LbKzs1mEj4ZTw5K/6O2UQ==} '@cspell/dict-cryptocurrencies@5.0.5': resolution: {integrity: sha512-R68hYYF/rtlE6T/dsObStzN5QZw+0aQBinAXuWCVqwdS7YZo0X33vGMfChkHaiCo3Z2+bkegqHlqxZF4TD3rUA==} @@ -1966,14 +1966,14 @@ packages: '@cspell/dict-elixir@4.0.8': resolution: {integrity: sha512-CyfphrbMyl4Ms55Vzuj+mNmd693HjBFr9hvU+B2YbFEZprE5AG+EXLYTMRWrXbpds4AuZcvN3deM2XVB80BN/Q==} - '@cspell/dict-en-common-misspellings@2.1.3': - resolution: {integrity: sha512-v1I97Hr1OrK+mwHsVzbY4vsPxx6mA5quhxzanF6XuRofz00wH4HPz8Q3llzRHxka5Wl/59gyan04UkUrvP4gdA==} + '@cspell/dict-en-common-misspellings@2.1.5': + resolution: {integrity: sha512-hlRDSjul7wGTDXeLBADoyTGIZjWWZn6/SP+pt0lG3PRtqF0MWH/QEDgUkS+Yev7ZhHCHVLvwBZtDxOd1uw06Tw==} - '@cspell/dict-en-gb-mit@3.1.7': - resolution: {integrity: sha512-CzAsYpFHxCV+25o7KjlJcyhSj6s3jlp7E+AL61lTnE7l0NHrp70vT5D/RkxjUPBC3XLj0FSwa1xWfiVteT0X2A==} + '@cspell/dict-en-gb-mit@3.1.8': + resolution: {integrity: sha512-wrZDRl6TKd1wReepGDPuT1JNbnRjHLvtAVrozp0DUkFlcDgnrB+YSd/Ne4aKnkXl5qpyVQ2GG7a4Z7INKCX+fw==} - '@cspell/dict-en_us@4.4.17': - resolution: {integrity: sha512-RSMhAZWnDTvjdkYwl9Oi5Hpewxm/DYQ5iF9QAgJBAF1PRmjOUMcEd5C889Tzj80MUVLIBHRbcdN5PARfcUTvbA==} + '@cspell/dict-en_us@4.4.18': + resolution: {integrity: sha512-6Le961Q0AIfVp3nKuSJJD/9NfnTYA1N/MLAaeWKCABEvhzhopeyGrykwejd0SA4m64WBUNEfSlsgselYWoDSjQ==} '@cspell/dict-filetypes@3.0.13': resolution: {integrity: sha512-g6rnytIpQlMNKGJT1JKzWkC+b3xCliDKpQ3ANFSq++MnR4GaLiifaC4JkVON11Oh/UTplYOR1nY3BR4X30bswA==} @@ -2049,8 +2049,8 @@ packages: '@cspell/dict-node@5.0.8': resolution: {integrity: sha512-AirZcN2i84ynev3p2/1NCPEhnNsHKMz9zciTngGoqpdItUb2bDt1nJBjwlsrFI78GZRph/VaqTVFwYikmncpXg==} - '@cspell/dict-npm@5.2.14': - resolution: {integrity: sha512-amZCBJIqzRmPq5uKh0v2fdejt9AJQsQwx0spPFQaBZ2cRoE6qlqstPWLLc5lhz668QgSQeZ7mlURtCEWWlOtPw==} + '@cspell/dict-npm@5.2.15': + resolution: {integrity: sha512-kb9oX/N5FUlJYoqc5G+tIP/0SolteFMz2VhOVKG2qiXUS/1AybVTjUEo4gZ4uEveUhLzUDcfpZbn40EoUVBVrg==} '@cspell/dict-php@4.0.15': resolution: {integrity: sha512-iepGB2gtToMWSTvybesn4/lUp4LwXcEm0s8vasJLP76WWVkq1zYjmeS+WAIzNgsuURyZ/9mGqhS0CWMuo74ODw==} @@ -2079,8 +2079,8 @@ packages: '@cspell/dict-shell@1.1.1': resolution: {integrity: sha512-T37oYxE7OV1x/1D4/13Y8JZGa1QgDCXV7AVt3HLXjn0Fe3TaNDvf5sU0fGnXKmBPqFFrHdpD3uutAQb1dlp15g==} - '@cspell/dict-software-terms@5.1.6': - resolution: {integrity: sha512-fsREO/CRmcrX+fdB88ICkk31Qn6BeHr4EDq1hibpfx4FU4Liq+EN6TJbgG4q/BAelon/6sq1JQD71wihVnywLQ==} + '@cspell/dict-software-terms@5.1.7': + resolution: {integrity: sha512-CfNFQCVx8R/D8RfFdFTwSjDvXcSXY0tO+VN2N6TEbNTL1GCmqyzhwm4YI+ZbO3MUmMAMjwu9jZyoLk5BaJkXcg==} '@cspell/dict-sql@2.2.1': resolution: {integrity: sha512-qDHF8MpAYCf4pWU8NKbnVGzkoxMNrFqBHyG/dgrlic5EQiKANCLELYtGlX5auIMDLmTf1inA0eNtv74tyRJ/vg==} @@ -2100,20 +2100,20 @@ packages: '@cspell/dict-vue@3.0.5': resolution: {integrity: sha512-Mqutb8jbM+kIcywuPQCCaK5qQHTdaByoEO2J9LKFy3sqAdiBogNkrplqUK0HyyRFgCfbJUgjz3N85iCMcWH0JA==} - '@cspell/dynamic-import@9.2.0': - resolution: {integrity: sha512-2/k4LR8CQqbgIPQGELbCdt9xgg9+aQ7pMwOtllKvnFYBtwNiwqcZjlzAam2gtvD5DghKX2qrcSHG5A7YP5cX9A==} + '@cspell/dynamic-import@9.2.1': + resolution: {integrity: sha512-izYQbk7ck0ffNA1gf7Gi3PkUEjj+crbYeyNK1hxHx5A+GuR416ozs0aEyp995KI2v9HZlXscOj3SC3wrWzHZeA==} engines: {node: '>=20'} - '@cspell/filetypes@9.2.0': - resolution: {integrity: sha512-6wmCa3ZyI647H7F4w6kb9PCJ703JKSgFTB8EERTdIoGySbgVp5+qMIIoZ//wELukdjgcufcFZ5pBrhRDRsemRA==} + '@cspell/filetypes@9.2.1': + resolution: {integrity: sha512-Dy1y1pQ+7hi2gPs+jERczVkACtYbUHcLodXDrzpipoxgOtVxMcyZuo+84WYHImfu0gtM0wU2uLObaVgMSTnytw==} engines: {node: '>=20'} - '@cspell/strong-weak-map@9.2.0': - resolution: {integrity: sha512-5mpIMiIOCu4cBqy1oCTXISgJuOCQ6R/e38AkvnYWfmMIx7fCdx8n+mF52wX9m61Ng28Sq8VL253xybsWcCxHug==} + '@cspell/strong-weak-map@9.2.1': + resolution: {integrity: sha512-1HsQWZexvJSjDocVnbeAWjjgqWE/0op/txxzDPvDqI2sE6pY0oO4Cinj2I8z+IP+m6/E6yjPxdb23ydbQbPpJQ==} engines: {node: '>=20'} - '@cspell/url@9.2.0': - resolution: {integrity: sha512-plB0wwdAESqBl4xDAT2db2/K1FZHJXfYlJTiV6pkn0XffTGyg4UGLaSCm15NzUoPxdSmzqj5jQb7y+mB9kFK8g==} + '@cspell/url@9.2.1': + resolution: {integrity: sha512-9EHCoGKtisPNsEdBQ28tKxKeBmiVS3D4j+AN8Yjr+Dmtu+YACKGWiMOddNZG2VejQNIdFx7FwzU00BGX68ELhA==} engines: {node: '>=20'} '@dprint/darwin-arm64@0.50.1': @@ -4642,42 +4642,42 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - cspell-config-lib@9.2.0: - resolution: {integrity: sha512-Yc8+hT+uIWWCi6WMhOL6HDYbBCP2qig1tgKGThHVeOx6GviieV10TZ5kQ+P7ONgoqw2nmm7uXIC19dGYx3DblQ==} + cspell-config-lib@9.2.1: + resolution: {integrity: sha512-qqhaWW+0Ilc7493lXAlXjziCyeEmQbmPMc1XSJw2EWZmzb+hDvLdFGHoX18QU67yzBtu5hgQsJDEDZKvVDTsRA==} engines: {node: '>=20'} - cspell-dictionary@9.2.0: - resolution: {integrity: sha512-lV4VtjsDtxu8LyCcb6DY7Br4e/Aw1xfR8QvjYhHaJ8t03xry9STey5Rkfp+lz+hlVevNcn3lfCaacGuXyD+lLg==} + cspell-dictionary@9.2.1: + resolution: {integrity: sha512-0hQVFySPsoJ0fONmDPwCWGSG6SGj4ERolWdx4t42fzg5zMs+VYGXpQW4BJneQ5Tfxy98Wx8kPhmh/9E8uYzLTw==} engines: {node: '>=20'} - cspell-gitignore@9.2.0: - resolution: {integrity: sha512-gXDQZ7czTPwmEg1qtsUIjVEFm9IfgTO8rA02O8eYIveqjFixbSV3fIYOgoxZSZYxjt3O44m8+/zAFC1RE4CM/Q==} + cspell-gitignore@9.2.1: + resolution: {integrity: sha512-WPnDh03gXZoSqVyXq4L7t9ljx6lTDvkiSRUudb125egEK5e9s04csrQpLI3Yxcnc1wQA2nzDr5rX9XQVvCHf7g==} engines: {node: '>=20'} hasBin: true - cspell-glob@9.2.0: - resolution: {integrity: sha512-viycZDyegzW2AKPFqvX5RveqTrB0sKgexlCu2A8z8eumpYYor5sD1NP05VDOqkAF4hDuiGqkHn6iNo0L1wNgLw==} + cspell-glob@9.2.1: + resolution: {integrity: sha512-CrT/6ld3rXhB36yWFjrx1SrMQzwDrGOLr+wYEnrWI719/LTYWWCiMFW7H+qhsJDTsR+ku8+OAmfRNBDXvh9mnQ==} engines: {node: '>=20'} - cspell-grammar@9.2.0: - resolution: {integrity: sha512-qthAmWcNHpYAmufy7YWVg9xwrYANkVlI40bgC2uGd8EnKssm/qOPhqXXNS+kLf+q0NmJM5nMgRLhCC23xSp3JA==} + cspell-grammar@9.2.1: + resolution: {integrity: sha512-10RGFG7ZTQPdwyW2vJyfmC1t8813y8QYRlVZ8jRHWzer9NV8QWrGnL83F+gTPXiKR/lqiW8WHmFlXR4/YMV+JQ==} engines: {node: '>=20'} hasBin: true - cspell-io@9.2.0: - resolution: {integrity: sha512-oxKiqFLcz629FmOId8UpdDznpMvCgpuktg4nkD2G9pYpRh+fRLZpP4QtZPyvJqvpUIzFhIOznMeHjsiBYHOZUA==} + cspell-io@9.2.1: + resolution: {integrity: sha512-v9uWXtRzB+RF/Mzg5qMzpb8/yt+1bwtTt2rZftkLDLrx5ybVvy6rhRQK05gFWHmWVtWEe0P/pIxaG2Vz92C8Ag==} engines: {node: '>=20'} - cspell-lib@9.2.0: - resolution: {integrity: sha512-RnhDIsETw6Ex0UaK3PFoJ2FwWMWfJPtdpNpv1qgmJwoGD4CzwtIqPOLtZ24zqdCP8ZnNTF/lwV/9rZVqifYjsw==} + cspell-lib@9.2.1: + resolution: {integrity: sha512-KeB6NHcO0g1knWa7sIuDippC3gian0rC48cvO0B0B0QwhOxNxWVp8cSmkycXjk4ijBZNa++IwFjeK/iEqMdahQ==} engines: {node: '>=20'} - cspell-trie-lib@9.2.0: - resolution: {integrity: sha512-6GHL1KvLQzcPBSNY6QWOabq8YwRJAnNKamA0O/tRKy+11Hy99ysD4xvfu3kKYPAcobp5ZykX4nudHxy8yrEvng==} + cspell-trie-lib@9.2.1: + resolution: {integrity: sha512-qOtbL+/tUzGFHH0Uq2wi7sdB9iTy66QNx85P7DKeRdX9ZH53uQd7qC4nEk+/JPclx1EgXX26svxr0jTGISJhLw==} engines: {node: '>=20'} - cspell@9.2.0: - resolution: {integrity: sha512-AKzaFMem2jRcGpAY2spKP0z15jpZeX1WTDNHCDsB8/YvnhnOfWXc0S5AF+4sfU1cQgHWYGFOolMuTri0ZQdV+Q==} + cspell@9.2.1: + resolution: {integrity: sha512-PoKGKE9Tl87Sn/jwO4jvH7nTqe5Xrsz2DeJT5CkulY7SoL2fmsAqfbImQOFS2S0s36qD98t6VO+Ig2elEEcHew==} engines: {node: '>=20'} hasBin: true @@ -5315,8 +5315,8 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - fumadocs-core@15.7.4: - resolution: {integrity: sha512-ZV0M0oTGYeM4lUNVOfeknxh+cQWf0c6kMhFjytClNeg+7CZrTQoevuc+yEZFbbUhqGTOudqGA4NssFy1fyqiZA==} + fumadocs-core@15.7.7: + resolution: {integrity: sha512-4mo8y1L2VV9TcrQ1gses3c5zzCaPwDPYjfrPET4Qf+m7GPOqZ7wiUeXMTYb98T+N5wS0G/fsr/xFPZkgwD44gQ==} peerDependencies: '@mixedbread/sdk': ^0.19.0 '@oramacloud/client': 1.x.x || 2.x.x @@ -5349,8 +5349,8 @@ packages: peerDependencies: fumadocs-core: ^15.7.2 - fumadocs-mdx@11.8.1: - resolution: {integrity: sha512-YleGAvy6N+B02l7vtIkSGgOhmyKOdzs2SCBYjvjSj7ijQhEqTDJJ95nO/+0Frkh2JrdBDnWlcW6lc7sjU6/gAg==} + fumadocs-mdx@11.8.2: + resolution: {integrity: sha512-omv2jNrdXfZiAC2p6YeO3y3GYyQesMRzvsCDdgf7L/MbPIfgvtPkmRG2kL42dFEVsi45zwj0UugX6AG5IhDuUQ==} hasBin: true peerDependencies: '@fumadocs/mdx-remote': ^1.4.0 @@ -5368,8 +5368,8 @@ packages: vite: optional: true - fumadocs-twoslash@3.1.6: - resolution: {integrity: sha512-OwuVRP2olx6qGNINUvu3A4q/XFAGLzkUw51MaNQ9hHEwea6KmxkffCRN6G9cAEkqyWbdxLKf5pQ7NwsbGxe83g==} + fumadocs-twoslash@3.1.7: + resolution: {integrity: sha512-RHO1K6Sh8O8eS9TCQRv9C3ek/TZuUrUqMNtoKBx7D/D5L6OB3Skol+PTltHDzyIrmrHVRkO20tBlqyRxD3awUA==} peerDependencies: '@types/react': ^19.1.12 fumadocs-ui: ^15.0.0 @@ -5387,8 +5387,8 @@ packages: '@types/react': optional: true - fumadocs-ui@15.7.4: - resolution: {integrity: sha512-wx1nJU+Pgk2V6VyUZF1MUXK5jQfyiHyobuG8PpZ7OhUfadDnpK9mzewRdwVJtpPXU7xA8LviYFS/WKEKKpy+/g==} + fumadocs-ui@15.7.7: + resolution: {integrity: sha512-nXeEnFI0h+JAbwWsKWcc6aBuR++jWlxhMpXQnPv4zbrrbds436lilrOu/xh5KxPiEe2M9HspKMN+Oee73jHQFw==} peerDependencies: '@types/react': ^19.1.12 next: ^15.5.2 @@ -5553,8 +5553,8 @@ packages: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} - import-meta-resolve@4.1.0: - resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} importx@0.5.2: resolution: {integrity: sha512-YEwlK86Ml5WiTxN/ECUYC5U7jd1CisAVw7ya4i9ZppBoHfFkT2+hChhr3PE2fYxUKLkNyivxEQpa5Ruil1LJBQ==} @@ -8348,14 +8348,14 @@ snapshots: '@chevrotain/utils@11.0.3': {} - '@cspell/cspell-bundled-dicts@9.2.0': + '@cspell/cspell-bundled-dicts@9.2.1': dependencies: '@cspell/dict-ada': 4.1.1 '@cspell/dict-al': 1.1.1 '@cspell/dict-aws': 4.0.15 '@cspell/dict-bash': 4.2.1 '@cspell/dict-companies': 3.2.5 - '@cspell/dict-cpp': 6.0.10 + '@cspell/dict-cpp': 6.0.12 '@cspell/dict-cryptocurrencies': 5.0.5 '@cspell/dict-csharp': 4.0.7 '@cspell/dict-css': 4.0.18 @@ -8365,9 +8365,9 @@ snapshots: '@cspell/dict-docker': 1.1.16 '@cspell/dict-dotnet': 5.0.10 '@cspell/dict-elixir': 4.0.8 - '@cspell/dict-en-common-misspellings': 2.1.3 - '@cspell/dict-en-gb-mit': 3.1.7 - '@cspell/dict-en_us': 4.4.17 + '@cspell/dict-en-common-misspellings': 2.1.5 + '@cspell/dict-en-gb-mit': 3.1.8 + '@cspell/dict-en_us': 4.4.18 '@cspell/dict-filetypes': 3.0.13 '@cspell/dict-flutter': 1.1.1 '@cspell/dict-fonts': 4.0.5 @@ -8391,7 +8391,7 @@ snapshots: '@cspell/dict-markdown': 2.0.12(@cspell/dict-css@4.0.18)(@cspell/dict-html-symbol-entities@4.0.4)(@cspell/dict-html@4.0.12)(@cspell/dict-typescript@3.2.3) '@cspell/dict-monkeyc': 1.0.11 '@cspell/dict-node': 5.0.8 - '@cspell/dict-npm': 5.2.14 + '@cspell/dict-npm': 5.2.15 '@cspell/dict-php': 4.0.15 '@cspell/dict-powershell': 5.0.15 '@cspell/dict-public-licenses': 2.0.15 @@ -8401,7 +8401,7 @@ snapshots: '@cspell/dict-rust': 4.0.12 '@cspell/dict-scala': 5.0.8 '@cspell/dict-shell': 1.1.1 - '@cspell/dict-software-terms': 5.1.6 + '@cspell/dict-software-terms': 5.1.7 '@cspell/dict-sql': 2.2.1 '@cspell/dict-svelte': 1.0.7 '@cspell/dict-swift': 2.0.6 @@ -8409,19 +8409,19 @@ snapshots: '@cspell/dict-typescript': 3.2.3 '@cspell/dict-vue': 3.0.5 - '@cspell/cspell-json-reporter@9.2.0': + '@cspell/cspell-json-reporter@9.2.1': dependencies: - '@cspell/cspell-types': 9.2.0 + '@cspell/cspell-types': 9.2.1 - '@cspell/cspell-pipe@9.2.0': {} + '@cspell/cspell-pipe@9.2.1': {} - '@cspell/cspell-resolver@9.2.0': + '@cspell/cspell-resolver@9.2.1': dependencies: global-directory: 4.0.1 - '@cspell/cspell-service-bus@9.2.0': {} + '@cspell/cspell-service-bus@9.2.1': {} - '@cspell/cspell-types@9.2.0': {} + '@cspell/cspell-types@9.2.1': {} '@cspell/dict-ada@4.1.1': {} @@ -8435,7 +8435,7 @@ snapshots: '@cspell/dict-companies@3.2.5': {} - '@cspell/dict-cpp@6.0.10': {} + '@cspell/dict-cpp@6.0.12': {} '@cspell/dict-cryptocurrencies@5.0.5': {} @@ -8455,11 +8455,11 @@ snapshots: '@cspell/dict-elixir@4.0.8': {} - '@cspell/dict-en-common-misspellings@2.1.3': {} + '@cspell/dict-en-common-misspellings@2.1.5': {} - '@cspell/dict-en-gb-mit@3.1.7': {} + '@cspell/dict-en-gb-mit@3.1.8': {} - '@cspell/dict-en_us@4.4.17': {} + '@cspell/dict-en_us@4.4.18': {} '@cspell/dict-filetypes@3.0.13': {} @@ -8512,7 +8512,7 @@ snapshots: '@cspell/dict-node@5.0.8': {} - '@cspell/dict-npm@5.2.14': {} + '@cspell/dict-npm@5.2.15': {} '@cspell/dict-php@4.0.15': {} @@ -8534,7 +8534,7 @@ snapshots: '@cspell/dict-shell@1.1.1': {} - '@cspell/dict-software-terms@5.1.6': {} + '@cspell/dict-software-terms@5.1.7': {} '@cspell/dict-sql@2.2.1': {} @@ -8548,16 +8548,16 @@ snapshots: '@cspell/dict-vue@3.0.5': {} - '@cspell/dynamic-import@9.2.0': + '@cspell/dynamic-import@9.2.1': dependencies: - '@cspell/url': 9.2.0 - import-meta-resolve: 4.1.0 + '@cspell/url': 9.2.1 + import-meta-resolve: 4.2.0 - '@cspell/filetypes@9.2.0': {} + '@cspell/filetypes@9.2.1': {} - '@cspell/strong-weak-map@9.2.0': {} + '@cspell/strong-weak-map@9.2.1': {} - '@cspell/url@9.2.0': {} + '@cspell/url@9.2.1': {} '@dprint/darwin-arm64@0.50.1': optional: true @@ -10985,59 +10985,59 @@ snapshots: dependencies: uncrypto: 0.1.3 - cspell-config-lib@9.2.0: + cspell-config-lib@9.2.1: dependencies: - '@cspell/cspell-types': 9.2.0 + '@cspell/cspell-types': 9.2.1 comment-json: 4.2.5 smol-toml: 1.4.2 yaml: 2.8.1 - cspell-dictionary@9.2.0: + cspell-dictionary@9.2.1: dependencies: - '@cspell/cspell-pipe': 9.2.0 - '@cspell/cspell-types': 9.2.0 - cspell-trie-lib: 9.2.0 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 + cspell-trie-lib: 9.2.1 fast-equals: 5.2.2 - cspell-gitignore@9.2.0: + cspell-gitignore@9.2.1: dependencies: - '@cspell/url': 9.2.0 - cspell-glob: 9.2.0 - cspell-io: 9.2.0 + '@cspell/url': 9.2.1 + cspell-glob: 9.2.1 + cspell-io: 9.2.1 - cspell-glob@9.2.0: + cspell-glob@9.2.1: dependencies: - '@cspell/url': 9.2.0 + '@cspell/url': 9.2.1 picomatch: 4.0.3 - cspell-grammar@9.2.0: + cspell-grammar@9.2.1: dependencies: - '@cspell/cspell-pipe': 9.2.0 - '@cspell/cspell-types': 9.2.0 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 - cspell-io@9.2.0: + cspell-io@9.2.1: dependencies: - '@cspell/cspell-service-bus': 9.2.0 - '@cspell/url': 9.2.0 + '@cspell/cspell-service-bus': 9.2.1 + '@cspell/url': 9.2.1 - cspell-lib@9.2.0: + cspell-lib@9.2.1: dependencies: - '@cspell/cspell-bundled-dicts': 9.2.0 - '@cspell/cspell-pipe': 9.2.0 - '@cspell/cspell-resolver': 9.2.0 - '@cspell/cspell-types': 9.2.0 - '@cspell/dynamic-import': 9.2.0 - '@cspell/filetypes': 9.2.0 - '@cspell/strong-weak-map': 9.2.0 - '@cspell/url': 9.2.0 + '@cspell/cspell-bundled-dicts': 9.2.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-resolver': 9.2.1 + '@cspell/cspell-types': 9.2.1 + '@cspell/dynamic-import': 9.2.1 + '@cspell/filetypes': 9.2.1 + '@cspell/strong-weak-map': 9.2.1 + '@cspell/url': 9.2.1 clear-module: 4.1.2 comment-json: 4.2.5 - cspell-config-lib: 9.2.0 - cspell-dictionary: 9.2.0 - cspell-glob: 9.2.0 - cspell-grammar: 9.2.0 - cspell-io: 9.2.0 - cspell-trie-lib: 9.2.0 + cspell-config-lib: 9.2.1 + cspell-dictionary: 9.2.1 + cspell-glob: 9.2.1 + cspell-grammar: 9.2.1 + cspell-io: 9.2.1 + cspell-trie-lib: 9.2.1 env-paths: 3.0.0 fast-equals: 5.2.2 gensequence: 7.0.0 @@ -11047,28 +11047,28 @@ snapshots: vscode-uri: 3.1.0 xdg-basedir: 5.1.0 - cspell-trie-lib@9.2.0: + cspell-trie-lib@9.2.1: dependencies: - '@cspell/cspell-pipe': 9.2.0 - '@cspell/cspell-types': 9.2.0 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 gensequence: 7.0.0 - cspell@9.2.0: + cspell@9.2.1: dependencies: - '@cspell/cspell-json-reporter': 9.2.0 - '@cspell/cspell-pipe': 9.2.0 - '@cspell/cspell-types': 9.2.0 - '@cspell/dynamic-import': 9.2.0 - '@cspell/url': 9.2.0 + '@cspell/cspell-json-reporter': 9.2.1 + '@cspell/cspell-pipe': 9.2.1 + '@cspell/cspell-types': 9.2.1 + '@cspell/dynamic-import': 9.2.1 + '@cspell/url': 9.2.1 chalk: 5.6.0 chalk-template: 1.1.0 commander: 14.0.0 - cspell-config-lib: 9.2.0 - cspell-dictionary: 9.2.0 - cspell-gitignore: 9.2.0 - cspell-glob: 9.2.0 - cspell-io: 9.2.0 - cspell-lib: 9.2.0 + cspell-config-lib: 9.2.1 + cspell-dictionary: 9.2.1 + cspell-gitignore: 9.2.1 + cspell-glob: 9.2.1 + cspell-io: 9.2.1 + cspell-lib: 9.2.1 fast-json-stable-stringify: 2.1.0 flatted: 3.3.3 semver: 7.7.2 @@ -11829,7 +11829,7 @@ snapshots: fsevents@2.3.3: optional: true - fumadocs-core@15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1): + fumadocs-core@15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1): dependencies: '@formatjs/intl-localematcher': 0.6.1 '@orama/orama': 3.1.12 @@ -11856,29 +11856,32 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-docgen@3.0.0(fumadocs-core@15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)): + fumadocs-docgen@3.0.0(fumadocs-core@15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)): dependencies: estree-util-to-js: 2.0.0 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) npm-to-yarn: 3.0.1 oxc-transform: 0.82.3 unist-util-visit: 5.0.0 zod: 4.1.5 - fumadocs-mdx@11.8.1(fumadocs-core@15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.5)(yaml@2.8.1)): + fumadocs-mdx@11.8.2(fumadocs-core@15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react@19.1.1)(vite@7.1.3(@types/node@24.3.0)(jiti@2.5.1)(lightningcss@1.30.1)(tsx@4.20.5)(yaml@2.8.1)): dependencies: '@mdx-js/mdx': 3.1.1 '@standard-schema/spec': 1.0.0 chokidar: 4.0.3 esbuild: 0.25.9 estree-util-value-to-estree: 3.4.0 - fumadocs-core: 15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) js-yaml: 4.1.0 lru-cache: 11.1.0 picocolors: 1.1.1 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 tinyexec: 1.0.1 tinyglobby: 0.2.14 + unified: 11.0.5 unist-util-visit: 5.0.0 zod: 4.1.5 optionalDependencies: @@ -11888,11 +11891,11 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-twoslash@3.1.6(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(fumadocs-ui@15.7.4(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2): + fumadocs-twoslash@3.1.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(fumadocs-ui@15.7.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(typescript@5.9.2): dependencies: '@radix-ui/react-popover': 1.1.15(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@shikijs/twoslash': 3.12.0(typescript@5.9.2) - fumadocs-ui: 15.7.4(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12) + fumadocs-ui: 15.7.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12) mdast-util-from-markdown: 2.0.2 mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 @@ -11925,7 +11928,7 @@ snapshots: transitivePeerDependencies: - supports-color - fumadocs-ui@15.7.4(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12): + fumadocs-ui@15.7.7(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1)(tailwindcss@4.1.12): dependencies: '@radix-ui/react-accordion': 1.2.12(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) '@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) @@ -11938,7 +11941,7 @@ snapshots: '@radix-ui/react-slot': 1.2.3(@types/react@19.1.12)(react@19.1.1) '@radix-ui/react-tabs': 1.1.13(@types/react-dom@19.1.9(@types/react@19.1.12))(@types/react@19.1.12)(react-dom@19.1.1(react@19.1.1))(react@19.1.1) class-variance-authority: 0.7.1 - fumadocs-core: 15.7.4(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) + fumadocs-core: 15.7.7(@types/react@19.1.12)(next@15.5.2(react-dom@19.1.1(react@19.1.1))(react@19.1.1))(react-dom@19.1.1(react@19.1.1))(react@19.1.1) lodash.merge: 4.6.2 next-themes: 0.4.6(react-dom@19.1.1(react@19.1.1))(react@19.1.1) postcss-selector-parser: 7.1.0 @@ -12149,7 +12152,7 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - import-meta-resolve@4.1.0: {} + import-meta-resolve@4.2.0: {} importx@0.5.2: dependencies: @@ -12431,7 +12434,7 @@ snapshots: load-plugin@6.0.3: dependencies: '@npmcli/config': 8.3.4 - import-meta-resolve: 4.1.0 + import-meta-resolve: 4.2.0 transitivePeerDependencies: - bluebird