diff --git a/.github/scripts/label-issue.js b/.github/scripts/label-issue.js index a5d95b74..5222c4e9 100644 --- a/.github/scripts/label-issue.js +++ b/.github/scripts/label-issue.js @@ -1,7 +1,6 @@ import core from '@actions/core'; import github from '@actions/github'; -// eslint-disable-next-line node/prefer-global/process const GH_TOKEN = process.env.GITHUB_TOKEN; const pkgLabel = { @@ -77,7 +76,6 @@ async function run() { console.log(`Matched labels: ${Array.from(labels).join(', ')}`); - // eslint-disable-next-line node/prefer-global/process if (process.env.DRY_RUN === 'true') { console.log('⚠️ DRY RUN: Skipping API call.'); return; diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index bd5535a6..00000000 --- a/.prettierignore +++ /dev/null @@ -1 +0,0 @@ -pnpm-lock.yaml diff --git a/.prettierrc.cjs b/.prettierrc.cjs deleted file mode 100644 index 4fe65186..00000000 --- a/.prettierrc.cjs +++ /dev/null @@ -1,40 +0,0 @@ -module.exports = { - printWidth: 120, - singleQuote: true, - tabWidth: 2, - useTabs: false, - semi: true, - quoteProps: 'as-needed', - jsxSingleQuote: false, - trailingComma: 'es5', - bracketSpacing: true, - bracketSameLine: false, - arrowParens: 'always', - plugins: ['@ianvs/prettier-plugin-sort-imports'], - importOrder: [ - '.css$', - '.styles$', - '', - '', - '', - '^__', - '', - '^node:', - '', - '', - '^react', - '^prop-types$', - '', - '', - '', - '.+__deprecated__', - '', - '^@mux', - '', - '^@', - '', - '^[$]', - '^[../]', - '^(?!.*[.](svg|png|webp|mp4)$)[./].*$', - ], -}; diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 301a5722..4ec208c8 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,6 @@ { "recommendations": [ - "dbaeumer.vscode-eslint", + "biomejs.biome", "hyrious.import-cost", "streetsidesoftware.code-spell-checker", "DavidAnson.vscode-markdownlint", diff --git a/.vscode/settings.json b/.vscode/settings.json index 0f3b1612..203c4cbf 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,55 +1,19 @@ { - // At some point, we'll watch to flick this on and uncomment lines 5 & 6 below. - "eslint.enable": true, - // Disable the default formatter, use eslint instead + // We use Biome for linting and formatting. + "eslint.enable": false, "prettier.enable": false, - "editor.formatOnSave": false, + "editor.formatOnSave": true, // Auto fix "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit", + // Auto fix all Biome issues on save. + "source.fixAll.biome": "always", + "source.organizeImports.biome": "always", + // Disable built-in organize imports to avoid conflicts with Biome. "source.organizeImports": "never" }, - // Silent the stylistic rules in you IDE, but still auto fix them - "eslint.rules.customizations": [ - { "rule": "style/*", "severity": "off", "fixable": true }, - { "rule": "format/*", "severity": "off", "fixable": true }, - { "rule": "*-indent", "severity": "off", "fixable": true }, - { "rule": "*-spacing", "severity": "off", "fixable": true }, - { "rule": "*-spaces", "severity": "off", "fixable": true }, - { "rule": "*-order", "severity": "off", "fixable": true }, - { "rule": "*-dangle", "severity": "off", "fixable": true }, - { "rule": "*-newline", "severity": "off", "fixable": true }, - { "rule": "*quotes", "severity": "off", "fixable": true }, - { "rule": "*semi", "severity": "off", "fixable": true } - ], - - // Enable eslint for all supported languages - "eslint.validate": [ - "javascript", - "javascriptreact", - "typescript", - "typescriptreact", - "vue", - "html", - "markdown", - "json", - "jsonc", - "yaml", - "toml", - "xml", - "gql", - "graphql", - "astro", - "svelte", - "css", - "less", - "scss", - "pcss", - "postcss", - "svg" - ], - "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "biome.requireConfiguration": true, + "editor.defaultFormatter": "biomejs.biome", "typescript.tsdk": "node_modules/typescript/lib" } diff --git a/CLAUDE.md b/CLAUDE.md index 6a2d2f2b..33e8dc5c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -157,9 +157,9 @@ When generating or editing code in this repository, follow these rules to ensure - Preserve comments, type signatures, and existing code style. 2. **Match Existing Conventions** - - Follow the repo’s Prettier, ESLint, and TypeScript settings automatically. + - Follow the repo's Biome and TypeScript settings automatically. - Use consistent naming (camelCase for variables, PascalCase for components). - - Prefer imports ordered and sorted as per `@antfu/eslint-config`. + - Biome handles import organization (side-effects → external → internal). 3. **Type Safety First** - Never remove or bypass TypeScript types. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 401c85a5..6781a492 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -97,7 +97,7 @@ pnpm build ### 🧹 Style & Linting -For the bulk of our core code, we use a [slightly modified](./eslint.config.mjs) version of [`@antfu/eslint-config`](https://www.npmjs.com/package/@antfu/eslint-config) along with [`prettier`](https://prettier.io/) for things like markdown or svgs. Between IDE configs, pre-commit hooks, and manual CLI fixes, many styling and linting issues should get caught automatically. +For the bulk of our core code, we use [Biome](https://biomejs.dev). Between IDE configs, pre-commit hooks, and manual CLI fixes, many styling and linting issues should get caught automatically. To ensure your code follows our lint rules with: diff --git a/biome.json b/biome.json new file mode 100644 index 00000000..5c9c3740 --- /dev/null +++ b/biome.json @@ -0,0 +1,84 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.3.11/schema.json", + "html": { + "experimentalFullSupportEnabled": false + }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, + "formatter": { + "enabled": true, + "indentStyle": "space", + "indentWidth": 2, + "lineWidth": 120 + }, + "javascript": { + "formatter": { + "quoteStyle": "single", + "semicolons": "always", + "trailingCommas": "es5", + "bracketSpacing": true, + "arrowParentheses": "always" + } + }, + "json": { + "formatter": { + "indentWidth": 2 + } + }, + "css": { + "parser": { + "tailwindDirectives": true + } + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "style": { + "noNamespace": "off", + "noNonNullAssertion": "off" + }, + "suspicious": { + "noExplicitAny": "off", + "noConfusingVoidType": "off", + "useIterableCallbackReturn": "off", + "noAssignInExpressions": "off", + "noDocumentCookie": "off", + "noThenProperty": "off" + }, + "security": { + "noDangerouslySetInnerHtml": "off" + }, + "complexity": { + "noUselessFragments": "warn", + "noArguments": "off" + }, + "correctness": { + "noUnusedVariables": "warn", + "noUnusedImports": "warn", + "noUnusedFunctionParameters": "off", + "useExhaustiveDependencies": "warn" + }, + "a11y": { + "noSvgWithoutTitle": "warn" + } + } + }, + "files": { + "includes": [ + "**", + "!**/CLAUDE.md", + "!**/.claude", + "!**/.astro", + "!**/.vercel", + "!**/.turbo", + "!**/.next", + "!**/.github", + "!**/dist", + "!**/styles/vjs.css", + "!**/packages/__tech-preview__", + "!**/examples", + "!**/*.astro", + "!**/packages/react/src/icons/generated-icons" + ] + } +} diff --git a/commitlint.config.js b/commitlint.config.js index e7634e85..29fb565f 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -5,7 +5,7 @@ export default { /** @param {string} message */ (message) => { const lower = message.toLowerCase().trim(); - return ['wip'].some(word => lower.startsWith(word)); + return ['wip'].some((word) => lower.startsWith(word)); }, ], rules: { diff --git a/cspell.json b/cspell.json index 4b9e2429..bb4511bf 100644 --- a/cspell.json +++ b/cspell.json @@ -1,24 +1,17 @@ { "version": "0.2", - "ignorePaths": [ - "package.json", - "tsconfig.json" - ], + "ignorePaths": ["package.json", "tsconfig.json"], "dictionaryDefinitions": [], - "dictionaries": [ - "css", - "html", - "node", - "typescript", - "npm" - ], + "dictionaries": ["css", "html", "node", "typescript", "npm"], "words": [ "antfu", "demuxed", + "nanostores", "noautohide", "noto", "nums", "plyr", + "prefs", "rahim", "segoe", "shiki", diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 333cb183..00000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,93 +0,0 @@ -import antfu from '@antfu/eslint-config'; - -import jsxA11y from 'eslint-plugin-jsx-a11y'; - -export default antfu( - { - react: true, - astro: true, - typescript: true, - formatters: { - css: true, - html: true, - astro: 'prettier', - markdown: 'prettier', - svg: 'prettier', - }, - stylistic: { - semi: true, - indent: 2, - quotes: 'single', - }, - // Many are ignored by default. - // https://github.com/antfu/eslint-config/blob/main/src/globs.ts#L56 - ignores: [ - '**/CLAUDE.md', - '**/.claude/', - '**/.astro/', - '**/.vercel/', - '**/dist/', - '**/styles/vjs.css', - 'packages/__tech-preview__/**', - // some files that make eslint/prettier panic - 'site/src/components/Posthog.astro', - 'site/src/components/ThemeInit.astro', - ], - plugins: { - 'jsx-a11y': jsxA11y, - }, - rules: { - // Allow single line bracing. - 'antfu/if-newline': 'off', - 'style/brace-style': ['error', '1tbs', { allowSingleLine: true }], - // Only quote props when necessary. - 'style/quote-props': ['error', 'as-needed'], - // JSX A11Y plugin rules - ...jsxA11y.configs.recommended.rules, - }, - }, - // TypeScript files - { - files: ['**/*.{ts,tsx}'], - rules: { - 'ts/no-namespace': 'off', - }, - }, - // Test files - { - files: ['**/*.test.{ts,tsx}'], - rules: { - 'vitest/prefer-lowercase-title': 'off', - }, - }, - // Markdown files - { - files: ['**/*.md'], - rules: { - // Disable rules that conflict with documentation code examples in markdown - 'style/max-len': 'off', - 'ts/no-unsafe-function-type': 'off', - 'ts/method-signature-style': 'off', - 'node/handle-callback-err': 'off', - 'react-refresh/only-export-components': 'off', - 'react-dom/no-missing-button-type': 'off', - 'react/no-array-index-key': 'off', - 'react-hooks/rules-of-hooks': 'off', - 'jsx-a11y/click-events-have-key-events': 'off', - 'jsx-a11y/interactive-supports-focus': 'off', - 'jsx-a11y/no-noninteractive-element-interactions': 'off', - 'unused-imports/no-unused-vars': 'off', - 'no-undef': 'off', - 'no-unused-vars': 'off', - 'import/first': 'off', - 'import/newline-after-import': 'off', - 'unicorn/prefer-node-protocol': 'off', - 'format/prettier': 'off', - 'perfectionist/sort-named-imports': 'off', - 'style/quotes': 'off', - 'style/semi': 'off', - 'style/member-delimiter-style': 'off', - 'style/jsx-one-expression-per-line': 'off', - }, - }, -); diff --git a/package.json b/package.json index 4b638328..be5ab107 100644 --- a/package.json +++ b/package.json @@ -25,32 +25,20 @@ "dev:site": "turbo run dev --filter=site", "dev": "turbo run dev --parallel", "dev:packages": "turbo run dev --parallel --filter='./packages/*'", - "lint": "eslint . --cache", - "lint:fix": "eslint . --fix --cache", - "lint:fix:file": "eslint --fix --cache", + "lint": "biome check .", + "lint:fix": "biome check . --write", + "lint:fix:file": "biome check --write", "link:opencode": "[ -e .opencode ] || ln -s .claude .opencode", "test": "turbo run test", "typecheck": "tsc --build" }, "devDependencies": { - "@antfu/eslint-config": "^6.2.0", + "@biomejs/biome": "^2.3.11", "@commitlint/cli": "^20.1.0", "@commitlint/config-conventional": "^20.0.0", "@commitlint/format": "^20.0.0", - "@eslint-react/eslint-plugin": "^2.3.5", - "@eslint/eslintrc": "^3.3.1", - "@ianvs/prettier-plugin-sort-imports": "^4.7.0", - "@prettier/plugin-xml": "^3.4.2", "@types/node": "^22.18.6", - "eslint": "^9.39.1", - "eslint-plugin-astro": "^1.5.0", - "eslint-plugin-format": "^1.0.2", - "eslint-plugin-jsx-a11y": "^6.10.2", - "eslint-plugin-react-hooks": "^7.0.1", - "eslint-plugin-react-refresh": "^0.4.24", "lint-staged": "^16.2.3", - "prettier": "^3.6.2", - "prettier-plugin-astro": "^0.14.1", "react": "^18.0.0", "react-compiler-runtime": "^1.0.0", "react-dom": "^18.0.0", @@ -64,6 +52,6 @@ "commit-msg": "pnpm commitlint" }, "lint-staged": { - "*": "eslint --fix --cache" + "*": "biome check --write --no-errors-on-unmatched" } } diff --git a/packages/__tech-preview__/examples/react/src/components/CodeBlock.tsx b/packages/__tech-preview__/examples/react/src/components/CodeBlock.tsx index 2a3e1004..74e2e7ce 100644 --- a/packages/__tech-preview__/examples/react/src/components/CodeBlock.tsx +++ b/packages/__tech-preview__/examples/react/src/components/CodeBlock.tsx @@ -21,7 +21,6 @@ export function CodeBlock(props: CodeBlockProps): JSX.Element { }, [code, colorScheme]); return ( - // eslint-disable-next-line react-dom/no-dangerously-set-innerhtml
); } diff --git a/packages/__tech-preview__/examples/react/src/hooks/useMediaQuery.ts b/packages/__tech-preview__/examples/react/src/hooks/useMediaQuery.ts index 4c934538..b9bd7084 100644 --- a/packages/__tech-preview__/examples/react/src/hooks/useMediaQuery.ts +++ b/packages/__tech-preview__/examples/react/src/hooks/useMediaQuery.ts @@ -32,7 +32,6 @@ export function useMediaQuery( // Handles the change event of the media query. function handleChange() { - // eslint-disable-next-line react-hooks-extra/no-direct-set-state-in-use-effect setMatches(getMatches(query)); } diff --git a/packages/__tech-preview__/react/build/build-styles.ts b/packages/__tech-preview__/react/build/build-styles.ts index 023aa11a..4da8a521 100644 --- a/packages/__tech-preview__/react/build/build-styles.ts +++ b/packages/__tech-preview__/react/build/build-styles.ts @@ -1,5 +1,4 @@ #!/usr/bin/env node -/* eslint-disable no-console */ /** * Build Styles Script diff --git a/packages/__tech-preview__/react/src/components/HlsVideo.tsx b/packages/__tech-preview__/react/src/components/HlsVideo.tsx index b625db9c..00d8a264 100644 --- a/packages/__tech-preview__/react/src/components/HlsVideo.tsx +++ b/packages/__tech-preview__/react/src/components/HlsVideo.tsx @@ -53,7 +53,6 @@ const DefaultVideoComponent: ElementType< > = forwardRef(({ children, ...props }, ref) => { const { updateMediaElement } = useMediaStateOwner(ref, createMediaPlaybackController); return ( - // eslint-disable-next-line jsx-a11y/media-has-caption
; * }; */ -// eslint-disable-next-line react-refresh/only-export-components export function useMediaContainerRef(): RefCallback { const mediaStore = useMediaStore(); @@ -168,7 +167,6 @@ export const MediaContainer: FC = forwardRef( }, [getMediaElement, isUserActive, scheduleUserInactive]); return ( - // eslint-disable-next-line jsx-a11y/no-static-element-interactions
}): JSX.Element { - // eslint-disable-next-line react/no-clone-element return cloneElement(props.child, props.triggerProps); } diff --git a/packages/__tech-preview__/react/src/components/Tooltip.tsx b/packages/__tech-preview__/react/src/components/Tooltip.tsx index 141a3015..0ddcfcbe 100644 --- a/packages/__tech-preview__/react/src/components/Tooltip.tsx +++ b/packages/__tech-preview__/react/src/components/Tooltip.tsx @@ -92,7 +92,6 @@ export function useTooltipTriggerProps( } export function renderTooltipTrigger(props: { child: JSX.Element; triggerProps: Record }): JSX.Element { - // eslint-disable-next-line react/no-clone-element return cloneElement(props.child, props.triggerProps); } diff --git a/packages/__tech-preview__/react/src/components/Video.tsx b/packages/__tech-preview__/react/src/components/Video.tsx index aa13b29a..dd3f3019 100644 --- a/packages/__tech-preview__/react/src/components/Video.tsx +++ b/packages/__tech-preview__/react/src/components/Video.tsx @@ -39,7 +39,6 @@ export const Video: React.ForwardRefExoticComponent< const mediaRefCallback = useMediaRef(); return ( - // eslint-disable-next-line jsx-a11y/media-has-caption diff --git a/packages/__tech-preview__/react/src/store/use-sync-external-store.ts b/packages/__tech-preview__/react/src/store/use-sync-external-store.ts index 991b7368..5b096bbc 100644 --- a/packages/__tech-preview__/react/src/store/use-sync-external-store.ts +++ b/packages/__tech-preview__/react/src/store/use-sync-external-store.ts @@ -18,7 +18,7 @@ import { useDebugValue, useEffect, useMemo, useRef, useSyncExternalStore } from */ function isPolyfill(x: any, y: any) { return ( - (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) // eslint-disable-line no-self-compare + (x === y && (x !== 0 || 1 / x === 1 / y)) || (x !== x && y !== y) ); } diff --git a/packages/__tech-preview__/react/src/utils/use-composed-refs.ts b/packages/__tech-preview__/react/src/utils/use-composed-refs.ts index 1caa51af..7e1228b7 100644 --- a/packages/__tech-preview__/react/src/utils/use-composed-refs.ts +++ b/packages/__tech-preview__/react/src/utils/use-composed-refs.ts @@ -53,8 +53,7 @@ function composeRefs(...refs: PossibleRef[]): React.RefCallback { * Accepts callback refs and RefObject(s) */ function useComposedRefs(...refs: PossibleRef[]): React.RefCallback { - // eslint-disable-next-line react-hooks/exhaustive-deps - return React.useCallback(composeRefs(...refs), refs); + return React.useCallback(composeRefs(...refs), [...refs]); } export { composeRefs, useComposedRefs }; diff --git a/packages/__tech-preview__/utils/src/shared/console.ts b/packages/__tech-preview__/utils/src/shared/console.ts index 43ae2f63..ce188769 100644 --- a/packages/__tech-preview__/utils/src/shared/console.ts +++ b/packages/__tech-preview__/utils/src/shared/console.ts @@ -1,14 +1,13 @@ export function printConsoleBanner(version: string): void { - // eslint-disable-next-line no-console console.info( `%c Video.js %c v${version}`, `border-radius: 9999px; background: #393836; font: bold 1.5em/1.5em monospace; color: #ebe4c1; - text-shadow: 1px 1px 0 #fcb116, - 2px 2px 0 #f26222, - 3px 3px 0 #ea3837, + text-shadow: 1px 1px 0 #fcb116, + 2px 2px 0 #f26222, + 3px 3px 0 #ea3837, 4px 4px 0 #a83b71`, `font: 1em monospace;`, ); @@ -21,12 +20,10 @@ export function printConsoleBanner(version: string): void { ); } - // eslint-disable-next-line no-console console.info( '%cReport a Bug, Issue or Feature Request - https://github.com/videojs/v10/issues/new/choose', 'color: #aaa; font-size: .9em;', ); - // eslint-disable-next-line no-console console.info( '%cReach out on Discord - https://discord.gg/JBqHh485uF', 'color: #aaa; font-size: .9em;', diff --git a/packages/core/src/dom/store/features/tests/buffer.test.ts b/packages/core/src/dom/store/features/tests/buffer.test.ts index 3829357b..5fad047a 100644 --- a/packages/core/src/dom/store/features/tests/buffer.test.ts +++ b/packages/core/src/dom/store/features/tests/buffer.test.ts @@ -94,7 +94,7 @@ function createMockVideo( overrides: Partial<{ buffered: TimeRanges; seekable: TimeRanges; - }>, + }> ): HTMLVideoElement { const video = document.createElement('video'); diff --git a/packages/core/src/dom/store/features/tests/playback.test.ts b/packages/core/src/dom/store/features/tests/playback.test.ts index d808a10c..998175bf 100644 --- a/packages/core/src/dom/store/features/tests/playback.test.ts +++ b/packages/core/src/dom/store/features/tests/playback.test.ts @@ -188,7 +188,7 @@ function createMockVideo( ended: boolean; currentTime: number; readyState: number; - }>, + }> ): HTMLVideoElement { const video = document.createElement('video'); diff --git a/packages/core/src/dom/store/features/tests/source.test.ts b/packages/core/src/dom/store/features/tests/source.test.ts index 8d1f2d9b..d3ec7b7e 100644 --- a/packages/core/src/dom/store/features/tests/source.test.ts +++ b/packages/core/src/dom/store/features/tests/source.test.ts @@ -123,7 +123,7 @@ function createMockVideo( currentSrc: string; src: string; readyState: number; - }>, + }> ): HTMLVideoElement { const video = document.createElement('video'); diff --git a/packages/core/src/dom/store/features/tests/time.test.ts b/packages/core/src/dom/store/features/tests/time.test.ts index 325fff61..95f28baa 100644 --- a/packages/core/src/dom/store/features/tests/time.test.ts +++ b/packages/core/src/dom/store/features/tests/time.test.ts @@ -146,7 +146,7 @@ function createMockVideo( overrides: Partial<{ currentTime: number; duration: number; - }>, + }> ): HTMLVideoElement { const video = document.createElement('video'); diff --git a/packages/core/src/dom/store/features/tests/volume.test.ts b/packages/core/src/dom/store/features/tests/volume.test.ts index 96e5c275..79a1ebaf 100644 --- a/packages/core/src/dom/store/features/tests/volume.test.ts +++ b/packages/core/src/dom/store/features/tests/volume.test.ts @@ -127,7 +127,7 @@ function createMockVideo( overrides: Partial<{ volume: number; muted: boolean; - }>, + }> ): HTMLVideoElement { const video = document.createElement('video'); diff --git a/packages/react/src/index.ts b/packages/react/src/index.ts index a40d69e7..c442bc3d 100644 --- a/packages/react/src/index.ts +++ b/packages/react/src/index.ts @@ -1,10 +1,8 @@ 'use client'; -// Media -export { Video, type VideoProps } from './media/video'; - // Features (re-export for convenience) export { media } from '@videojs/core/dom'; - // Store export * from '@videojs/store/react'; +// Media +export { Video, type VideoProps } from './media/video'; diff --git a/packages/react/src/media/tests/video.test.tsx b/packages/react/src/media/tests/video.test.tsx index ed347094..89d3ef52 100644 --- a/packages/react/src/media/tests/video.test.tsx +++ b/packages/react/src/media/tests/video.test.tsx @@ -32,7 +32,7 @@ describe('video', () => { const { container } = render( , + ); const video = container.querySelector('video'); @@ -46,7 +46,7 @@ describe('video', () => { const { container } = render( , + ); const video = container.querySelector('video') as HTMLVideoElement; @@ -66,7 +66,7 @@ describe('video', () => { - , + ); const video = container.querySelector('video'); @@ -96,7 +96,7 @@ describe('video', () => { render( - , + ); expect(attachCalled).toBe(true); @@ -119,7 +119,7 @@ describe('video', () => { render( - , + ); expect(capturedElement).toBeInstanceOf(HTMLVideoElement); diff --git a/packages/react/src/media/video.tsx b/packages/react/src/media/video.tsx index b3a6fe28..10464efb 100644 --- a/packages/react/src/media/video.tsx +++ b/packages/react/src/media/video.tsx @@ -1,8 +1,7 @@ 'use client'; -import type { Ref, VideoHTMLAttributes } from 'react'; - import { useStoreContext } from '@videojs/store/react'; +import type { Ref, VideoHTMLAttributes } from 'react'; import { useCallback } from 'react'; @@ -42,13 +41,12 @@ export function Video({ children, ref: refProp, ...props }: VideoProps): React.J if (!el) return; return store.attach(el); }, - [store], + [store] ); const ref = useComposedRefs(refProp, attachRef); return ( - // eslint-disable-next-line jsx-a11y/media-has-caption -- captions can be passed via children diff --git a/packages/react/src/types.d.ts b/packages/react/src/types.d.ts index 830a59e9..14b00d74 100644 --- a/packages/react/src/types.d.ts +++ b/packages/react/src/types.d.ts @@ -1,6 +1,6 @@ declare global { namespace React { - interface HTMLAttributes { + interface HTMLAttributes<_T> { popover?: 'auto' | 'manual' | string; commandfor?: string; } diff --git a/packages/react/src/utils/tests/use-composed-refs.test.tsx b/packages/react/src/utils/tests/use-composed-refs.test.tsx index 4d22669b..57dc729f 100644 --- a/packages/react/src/utils/tests/use-composed-refs.test.tsx +++ b/packages/react/src/utils/tests/use-composed-refs.test.tsx @@ -1,6 +1,5 @@ -import type { MutableRefObject, RefObject } from 'react'; - import { render } from '@testing-library/react'; +import type { MutableRefObject, RefObject } from 'react'; import { useRef } from 'react'; diff --git a/packages/react/src/utils/use-composed-refs.ts b/packages/react/src/utils/use-composed-refs.ts index f9c3a2e6..2003db5e 100644 --- a/packages/react/src/utils/use-composed-refs.ts +++ b/packages/react/src/utils/use-composed-refs.ts @@ -32,7 +32,7 @@ function setRef(ref: PossibleRef, value: T): (() => void) | void | undefin */ export function composeRefs(...refs: PossibleRef[]): RefCallback { return (node): (() => void) | void => { - const cleanups = refs.map(ref => setRef(ref, node)); + const cleanups = refs.map((ref) => setRef(ref, node)); return () => { for (let i = 0; i < cleanups.length; i++) { @@ -59,6 +59,5 @@ export function composeRefs(...refs: PossibleRef[]): RefCallback { * ``` */ export function useComposedRefs(...refs: PossibleRef[]): RefCallback { - // eslint-disable-next-line react-hooks/exhaustive-deps - return useCallback(composeRefs(...refs), refs); + return useCallback(composeRefs(...refs), [...refs]); } diff --git a/packages/store/src/core/computed.ts b/packages/store/src/core/computed.ts index 87586b9b..8fa1eb96 100644 --- a/packages/store/src/core/computed.ts +++ b/packages/store/src/core/computed.ts @@ -11,7 +11,7 @@ import type { State } from './state'; export function createComputed( state: State, keys: K[], - derive: (snapshot: Pick) => R, + derive: (snapshot: Pick) => R ): Computed { return new Computed(state, keys, derive); } diff --git a/packages/store/src/core/errors.ts b/packages/store/src/core/errors.ts index 6a41b115..a177bb82 100644 --- a/packages/store/src/core/errors.ts +++ b/packages/store/src/core/errors.ts @@ -15,23 +15,23 @@ * } * ``` */ -export type StoreErrorCode +export type StoreErrorCode = /** Request was aborted via AbortSignal - user or system requested cancellation. */ - = | 'ABORTED' + | 'ABORTED' /** Request was cancelled by another request's `cancel` configuration. */ - | 'CANCELLED' + | 'CANCELLED' /** Store or queue was destroyed - lifecycle ended. */ - | 'DESTROYED' + | 'DESTROYED' /** Target was detached while request was in flight. */ - | 'DETACHED' + | 'DETACHED' /** No target is attached to the store. */ - | 'NO_TARGET' + | 'NO_TARGET' /** Guard condition returned falsy - request preconditions not met. */ - | 'REJECTED' + | 'REJECTED' /** Request was replaced by a newer request with the same key. */ - | 'SUPERSEDED' + | 'SUPERSEDED' /** Guard condition timed out waiting for a truthy result. */ - | 'TIMEOUT'; + | 'TIMEOUT'; export interface StoreErrorOptions { cause?: unknown; diff --git a/packages/store/src/core/extend-config.ts b/packages/store/src/core/extend-config.ts index c738f5c0..d051d333 100644 --- a/packages/store/src/core/extend-config.ts +++ b/packages/store/src/core/extend-config.ts @@ -1,8 +1,7 @@ -import type { AnyFeature } from './feature'; -import type { StoreConfig } from './store'; - import { uniqBy } from '@videojs/utils/array'; import { composeCallbacks } from '@videojs/utils/function'; +import type { AnyFeature } from './feature'; +import type { StoreConfig } from './store'; /** * Extends a base store config with additional configuration. @@ -24,9 +23,13 @@ import { composeCallbacks } from '@videojs/utils/function'; * }); * ``` */ -export function extendConfig[], ExtFeatures extends AnyFeature[] = []>( +export function extendConfig< + Target, + BaseFeatures extends AnyFeature[], + ExtFeatures extends AnyFeature[] = [], +>( base: StoreConfig, - extension?: Partial>, + extension?: Partial> ): StoreConfig { type MergedFeatures = [...BaseFeatures, ...ExtFeatures]; type Result = StoreConfig; @@ -36,7 +39,7 @@ export function extendConfig[], } return { - features: uniqBy([...base.features, ...(extension.features ?? [])] as MergedFeatures, feature => feature.id), + features: uniqBy([...base.features, ...(extension.features ?? [])] as MergedFeatures, (feature) => feature.id), // Extension overrides if provided queue: extension.queue ?? base.queue, diff --git a/packages/store/src/core/feature.ts b/packages/store/src/core/feature.ts index efc497fb..7edc10bd 100644 --- a/packages/store/src/core/feature.ts +++ b/packages/store/src/core/feature.ts @@ -65,8 +65,8 @@ export type InferFeatureState = S extends Feature ? St export type InferFeatureRequests = S extends Feature ? { [K in keyof R]: R[K] } : never; -export type ResolveFeatureRequestHandlers - = S extends Feature ? { [K in keyof R]: ResolveRequestHandler } : never; +export type ResolveFeatureRequestHandlers = + S extends Feature ? { [K in keyof R]: ResolveRequestHandler } : never; export type UnionFeatureTarget = InferFeatureTarget; @@ -86,17 +86,15 @@ export type UnionFeatureTasks[]> = Ensur // createFeature // ---------------------------------------- -export interface FeatureFactory { - < - State extends object, - const Requests extends Record | RequestConfig>, - >(config: { - initialState: State; - getSnapshot: (ctx: FeatureGetSnapshotContext) => State; - subscribe: (ctx: FeatureSubscribeContext) => void; - request: Requests; - }): Feature>; -} +export type FeatureFactory = < + State extends object, + const Requests extends Record | RequestConfig>, +>(config: { + initialState: State; + getSnapshot: (ctx: FeatureGetSnapshotContext) => State; + subscribe: (ctx: FeatureSubscribeContext) => void; + request: Requests; +}) => Feature>; export type FeatureFactoryResult = Config extends { initialState: infer S extends object; @@ -156,7 +154,7 @@ export function createFeature< } function _createFeature }>( - config: FeatureConfig, + config: FeatureConfig ): Feature { return { id: Symbol('@videojs/feature'), diff --git a/packages/store/src/core/guard.ts b/packages/store/src/core/guard.ts index 31ac98ca..5f720878 100644 --- a/packages/store/src/core/guard.ts +++ b/packages/store/src/core/guard.ts @@ -45,7 +45,7 @@ export function all(...guards: Guard[]): Guard { */ export function any(...guards: Guard[]): Guard { return (ctx) => { - const results = guards.map(g => g(ctx)); + const results = guards.map((g) => g(ctx)); // Check sync results first if (results.includes(true)) return true; diff --git a/packages/store/src/core/queue.ts b/packages/store/src/core/queue.ts index e6bbae10..4ed38cb1 100644 --- a/packages/store/src/core/queue.ts +++ b/packages/store/src/core/queue.ts @@ -1,12 +1,10 @@ -import type { Request, RequestMeta, RequestMode } from './request'; -import type { State, WritableState } from './state'; -import type { ErrorTask, PendingTask, SuccessTask, Task, TaskContext, TaskKey } from './task'; - import { abortable } from '@videojs/utils/events'; import { isUndefined } from '@videojs/utils/predicate'; - import { StoreError } from './errors'; +import type { Request, RequestMeta, RequestMode } from './request'; +import type { State, WritableState } from './state'; import { createState } from './state'; +import type { ErrorTask, PendingTask, SuccessTask, Task, TaskContext, TaskKey } from './task'; // ---------------------------------------- // Types @@ -76,7 +74,7 @@ export class Queue { } enqueue( - task: QueueTask, Tasks[K]['input'], Tasks[K]['output']>, + task: QueueTask, Tasks[K]['input'], Tasks[K]['output']> ): Promise { const { name, key, mode = 'exclusive', input, meta = null, handler } = task; @@ -118,7 +116,7 @@ export class Queue { // Use .then() to avoid unhandled rejection from .finally() propagating errors promise.then( () => this.#sharedPromises.delete(key), - () => this.#sharedPromises.delete(key), + () => this.#sharedPromises.delete(key) ); } @@ -197,15 +195,12 @@ export class Queue { const currentTask = this.tasks.current[name]; if (currentTask?.id === id) { - this.#tasks.set( - name as keyof Tasks, - { - ...currentTask, - status: 'success', - settledAt: Date.now(), - output: result, - } satisfies SuccessTask, - ); + this.#tasks.set(name as keyof Tasks, { + ...currentTask, + status: 'success', + settledAt: Date.now(), + output: result, + } satisfies SuccessTask); } } catch (error) { reject(error); @@ -214,16 +209,13 @@ export class Queue { const currentTask = this.tasks.current[name as keyof Tasks]; if (currentTask?.id === id) { - this.#tasks.set( - name as keyof Tasks, - { - ...currentTask, - status: 'error', - settledAt: Date.now(), - error, - cancelled: abort.signal.aborted, - } satisfies ErrorTask, - ); + this.#tasks.set(name as keyof Tasks, { + ...currentTask, + status: 'error', + settledAt: Date.now(), + error, + cancelled: abort.signal.aborted, + } satisfies ErrorTask); } } } diff --git a/packages/store/src/core/request.ts b/packages/store/src/core/request.ts index b7241aaa..e04758fe 100644 --- a/packages/store/src/core/request.ts +++ b/packages/store/src/core/request.ts @@ -1,9 +1,8 @@ import type { EventLike } from '@videojs/utils/events'; +import { isFunction, isObject } from '@videojs/utils/predicate'; import type { Guard } from './guard'; import type { TaskKey } from './task'; -import { isFunction, isObject } from '@videojs/utils/predicate'; - // ---------------------------------------- // Symbols // ---------------------------------------- @@ -38,15 +37,15 @@ export type RequestKey = TaskKey | ((input: Input) => TaskKey); export type RequestMode = 'exclusive' | 'shared'; -export type RequestCancel - = | typeof CANCEL_ALL - | TaskKey - | TaskKey[] - | ((input: Input) => typeof CANCEL_ALL | TaskKey | TaskKey[]); +export type RequestCancel = + | typeof CANCEL_ALL + | TaskKey + | TaskKey[] + | ((input: Input) => typeof CANCEL_ALL | TaskKey | TaskKey[]); export type RequestHandler = ( input: Input, - ctx: RequestContext, + ctx: RequestContext ) => Output | Promise; export interface RequestConfig { @@ -103,11 +102,11 @@ export type ResolveRequestMap = { [K in keyof Requests]: Request, InferRequestHandlerOutput>; }; -export type ResolveRequestHandler - = R extends Request +export type ResolveRequestHandler = + R extends Request ? [I] extends [void | undefined] - ? (input?: undefined, meta?: RequestMetaInit) => Promise - : (input: I, meta?: RequestMetaInit) => Promise + ? (input?: undefined, meta?: RequestMetaInit) => Promise + : (input: I, meta?: RequestMetaInit) => Promise : never; // ---------------------------------------- @@ -115,7 +114,7 @@ export type ResolveRequestHandler // ---------------------------------------- export function resolveRequests }>( - requests: RequestConfigMap, + requests: RequestConfigMap ): ResolvedRequestConfigMap { const resolved: Record> = {}; @@ -147,7 +146,7 @@ export function resolveRequestKey(keyConfig: RequestKey, input: unknown): T export function resolveRequestCancel( cancel: RequestCancel | undefined, - input: unknown, + input: unknown ): typeof CANCEL_ALL | TaskKey[] { if (!cancel) return []; const result = isFunction(cancel) ? cancel(input) : cancel; @@ -183,7 +182,7 @@ export function isRequestMeta(value: unknown): value is RequestMeta { export function createRequestMetaFromEvent( event: EventLike, - context?: Context, + context?: Context ): RequestMeta { return { [REQUEST_META]: true, diff --git a/packages/store/src/core/store.ts b/packages/store/src/core/store.ts index fbdb0026..bab56c1b 100644 --- a/packages/store/src/core/store.ts +++ b/packages/store/src/core/store.ts @@ -1,3 +1,6 @@ +import { abortable } from '@videojs/utils/events'; +import { isNull } from '@videojs/utils/predicate'; +import { StoreError } from './errors'; import type { AnyFeature, FeatureUpdate, @@ -6,17 +9,12 @@ import type { UnionFeatureTarget, UnionFeatureTasks, } from './feature'; -import type { RequestMeta, RequestMetaInit, ResolvedRequestConfig } from './request'; -import type { State, WritableState } from './state'; -import type { PendingTask, Task, TaskContext } from './task'; - -import { abortable } from '@videojs/utils/events'; -import { isNull } from '@videojs/utils/predicate'; - -import { StoreError } from './errors'; import { Queue } from './queue'; +import type { RequestMeta, RequestMetaInit, ResolvedRequestConfig } from './request'; import { CANCEL_ALL, createRequestMeta, resolveRequestCancel, resolveRequestKey } from './request'; +import type { State, WritableState } from './state'; import { createState } from './state'; +import type { PendingTask, Task, TaskContext } from './task'; export class Store[] = AnyFeature[]> { readonly #config: StoreConfig; @@ -224,7 +222,7 @@ export class Store[] = AnyFeature, input: unknown, - meta: RequestMeta | null, + meta: RequestMeta | null ): Promise { const key = resolveRequestKey(config.key, input); @@ -299,7 +297,7 @@ export function isStore(value: unknown): value is AnyStore { // ---------------------------------------- export function createStore( - config: StoreConfig, Features>, + config: StoreConfig, Features> ): Store, Features> { return new Store(config); } diff --git a/packages/store/src/core/task.ts b/packages/store/src/core/task.ts index 2bf07991..4d685bfe 100644 --- a/packages/store/src/core/task.ts +++ b/packages/store/src/core/task.ts @@ -22,10 +22,8 @@ export interface PendingTask ext abort: AbortController; } -export interface SuccessTask extends TaskBase< - Key, - Input -> { +export interface SuccessTask + extends TaskBase { status: 'success'; settledAt: number; output: Output; @@ -38,14 +36,14 @@ export interface ErrorTask exten cancelled: boolean; } -export type Task - = | PendingTask - | SuccessTask - | ErrorTask; +export type Task = + | PendingTask + | SuccessTask + | ErrorTask; -export type SettledTask - = | SuccessTask - | ErrorTask; +export type SettledTask = + | SuccessTask + | ErrorTask; export interface TaskContext { input: Input; diff --git a/packages/store/src/core/tests/extend-config.test.ts b/packages/store/src/core/tests/extend-config.test.ts index 0e265966..452827da 100644 --- a/packages/store/src/core/tests/extend-config.test.ts +++ b/packages/store/src/core/tests/extend-config.test.ts @@ -1,10 +1,8 @@ -import type { StoreConfig } from '../store'; - import { describe, expect, it, vi } from 'vitest'; - import { extendConfig } from '../extend-config'; import { createFeature } from '../feature'; import { Queue } from '../queue'; +import type { StoreConfig } from '../store'; // Test target type interface TestTarget { @@ -33,7 +31,7 @@ function createTestFeature(name: string, id?: symbol) { // Helper to create a typed base config function createBaseConfig[]>( features: S, - extra?: Partial>, + extra?: Partial> ): StoreConfig { return { features, ...extra } as StoreConfig; } diff --git a/packages/store/src/core/tests/feature.types.test.ts b/packages/store/src/core/tests/feature.types.test.ts index cfadb6c6..b6996fac 100644 --- a/packages/store/src/core/tests/feature.types.test.ts +++ b/packages/store/src/core/tests/feature.types.test.ts @@ -1,6 +1,5 @@ -import type { Feature, InferFeatureRequests, InferFeatureState } from '../feature'; - import { describe, expectTypeOf, it } from 'vitest'; +import type { Feature, InferFeatureRequests, InferFeatureState } from '../feature'; import { createFeature } from '../feature'; @@ -19,10 +18,16 @@ describe('feature types', () => { request: {}, }); - expectTypeOf(feature).toExtend>(); + expectTypeOf(feature).toExtend< + Feature< + MockTarget, + { + volume: number; + muted: boolean; + }, + object + > + >(); }); it('infers request handler types from simple handlers', () => { diff --git a/packages/store/src/core/tests/guard.test.ts b/packages/store/src/core/tests/guard.test.ts index e1ce330d..a6c14936 100644 --- a/packages/store/src/core/tests/guard.test.ts +++ b/packages/store/src/core/tests/guard.test.ts @@ -14,7 +14,7 @@ describe('guard', () => { const guard = all( () => true, () => true, - () => Promise.resolve(true), + () => Promise.resolve(true) ); expect(await guard(createContext())).toBe(true); }); @@ -24,7 +24,7 @@ describe('guard', () => { const guard = all( () => true, () => false, - thirdGuard, + thirdGuard ); expect(await guard(createContext())).toBe(false); expect(thirdGuard).not.toHaveBeenCalled(); @@ -34,9 +34,9 @@ describe('guard', () => { const guard = all( () => Promise.resolve(true), async () => { - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); return true; - }, + } ); expect(await guard(createContext())).toBe(true); }); @@ -44,7 +44,7 @@ describe('guard', () => { it('fails on async falsy result', async () => { const guard = all( () => true, - () => Promise.resolve(false), + () => Promise.resolve(false) ); expect(await guard(createContext())).toBe(false); }); @@ -55,7 +55,7 @@ describe('guard', () => { const guard = any( () => false, () => true, - () => false, + () => false ); expect(guard(createContext())).toBe(true); }); @@ -63,16 +63,16 @@ describe('guard', () => { it('returns false when all sync guards fail', () => { const guard = any( () => false, - () => false, + () => false ); expect(guard(createContext())).toBe(false); }); it('races async guards - first truthy wins', async () => { const guard = any( - () => new Promise(r => setTimeout(() => r(false), 50)), - () => new Promise(r => setTimeout(() => r(true), 10)), - () => new Promise(r => setTimeout(() => r(false), 30)), + () => new Promise((r) => setTimeout(() => r(false), 50)), + () => new Promise((r) => setTimeout(() => r(true), 10)), + () => new Promise((r) => setTimeout(() => r(false), 30)) ); expect(await guard(createContext())).toBe(true); }); @@ -81,7 +81,7 @@ describe('guard', () => { const guard = any( () => Promise.resolve(false), () => Promise.resolve(0), - () => Promise.resolve(null), + () => Promise.resolve(null) ); expect(await guard(createContext())).toBe(false); }); @@ -89,7 +89,7 @@ describe('guard', () => { it('prefers sync truthy over pending async', () => { const guard = any( () => new Promise(() => {}), // never resolves - () => true, + () => true ); expect(guard(createContext())).toBe(true); }); @@ -107,7 +107,7 @@ describe('guard', () => { }); it('passes async within timeout', async () => { - const guard = timeout(() => new Promise(r => setTimeout(() => r(true), 10)), 1000); + const guard = timeout(() => new Promise((r) => setTimeout(() => r(true), 10)), 1000); expect(await guard(createContext())).toBe(true); }); @@ -117,7 +117,7 @@ describe('guard', () => { const guard = timeout( () => new Promise(() => {}), // never resolves 100, - 'waitForReady', + 'waitForReady' ); const promise = guard(createContext()); diff --git a/packages/store/src/core/tests/integration/store.test.ts b/packages/store/src/core/tests/integration/store.test.ts index 637c1d01..57b6fad4 100644 --- a/packages/store/src/core/tests/integration/store.test.ts +++ b/packages/store/src/core/tests/integration/store.test.ts @@ -79,7 +79,7 @@ describe('store lifecycle integration', () => { store.attach({}); // Test 1: Guard rejects when not ready - const failPromise = store.request.guardedAction().catch(e => e); + const failPromise = store.request.guardedAction().catch((e) => e); await expect(failPromise).resolves.toMatchObject({ code: 'REJECTED' }); // Test 2: Guard passes when ready @@ -132,7 +132,7 @@ describe('request coordination', () => { store.attach({}); const loadPromise = store.request.load(); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); await store.request.stop(); @@ -155,7 +155,7 @@ describe('request coordination', () => { fetchTrack: { key: (id: number) => `track-${id}`, async handler(id: number, _ctx) { - await new Promise(r => setTimeout(r, 10 * id)); + await new Promise((r) => setTimeout(r, 10 * id)); completionOrder.push(id); return id; }, @@ -294,7 +294,7 @@ describe('request coordination', () => { // Start multiple requests const fetchPromise = store.request.fetch(); const seekPromise = store.request.seek(); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); // Nuclear reset await store.request.load(); @@ -324,7 +324,7 @@ describe('request coordination', () => { mode: 'shared', async handler() { handlerCallCount++; - await new Promise(r => setTimeout(r, 50)); + await new Promise((r) => setTimeout(r, 50)); return 'playing'; }, }, @@ -362,7 +362,7 @@ describe('request coordination', () => { key: 'playback', mode: 'shared', async handler() { - await new Promise(r => setTimeout(r, 20)); + await new Promise((r) => setTimeout(r, 20)); throw new Error('playback failed'); }, }, @@ -397,7 +397,7 @@ describe('request coordination', () => { mode: 'shared', async handler() { callCount++; - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); return `call-${callCount}`; }, }, @@ -561,7 +561,7 @@ describe('immediate execution', () => { subscribe: () => {}, request: { action: async () => { - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); return 'done'; }, }, diff --git a/packages/store/src/core/tests/queue.test.ts b/packages/store/src/core/tests/queue.test.ts index c76d7d04..ff61d46f 100644 --- a/packages/store/src/core/tests/queue.test.ts +++ b/packages/store/src/core/tests/queue.test.ts @@ -3,7 +3,7 @@ import { describe, expect, it, vi } from 'vitest'; import { createQueue } from '../queue'; /** Wait for microtask queue to flush. */ -const flush = () => new Promise(r => queueMicrotask(r)); +const flush = () => new Promise((r) => queueMicrotask(r)); describe('Queue', () => { describe('enqueue', () => { @@ -61,7 +61,7 @@ describe('Queue', () => { }); // Let first task start - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); const superseding = queue.enqueue({ name: 'supersede', @@ -83,7 +83,7 @@ describe('Queue', () => { key: 'key-a', handler: async () => { results.push('a-start'); - await new Promise(r => setTimeout(r, 20)); + await new Promise((r) => setTimeout(r, 20)); results.push('a-end'); return 'a'; }, @@ -94,7 +94,7 @@ describe('Queue', () => { key: 'key-b', handler: async () => { results.push('b-start'); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); results.push('b-end'); return 'b'; }, @@ -125,7 +125,7 @@ describe('Queue', () => { }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); queue.abort('test'); await expect(promise).rejects.toMatchObject({ code: 'ABORTED' }); @@ -152,11 +152,11 @@ describe('Queue', () => { key: 'k', handler: async ({ signal }) => { signal.addEventListener('abort', aborted); - await new Promise(r => setTimeout(r, 100)); + await new Promise((r) => setTimeout(r, 100)); }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); queue.destroy(); await expect(promise).rejects.toMatchObject({ code: 'ABORTED' }); @@ -198,7 +198,7 @@ describe('Queue', () => { }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); const { task: pendingTask } = queue.tasks.current; expect(pendingTask?.status).toBe('pending'); @@ -289,12 +289,12 @@ describe('Queue', () => { name: 'task', key: 'k', handler: async () => { - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); return 'result'; }, }); - await new Promise(r => setTimeout(r, 5)); + await new Promise((r) => setTimeout(r, 5)); const { task: pendingTask } = queue.tasks.current; expect(pendingTask?.status).toBe('pending'); @@ -319,12 +319,12 @@ describe('Queue', () => { name: 'task', key: 'k', handler: async () => { - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); throw error; }, }); - await new Promise(r => setTimeout(r, 5)); + await new Promise((r) => setTimeout(r, 5)); const { task: pendingTask } = queue.tasks.current; expect(pendingTask?.status).toBe('pending'); @@ -354,7 +354,7 @@ describe('Queue', () => { }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); const { task: pendingTask } = queue.tasks.current; expect(pendingTask?.status).toBe('pending'); @@ -428,12 +428,12 @@ describe('Queue', () => { name: 'task', key: 'k', handler: async () => { - await new Promise(r => setTimeout(r, 50)); + await new Promise((r) => setTimeout(r, 50)); return 'result'; }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); const { task: beforeReset } = queue.tasks.current; expect(beforeReset?.status).toBe('pending'); @@ -508,12 +508,12 @@ describe('Queue', () => { name: 'pending', key: 'pending', handler: async () => { - await new Promise(r => setTimeout(r, 100)); + await new Promise((r) => setTimeout(r, 100)); return 'pending-done'; }, }); - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); expect(queue.tasks.current.settled?.status).toBe('success'); expect(queue.tasks.current.pending?.status).toBe('pending'); diff --git a/packages/store/src/core/tests/queue.types.test.ts b/packages/store/src/core/tests/queue.types.test.ts index 90c9e7ad..ae0171db 100644 --- a/packages/store/src/core/tests/queue.types.test.ts +++ b/packages/store/src/core/tests/queue.types.test.ts @@ -1,8 +1,6 @@ -import type { State } from '../state'; - import { describe, expectTypeOf, it } from 'vitest'; - import { createQueue } from '../queue'; +import type { State } from '../state'; describe('queue types', () => { describe('createQueue', () => { diff --git a/packages/store/src/core/tests/store.test.ts b/packages/store/src/core/tests/store.test.ts index 12ef3938..fd840ee8 100644 --- a/packages/store/src/core/tests/store.test.ts +++ b/packages/store/src/core/tests/store.test.ts @@ -261,7 +261,7 @@ describe('store', () => { expect.objectContaining({ source: 'user', reason: 'test', - }), + }) ); }); }); @@ -359,7 +359,7 @@ describe('store', () => { expect.objectContaining({ error: expect.any(Error), store, - }), + }) ); }); }); diff --git a/packages/store/src/core/tests/store.types.test.ts b/packages/store/src/core/tests/store.types.test.ts index 7b52efd5..b2587e9a 100644 --- a/packages/store/src/core/tests/store.types.test.ts +++ b/packages/store/src/core/tests/store.types.test.ts @@ -1,10 +1,8 @@ +import { describe, expectTypeOf, it } from 'vitest'; +import { createFeature } from '../feature'; import type { Queue } from '../queue'; import type { State } from '../state'; import type { InferStoreRequests, InferStoreState, InferStoreTarget, InferStoreTasks } from '../store'; - -import { describe, expectTypeOf, it } from 'vitest'; - -import { createFeature } from '../feature'; import { createStore } from '../store'; interface MockTarget { diff --git a/packages/store/src/core/tests/task.test.ts b/packages/store/src/core/tests/task.test.ts index 6f3733d5..e82aae6c 100644 --- a/packages/store/src/core/tests/task.test.ts +++ b/packages/store/src/core/tests/task.test.ts @@ -1,6 +1,5 @@ -import type { ErrorTask, PendingTask, SuccessTask, Task } from '../task'; - import { describe, expect, it } from 'vitest'; +import type { ErrorTask, PendingTask, SuccessTask, Task } from '../task'; import { isErrorTask, isPendingTask, isSettledTask, isSuccessTask } from '../task'; diff --git a/packages/store/src/core/tests/task.types.test.ts b/packages/store/src/core/tests/task.types.test.ts index 90d1cc85..11227923 100644 --- a/packages/store/src/core/tests/task.types.test.ts +++ b/packages/store/src/core/tests/task.types.test.ts @@ -1,6 +1,5 @@ -import type { ErrorTask, PendingTask, SuccessTask, Task } from '../task'; - import { describe, expectTypeOf, it } from 'vitest'; +import type { ErrorTask, PendingTask, SuccessTask, Task } from '../task'; import { isErrorTask, isPendingTask, isSettledTask, isSuccessTask } from '../task'; diff --git a/packages/store/src/lit/controllers/request-controller.ts b/packages/store/src/lit/controllers/request-controller.ts index 85b33e88..e06be764 100644 --- a/packages/store/src/lit/controllers/request-controller.ts +++ b/packages/store/src/lit/controllers/request-controller.ts @@ -1,9 +1,8 @@ import type { ReactiveController, ReactiveControllerHost } from '@lit/reactive-element'; +import { isNull } from '@videojs/utils/predicate'; import type { AnyStore, InferStoreRequests } from '../../core/store'; import type { StoreSource } from '../store-accessor'; -import { isNull } from '@videojs/utils/predicate'; - import { StoreAccessor } from '../store-accessor'; export type RequestControllerHost = ReactiveControllerHost & HTMLElement; @@ -33,10 +32,9 @@ export type RequestControllerHost = ReactiveControllerHost & HTMLElement; * } * ``` */ -export class RequestController< - Store extends AnyStore, - Name extends keyof InferStoreRequests, -> implements ReactiveController { +export class RequestController> + implements ReactiveController +{ readonly #accessor: StoreAccessor; readonly #name: Name; diff --git a/packages/store/src/lit/controllers/snapshot-controller.ts b/packages/store/src/lit/controllers/snapshot-controller.ts index c74deeea..1663107e 100644 --- a/packages/store/src/lit/controllers/snapshot-controller.ts +++ b/packages/store/src/lit/controllers/snapshot-controller.ts @@ -1,7 +1,6 @@ import type { ReactiveController, ReactiveControllerHost } from '@lit/reactive-element'; -import type { State } from '../../core/state'; - import { noop } from '@videojs/utils/function'; +import type { State } from '../../core/state'; export type SnapshotControllerHost = ReactiveControllerHost & HTMLElement; diff --git a/packages/store/src/lit/controllers/tasks-controller.ts b/packages/store/src/lit/controllers/tasks-controller.ts index 3b889c04..c7513973 100644 --- a/packages/store/src/lit/controllers/tasks-controller.ts +++ b/packages/store/src/lit/controllers/tasks-controller.ts @@ -1,9 +1,8 @@ import type { ReactiveController, ReactiveControllerHost } from '@lit/reactive-element'; -import type { AnyStore } from '../../core/store'; -import type { StoreSource } from '../store-accessor'; - import { noop } from '@videojs/utils/function'; import { isNull } from '@videojs/utils/predicate'; +import type { AnyStore } from '../../core/store'; +import type { StoreSource } from '../store-accessor'; import { StoreAccessor } from '../store-accessor'; @@ -45,7 +44,7 @@ export class TasksController implements ReactiveControll constructor(host: TasksControllerHost, source: StoreSource) { this.#host = host; - this.#accessor = new StoreAccessor(host, source, store => this.#connect(store)); + this.#accessor = new StoreAccessor(host, source, (store) => this.#connect(store)); host.addController(this); } diff --git a/packages/store/src/lit/create-store.ts b/packages/store/src/lit/create-store.ts index e72ae731..00a50559 100644 --- a/packages/store/src/lit/create-store.ts +++ b/packages/store/src/lit/create-store.ts @@ -1,5 +1,7 @@ import type { Context } from '@lit/context'; +import { ContextConsumer, createContext } from '@lit/context'; import type { ReactiveControllerHost, ReactiveElement } from '@lit/reactive-element'; +import { noop } from '@videojs/utils/function'; import type { Constructor } from '@videojs/utils/types'; import type { AnyFeature, @@ -11,19 +13,14 @@ import type { import type { TasksRecord } from '../core/queue'; import type { StoreConfig, StoreConsumer, StoreProvider } from '../core/store'; -import { ContextConsumer, createContext } from '@lit/context'; -import { noop } from '@videojs/utils/function'; - import { Store } from '../core/store'; import { RequestController as RequestControllerBase, TasksController as TasksControllerBase } from './controllers'; import { createStoreAttachMixin, createStoreMixin, createStoreProviderMixin } from './mixins'; export const contextKey = Symbol('@videojs/store'); -export interface CreateStoreConfig extends StoreConfig< - UnionFeatureTarget, - Features -> {} +export interface CreateStoreConfig + extends StoreConfig, Features> {} export type CreateStoreHost = ReactiveControllerHost & HTMLElement; @@ -107,7 +104,9 @@ export interface CreateStoreResult { * } * ``` */ - StateController: new (host: CreateStoreHost) => { + StateController: new ( + host: CreateStoreHost + ) => { value: UnionFeatureState; hostConnected: () => void; hostDisconnected: () => void; @@ -153,7 +152,9 @@ export interface CreateStoreResult { * } * ``` */ - TasksController: new (host: CreateStoreHost) => { + TasksController: new ( + host: CreateStoreHost + ) => { value: Readonly>>; hostConnected: () => void; hostDisconnected: () => void; @@ -200,7 +201,7 @@ export interface CreateStoreResult { * ``` */ export function createStore( - config: CreateStoreConfig, + config: CreateStoreConfig ): CreateStoreResult { type Target = UnionFeatureTarget; type State = UnionFeatureState; @@ -227,7 +228,7 @@ export function createStore( this.#consumer = new ContextConsumer(host, { context, subscribe: true, - callback: store => this.#connect(store), + callback: (store) => this.#connect(store), }); host.addController(this); } diff --git a/packages/store/src/lit/index.ts b/packages/store/src/lit/index.ts index 90bda696..c2bc6509 100644 --- a/packages/store/src/lit/index.ts +++ b/packages/store/src/lit/index.ts @@ -1,14 +1,11 @@ export type { AsyncStatus } from './controllers'; export { RequestController, SnapshotController, TasksController } from './controllers'; - +export type { CreateStoreConfig, CreateStoreHost, CreateStoreResult, contextKey } from './create-store'; // createStore factory (returns bound controllers) export { createStore } from './create-store'; -export type { contextKey, CreateStoreConfig, CreateStoreHost, CreateStoreResult } from './create-store'; // Mixin factories (for advanced use cases) export { createStoreAttachMixin, createStoreMixin, createStoreProviderMixin } from './mixins'; - +export type { StoreSource } from './store-accessor'; // StoreAccessor (for custom controllers) export { StoreAccessor, type StoreAccessorHost } from './store-accessor'; - -export type { StoreSource } from './store-accessor'; diff --git a/packages/store/src/lit/mixins/attach-mixin.ts b/packages/store/src/lit/mixins/attach-mixin.ts index 610691ca..417ea295 100644 --- a/packages/store/src/lit/mixins/attach-mixin.ts +++ b/packages/store/src/lit/mixins/attach-mixin.ts @@ -1,14 +1,13 @@ import type { Context } from '@lit/context'; -import type { ReactiveElement } from '@lit/reactive-element'; -import type { Constructor, Mixin } from '@videojs/utils/types'; -import type { AnyFeature, UnionFeatureTarget } from '../../core/feature'; -import type { Store, StoreConsumer } from '../../core/store'; - import { ContextConsumer } from '@lit/context'; +import type { ReactiveElement } from '@lit/reactive-element'; import { getSlottedElement, isHTMLMediaElement, listen, querySlot } from '@videojs/utils/dom'; import { Disposer } from '@videojs/utils/events'; import { noop } from '@videojs/utils/function'; import { isNull } from '@videojs/utils/predicate'; +import type { Constructor, Mixin } from '@videojs/utils/types'; +import type { AnyFeature, UnionFeatureTarget } from '../../core/feature'; +import type { Store, StoreConsumer } from '../../core/store'; /** * Creates a mixin that consumes a store from context and auto-attaches media elements. @@ -27,7 +26,7 @@ import { isNull } from '@videojs/utils/predicate'; * ``` */ export function createStoreAttachMixin( - context: Context, Features>>, + context: Context, Features>> ): Mixin> { type ConsumedStore = Store, Features>; diff --git a/packages/store/src/lit/mixins/combined-mixin.ts b/packages/store/src/lit/mixins/combined-mixin.ts index 6558e319..fe10bbad 100644 --- a/packages/store/src/lit/mixins/combined-mixin.ts +++ b/packages/store/src/lit/mixins/combined-mixin.ts @@ -27,7 +27,7 @@ import { createStoreProviderMixin } from './provider-mixin'; */ export function createStoreMixin( context: Context, Features>>, - factory: () => Store, Features>, + factory: () => Store, Features> ): Mixin> { const ProviderMixin = createStoreProviderMixin(context, factory); const AttachMixin = createStoreAttachMixin(context); diff --git a/packages/store/src/lit/mixins/provider-mixin.ts b/packages/store/src/lit/mixins/provider-mixin.ts index 43925302..3a23011a 100644 --- a/packages/store/src/lit/mixins/provider-mixin.ts +++ b/packages/store/src/lit/mixins/provider-mixin.ts @@ -1,11 +1,10 @@ import type { Context } from '@lit/context'; +import { ContextProvider } from '@lit/context'; import type { ReactiveElement } from '@lit/reactive-element'; +import { isNull } from '@videojs/utils/predicate'; import type { Constructor } from '@videojs/utils/types'; - import type { AnyFeature, UnionFeatureTarget } from '../../core/feature'; import type { Store, StoreProvider } from '../../core/store'; -import { ContextProvider } from '@lit/context'; -import { isNull } from '@videojs/utils/predicate'; /** * Creates a mixin that provides a store via context. @@ -30,7 +29,7 @@ import { isNull } from '@videojs/utils/predicate'; */ export function createStoreProviderMixin( context: Context, Features>>, - factory: () => Store, Features>, + factory: () => Store, Features> ): >(BaseClass: Base) => Base & Constructor> { type ProvidedStore = Store, Features>; diff --git a/packages/store/src/lit/mixins/tests/combined-mixin.test.ts b/packages/store/src/lit/mixins/tests/combined-mixin.test.ts index 17c49456..58312fd2 100644 --- a/packages/store/src/lit/mixins/tests/combined-mixin.test.ts +++ b/packages/store/src/lit/mixins/tests/combined-mixin.test.ts @@ -48,7 +48,7 @@ describe('createStoreMixin', () => { await el.updateComplete; // Wait for slotchange - await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); expect(el.store.target).toBe(video); }); @@ -71,7 +71,7 @@ describe('createStoreMixin', () => { await el.updateComplete; // Wait for attachment - await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); expect(el.store.target).toBe(video); }); @@ -96,7 +96,7 @@ describe('createStoreMixin', () => { await el.updateComplete; // Wait for slotchange - await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); expect(el.store.target).toBe(video); }); @@ -119,7 +119,7 @@ describe('createStoreMixin', () => { await el.updateComplete; // Wait for slotchange - await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); expect(el.store.target).toBe(audio); }); @@ -144,7 +144,7 @@ describe('createStoreMixin', () => { await el.updateComplete; // Wait for slotchange - await new Promise(resolve => requestAnimationFrame(resolve)); + await new Promise((resolve) => requestAnimationFrame(resolve)); // Should attach only the first one expect(el.store.target).toBe(video1); diff --git a/packages/store/src/lit/store-accessor.ts b/packages/store/src/lit/store-accessor.ts index 27a97989..3dad99ae 100644 --- a/packages/store/src/lit/store-accessor.ts +++ b/packages/store/src/lit/store-accessor.ts @@ -1,9 +1,8 @@ import type { Context } from '@lit/context'; -import type { ReactiveControllerHost } from '@lit/reactive-element'; -import type { AnyStore } from '../core/store'; - import { ContextConsumer } from '@lit/context'; +import type { ReactiveControllerHost } from '@lit/reactive-element'; import { noop } from '@videojs/utils/function'; +import type { AnyStore } from '../core/store'; import { isStore } from '../core/store'; /** A store instance or a context that provides one. */ @@ -46,7 +45,7 @@ export class StoreAccessor { this.#directStore = null; this.#consumer = new ContextConsumer(host, { context: source, - callback: store => this.#onAvailable(store), + callback: (store) => this.#onAvailable(store), subscribe: false, }); } diff --git a/packages/store/src/lit/tests/test-utils.ts b/packages/store/src/lit/tests/test-utils.ts index 5181db52..f89f6def 100644 --- a/packages/store/src/lit/tests/test-utils.ts +++ b/packages/store/src/lit/tests/test-utils.ts @@ -1,13 +1,10 @@ import type { ReactiveController, ReactiveControllerHost } from '@lit/reactive-element'; -import type { AnyFeature } from '../../core/feature'; -import type { Store } from '../../core/store'; - import { ReactiveElement } from '@lit/reactive-element'; - import { noop } from '@videojs/utils/function'; import { afterEach } from 'vitest'; - +import type { AnyFeature } from '../../core/feature'; import { createFeature } from '../../core/feature'; +import type { Store } from '../../core/store'; import { createStore as createCoreStore } from '../../core/store'; import { createStore as createLitStore } from '../create-store'; @@ -67,7 +64,7 @@ export const audioFeature = createFeature()({ return muted; }, slowSetVolume: async (volume: number, { target }): Promise => { - await new Promise(resolve => setTimeout(resolve, 50)); + await new Promise((resolve) => setTimeout(resolve, 50)); target.volume = volume; target.dispatchEvent(new Event('volumechange')); return volume; @@ -94,7 +91,7 @@ export const customKeyFeature = createFeature()({ adjustVolume: { key: 'audio-settings', handler: async (volume: number, { target }): Promise => { - await new Promise(resolve => setTimeout(resolve, 20)); + await new Promise((resolve) => setTimeout(resolve, 20)); target.volume = volume; target.dispatchEvent(new Event('volumechange')); return volume; @@ -104,7 +101,7 @@ export const customKeyFeature = createFeature()({ toggleMute: { key: 'audio-settings', handler: async (muted: boolean, { target }): Promise => { - await new Promise(resolve => setTimeout(resolve, 20)); + await new Promise((resolve) => setTimeout(resolve, 20)); target.muted = muted; target.dispatchEvent(new Event('volumechange')); return muted; diff --git a/packages/store/src/react/context.tsx b/packages/store/src/react/context.tsx index f45208e0..d9ca27ff 100644 --- a/packages/store/src/react/context.tsx +++ b/packages/store/src/react/context.tsx @@ -1,9 +1,6 @@ -/* eslint-disable react-refresh/only-export-components */ - import type { ReactNode } from 'react'; -import type { AnyStore } from '../core/store'; - import { createContext, useContext } from 'react'; +import type { AnyStore } from '../core/store'; /** * Internal shared context for store instances. diff --git a/packages/store/src/react/create-store.tsx b/packages/store/src/react/create-store.tsx index b415bdd1..087bbead 100644 --- a/packages/store/src/react/create-store.tsx +++ b/packages/store/src/react/create-store.tsx @@ -1,12 +1,16 @@ +import { isNull, isUndefined } from '@videojs/utils/predicate'; import type { FC, ReactNode } from 'react'; -import type { AnyFeature, UnionFeatureRequests, UnionFeatureState, UnionFeatureTarget, UnionFeatureTasks } from '../core/feature'; +import { useEffect, useState } from 'react'; +import type { + AnyFeature, + UnionFeatureRequests, + UnionFeatureState, + UnionFeatureTarget, + UnionFeatureTasks, +} from '../core/feature'; import type { TasksRecord } from '../core/queue'; import type { StoreConfig } from '../core/store'; -import { isNull, isUndefined } from '@videojs/utils/predicate'; - -import { useEffect, useState } from 'react'; - import { Store } from '../core/store'; import { StoreContextProvider, useParentStore, useStoreContext } from './context'; import { useRequest as useRequestBase, useSnapshot as useSnapshotBase, useTasks as useTasksBase } from './hooks'; @@ -15,7 +19,8 @@ import { useRequest as useRequestBase, useSnapshot as useSnapshotBase, useTasks // Types // ---------------------------------------- -export interface CreateStoreConfig extends StoreConfig, Features> { +export interface CreateStoreConfig + extends StoreConfig, Features> { /** * Display name for React DevTools. */ @@ -93,7 +98,9 @@ export interface CreateStoreResult { * }); * ``` */ -export function createStore(config: CreateStoreConfig): CreateStoreResult { +export function createStore( + config: CreateStoreConfig +): CreateStoreResult { type Target = UnionFeatureTarget; type State = UnionFeatureState; type Requests = UnionFeatureRequests; diff --git a/packages/store/src/react/hooks/tests/test-utils.ts b/packages/store/src/react/hooks/tests/test-utils.ts index f62e5cf7..5a66a9e7 100644 --- a/packages/store/src/react/hooks/tests/test-utils.ts +++ b/packages/store/src/react/hooks/tests/test-utils.ts @@ -73,7 +73,7 @@ export const asyncAudioFeature = createFeature()({ }, slowSetVolume: { handler: async (volume: number, { target }) => { - await new Promise(resolve => setTimeout(resolve, 50)); + await new Promise((resolve) => setTimeout(resolve, 50)); target.volume = volume; target.dispatchEvent(new Event('volumechange')); return volume; @@ -87,7 +87,7 @@ export const asyncAudioFeature = createFeature()({ }, failingSetVolume: { handler: async () => { - await new Promise(resolve => setTimeout(resolve, 10)); + await new Promise((resolve) => setTimeout(resolve, 10)); throw new Error('Test error'); }, }, @@ -125,7 +125,7 @@ export const customKeyFeature = createFeature()({ adjustVolume: { key: 'audio-settings', handler: async (volume: number, { target }): Promise => { - await new Promise(resolve => setTimeout(resolve, 20)); + await new Promise((resolve) => setTimeout(resolve, 20)); target.volume = volume; target.dispatchEvent(new Event('volumechange')); return volume; @@ -135,7 +135,7 @@ export const customKeyFeature = createFeature()({ toggleMute: { key: 'audio-settings', handler: async (muted: boolean, { target }): Promise => { - await new Promise(resolve => setTimeout(resolve, 20)); + await new Promise((resolve) => setTimeout(resolve, 20)); target.muted = muted; target.dispatchEvent(new Event('volumechange')); return muted; diff --git a/packages/store/src/react/hooks/use-request.ts b/packages/store/src/react/hooks/use-request.ts index 0041e074..c2bba5d6 100644 --- a/packages/store/src/react/hooks/use-request.ts +++ b/packages/store/src/react/hooks/use-request.ts @@ -1,6 +1,5 @@ -import type { AnyStore, InferStoreRequests } from '../../core/store'; - import { isUndefined } from '@videojs/utils/predicate'; +import type { AnyStore, InferStoreRequests } from '../../core/store'; /** * Access the store's request methods. @@ -27,12 +26,11 @@ import { isUndefined } from '@videojs/utils/predicate'; export function useRequest(store: S): InferStoreRequests; export function useRequest>( store: S, - name: Name, + name: Name ): InferStoreRequests[Name]; -// eslint-disable-next-line react/no-unnecessary-use-prefix export function useRequest>( store: S, - name?: Name, + name?: Name ): InferStoreRequests | InferStoreRequests[Name] { const request = store.request as InferStoreRequests; diff --git a/packages/store/src/react/hooks/use-snapshot.ts b/packages/store/src/react/hooks/use-snapshot.ts index 317d15f3..0cd50e56 100644 --- a/packages/store/src/react/hooks/use-snapshot.ts +++ b/packages/store/src/react/hooks/use-snapshot.ts @@ -1,6 +1,5 @@ -import type { State } from '../../core/state'; - import { useSyncExternalStore } from 'react'; +import type { State } from '../../core/state'; /** * Subscribe to state and re-render when state changes. @@ -15,9 +14,9 @@ import { useSyncExternalStore } from 'react'; */ export function useSnapshot(state: State): T { return useSyncExternalStore( - onStoreChange => state.subscribe(onStoreChange), - () => state.current, + (onStoreChange) => state.subscribe(onStoreChange), () => state.current, + () => state.current ); } diff --git a/packages/store/src/react/index.ts b/packages/store/src/react/index.ts index 7f908660..c93f9d48 100644 --- a/packages/store/src/react/index.ts +++ b/packages/store/src/react/index.ts @@ -1,6 +1,5 @@ export { useStoreContext } from './context'; - -export { createStore } from './create-store'; export type { CreateStoreConfig, CreateStoreResult, ProviderProps } from './create-store'; +export { createStore } from './create-store'; export { useRequest, useSnapshot, useTasks } from './hooks'; diff --git a/packages/store/src/react/tests/context.test.tsx b/packages/store/src/react/tests/context.test.tsx index 2ea23dc8..6014657f 100644 --- a/packages/store/src/react/tests/context.test.tsx +++ b/packages/store/src/react/tests/context.test.tsx @@ -1,6 +1,5 @@ -import type { ReactNode } from 'react'; - import { renderHook } from '@testing-library/react'; +import type { ReactNode } from 'react'; import { describe, expect, it } from 'vitest'; diff --git a/packages/store/src/react/tests/create-store.test.tsx b/packages/store/src/react/tests/create-store.test.tsx index b2722af5..cb8afe66 100644 --- a/packages/store/src/react/tests/create-store.test.tsx +++ b/packages/store/src/react/tests/create-store.test.tsx @@ -1,6 +1,5 @@ -import type { ReactNode } from 'react'; - import { act, renderHook } from '@testing-library/react'; +import type { ReactNode } from 'react'; import { describe, expect, it } from 'vitest'; diff --git a/packages/store/vitest.config.ts b/packages/store/vitest.config.ts index 6b8f6f7b..75d9ecef 100644 --- a/packages/store/vitest.config.ts +++ b/packages/store/vitest.config.ts @@ -2,7 +2,7 @@ import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { - onConsoleLog: log => !log.includes('Lit is in dev mode'), + onConsoleLog: (log) => !log.includes('Lit is in dev mode'), projects: [ { extends: true, diff --git a/packages/utils/src/array/tests/uniq-by.test.ts b/packages/utils/src/array/tests/uniq-by.test.ts index 48bc41d0..9d14fa33 100644 --- a/packages/utils/src/array/tests/uniq-by.test.ts +++ b/packages/utils/src/array/tests/uniq-by.test.ts @@ -10,7 +10,7 @@ describe('uniqBy', () => { { id: 'a', v: 3 }, ]; - const result = uniqBy(arr, item => item.id); + const result = uniqBy(arr, (item) => item.id); expect(result).toEqual([ { id: 'b', v: 2 }, @@ -19,14 +19,14 @@ describe('uniqBy', () => { }); it('returns empty array for empty input', () => { - const result = uniqBy([], item => item); + const result = uniqBy([], (item) => item); expect(result).toEqual([]); }); it('returns same array when no duplicates', () => { const arr = [{ id: 'a' }, { id: 'b' }, { id: 'c' }]; - const result = uniqBy(arr, item => item.id); + const result = uniqBy(arr, (item) => item.id); expect(result).toEqual(arr); }); @@ -34,7 +34,7 @@ describe('uniqBy', () => { it('works with primitive values', () => { const arr = [1, 2, 3, 2, 1]; - const result = uniqBy(arr, item => item); + const result = uniqBy(arr, (item) => item); expect(result).toEqual([3, 2, 1]); }); @@ -48,7 +48,7 @@ describe('uniqBy', () => { { id: 'y', order: 5 }, ]; - const result = uniqBy(arr, item => item.id); + const result = uniqBy(arr, (item) => item.id); expect(result).toEqual([ { id: 'z', order: 3 }, diff --git a/packages/utils/src/dom/event.ts b/packages/utils/src/dom/event.ts index 9382257d..2ec57303 100644 --- a/packages/utils/src/dom/event.ts +++ b/packages/utils/src/dom/event.ts @@ -18,25 +18,25 @@ export interface OnEventOptions extends AddEventListenerOptions { export function onEvent( target: HTMLMediaElement, type: K, - options?: OnEventOptions, + options?: OnEventOptions ): Promise; export function onEvent( target: HTMLElement, type: K, - options?: OnEventOptions, + options?: OnEventOptions ): Promise; export function onEvent( target: Window, type: K, - options?: OnEventOptions, + options?: OnEventOptions ): Promise; export function onEvent( target: Document, type: K, - options?: OnEventOptions, + options?: OnEventOptions ): Promise; export function onEvent(target: EventTarget, type: string, options?: OnEventOptions): Promise; @@ -63,7 +63,7 @@ export function onEvent(target: EventTarget, type: string, options?: OnEventOpti options?.signal?.removeEventListener('abort', handleAbort); resolve(event); }, - { ...options, once: true }, + { ...options, once: true } ); }); } diff --git a/packages/utils/src/dom/index.ts b/packages/utils/src/dom/index.ts index c335d69e..3921b1fe 100644 --- a/packages/utils/src/dom/index.ts +++ b/packages/utils/src/dom/index.ts @@ -1,5 +1,5 @@ export { animationFrame } from './animation-frame'; -export { onEvent, type OnEventOptions } from './event'; +export { type OnEventOptions, onEvent } from './event'; export { idleCallback } from './idle-callback'; export { listen } from './listen'; export { isHTMLAudioElement, isHTMLMediaElement, isHTMLVideoElement } from './predicates'; diff --git a/packages/utils/src/dom/listen.ts b/packages/utils/src/dom/listen.ts index 24aa1ca7..f617052d 100644 --- a/packages/utils/src/dom/listen.ts +++ b/packages/utils/src/dom/listen.ts @@ -11,42 +11,42 @@ export function listen( target: HTMLMediaElement, type: K, listener: (event: HTMLMediaElementEventMap[K]) => void, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void; export function listen( target: HTMLElement, type: K, listener: (event: HTMLElementEventMap[K]) => void, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void; export function listen( target: Window, type: K, listener: (event: WindowEventMap[K]) => void, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void; export function listen( target: Document, type: K, listener: (event: DocumentEventMap[K]) => void, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void; export function listen( target: EventTarget, type: string, listener: EventListenerOrEventListenerObject, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void; export function listen( target: EventTarget, type: string, listener: EventListenerOrEventListenerObject, - options?: AddEventListenerOptions, + options?: AddEventListenerOptions ): () => void { target.addEventListener(type, listener, options); return () => target.removeEventListener(type, listener, options); diff --git a/packages/utils/src/dom/slotted.ts b/packages/utils/src/dom/slotted.ts index ec7fab4c..10e0df71 100644 --- a/packages/utils/src/dom/slotted.ts +++ b/packages/utils/src/dom/slotted.ts @@ -21,7 +21,7 @@ import type { Falsy } from '../types'; export function getSlottedElement( shadowRoot: ShadowRoot, slotName: string, - predicate: (el: Element) => Falsy, + predicate: (el: Element) => Falsy ): T | null { const slot = querySlot(shadowRoot, slotName); if (!slot) return null; diff --git a/packages/utils/src/dom/tests/event.test.ts b/packages/utils/src/dom/tests/event.test.ts index ae88deee..bd495306 100644 --- a/packages/utils/src/dom/tests/event.test.ts +++ b/packages/utils/src/dom/tests/event.test.ts @@ -97,7 +97,7 @@ describe('onEvent', () => { passive: true, capture: true, once: true, - }), + }) ); }); diff --git a/packages/utils/src/dom/tests/idle-callback.test.ts b/packages/utils/src/dom/tests/idle-callback.test.ts index 4b35f1f8..28977bf5 100644 --- a/packages/utils/src/dom/tests/idle-callback.test.ts +++ b/packages/utils/src/dom/tests/idle-callback.test.ts @@ -33,7 +33,7 @@ describe('idleCallback', () => { expect.objectContaining({ didTimeout: expect.any(Boolean), timeRemaining: expect.any(Function), - }), + }) ); }); diff --git a/packages/utils/src/dom/tests/slotted.test.ts b/packages/utils/src/dom/tests/slotted.test.ts index e039b834..2ff23474 100644 --- a/packages/utils/src/dom/tests/slotted.test.ts +++ b/packages/utils/src/dom/tests/slotted.test.ts @@ -36,7 +36,7 @@ describe('getSlottedElement', () => { const video = document.createElement('video'); host.appendChild(video); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBe(video); }); @@ -48,7 +48,7 @@ describe('getSlottedElement', () => { host.appendChild(video1); host.appendChild(video2); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBe(video1); }); @@ -58,7 +58,7 @@ describe('getSlottedElement', () => { const span = document.createElement('span'); host.appendChild(span); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBeNull(); }); @@ -66,7 +66,7 @@ describe('getSlottedElement', () => { it('returns null when slot is empty', () => { const host = createHost(); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBeNull(); }); @@ -76,7 +76,7 @@ describe('getSlottedElement', () => { const div = document.createElement('div'); host.appendChild(div); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : false)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : false)); expect(result).toBeNull(); }); @@ -88,7 +88,7 @@ describe('getSlottedElement', () => { const isMedia = (el: Element): el is HTMLMediaElement => el instanceof HTMLMediaElement; - const result = getSlottedElement(host.shadowRoot!, '', el => (isMedia(el) ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (isMedia(el) ? el : null)); expect(result).toBe(video); expect(result?.play).toBeDefined(); @@ -119,7 +119,7 @@ describe('getSlottedElement', () => { video.slot = 'media'; host.appendChild(video); - const result = getSlottedElement(host.shadowRoot!, 'media', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, 'media', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBe(video); }); @@ -130,7 +130,7 @@ describe('getSlottedElement', () => { // No slot attribute - goes to default slot host.appendChild(video); - const result = getSlottedElement(host.shadowRoot!, 'media', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, 'media', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBeNull(); }); @@ -141,8 +141,9 @@ describe('getSlottedElement', () => { video.slot = 'nonexistent'; host.appendChild(video); - const result = getSlottedElement(host.shadowRoot!, 'nonexistent', el => - el instanceof HTMLVideoElement ? el : null); + const result = getSlottedElement(host.shadowRoot!, 'nonexistent', (el) => + el instanceof HTMLVideoElement ? el : null + ); expect(result).toBeNull(); }); @@ -167,7 +168,7 @@ describe('getSlottedElement', () => { const video = document.createElement('video'); host.appendChild(video); - const result = getSlottedElement(host.shadowRoot!, '', el => (el instanceof HTMLVideoElement ? el : null)); + const result = getSlottedElement(host.shadowRoot!, '', (el) => (el instanceof HTMLVideoElement ? el : null)); expect(result).toBeNull(); }); diff --git a/packages/utils/src/dom/types.ts b/packages/utils/src/dom/types.ts index cf890273..815954fa 100644 --- a/packages/utils/src/dom/types.ts +++ b/packages/utils/src/dom/types.ts @@ -1,4 +1,3 @@ -/* eslint-disable ts/method-signature-style */ // Method syntax is required here for TypeScript's class inheritance checking. // Using property syntax (e.g., `connectedCallback?: () => void`) causes TS2425 // when a class extends a generic mixin that defines lifecycle callbacks. @@ -8,7 +7,6 @@ export interface CustomElementCallbacks { adoptedCallback?(): void; attributeChangedCallback?(name: string, oldValue: string | null, newValue: string | null): void; } -/* eslint-enable ts/method-signature-style */ export interface CustomElement extends HTMLElement, CustomElementCallbacks {} diff --git a/packages/utils/src/events/disposer.ts b/packages/utils/src/events/disposer.ts index e7cf7323..3f47ecea 100644 --- a/packages/utils/src/events/disposer.ts +++ b/packages/utils/src/events/disposer.ts @@ -42,7 +42,7 @@ export class Disposer { } async disposeAsync(): Promise { - await Promise.all([...this.#cleanups].map(cleanup => cleanup())); + await Promise.all([...this.#cleanups].map((cleanup) => cleanup())); this.#cleanups.clear(); } } diff --git a/packages/utils/src/events/tests/disposer.test.ts b/packages/utils/src/events/tests/disposer.test.ts index 7fcd19f0..26831778 100644 --- a/packages/utils/src/events/tests/disposer.test.ts +++ b/packages/utils/src/events/tests/disposer.test.ts @@ -152,7 +152,7 @@ describe('disposer', () => { results.push(1); }); disposer.add(async () => { - await new Promise(r => setTimeout(r, 10)); + await new Promise((r) => setTimeout(r, 10)); results.push(2); }); disposer.add(() => { diff --git a/packages/utils/src/events/tests/event-like.test.ts b/packages/utils/src/events/tests/event-like.test.ts index 13872154..d9d576ae 100644 --- a/packages/utils/src/events/tests/event-like.test.ts +++ b/packages/utils/src/events/tests/event-like.test.ts @@ -17,7 +17,7 @@ describe('event-like', () => { timeStamp: 123, isTrusted: true, target: null, - }), + }) ).toBe(true); }); diff --git a/packages/utils/src/function/compose-callbacks.ts b/packages/utils/src/function/compose-callbacks.ts index e8900f35..5b25ff5d 100644 --- a/packages/utils/src/function/compose-callbacks.ts +++ b/packages/utils/src/function/compose-callbacks.ts @@ -18,6 +18,6 @@ export function composeCallbacks void>(...fns: (T if (defined.length === 1) return defined[0]; return ((...args: Parameters) => { - defined.forEach(fn => fn(...args)); + defined.forEach((fn) => fn(...args)); }) as T; } diff --git a/packages/utils/src/function/try-catch.ts b/packages/utils/src/function/try-catch.ts index 0f65a1df..0c942b41 100644 --- a/packages/utils/src/function/try-catch.ts +++ b/packages/utils/src/function/try-catch.ts @@ -9,7 +9,7 @@ */ export function tryCatch unknown>( fn: T | undefined, - onError: (error: unknown) => void = console.error, + onError: (error: unknown) => void = console.error ): T | undefined { if (!fn) return undefined; diff --git a/packages/utils/src/object/pick.ts b/packages/utils/src/object/pick.ts index 35757119..83cd73ec 100644 --- a/packages/utils/src/object/pick.ts +++ b/packages/utils/src/object/pick.ts @@ -9,7 +9,7 @@ export function pick, K extends keyof T>(obj: const result = {} as Pick; for (const key of keys) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { + if (Object.hasOwn(obj, key)) { result[key] = obj[key]; } } diff --git a/packages/utils/src/predicate/tests/predicate.test.ts b/packages/utils/src/predicate/tests/predicate.test.ts index a96ca5c0..a79117c7 100644 --- a/packages/utils/src/predicate/tests/predicate.test.ts +++ b/packages/utils/src/predicate/tests/predicate.test.ts @@ -134,7 +134,6 @@ describe('predicate', () => { describe('isPromise', () => { it('returns true for promises', () => { expect(isPromise(Promise.resolve())).toBe(true); - // eslint-disable-next-line prefer-promise-reject-errors expect(isPromise(Promise.reject().catch(() => {}))).toBe(true); expect(isPromise(new Promise(() => {}))).toBe(true); }); @@ -167,7 +166,6 @@ describe('predicate', () => { expect(isObject('string')).toBe(false); expect(isObject(123)).toBe(false); expect(isObject(true)).toBe(false); - // eslint-disable-next-line symbol-description expect(isObject(Symbol())).toBe(false); }); @@ -204,7 +202,6 @@ describe('predicate', () => { expect(isPlainObject('string')).toBe(false); expect(isPlainObject(123)).toBe(false); expect(isPlainObject(true)).toBe(false); - // eslint-disable-next-line symbol-description expect(isPlainObject(Symbol())).toBe(false); }); diff --git a/packages/utils/src/types/types.ts b/packages/utils/src/types/types.ts index 4f49830a..7492effa 100644 --- a/packages/utils/src/types/types.ts +++ b/packages/utils/src/types/types.ts @@ -4,9 +4,9 @@ export type Constructor = new (...args: export type AbstractConstructor = abstract new (...args: Arguments) => T; -export type AnyConstructor - = | Constructor - | AbstractConstructor; +export type AnyConstructor = + | Constructor + | AbstractConstructor; export type Mixin = >(Base: T) => T & Constructor; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 241012ef..bfe83430 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,9 @@ importers: .: devDependencies: - '@antfu/eslint-config': - specifier: ^6.2.0 - version: 6.7.1(@eslint-react/eslint-plugin@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@next/eslint-plugin-next@16.0.8)(@prettier/plugin-xml@3.4.2(prettier@3.7.4))(@vue/compiler-sfc@3.5.25)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.5.0(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-format@1.1.0(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-react-refresh@0.4.25(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier-plugin-astro@0.14.1)(typescript@5.9.3)(vitest@3.2.4) + '@biomejs/biome': + specifier: ^2.3.11 + version: 2.3.11 '@commitlint/cli': specifier: ^20.1.0 version: 20.2.0(@types/node@22.19.3)(typescript@5.9.3) @@ -20,48 +20,12 @@ importers: '@commitlint/format': specifier: ^20.0.0 version: 20.2.0 - '@eslint-react/eslint-plugin': - specifier: ^2.3.5 - version: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint/eslintrc': - specifier: ^3.3.1 - version: 3.3.3 - '@ianvs/prettier-plugin-sort-imports': - specifier: ^4.7.0 - version: 4.7.0(@vue/compiler-sfc@3.5.25)(prettier@3.7.4) - '@prettier/plugin-xml': - specifier: ^3.4.2 - version: 3.4.2(prettier@3.7.4) '@types/node': specifier: ^22.18.6 version: 22.19.3 - eslint: - specifier: ^9.39.1 - version: 9.39.2(jiti@2.6.1) - eslint-plugin-astro: - specifier: ^1.5.0 - version: 1.5.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-format: - specifier: ^1.0.2 - version: 1.1.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: - specifier: ^6.10.2 - version: 6.10.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-hooks: - specifier: ^7.0.1 - version: 7.0.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-refresh: - specifier: ^0.4.24 - version: 0.4.25(eslint@9.39.2(jiti@2.6.1)) lint-staged: specifier: ^16.2.3 version: 16.2.7 - prettier: - specifier: ^3.6.2 - version: 3.7.4 - prettier-plugin-astro: - specifier: ^0.14.1 - version: 0.14.1 react: specifier: ^18.0.0 version: 18.3.1 @@ -482,64 +446,6 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@antfu/eslint-config@6.7.1': - resolution: {integrity: sha512-+8GIMmOfrtAVXoqVK9sfovAlHPkp35ilntqZ6XloO/Rty36gOxaa8dvwCh8/eqwwIsloA/hDJo3Ef95TRbdyEg==} - hasBin: true - peerDependencies: - '@eslint-react/eslint-plugin': ^2.0.1 - '@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 - 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.4.19 - 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: - '@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==} - '@apm-js-collab/code-transformer@0.8.2': resolution: {integrity: sha512-YRjJjNq5KFSjDUoqu5pFUWrrsvGOxl6c3bu+uMFc9HNNptZ2rNU/TI2nLw4jnhQNtka972Ee2m3uqbvDQtPeCA==} @@ -718,16 +624,67 @@ packages: resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} engines: {node: '>=18'} + '@biomejs/biome@2.3.11': + resolution: {integrity: sha512-/zt+6qazBWguPG6+eWmiELqO+9jRsMZ/DBU3lfuU2ngtIQYzymocHhKiZRyrbra4aCOoyTg/BmY+6WH5mv9xmQ==} + engines: {node: '>=14.21.3'} + hasBin: true + + '@biomejs/cli-darwin-arm64@2.3.11': + resolution: {integrity: sha512-/uXXkBcPKVQY7rc9Ys2CrlirBJYbpESEDme7RKiBD6MmqR2w3j0+ZZXRIL2xiaNPsIMMNhP1YnA+jRRxoOAFrA==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [darwin] + + '@biomejs/cli-darwin-x64@2.3.11': + resolution: {integrity: sha512-fh7nnvbweDPm2xEmFjfmq7zSUiox88plgdHF9OIW4i99WnXrAC3o2P3ag9judoUMv8FCSUnlwJCM1B64nO5Fbg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [darwin] + + '@biomejs/cli-linux-arm64-musl@2.3.11': + resolution: {integrity: sha512-XPSQ+XIPZMLaZ6zveQdwNjbX+QdROEd1zPgMwD47zvHV+tCGB88VH+aynyGxAHdzL+Tm/+DtKST5SECs4iwCLg==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@biomejs/cli-linux-arm64@2.3.11': + resolution: {integrity: sha512-l4xkGa9E7Uc0/05qU2lMYfN1H+fzzkHgaJoy98wO+b/7Gl78srbCRRgwYSW+BTLixTBrM6Ede5NSBwt7rd/i6g==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@biomejs/cli-linux-x64-musl@2.3.11': + resolution: {integrity: sha512-vU7a8wLs5C9yJ4CB8a44r12aXYb8yYgBn+WeyzbMjaCMklzCv1oXr8x+VEyWodgJt9bDmhiaW/I0RHbn7rsNmw==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@biomejs/cli-linux-x64@2.3.11': + resolution: {integrity: sha512-/1s9V/H3cSe0r0Mv/Z8JryF5x9ywRxywomqZVLHAoa/uN0eY7F8gEngWKNS5vbbN/BsfpCG5yeBT5ENh50Frxg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@biomejs/cli-win32-arm64@2.3.11': + resolution: {integrity: sha512-PZQ6ElCOnkYapSsysiTy0+fYX+agXPlWugh6+eQ6uPKI3vKAqNp6TnMhoM3oY2NltSB89hz59o8xIfOdyhi9Iw==} + engines: {node: '>=14.21.3'} + cpu: [arm64] + os: [win32] + + '@biomejs/cli-win32-x64@2.3.11': + resolution: {integrity: sha512-43VrG813EW+b5+YbDbz31uUsheX+qFKCpXeY9kfdAx+ww3naKxeVkTD9zLIWxUPfJquANMHrmW3wbe/037G0Qg==} + engines: {node: '>=14.21.3'} + cpu: [x64] + os: [win32] + '@capsizecss/unpack@3.0.1': resolution: {integrity: sha512-8XqW8xGn++Eqqbz3e9wKuK7mxryeRjs4LOHLxbh2lwKeSbuNR4NFifDZT4KzvjU6HMOPbiNTsWpniK5EJfTWkg==} engines: {node: '>=18'} - '@clack/core@0.5.0': - resolution: {integrity: sha512-p3y0FIOwaYRUPRcMO7+dlmLh8PSRcrjuTndsiA0WAFbWES0mLZlrjVoBRZ9DzkPFJZG6KGkJmoEAY0ZcVWTkow==} - - '@clack/prompts@0.11.0': - resolution: {integrity: sha512-pMN5FcrEw9hUkZA4f+zLlzivQSeQf5dRGJjSUbvVYDLvpKCdQx5OaknvKzgbtXOizhP+SJJJjqEbOe55uKKfAw==} - '@commitlint/cli@20.2.0': resolution: {integrity: sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA==} engines: {node: '>=v18'} @@ -831,15 +788,6 @@ packages: resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} engines: {node: '>=18'} - '@dprint/formatter@0.3.0': - resolution: {integrity: sha512-N9fxCxbaBOrDkteSOzaCqwWjso5iAe+WJPsHC021JfHNj2ThInPNEF13ORDKta3llq5D1TlclODCvOvipH7bWQ==} - - '@dprint/markdown@0.17.8': - resolution: {integrity: sha512-ukHFOg+RpG284aPdIg7iPrCYmMs3Dqy43S1ejybnwlJoFiW02b+6Bbr5cfZKFRYNP3dKGM86BqHEnMzBOyLvvA==} - - '@dprint/toml@0.6.4': - resolution: {integrity: sha512-bZXIUjxr0LIuHWshZr/5mtUkOrnh0NKVZEF6ACojW5z7zkJu7s9sV2mMXm8XQDqN4cJzdHYUYzUyEGdfciaLJA==} - '@emnapi/core@1.7.1': resolution: {integrity: sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==} @@ -849,18 +797,6 @@ packages: '@emnapi/wasi-threads@1.1.0': resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==} - '@es-joy/jsdoccomment@0.76.0': - resolution: {integrity: sha512-g+RihtzFgGTx2WYCuTHbdOXJeAlGnROws0TeALx9ow/ZmOROOZkVg5wp/B44n0WJgI4SQFP1eWM2iRPlU2Y14w==} - engines: {node: '>=20.11.0'} - - '@es-joy/jsdoccomment@0.78.0': - resolution: {integrity: sha512-rQkU5u8hNAq2NVRzHnIUUvR6arbO0b6AOlvpTNS48CkiKSn/xtNfOzBK23JE4SiW89DgvU7GtxLVgV4Vn2HBAw==} - engines: {node: '>=20.11.0'} - - '@es-joy/resolve.exports@1.2.0': - resolution: {integrity: sha512-Q9hjxWI5xBM+qW2enxfe8wDKdFWMfd0Z29k5ZJnuBqD/CasY5Zryj09aCA6owbGATWz+39p5uIdaHXpopOcG8g==} - engines: {node: '>=10'} - '@esbuild/aix-ppc64@0.25.12': resolution: {integrity: sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==} engines: {node: '>=18'} @@ -1173,102 +1109,6 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-plugin-eslint-comments@4.5.0': - resolution: {integrity: sha512-MAhuTKlr4y/CE3WYX26raZjy+I/kS2PLKSzvfmDCGrBLTFHOYwqROZdr4XwPgXwX3K9rjzMr4pSmUWGnzsUyMg==} - 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.0': - resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - - '@eslint-community/regexpp@4.12.2': - resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - '@eslint-react/ast@2.3.13': - resolution: {integrity: sha512-OP2rOhHYLx2nfd9uA9uACKZJN9z9rX9uuAMx4PjT75JNOdYr1GgqWQZcYCepyJ+gmVNCyiXcLXuyhavqxCSM8Q==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@eslint-react/core@2.3.13': - resolution: {integrity: sha512-4bWBE+1kApuxJKIrLJH2FuFtCbM4fXfDs6Ou8MNamGoX6hdynlntssvaMZTd/lk/L8dt01H/3btr7xBX4+4BNA==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@eslint-react/eff@2.3.13': - resolution: {integrity: sha512-byXsssozwh3VaiqcOonAKQgLXgpMVNSxBWFjdfbNhW7+NttorSt950qtiw+P7A9JoRab1OuGYk4MDY5UVBno8Q==} - engines: {node: '>=20.19.0'} - - '@eslint-react/eslint-plugin@2.3.13': - resolution: {integrity: sha512-gq0Z0wADAXvJS8Y/Wk3isK7WIEcfrQGGGdWvorAv0T7MxPd3d32TVwdc1Gx3hVLka3fYq1BBlQ5Fr8e1VgNuIg==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@eslint-react/shared@2.3.13': - resolution: {integrity: sha512-ESE7dVeOXtem3K6BD6k2wJaFt35kPtTT9SWCL99LFk7pym4OEGoMxPcyB2R7PMWiVudwl63BmiOgQOdaFYPONg==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@eslint-react/var@2.3.13': - resolution: {integrity: sha512-BozBfUZkzzobD6x/M8XERAnZQ3UvZPsD49zTGFKKU9M/bgsM78HwzxAPLkiu88W55v3sO/Kqf8fQTXT4VEeZ/g==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.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} - peerDependencies: - eslint: ^8.40 || 9 - peerDependenciesMeta: - eslint: - optional: true - - '@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-helpers@0.4.2': - resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} - 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/eslintrc@3.3.3': - resolution: {integrity: sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@9.39.2': - resolution: {integrity: sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@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/plugin-kit@0.4.1': - resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@floating-ui/core@1.7.3': resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} @@ -1284,40 +1124,6 @@ packages: '@floating-ui/utils@0.2.10': resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} - '@humanfs/core@0.19.1': - resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} - engines: {node: '>=18.18.0'} - - '@humanfs/node@0.16.7': - resolution: {integrity: sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==} - engines: {node: '>=18.18.0'} - - '@humanwhocodes/module-importer@1.0.1': - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - - '@humanwhocodes/retry@0.4.3': - resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} - engines: {node: '>=18.18'} - - '@ianvs/prettier-plugin-sort-imports@4.7.0': - resolution: {integrity: sha512-soa2bPUJAFruLL4z/CnMfSEKGznm5ebz29fIa9PxYtu8HHyLKNE1NXAs6dylfw1jn/ilEIfO2oLLN6uAafb7DA==} - peerDependencies: - '@prettier/plugin-oxc': ^0.0.4 - '@vue/compiler-sfc': 2.7.x || 3.x - content-tag: ^4.0.0 - prettier: 2 || 3 || ^4.0.0-0 - prettier-plugin-ember-template-tag: ^2.1.0 - peerDependenciesMeta: - '@prettier/plugin-oxc': - optional: true - '@vue/compiler-sfc': - optional: true - content-tag: - optional: true - prettier-plugin-ember-template-tag: - optional: true - '@img/colour@1.0.0': resolution: {integrity: sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==} engines: {node: '>=18'} @@ -1538,9 +1344,6 @@ packages: '@next/env@16.0.10': resolution: {integrity: sha512-8tuaQkyDVgeONQ1MeT9Mkk8pQmZapMKFh5B+OrFUlG3rVmYTXcXlBetBgTurKXGaIZvkoqRT9JL5K3phXcgang==} - '@next/eslint-plugin-next@16.0.8': - resolution: {integrity: sha512-1miV0qXDcLUaOdHridVPCh4i39ElRIAraseVIbb3BEqyZ5ol9sPyjTP/GNTPV5rBxqxjF6/vv5zQTVbhiNaLqA==} - '@next/swc-darwin-arm64@16.0.10': resolution: {integrity: sha512-4XgdKtdVsaflErz+B5XeG0T5PeXKDdruDf3CRpnhN+8UebNa5N2H58+3GDgpn/9GBurrQ1uWW768FfscwYkJRg==} engines: {node: '>= 10'} @@ -1593,18 +1396,6 @@ packages: cpu: [x64] os: [win32] - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@open-wc/context-protocol@0.0.9': resolution: {integrity: sha512-3mMJ16BbRqFaZNR7ongBJEEvAjZFBpo5qUtc2dk/rlk3k09AVRp2Dcldu5VTB0r/tsWdfExbRLlCw/8f3cD/kQ==} @@ -1893,18 +1684,9 @@ packages: resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@polka/url@1.0.0-next.29': resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} - '@prettier/plugin-xml@3.4.2': - resolution: {integrity: sha512-/UyNlHfkuLXG6Ed85KB0WBF283xn2yavR+UtRibBRUcvEJId2DSLdGXwJ/cDa1X++SWDPzq3+GSFniHjkNy7yg==} - peerDependencies: - prettier: ^3.0.0 - '@prisma/instrumentation@6.19.0': resolution: {integrity: sha512-QcuYy25pkXM8BJ37wVFBO7Zh34nyRV1GOb2n3lPkkbRYfl4hWl3PTcImP41P0KrzVXfa/45p6eVCos27x3exIg==} peerDependencies: @@ -2280,16 +2062,6 @@ packages: '@shikijs/vscode-textmate@10.0.2': resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} - '@sindresorhus/base62@1.0.0': - resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} - engines: {node: '>=18'} - - '@stylistic/eslint-plugin@5.6.1': - resolution: {integrity: sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=9.0.0' - '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} engines: {node: '>=14'} @@ -2557,9 +2329,6 @@ packages: '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} @@ -2619,65 +2388,6 @@ packages: '@types/unist@3.0.3': resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - '@typescript-eslint/eslint-plugin@8.49.0': - resolution: {integrity: sha512-JXij0vzIaTtCwu6SxTh8qBc66kmf1xs7pI4UOiMDFVct6q86G0Zs7KRcEoJgY3Cav3x5Tq0MF5jwgpgLqgKG3A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.49.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/parser@8.49.0': - resolution: {integrity: sha512-N9lBGA9o9aqb1hVMc9hzySbhKibHmB+N3IpoShyV6HyQYRGIhlrO5rQgttypi+yEeKsKI4idxC8Jw6gXKD4THA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/project-service@8.49.0': - resolution: {integrity: sha512-/wJN0/DKkmRUMXjZUXYZpD1NEQzQAAn9QWfGwo+Ai8gnzqH7tvqS7oNVdTjKqOcPyVIdZdyCMoqN66Ia789e7g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/scope-manager@8.49.0': - resolution: {integrity: sha512-npgS3zi+/30KSOkXNs0LQXtsg9ekZ8OISAOLGWA/ZOEn0ZH74Ginfl7foziV8DT+D98WfQ5Kopwqb/PZOaIJGg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/tsconfig-utils@8.49.0': - resolution: {integrity: sha512-8prixNi1/6nawsRYxet4YOhnbW+W9FK/bQPxsGB1D3ZrDzbJ5FXw5XmzxZv82X3B+ZccuSxo/X8q9nQ+mFecWA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/type-utils@8.49.0': - resolution: {integrity: sha512-KTExJfQ+svY8I10P4HdxKzWsvtVnsuCifU5MvXrRwoP2KOlNZ9ADNEWWsQTJgMxLzS5VLQKDjkCT/YzgsnqmZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/types@8.49.0': - resolution: {integrity: sha512-e9k/fneezorUo6WShlQpMxXh8/8wfyc+biu6tnAqA81oWrEic0k21RHzP9uqqpyBBeBKu4T+Bsjy9/b8u7obXQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@typescript-eslint/typescript-estree@8.49.0': - resolution: {integrity: sha512-jrLdRuAbPfPIdYNppHJ/D0wN+wwNfJ32YTAm10eJVsFmrVpXQnDWBn8niCSMlWjvml8jsce5E/O+86IQtTbJWA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/utils@8.49.0': - resolution: {integrity: sha512-N3W7rJw7Rw+z1tRsHZbK395TWSYvufBXumYtEGzypgMUthlg0/hmCImeA8hgO2d2G4pd7ftpxxul2J8OdtdaFA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - '@typescript-eslint/visitor-keys@8.49.0': - resolution: {integrity: sha512-LlKaciDe3GmZFphXIc79THF/YYBugZ7FS1pO581E/edlVVNbZKDy93evqmrfQ9/Y4uN0vVhX4iuchq26mK/iiA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@ungap/structured-clone@1.3.0': resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} @@ -2749,19 +2459,6 @@ packages: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.5.2': - resolution: {integrity: sha512-2t1F2iecXB/b1Ox4U137lhD3chihEE3dRVtu3qMD35tc6UqUjg1VGRJoS1AkFKwpT8zv8OQInzPQO06hrRkeqw==} - 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==} @@ -2796,24 +2493,6 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@vue/compiler-core@3.5.25': - resolution: {integrity: sha512-vay5/oQJdsNHmliWoZfHPoVZZRmnSWhug0BYT34njkYTPqClh3DNWLkZNJBVSjsNMrg0CCrBfoKkjZQPM/QVUw==} - - '@vue/compiler-dom@3.5.25': - resolution: {integrity: sha512-4We0OAcMZsKgYoGlMjzYvaoErltdFI2/25wqanuTu+S4gismOTRTBPi4IASOjxWdzIwrYSjnqONfKvuqkXzE2Q==} - - '@vue/compiler-sfc@3.5.25': - resolution: {integrity: sha512-PUgKp2rn8fFsI++lF2sO7gwO2d9Yj57Utr5yEsDf3GNaQcowCLKL7sf+LvVFvtJDXUp/03+dC6f2+LCv5aK1ag==} - - '@vue/compiler-ssr@3.5.25': - resolution: {integrity: sha512-ritPSKLBcParnsKYi+GNtbdbrIE1mtuFEJ4U1sWeuOMlIziK5GtOL85t5RhsNy4uWIXPgk+OUdpnXiTdzn8o3A==} - - '@vue/shared@3.5.25': - resolution: {integrity: sha512-AbOPdQQnAnzs58H2FrrDxYj/TJfmeS2jdfEEhgiKINy+bnOANmVizIEgq1r+C5zsbs6l1CCQxtcj71rwNQ4jWg==} - - '@xml-tools/parser@1.0.11': - resolution: {integrity: sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==} - JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -2886,10 +2565,6 @@ packages: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - are-docs-informative@0.0.2: - resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==} - engines: {node: '>=14'} - arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} @@ -2903,32 +2578,12 @@ packages: resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} engines: {node: '>= 0.4'} - array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} - array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - array-includes@3.1.9: - resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} - engines: {node: '>= 0.4'} - array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - array.prototype.flat@1.3.3: - resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} - engines: {node: '>= 0.4'} - - array.prototype.flatmap@1.3.3: - resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} - engines: {node: '>= 0.4'} - - arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} - assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -2937,9 +2592,6 @@ packages: resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} engines: {node: '>=20.19.0'} - ast-types-flow@0.0.8: - resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} - ast-v8-to-istanbul@0.3.8: resolution: {integrity: sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==} @@ -2947,36 +2599,14 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro-eslint-parser@1.2.2: - resolution: {integrity: sha512-JepyLROIad6f44uyqMF6HKE2QbunNzp3mYKRcPoDGt0QkxXmH222FAFC64WTyQu2Kg8NNEXHTN/sWuUId9sSxw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - astro@5.16.5: resolution: {integrity: sha512-QeuM4xzTR0QuXFDNlGVW0BW7rcquKFIkylaPeM4ufii0/RRiPTYtwxDYVZ3KfiMRuuc+nbLD0214kMKTvz/yvQ==} engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - astrojs-compiler-sync@1.1.1: - resolution: {integrity: sha512-0mKvB9sDQRIZPsEJadw6OaFbGJ92cJPPR++ICca9XEyiUAZqgVuk25jNmzHPT0KF80rI94trSZrUR5iHFXGGOQ==} - engines: {node: ^18.18.0 || >=20.9.0} - peerDependencies: - '@astrojs/compiler': '>=0.27.0' - - async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} - async-sema@3.1.1: resolution: {integrity: sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==} - available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} - - axe-core@4.11.0: - resolution: {integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==} - engines: {node: '>=4'} - axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} @@ -3010,9 +2640,6 @@ packages: bindings@1.5.0: resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} - birecord@0.1.1: - resolution: {integrity: sha512-VUpsf/qykW0heRlC8LooCq28Kxn3mAqKohhDG/49rrsQ1dT1CXyj/pgXS+5BSRzFTR/3DyIBOqQOrGyZOh71Aw==} - birpc@2.9.0: resolution: {integrity: sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw==} @@ -3023,9 +2650,6 @@ packages: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - brace-expansion@2.0.2: resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} @@ -3041,26 +2665,10 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - builtin-modules@5.0.0: - resolution: {integrity: sha512-bkXY9WsVpY7CvMhKSR6pZilZu9Ln5WDrKVBUXf2S443etkmEO4V58heTecXcUIsNsi4Rx8JUO4NfX1IcQl4deg==} - engines: {node: '>=18.20'} - cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -3091,9 +2699,6 @@ packages: resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - change-case@5.4.4: - resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} - character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -3110,9 +2715,6 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} - chevrotain@7.1.1: - resolution: {integrity: sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -3132,10 +2734,6 @@ packages: cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} - clean-regexp@1.0.0: - resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} - engines: {node: '>=4'} - cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} @@ -3195,28 +2793,12 @@ packages: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} - comment-parser@1.4.1: - resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} - engines: {node: '>= 12.0.0'} - common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - compare-versions@6.1.1: - resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} - - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - - confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} - - confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} - consola@3.4.2: resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==} engines: {node: ^14.18.0 || >=16.10.0} @@ -3244,9 +2826,6 @@ packages: resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==} engines: {node: '>=18'} - core-js-compat@3.47.0: - resolution: {integrity: sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==} - cosmiconfig-typescript-loader@6.2.0: resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==} engines: {node: '>=v18'} @@ -3322,9 +2901,6 @@ packages: csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} - damerau-levenshtein@1.0.8: - resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dargs@8.1.0: resolution: {integrity: sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==} engines: {node: '>=12'} @@ -3341,18 +2917,6 @@ packages: resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==} engines: {node: '>=20'} - data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} - - data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} - - data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} - debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -3372,21 +2936,10 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - - define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - defu@6.1.4: resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} @@ -3419,10 +2972,6 @@ packages: dfa@1.2.0: resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} - 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@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} @@ -3477,10 +3026,6 @@ packages: oxc-resolver: optional: true - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} - eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -3523,37 +3068,9 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-abstract@1.24.1: - resolution: {integrity: sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==} - engines: {node: '>= 0.4'} - - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} - es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} - - es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} - - es-shim-unscopables@1.1.0: - resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} - engines: {node: '>= 0.4'} - - es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} - esast-util-from-estree@2.0.0: resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} @@ -3574,280 +3091,10 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} - - escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} - escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-compat-utils@0.5.1: - resolution: {integrity: sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-compat-utils@0.6.5: - resolution: {integrity: sha512-vAUHYzue4YAa2hNACjB8HvUQj5yehAZgiClyFVVom9cP8z5NSFq3PwB/TtJslN2zAMgRX6FCFCjYBbQh71g5RQ==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=6.0.0' - - eslint-config-flat-gitignore@2.1.0: - resolution: {integrity: sha512-cJzNJ7L+psWp5mXM7jBX+fjHtBvvh06RBlcweMhKD8jWqQw0G78hOW5tpVALGHGFPsBV+ot2H+pdDGJy6CV8pA==} - peerDependencies: - eslint: ^9.5.0 - - eslint-flat-config-utils@2.1.4: - resolution: {integrity: sha512-bEnmU5gqzS+4O+id9vrbP43vByjF+8KOs+QuuV4OlqAuXmnRW2zfI/Rza1fQvdihQ5h4DUo0NqFAiViD4mSrzQ==} - - eslint-formatting-reporter@0.0.0: - resolution: {integrity: sha512-k9RdyTqxqN/wNYVaTk/ds5B5rA8lgoAmvceYN7bcZMBwU7TuXx5ntewJv81eF3pIL/CiJE+pJZm36llG8yhyyw==} - peerDependencies: - eslint: '>=8.40.0' - - eslint-json-compat-utils@0.2.1: - resolution: {integrity: sha512-YzEodbDyW8DX8bImKhAcCeu/L31Dd/70Bidx2Qex9OFUtgzXLqtfWL4Hr5fM/aCCB8QUZLuJur0S9k6UfgFkfg==} - engines: {node: '>=12'} - peerDependencies: - '@eslint/json': '*' - eslint: '*' - jsonc-eslint-parser: ^2.4.0 - peerDependenciesMeta: - '@eslint/json': - 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.1.1: - resolution: {integrity: sha512-7Q+NhwLfHJFvopI2HBZbSxWXngTwBLKxW1AGXLr2lEGxcEIK/AsDs8pn8fvIizl5aZjBbVbVK5ujmMpBe4Tvdg==} - peerDependencies: - eslint: '*' - - eslint-plugin-astro@1.5.0: - resolution: {integrity: sha512-IWy4kY3DKTJxd7g652zIWpBGFuxw7NIIt16kyqc8BlhnIKvI8yGJj+Maua0DiNYED3F/D8AmzoTTTA6A95WX9g==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.57.0' - - eslint-plugin-command@3.4.0: - resolution: {integrity: sha512-EW4eg/a7TKEhG0s5IEti72kh3YOTlnhfFNuctq5WnB1fst37/IHTd5OkD+vnlRf3opTvUcSRihAateP6bT5ZcA==} - peerDependencies: - eslint: '*' - - 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@1.1.0: - resolution: {integrity: sha512-zjGPZcftddkO9GydBwvTKBV4ICN6a++XK0zIPi3HZHlU8W9EaftTA3XAanJvGAXQUYEqAADtgQi08SX+afbPrg==} - peerDependencies: - eslint: ^8.40.0 || ^9.0.0 - - eslint-plugin-import-lite@0.3.0: - resolution: {integrity: sha512-dkNBAL6jcoCsXZsQ/Tt2yXmMDoNt5NaBh/U7yvccjiK8cai6Ay+MK77bMykmqQA2bTF6lngaLCDij6MTO3KkvA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=9.0.0' - typescript: '>=4.5' - peerDependenciesMeta: - typescript: - optional: true - - eslint-plugin-jsdoc@61.5.0: - resolution: {integrity: sha512-PR81eOGq4S7diVnV9xzFSBE4CDENRQGP0Lckkek8AdHtbj+6Bm0cItwlFnxsLFriJHspiE3mpu8U20eODyToIg==} - engines: {node: '>=20.11.0'} - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - - eslint-plugin-jsonc@2.21.0: - resolution: {integrity: sha512-HttlxdNG5ly3YjP1cFMP62R4qKLxJURfBZo2gnMY+yQojZxkLyOpY1H1KRTKBmvQeSG9pIpSGEhDjE17vvYosg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - eslint-plugin-jsx-a11y@6.10.2: - resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} - engines: {node: '>=4.0'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - - eslint-plugin-n@17.23.1: - resolution: {integrity: sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.23.0' - - eslint-plugin-no-only-tests@3.3.0: - resolution: {integrity: sha512-brcKcxGnISN2CcVhXJ/kEQlNa0MEfGRtwKtWA16SkqXHKitaKIMrfemJKLKX1YqDU5C/5JY3PvZXd5jEW04e0Q==} - engines: {node: '>=5.0.0'} - - eslint-plugin-perfectionist@4.15.1: - resolution: {integrity: sha512-MHF0cBoOG0XyBf7G0EAFCuJJu4I18wy0zAoT1OHfx2o6EOx1EFTIzr2HGeuZa1kDcusoX0xJ9V7oZmaeFd773Q==} - engines: {node: ^18.0.0 || >=20.0.0} - peerDependencies: - eslint: '>=8.45.0' - - eslint-plugin-pnpm@1.4.3: - resolution: {integrity: sha512-wdWrkWN5mxRgEADkQvxwv0xA+0++/hYDD5OyXTL6UqPLUPdcCFQJO61NO7IKhEqb3GclWs02OoFs1METN+a3zQ==} - peerDependencies: - eslint: ^9.0.0 - - eslint-plugin-react-dom@2.3.13: - resolution: {integrity: sha512-O9jglTOnnuyfJcSxjeVc8lqIp5kuS9/0MLLCHlOTH8ZjIifHHxUr6GZ2fd4la9y0FsoEYXEO7DBIMjWx2vCwjg==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - eslint-plugin-react-hooks-extra@2.3.13: - resolution: {integrity: sha512-NSnY8yvtrvu2FAALLuvc2xesIAkMqGyJgilpy8wEi1w/Nw6v0IwBEffoNKLq9OHW4v3nikud3aBTqWfWKOx67Q==} - engines: {node: '>=20.0.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.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@2.3.13: - resolution: {integrity: sha512-2iler1ldFpB/PaNpN8WAVk6dKYKwKcoGm1j0JAAjdCrsfOTJ007ol2xTAyoHKAbMOvkZSi7qq90q+Q//RuhWwA==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - eslint-plugin-react-refresh@0.4.25: - resolution: {integrity: sha512-dRUD2LOdEqI4zXHqbQ442blQAzdSuShAaiSq5Vtyy6LT08YUf0oOjBDo4VPx0dCPgiPWh1WB4dtbLOd0kOlDPQ==} - deprecated: This version introduced false positive. This was reverted in 0.4.26 - peerDependencies: - eslint: '>=8.40' - - eslint-plugin-react-web-api@2.3.13: - resolution: {integrity: sha512-+UypRPHP9GFMulIENpsC/J+TygWywiyz2mb4qyUP6y/IwdcSilk1MyF9WquNYKB/4/FN4Rl1oRm6WMbfkbpMnQ==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - eslint-plugin-react-x@2.3.13: - resolution: {integrity: sha512-+m+V/5VLMxgx0VsFUUyflMNLQG0WFYspsfv0XJFqx7me3A2b3P20QatNDHQCYswz0PRbRFqinTPukPRhZh68ag==} - engines: {node: '>=20.19.0'} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <6.0.0' - - eslint-plugin-regexp@2.10.0: - resolution: {integrity: sha512-ovzQT8ESVn5oOe5a7gIDPD5v9bCSjIFJu57sVPDqgPRXicQzOnYfFN21WoQBQF18vrhT5o7UMKFwJQVVjyJ0ng==} - engines: {node: ^18 || >=20} - peerDependencies: - eslint: '>=8.44.0' - - eslint-plugin-toml@0.12.0: - resolution: {integrity: sha512-+/wVObA9DVhwZB1nG83D2OAQRrcQZXy+drqUnFJKymqnmbnbfg/UPmEMCKrJNcEboUGxUjYrJlgy+/Y930mURQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.0' - - eslint-plugin-unicorn@62.0.0: - resolution: {integrity: sha512-HIlIkGLkvf29YEiS/ImuDZQbP12gWyx5i3C6XrRxMvVdqMroCI9qoVYCoIl17ChN+U89pn9sVwLxhIWj5nEc7g==} - engines: {node: ^20.10.0 || >=21.0.0} - peerDependencies: - eslint: '>=9.38.0' - - eslint-plugin-unused-imports@4.3.0: - resolution: {integrity: sha512-ZFBmXMGBYfHttdRtOG9nFFpmUvMtbHSjsKrS20vdWdbfiVYsO3yA2SGYy9i9XmZJDfMGBflZGBCm70SEnFQtOA==} - peerDependencies: - '@typescript-eslint/eslint-plugin': ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 - eslint: ^9.0.0 || ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - - eslint-plugin-vue@10.6.2: - resolution: {integrity: sha512-nA5yUs/B1KmKzvC42fyD0+l9Yd+LtEpVhWRbXuDj0e+ZURcTtyRbMDWUeJmTAh2wC6jC83raS63anNM2YT3NPw==} - 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 - vue-eslint-parser: ^10.0.0 - peerDependenciesMeta: - '@stylistic/eslint-plugin': - optional: true - '@typescript-eslint/parser': - optional: true - - eslint-plugin-yml@1.19.0: - resolution: {integrity: sha512-S+4GbcCWksFKAvFJtf0vpdiCkZZvDJCV4Zsi9ahmYkYOYcf+LRqqzvzkb/ST7vTYV6sFwXOvawzYyL/jFT2nQA==} - engines: {node: ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: '>=6.0.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@8.4.0: - resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - 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} - - eslint-visitor-keys@4.2.1: - resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint@9.39.2: - resolution: {integrity: sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - hasBin: true - peerDependencies: - jiti: '*' - peerDependenciesMeta: - jiti: - optional: true - - espree@10.4.0: - 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} - - esquery@1.6.0: - resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} - engines: {node: '>=0.10'} - - esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} - - estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} - estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} @@ -3872,10 +3119,6 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} - eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} @@ -3883,32 +3126,15 @@ packages: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==} engines: {node: '>=12.0.0'} - exsolve@1.0.8: - resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==} - extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} 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-glob@3.3.1: - resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} - engines: {node: '>=8.6.0'} - - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - fast-uri@3.1.0: resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} @@ -3916,12 +3142,6 @@ packages: resolution: {integrity: sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==} hasBin: true - fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} - - fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -3934,10 +3154,6 @@ packages: fflate@0.8.2: resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - file-entry-cache@8.0.0: - resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} - engines: {node: '>=16.0.0'} - file-uri-to-path@1.0.0: resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} @@ -3945,10 +3161,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -3957,10 +3169,6 @@ packages: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} engines: {node: '>=18'} - flat-cache@4.0.1: - resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} - engines: {node: '>=16'} - flatted@3.3.3: resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} @@ -3974,18 +3182,10 @@ packages: fontkit@2.0.4: resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} - for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} - foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} - forwarded-parse@2.1.2: resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} @@ -3997,20 +3197,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - - function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} - - functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - - generator-function@2.0.1: - resolution: {integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==} - engines: {node: '>= 0.4'} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -4023,18 +3209,6 @@ packages: resolution: {integrity: sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==} engines: {node: '>=18'} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - - get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} - get-tsconfig@4.13.0: resolution: {integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==} @@ -4050,10 +3224,6 @@ packages: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - glob-parent@6.0.2: - resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} - engines: {node: '>=10.13.0'} - glob@10.5.0: resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} hasBin: true @@ -4067,65 +3237,16 @@ packages: resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==} engines: {node: '>=18'} - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - - globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} - - globals@16.5.0: - resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} - engines: {node: '>=18'} - - globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} - - globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - h3@1.15.4: resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} - has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} - has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - - has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} - - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - - has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} - - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} - hast-util-from-html@2.0.3: resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} @@ -4162,12 +3283,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hls.js@1.6.15: resolution: {integrity: sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==} @@ -4178,9 +3293,6 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - html-entities@2.6.0: - resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} - html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} @@ -4209,14 +3321,6 @@ packages: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} - - ignore@7.0.5: - resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} - engines: {node: '>= 4'} - import-fresh@3.3.1: resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} engines: {node: '>=6'} @@ -4227,18 +3331,10 @@ packages: import-meta-resolve@4.2.0: resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - imurmurhash@0.1.4: - resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} - engines: {node: '>=0.8.19'} - indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - indent-string@5.0.0: - resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} - engines: {node: '>=12'} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -4253,10 +3349,6 @@ packages: inline-style-parser@0.2.7: resolution: {integrity: sha512-Nb2ctOyNR8DqQoR0OwRG95uNWIC0C1lCgf5Naz5H6Ji72KZ8OcFZLz2P5sNgwlyoJ8Yif11oMuYs5pBQa86csA==} - internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} - iron-webcrypto@1.2.1: resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} @@ -4266,45 +3358,13 @@ packages: is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} - - is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} - is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} - - is-builtin-module@5.0.0: - resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} - engines: {node: '>=18.20'} - - is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} - - is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} - - is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} - is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} @@ -4317,10 +3377,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} - is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} @@ -4329,10 +3385,6 @@ packages: resolution: {integrity: sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==} engines: {node: '>=18'} - is-generator-function@1.1.2: - resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==} - engines: {node: '>= 0.4'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -4340,29 +3392,11 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - is-immutable-type@5.0.1: - resolution: {integrity: sha512-LkHEOGVZZXxGl8vDs+10k3DvP++SEoYEAJLRk6buTFi6kD7QekThV7xHS0j6gpnUCQ0zpud/gMDGiV4dQneLTg==} - peerDependencies: - eslint: '*' - typescript: '>=4.7.4' - is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true - is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} - - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} - is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} @@ -4378,53 +3412,14 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} - - is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} - - is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} - - is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} - - is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} - is-text-path@2.0.0: resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==} engines: {node: '>=8'} - is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} - - is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} - - is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} - - is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} - is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} - isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -4461,18 +3456,6 @@ packages: resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} hasBin: true - jsdoc-type-pratt-parser@4.8.0: - resolution: {integrity: sha512-iZ8Bdb84lWRuGHamRXFyML07r21pcwBrLkHEuHgEY5UbCouBwv7ECknDRKzsQIXMiqpPymqtIf8TC/shYKB5rw==} - engines: {node: '>=12.0.0'} - - jsdoc-type-pratt-parser@6.10.0: - resolution: {integrity: sha512-+LexoTRyYui5iOhJGn13N9ZazL23nAHGkXsa1p/C8yeq79WRfLBag6ZZ0FQG2aRoc9yfo59JT9EYCQonOkHKkQ==} - engines: {node: '>=20.0.0'} - - jsdoc-type-pratt-parser@7.0.0: - resolution: {integrity: sha512-c7YbokssPOSHmqTbSAmTtnVgAVa/7lumWNYqomgd5KOMyPrRve2anx6lonfOsXEQacqF9FKVUj7bLg4vRSvdYA==} - engines: {node: '>=20.0.0'} - jsdom@26.1.0: resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==} engines: {node: '>=18'} @@ -4496,9 +3479,6 @@ packages: engines: {node: '>=6'} hasBin: true - json-buffer@3.0.1: - resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} - json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -4508,50 +3488,25 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-stable-stringify-without-jsonify@1.0.1: - resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 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} - jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} - just-debounce-it@3.2.0: resolution: {integrity: sha512-WXzwLL0745uNuedrCsCs3rpmfD6DBaf7uuVwaq98/8dafURfgQaBsSpjiPp5+CW6Vjltwy9cOGI6qE71b3T8iQ==} just-throttle@4.2.0: resolution: {integrity: sha512-/iAZv1953JcExpvsywaPKjSzfTiCLqeguUTE6+VmK15mOcwxBx7/FHrVvS4WEErMR03TRazH8kcBSHqMagYIYg==} - keyv@4.5.4: - resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - language-subtag-registry@0.3.23: - resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} - - language-tags@1.0.9: - resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} - engines: {node: '>=0.10'} - - levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} - lightningcss-android-arm64@1.30.2: resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} engines: {node: '>= 12.0.0'} @@ -4638,10 +3593,6 @@ packages: resolution: {integrity: sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==} engines: {node: '>=20.0.0'} - local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -4677,9 +3628,6 @@ packages: lodash.upperfirst@4.3.1: resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==} - lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - log-update@6.1.0: resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} engines: {node: '>=18'} @@ -4740,10 +3688,6 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} @@ -4753,9 +3697,6 @@ 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==} @@ -4811,16 +3752,9 @@ packages: resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==} engines: {node: '>=16.10'} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - micromark-core-commonmark@2.0.3: resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} - micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} - micromark-extension-gfm-autolink-literal@2.1.0: resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} @@ -4935,9 +3869,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} @@ -4957,9 +3888,6 @@ packages: resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==} engines: {node: '>= 18'} - mlly@1.8.0: - resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==} - module-details-from-path@1.0.4: resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} @@ -4987,13 +3915,6 @@ packages: resolution: {integrity: sha512-yJBmDJr18xy47dbNVlHcgdPrulSn1nhSE6Ns9vTG+Nx9VPT6iV1MD6aQFp/t52zpf82FhLLTXAXr30NuCnxvwA==} engines: {node: ^20.0.0 || >=22.0.0} - natural-compare@1.4.0: - resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - - natural-orderby@5.0.0: - resolution: {integrity: sha512-kKHJhxwpR/Okycz4HhQKKlhWe4ASEfPgkSWNmKFHd7+ezuQlxkA5cM3+XkBPvm1gmHen3w53qsYAv+8GwRrBlg==} - engines: {node: '>=18'} - neotraverse@0.6.18: resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} engines: {node: '>= 10'} @@ -5065,29 +3986,6 @@ packages: nwsapi@2.2.23: resolution: {integrity: sha512-7wfH4sLbt4M0gCDzGE6vzQBo0bfTKjU7Sfpqy/7gs1qBfYz2vEJH6vXcBKpO3+6Yu1telwd0t9HpyOoLEQQbIQ==} - object-deep-merge@2.0.0: - resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - - object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - - object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} - - object.fromentries@2.0.8: - resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} - engines: {node: '>= 0.4'} - - object.values@1.2.1: - resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} - engines: {node: '>= 0.4'} - obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} @@ -5110,14 +4008,6 @@ packages: oniguruma-to-es@4.3.4: resolution: {integrity: sha512-3VhUGN3w2eYxnTzHn+ikMI+fp/96KoRSVK9/kMTcFqj1NRDh2IhQCKvYxDnWePKRXY/AqH+Fuiyb7VHSzBjHfA==} - optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} - - own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} - p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -5162,13 +4052,6 @@ 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@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -5176,9 +4059,6 @@ packages: parse-latin@7.0.0: resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - parse-statements@1.0.11: - resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} - parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -5248,32 +4128,11 @@ packages: engines: {node: '>=0.10'} hasBin: true - pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - - pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} - - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - - pnpm-workspace-yaml@1.4.3: - resolution: {integrity: sha512-Q8B3SWuuISy/Ciag4DFP7MCrJX07wfaekcqD2o/msdIj4x8Ql3bZ/NEKOXV7mTVh7m1YdiFWiMi9xH+0zuEGHw==} - - possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} - postcss-prefix-selector@1.16.1: resolution: {integrity: sha512-Umxu+FvKMwlY6TyDzGFoSUnzW+NOfMBLyC1tAkIjgX+Z/qGspJeRjVC903D7mx7TuBpJlwti2ibXtWuA7fKMeQ==} peerDependencies: postcss: '>4 <9' - postcss-selector-parser@7.1.1: - resolution: {integrity: sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==} - engines: {node: '>=4'} - postcss@8.4.31: resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} engines: {node: ^10 || ^12 || >=14} @@ -5298,28 +4157,11 @@ packages: resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} engines: {node: '>=0.10.0'} - prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} - - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - - prettier-plugin-astro@0.14.1: - resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} - engines: {node: ^14.15.0 || >=16.0.0} - prettier@2.8.8: resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true - prettier@3.7.4: - resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==} - engines: {node: '>=14'} - hasBin: true - pretty-format@27.5.1: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} @@ -5346,15 +4188,9 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} - quansync@1.0.0: resolution: {integrity: sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA==} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - radix3@1.1.2: resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} @@ -5421,14 +4257,6 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - refa@0.12.1: - resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} - regex-recursion@6.0.2: resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} @@ -5438,25 +4266,6 @@ packages: regex@6.1.0: resolution: {integrity: sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg==} - regexp-ast-analysis@0.7.1: - resolution: {integrity: sha512-sZuz1dYW/ZsfG17WSAG7eS85r5a0dDsvg+7BiiYR5o6lKCAtUrEwdmRmaGF6rwVj3LcmAeYkOWKEPlbPzN3Y3A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - - regexp-to-ast@0.5.0: - resolution: {integrity: sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==} - - regexp-tree@0.1.27: - resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} - hasBin: true - - regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} - - regjsparser@0.13.0: - resolution: {integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==} - hasBin: true - rehype-parse@9.0.1: resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} @@ -5506,10 +4315,6 @@ 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-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -5540,10 +4345,6 @@ packages: retext@9.0.0: resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} - reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rfdc@1.4.1: resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} @@ -5579,30 +4380,9 @@ packages: rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - - s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - - safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} - - safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} - - safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} - safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-formatter@0.7.9: - resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - sax@1.4.3: resolution: {integrity: sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==} @@ -5619,10 +4399,6 @@ packages: schema-dts@1.1.5: resolution: {integrity: sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==} - scslre@0.3.0: - resolution: {integrity: sha512-3A6sD0WYP7+QrjbfNA2FN3FsOaGGFoekCVgTyypy53gPxhbkCIjtO6YWgdrfM+n/8sI8JeXZOIxsHjMTNxQ4nQ==} - engines: {node: ^14.0.0 || >=16.0.0} - semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -5632,18 +4408,6 @@ packages: engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - - set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} - - set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} - sharp@0.34.5: resolution: {integrity: sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5659,22 +4423,6 @@ packages: shiki@3.20.0: resolution: {integrity: sha512-kgCOlsnyWb+p0WU+01RjkCH+eBVsjL1jOwUYWv0YDWkM2/A46+LDKVs5yZCUXjJG6bj4ndFoAg5iLIIue6dulg==} - side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} - siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -5723,15 +4471,6 @@ packages: space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - - 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==} - split2@4.2.0: resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} engines: {node: '>= 10.x'} @@ -5742,10 +4481,6 @@ packages: std-env@3.10.0: resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} - stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} - stream-replace-string@2.0.0: resolution: {integrity: sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==} @@ -5753,9 +4488,6 @@ packages: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} - string-ts@2.3.1: - resolution: {integrity: sha512-xSJq+BS52SaFFAVxuStmx6n5aYZU571uYUnUrPXkPFCfdHyZMMlbP2v2Wx5sNBnAVzq/2+0+mcBLBa3Xa5ubYw==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5772,22 +4504,6 @@ packages: resolution: {integrity: sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==} engines: {node: '>=20'} - string.prototype.includes@2.0.1: - resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} - engines: {node: '>= 0.4'} - - string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} - - string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} - - string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} - stringify-entities@4.0.4: resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} @@ -5803,14 +4519,6 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - strip-indent@4.1.1: - resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} - engines: {node: '>=12'} - - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==} @@ -5836,9 +4544,6 @@ packages: babel-plugin-macros: optional: true - suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -5859,10 +4564,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} - engines: {node: ^14.18.0 || >=16.0.0} - tabbable@6.3.0: resolution: {integrity: sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==} @@ -5879,6 +4580,7 @@ packages: tar@7.5.2: resolution: {integrity: sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==} engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me test-exclude@7.0.1: resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} @@ -5938,14 +4640,6 @@ 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'} - - toml-eslint-parser@0.10.1: - resolution: {integrity: sha512-9mjy3frhioGIVGcwamlVlUyJ9x+WHw/TXiz9R4YOlmsIuBN43r9Dp8HZ35SF9EKjHrn3BUZj04CF+YqZ2oJ+7w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - totalist@3.0.1: resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} @@ -5979,20 +4673,6 @@ packages: trough@2.2.0: resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} - engines: {node: '>=18.12'} - peerDependencies: - typescript: '>=4.8.4' - - ts-declaration-location@1.0.7: - resolution: {integrity: sha512-EDyGAwH1gO0Ausm9gV6T2nUvBgXT5kGoCMJPllOaooZ+4VvJiKBdZE7wK18N1deEowhcUptS+5GXZK8U/fvpwA==} - peerDependencies: - typescript: '>=4.0.0' - - ts-pattern@5.9.0: - resolution: {integrity: sha512-6s5V71mX8qBUmlgbrfL33xDUwO0fq48rxAu2LBE11WBeGdpCPOsXksQbZJHvHwhrd3QjUusd3mAOM5Gg0mFBLg==} - tsconfck@3.1.6: resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} engines: {node: ^18 || >=20} @@ -6073,30 +4753,10 @@ packages: turndown@7.2.2: resolution: {integrity: sha512-1F7db8BiExOKxjSMU2b7if62D/XOyQyZbPKq/nUwopfgnHlqXHqQ0lvfUTeUIr1lZJzOPFn43dODyMSIfvWRKQ==} - type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} - type-fest@4.41.0: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} - - typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} - - typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} - - typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} - typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -6108,10 +4768,6 @@ packages: ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} - unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} - unconfig-core@7.4.2: resolution: {integrity: sha512-VgPCvLWugINbXvMQDf8Jh0mlbvNjNC6eSUziHsBCMpxR05OPrNrvDnyatdMjRgcHaaNsCqz+wjNXxNw1kRLHUg==} @@ -6249,9 +4905,6 @@ packages: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - vfile-location@5.0.3: resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} @@ -6382,12 +5035,6 @@ packages: jsdom: optional: true - vue-eslint-parser@10.2.0: - resolution: {integrity: sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - w3c-xmlserializer@5.0.0: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} @@ -6433,26 +5080,10 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} - - which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} - - which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} - which-pm-runs@1.1.0: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} - which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} - which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} @@ -6467,10 +5098,6 @@ packages: resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} engines: {node: '>=18'} - word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} - wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} @@ -6498,10 +5125,6 @@ packages: utf-8-validate: optional: true - xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - xml-name-validator@5.0.0: resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} engines: {node: '>=18'} @@ -6527,10 +5150,6 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml-eslint-parser@1.3.2: - resolution: {integrity: sha512-odxVsHAkZYYglR30aPYRY4nUGJnoJ2y1ww2HDvZALo0BDETv9kWbi16J52eHs+PWRNmF4ub6nZqfVOeesOvntg==} - engines: {node: ^14.17.0 || >=16.0.0} - yaml@2.8.2: resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==} engines: {node: '>= 14.6'} @@ -6571,18 +5190,9 @@ packages: typescript: ^4.9.4 || ^5.0.2 zod: ^3 - zod-validation-error@4.0.2: - resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} - zod@4.1.13: - resolution: {integrity: sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==} - zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -6597,68 +5207,6 @@ snapshots: '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 - '@antfu/eslint-config@6.7.1(@eslint-react/eslint-plugin@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(@next/eslint-plugin-next@16.0.8)(@prettier/plugin-xml@3.4.2(prettier@3.7.4))(@vue/compiler-sfc@3.5.25)(astro-eslint-parser@1.2.2)(eslint-plugin-astro@1.5.0(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-format@1.1.0(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)))(eslint-plugin-react-refresh@0.4.25(eslint@9.39.2(jiti@2.6.1)))(eslint@9.39.2(jiti@2.6.1))(prettier-plugin-astro@0.14.1)(typescript@5.9.3)(vitest@3.2.4)': - dependencies: - '@antfu/install-pkg': 1.1.0 - '@clack/prompts': 0.11.0 - '@eslint-community/eslint-plugin-eslint-comments': 4.5.0(eslint@9.39.2(jiti@2.6.1)) - '@eslint/markdown': 7.5.1 - '@stylistic/eslint-plugin': 5.6.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@vitest/eslint-plugin': 1.5.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4) - ansis: 4.2.0 - cac: 6.7.14 - eslint: 9.39.2(jiti@2.6.1) - eslint-config-flat-gitignore: 2.1.0(eslint@9.39.2(jiti@2.6.1)) - eslint-flat-config-utils: 2.1.4 - eslint-merge-processors: 2.0.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-antfu: 3.1.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-command: 3.4.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-import-lite: 0.3.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-jsdoc: 61.5.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsonc: 2.21.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-n: 17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-no-only-tests: 3.3.0 - eslint-plugin-perfectionist: 4.15.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-pnpm: 1.4.3(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-regexp: 2.10.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-toml: 0.12.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-unicorn: 62.0.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-unused-imports: 4.3.0(@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-vue: 10.6.2(@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))) - eslint-plugin-yml: 1.19.0(eslint@9.39.2(jiti@2.6.1)) - eslint-processor-vue-blocks: 2.0.0(@vue/compiler-sfc@3.5.25)(eslint@9.39.2(jiti@2.6.1)) - globals: 16.5.0 - jsonc-eslint-parser: 2.4.2 - local-pkg: 1.1.2 - parse-gitignore: 2.0.0 - toml-eslint-parser: 0.10.1 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)) - yaml-eslint-parser: 1.3.2 - optionalDependencies: - '@eslint-react/eslint-plugin': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@next/eslint-plugin-next': 16.0.8 - '@prettier/plugin-xml': 3.4.2(prettier@3.7.4) - astro-eslint-parser: 1.2.2 - eslint-plugin-astro: 1.5.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-format: 1.1.0(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-hooks: 7.0.1(eslint@9.39.2(jiti@2.6.1)) - eslint-plugin-react-refresh: 0.4.25(eslint@9.39.2(jiti@2.6.1)) - prettier-plugin-astro: 0.14.1 - transitivePeerDependencies: - - '@eslint/json' - - '@vue/compiler-sfc' - - supports-color - - typescript - - vitest - - '@antfu/install-pkg@1.1.0': - dependencies: - package-manager-detector: 1.6.0 - tinyexec: 1.0.2 - '@apm-js-collab/code-transformer@0.8.2': {} '@apm-js-collab/tracing-hooks@0.3.1': @@ -6960,21 +5508,45 @@ snapshots: '@bcoe/v8-coverage@1.0.2': {} + '@biomejs/biome@2.3.11': + optionalDependencies: + '@biomejs/cli-darwin-arm64': 2.3.11 + '@biomejs/cli-darwin-x64': 2.3.11 + '@biomejs/cli-linux-arm64': 2.3.11 + '@biomejs/cli-linux-arm64-musl': 2.3.11 + '@biomejs/cli-linux-x64': 2.3.11 + '@biomejs/cli-linux-x64-musl': 2.3.11 + '@biomejs/cli-win32-arm64': 2.3.11 + '@biomejs/cli-win32-x64': 2.3.11 + + '@biomejs/cli-darwin-arm64@2.3.11': + optional: true + + '@biomejs/cli-darwin-x64@2.3.11': + optional: true + + '@biomejs/cli-linux-arm64-musl@2.3.11': + optional: true + + '@biomejs/cli-linux-arm64@2.3.11': + optional: true + + '@biomejs/cli-linux-x64-musl@2.3.11': + optional: true + + '@biomejs/cli-linux-x64@2.3.11': + optional: true + + '@biomejs/cli-win32-arm64@2.3.11': + optional: true + + '@biomejs/cli-win32-x64@2.3.11': + optional: true + '@capsizecss/unpack@3.0.1': dependencies: fontkit: 2.0.4 - '@clack/core@0.5.0': - dependencies: - picocolors: 1.1.1 - sisteransi: 1.0.5 - - '@clack/prompts@0.11.0': - dependencies: - '@clack/core': 0.5.0 - picocolors: 1.1.1 - sisteransi: 1.0.5 - '@commitlint/cli@20.2.0(@types/node@22.19.3)(typescript@5.9.3)': dependencies: '@commitlint/format': 20.2.0 @@ -7109,12 +5681,6 @@ snapshots: '@csstools/css-tokenizer@3.0.4': {} - '@dprint/formatter@0.3.0': {} - - '@dprint/markdown@0.17.8': {} - - '@dprint/toml@0.6.4': {} - '@emnapi/core@1.7.1': dependencies: '@emnapi/wasi-threads': 1.1.0 @@ -7131,24 +5697,6 @@ snapshots: tslib: 2.8.1 optional: true - '@es-joy/jsdoccomment@0.76.0': - dependencies: - '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.49.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 6.10.0 - - '@es-joy/jsdoccomment@0.78.0': - dependencies: - '@types/estree': 1.0.8 - '@typescript-eslint/types': 8.49.0 - comment-parser: 1.4.1 - esquery: 1.6.0 - jsdoc-type-pratt-parser: 7.0.0 - - '@es-joy/resolve.exports@1.2.0': {} - '@esbuild/aix-ppc64@0.25.12': optional: true @@ -7305,151 +5853,6 @@ snapshots: '@esbuild/win32-x64@0.27.2': optional: true - '@eslint-community/eslint-plugin-eslint-comments@4.5.0(eslint@9.39.2(jiti@2.6.1))': - dependencies: - escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@2.6.1) - ignore: 5.3.2 - - '@eslint-community/eslint-utils@4.9.0(eslint@9.39.2(jiti@2.6.1))': - dependencies: - eslint: 9.39.2(jiti@2.6.1) - eslint-visitor-keys: 3.4.3 - - '@eslint-community/regexpp@4.12.2': {} - - '@eslint-react/ast@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 2.3.13 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - string-ts: 2.3.1 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@eslint-react/core@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - birecord: 0.1.1 - eslint: 9.39.2(jiti@2.6.1) - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@eslint-react/eff@2.3.13': {} - - '@eslint-react/eslint-plugin@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-react-dom: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-hooks-extra: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-naming-convention: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-web-api: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint-plugin-react-x: 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@eslint-react/shared@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/eff': 2.3.13 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - ts-pattern: 5.9.0 - typescript: 5.9.3 - zod: 4.1.13 - transitivePeerDependencies: - - supports-color - - '@eslint-react/var@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@eslint/compat@1.4.1(eslint@9.39.2(jiti@2.6.1))': - dependencies: - '@eslint/core': 0.17.0 - optionalDependencies: - eslint: 9.39.2(jiti@2.6.1) - - '@eslint/config-array@0.21.1': - dependencies: - '@eslint/object-schema': 2.1.7 - debug: 4.4.3 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - - '@eslint/config-helpers@0.4.2': - dependencies: - '@eslint/core': 0.17.0 - - '@eslint/core@0.17.0': - dependencies: - '@types/json-schema': 7.0.15 - - '@eslint/eslintrc@3.3.3': - dependencies: - ajv: 6.12.6 - debug: 4.4.3 - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.1.1 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@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/plugin-kit@0.4.1': - dependencies: - '@eslint/core': 0.17.0 - levn: 0.4.1 - '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -7467,30 +5870,6 @@ snapshots: '@floating-ui/utils@0.2.10': {} - '@humanfs/core@0.19.1': {} - - '@humanfs/node@0.16.7': - dependencies: - '@humanfs/core': 0.19.1 - '@humanwhocodes/retry': 0.4.3 - - '@humanwhocodes/module-importer@1.0.1': {} - - '@humanwhocodes/retry@0.4.3': {} - - '@ianvs/prettier-plugin-sort-imports@4.7.0(@vue/compiler-sfc@3.5.25)(prettier@3.7.4)': - dependencies: - '@babel/generator': 7.28.5 - '@babel/parser': 7.28.5 - '@babel/traverse': 7.28.5 - '@babel/types': 7.28.5 - prettier: 3.7.4 - semver: 7.7.3 - optionalDependencies: - '@vue/compiler-sfc': 3.5.25 - transitivePeerDependencies: - - supports-color - '@img/colour@1.0.0': {} '@img/sharp-darwin-arm64@0.34.5': @@ -7699,11 +6078,6 @@ snapshots: '@next/env@16.0.10': optional: true - '@next/eslint-plugin-next@16.0.8': - dependencies: - fast-glob: 3.3.1 - optional: true - '@next/swc-darwin-arm64@16.0.10': optional: true @@ -7728,18 +6102,6 @@ snapshots: '@next/swc-win32-x64-msvc@16.0.10': optional: true - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.1 - '@open-wc/context-protocol@0.0.9': {} '@opentelemetry/api-logs@0.208.0': @@ -8042,15 +6404,8 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@pkgr/core@0.2.9': {} - '@polka/url@1.0.0-next.29': {} - '@prettier/plugin-xml@3.4.2(prettier@3.7.4)': - dependencies: - '@xml-tools/parser': 1.0.11 - prettier: 3.7.4 - '@prisma/instrumentation@6.19.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -8391,18 +6746,6 @@ snapshots: '@shikijs/vscode-textmate@10.0.2': {} - '@sindresorhus/base62@1.0.0': {} - - '@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1))': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/types': 8.49.0 - eslint: 9.39.2(jiti@2.6.1) - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - estraverse: 5.3.0 - picomatch: 4.0.3 - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.28.5)': dependencies: '@babel/core': 7.28.5 @@ -8698,8 +7041,6 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/json-schema@7.0.15': {} - '@types/mdast@4.0.4': dependencies: '@types/unist': 3.0.3 @@ -8765,97 +7106,6 @@ snapshots: '@types/unist@3.0.3': {} - '@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.49.0 - eslint: 9.39.2(jiti@2.6.1) - ignore: 7.0.5 - natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - '@typescript-eslint/visitor-keys': 8.49.0 - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/project-service@8.49.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - debug: 4.4.3 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/scope-manager@8.49.0': - dependencies: - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/visitor-keys': 8.49.0 - - '@typescript-eslint/tsconfig-utils@8.49.0(typescript@5.9.3)': - dependencies: - typescript: 5.9.3 - - '@typescript-eslint/type-utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/types@8.49.0': {} - - '@typescript-eslint/typescript-estree@8.49.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/project-service': 8.49.0(typescript@5.9.3) - '@typescript-eslint/tsconfig-utils': 8.49.0(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/visitor-keys': 8.49.0 - debug: 4.4.3 - minimatch: 9.0.5 - semver: 7.7.3 - tinyglobby: 0.2.15 - ts-api-utils: 2.1.0(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)': - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/visitor-keys@8.49.0': - dependencies: - '@typescript-eslint/types': 8.49.0 - eslint-visitor-keys: 4.2.1 - '@ungap/structured-clone@1.3.0': {} '@vercel/analytics@1.6.1(next@16.0.10(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': @@ -8941,17 +7191,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.5.2(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3)(vitest@3.2.4)': - dependencies: - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - optionalDependencies: - typescript: 5.9.3 - vitest: 3.2.4(@types/debug@4.1.12)(@types/node@22.19.3)(@vitest/ui@3.2.4)(jiti@2.6.1)(jsdom@27.3.0(postcss@8.5.6))(lightningcss@1.30.2)(tsx@4.21.0)(yaml@2.8.2) - transitivePeerDependencies: - - supports-color - '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.3 @@ -9005,42 +7244,6 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 - '@vue/compiler-core@3.5.25': - dependencies: - '@babel/parser': 7.28.5 - '@vue/shared': 3.5.25 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.1 - - '@vue/compiler-dom@3.5.25': - dependencies: - '@vue/compiler-core': 3.5.25 - '@vue/shared': 3.5.25 - - '@vue/compiler-sfc@3.5.25': - dependencies: - '@babel/parser': 7.28.5 - '@vue/compiler-core': 3.5.25 - '@vue/compiler-dom': 3.5.25 - '@vue/compiler-ssr': 3.5.25 - '@vue/shared': 3.5.25 - 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.25': - dependencies: - '@vue/compiler-dom': 3.5.25 - '@vue/shared': 3.5.25 - - '@vue/shared@3.5.25': {} - - '@xml-tools/parser@1.0.11': - dependencies: - chevrotain: 7.1.1 - JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -9072,6 +7275,7 @@ snapshots: fast-json-stable-stringify: 2.1.0 json-schema-traverse: 0.4.1 uri-js: 4.4.1 + optional: true ajv@8.17.1: dependencies: @@ -9107,8 +7311,6 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - are-docs-informative@0.0.2: {} - arg@5.0.2: {} argparse@2.0.1: {} @@ -9119,50 +7321,10 @@ snapshots: aria-query@5.3.2: {} - array-buffer-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - is-array-buffer: 3.0.5 - array-ify@1.0.0: {} - array-includes@3.1.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - is-string: 1.1.1 - math-intrinsics: 1.1.0 - array-iterate@2.0.1: {} - array.prototype.flat@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 - - array.prototype.flatmap@1.3.3: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-shim-unscopables: 1.1.0 - - arraybuffer.prototype.slice@1.0.4: - dependencies: - array-buffer-byte-length: 1.0.2 - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - is-array-buffer: 3.0.5 - assertion-error@2.0.1: {} ast-kit@2.2.0: @@ -9170,8 +7332,6 @@ snapshots: '@babel/parser': 7.28.5 pathe: 2.0.3 - ast-types-flow@0.0.8: {} - ast-v8-to-istanbul@0.3.8: dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -9180,23 +7340,6 @@ snapshots: astring@1.9.0: {} - astro-eslint-parser@1.2.2: - dependencies: - '@astrojs/compiler': 2.13.0 - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - astrojs-compiler-sync: 1.1.1(@astrojs/compiler@2.13.0) - debug: 4.4.3 - entities: 6.0.1 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - fast-glob: 3.3.3 - is-glob: 4.0.3 - semver: 7.7.3 - transitivePeerDependencies: - - supports-color - astro@5.16.5(@types/node@22.19.3)(@vercel/functions@2.2.13)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.53.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): dependencies: '@astrojs/compiler': 2.13.0 @@ -9299,21 +7442,8 @@ snapshots: - uploadthing - yaml - astrojs-compiler-sync@1.1.1(@astrojs/compiler@2.13.0): - dependencies: - '@astrojs/compiler': 2.13.0 - synckit: 0.11.11 - - async-function@1.0.0: {} - async-sema@3.1.1: {} - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.1.0 - - axe-core@4.11.0: {} - axobject-query@4.1.0: {} babel-plugin-react-compiler@1.0.0: @@ -9340,8 +7470,6 @@ snapshots: dependencies: file-uri-to-path: 1.0.0 - birecord@0.1.1: {} - birpc@2.9.0: {} boolbase@1.0.0: {} @@ -9357,11 +7485,6 @@ snapshots: widest-line: 5.0.0 wrap-ansi: 9.0.2 - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - brace-expansion@2.0.2: dependencies: balanced-match: 1.0.2 @@ -9382,27 +7505,8 @@ snapshots: node-releases: 2.0.27 update-browserslist-db: 1.2.2(browserslist@4.28.1) - builtin-modules@5.0.0: {} - cac@6.7.14: {} - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bind@1.0.8: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - get-intrinsic: 1.3.0 - set-function-length: 1.2.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - callsites@3.1.0: {} camelcase@6.3.0: {} @@ -9428,8 +7532,6 @@ snapshots: chalk@5.6.2: {} - change-case@5.4.4: {} - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -9440,10 +7542,6 @@ snapshots: check-error@2.1.1: {} - chevrotain@7.1.1: - dependencies: - regexp-to-ast: 0.5.0 - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -9466,10 +7564,6 @@ snapshots: cjs-module-lexer@1.4.3: {} - clean-regexp@1.0.0: - dependencies: - escape-string-regexp: 1.0.5 - cli-boxes@3.0.0: {} cli-cursor@5.0.0: @@ -9514,8 +7608,6 @@ snapshots: commander@9.5.0: {} - comment-parser@1.4.1: {} - common-ancestor-path@1.0.1: {} compare-func@2.0.0: @@ -9523,14 +7615,6 @@ snapshots: array-ify: 1.0.0 dot-prop: 5.3.0 - compare-versions@6.1.1: {} - - concat-map@0.0.1: {} - - confbox@0.1.8: {} - - confbox@0.2.2: {} - consola@3.4.2: {} conventional-changelog-angular@7.0.0: @@ -9554,10 +7638,6 @@ snapshots: cookie@1.1.1: {} - core-js-compat@3.47.0: - dependencies: - browserslist: 4.28.1 - cosmiconfig-typescript-loader@6.2.0(@types/node@22.19.3)(cosmiconfig@9.0.0(typescript@5.9.3))(typescript@5.9.3): dependencies: '@types/node': 22.19.3 @@ -9641,8 +7721,6 @@ snapshots: csstype@3.2.3: {} - damerau-levenshtein@1.0.8: {} - dargs@8.1.0: {} dashify@2.0.0: {} @@ -9657,24 +7735,6 @@ snapshots: whatwg-mimetype: 4.0.0 whatwg-url: 15.1.0 - data-view-buffer@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-length@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - - data-view-byte-offset@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-data-view: 1.0.2 - debug@4.4.3: dependencies: ms: 2.1.3 @@ -9687,22 +7747,8 @@ snapshots: deep-eql@5.0.2: {} - deep-is@0.1.4: {} - deepmerge@4.3.1: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - - define-properties@1.2.1: - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - defu@6.1.4: {} dequal@2.0.3: {} @@ -9725,8 +7771,6 @@ snapshots: dfa@1.2.0: {} - diff-sequences@27.5.1: {} - diff@5.2.0: {} diff@8.0.2: {} @@ -9770,12 +7814,6 @@ snapshots: dts-resolver@2.1.3: {} - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 - eastasianwidth@0.2.0: {} electron-to-chromium@1.5.267: {} @@ -9805,90 +7843,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.24.1: - dependencies: - array-buffer-byte-length: 1.0.2 - arraybuffer.prototype.slice: 1.0.4 - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - data-view-buffer: 1.0.2 - data-view-byte-length: 1.0.2 - data-view-byte-offset: 1.0.1 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - es-set-tostringtag: 2.1.0 - es-to-primitive: 1.3.0 - function.prototype.name: 1.1.8 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - get-symbol-description: 1.1.0 - globalthis: 1.0.4 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - has-proto: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - internal-slot: 1.1.0 - is-array-buffer: 3.0.5 - is-callable: 1.2.7 - is-data-view: 1.0.2 - is-negative-zero: 2.0.3 - is-regex: 1.2.1 - is-set: 2.0.3 - is-shared-array-buffer: 1.0.4 - is-string: 1.1.1 - is-typed-array: 1.1.15 - is-weakref: 1.1.1 - math-intrinsics: 1.1.0 - object-inspect: 1.13.4 - object-keys: 1.1.1 - object.assign: 4.1.7 - own-keys: 1.0.1 - regexp.prototype.flags: 1.5.4 - safe-array-concat: 1.1.3 - safe-push-apply: 1.0.0 - safe-regex-test: 1.1.0 - set-proto: 1.0.0 - stop-iteration-iterator: 1.1.0 - string.prototype.trim: 1.2.10 - string.prototype.trimend: 1.0.9 - string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.3 - typed-array-byte-length: 1.0.3 - typed-array-byte-offset: 1.0.4 - typed-array-length: 1.0.7 - unbox-primitive: 1.1.0 - which-typed-array: 1.1.19 - - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} - es-object-atoms@1.1.1: - dependencies: - es-errors: 1.3.0 - - es-set-tostringtag@2.1.0: - dependencies: - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - es-shim-unscopables@1.1.0: - dependencies: - hasown: 2.0.2 - - es-to-primitive@1.3.0: - dependencies: - is-callable: 1.2.7 - is-date-object: 1.1.0 - is-symbol: 1.1.1 - esast-util-from-estree@2.0.0: dependencies: '@types/estree-jsx': 1.0.5 @@ -9963,448 +7919,8 @@ snapshots: escalade@3.2.0: {} - escape-string-regexp@1.0.5: {} - - escape-string-regexp@4.0.0: {} - escape-string-regexp@5.0.0: {} - eslint-compat-utils@0.5.1(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - semver: 7.7.3 - - eslint-compat-utils@0.6.5(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - semver: 7.7.3 - - eslint-config-flat-gitignore@2.1.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@eslint/compat': 1.4.1(eslint@9.39.2(jiti@2.6.1)) - eslint: 9.39.2(jiti@2.6.1) - - eslint-flat-config-utils@2.1.4: - dependencies: - pathe: 2.0.3 - - eslint-formatting-reporter@0.0.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - prettier-linter-helpers: 1.0.0 - - eslint-json-compat-utils@0.2.1(eslint@9.39.2(jiti@2.6.1))(jsonc-eslint-parser@2.4.2): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - esquery: 1.6.0 - jsonc-eslint-parser: 2.4.2 - - eslint-merge-processors@2.0.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - - eslint-parser-plain@0.1.1: {} - - eslint-plugin-antfu@3.1.1(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - - eslint-plugin-astro@1.5.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@jridgewell/sourcemap-codec': 1.5.5 - '@typescript-eslint/types': 8.49.0 - astro-eslint-parser: 1.2.2 - eslint: 9.39.2(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1)) - globals: 16.5.0 - postcss: 8.5.6 - postcss-selector-parser: 7.1.1 - transitivePeerDependencies: - - supports-color - - eslint-plugin-command@3.4.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@es-joy/jsdoccomment': 0.78.0 - eslint: 9.39.2(jiti@2.6.1) - - eslint-plugin-es-x@7.8.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - eslint: 9.39.2(jiti@2.6.1) - eslint-compat-utils: 0.5.1(eslint@9.39.2(jiti@2.6.1)) - - eslint-plugin-format@1.1.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@dprint/formatter': 0.3.0 - '@dprint/markdown': 0.17.8 - '@dprint/toml': 0.6.4 - eslint: 9.39.2(jiti@2.6.1) - eslint-formatting-reporter: 0.0.0(eslint@9.39.2(jiti@2.6.1)) - eslint-parser-plain: 0.1.1 - prettier: 3.7.4 - synckit: 0.11.11 - - eslint-plugin-import-lite@0.3.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/types': 8.49.0 - eslint: 9.39.2(jiti@2.6.1) - optionalDependencies: - typescript: 5.9.3 - - eslint-plugin-jsdoc@61.5.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@es-joy/jsdoccomment': 0.76.0 - '@es-joy/resolve.exports': 1.2.0 - are-docs-informative: 0.0.2 - comment-parser: 1.4.1 - debug: 4.4.3 - escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@2.6.1) - espree: 10.4.0 - esquery: 1.6.0 - html-entities: 2.6.0 - object-deep-merge: 2.0.0 - parse-imports-exports: 0.2.4 - semver: 7.7.3 - spdx-expression-parse: 4.0.0 - to-valid-identifier: 1.0.0 - transitivePeerDependencies: - - supports-color - - eslint-plugin-jsonc@2.21.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - diff-sequences: 27.5.1 - eslint: 9.39.2(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1)) - eslint-json-compat-utils: 0.2.1(eslint@9.39.2(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.11 - transitivePeerDependencies: - - '@eslint/json' - - eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.2(jiti@2.6.1)): - dependencies: - aria-query: 5.3.2 - array-includes: 3.1.9 - array.prototype.flatmap: 1.3.3 - ast-types-flow: 0.0.8 - axe-core: 4.11.0 - axobject-query: 4.1.0 - damerau-levenshtein: 1.0.8 - emoji-regex: 9.2.2 - eslint: 9.39.2(jiti@2.6.1) - hasown: 2.0.2 - jsx-ast-utils: 3.3.5 - language-tags: 1.0.9 - minimatch: 3.1.2 - object.fromentries: 2.0.8 - safe-regex-test: 1.1.0 - string.prototype.includes: 2.0.1 - - eslint-plugin-n@17.23.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - enhanced-resolve: 5.18.4 - eslint: 9.39.2(jiti@2.6.1) - eslint-plugin-es-x: 7.8.0(eslint@9.39.2(jiti@2.6.1)) - get-tsconfig: 4.13.0 - globals: 15.15.0 - globrex: 0.1.2 - ignore: 5.3.2 - semver: 7.7.3 - ts-declaration-location: 1.0.7(typescript@5.9.3) - transitivePeerDependencies: - - typescript - - eslint-plugin-no-only-tests@3.3.0: {} - - eslint-plugin-perfectionist@4.15.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - natural-orderby: 5.0.0 - transitivePeerDependencies: - - supports-color - - typescript - - eslint-plugin-pnpm@1.4.3(eslint@9.39.2(jiti@2.6.1)): - dependencies: - empathic: 2.0.0 - eslint: 9.39.2(jiti@2.6.1) - jsonc-eslint-parser: 2.4.2 - pathe: 2.0.3 - pnpm-workspace-yaml: 1.4.3 - tinyglobby: 0.2.15 - yaml: 2.8.2 - yaml-eslint-parser: 1.3.2 - - eslint-plugin-react-dom@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - compare-versions: 6.1.1 - eslint: 9.39.2(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-hooks-extra@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-hooks@7.0.1(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@babel/core': 7.28.5 - '@babel/parser': 7.28.5 - eslint: 9.39.2(jiti@2.6.1) - hermes-parser: 0.25.1 - zod: 4.1.13 - zod-validation-error: 4.0.2(zod@4.1.13) - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-naming-convention@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-refresh@0.4.25(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - - eslint-plugin-react-web-api@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - string-ts: 2.3.1 - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-react-x@2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@eslint-react/ast': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/core': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/eff': 2.3.13 - '@eslint-react/shared': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@eslint-react/var': 2.3.13(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/scope-manager': 8.49.0 - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - '@typescript-eslint/types': 8.49.0 - '@typescript-eslint/utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - compare-versions: 6.1.1 - eslint: 9.39.2(jiti@2.6.1) - is-immutable-type: 5.0.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - string-ts: 2.3.1 - ts-api-utils: 2.1.0(typescript@5.9.3) - ts-pattern: 5.9.0 - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - - eslint-plugin-regexp@2.10.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@eslint-community/regexpp': 4.12.2 - comment-parser: 1.4.1 - eslint: 9.39.2(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-toml@0.12.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1)) - lodash: 4.17.21 - toml-eslint-parser: 0.10.1 - transitivePeerDependencies: - - supports-color - - eslint-plugin-unicorn@62.0.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - '@eslint/plugin-kit': 0.4.1 - change-case: 5.4.4 - ci-info: 4.3.1 - clean-regexp: 1.0.0 - core-js-compat: 3.47.0 - eslint: 9.39.2(jiti@2.6.1) - esquery: 1.6.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.13.0 - semver: 7.7.3 - strip-indent: 4.1.1 - - eslint-plugin-unused-imports@4.3.0(@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1)): - dependencies: - eslint: 9.39.2(jiti@2.6.1) - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - - eslint-plugin-vue@10.6.2(@stylistic/eslint-plugin@5.6.1(eslint@9.39.2(jiti@2.6.1)))(@typescript-eslint/parser@8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.2(jiti@2.6.1))(vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1))): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(jiti@2.6.1)) - eslint: 9.39.2(jiti@2.6.1) - natural-compare: 1.4.0 - nth-check: 2.1.1 - postcss-selector-parser: 7.1.1 - semver: 7.7.3 - vue-eslint-parser: 10.2.0(eslint@9.39.2(jiti@2.6.1)) - xml-name-validator: 4.0.0 - optionalDependencies: - '@stylistic/eslint-plugin': 5.6.1(eslint@9.39.2(jiti@2.6.1)) - '@typescript-eslint/parser': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - - eslint-plugin-yml@1.19.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - diff-sequences: 27.5.1 - escape-string-regexp: 4.0.0 - eslint: 9.39.2(jiti@2.6.1) - eslint-compat-utils: 0.6.5(eslint@9.39.2(jiti@2.6.1)) - natural-compare: 1.4.0 - yaml-eslint-parser: 1.3.2 - transitivePeerDependencies: - - supports-color - - eslint-processor-vue-blocks@2.0.0(@vue/compiler-sfc@3.5.25)(eslint@9.39.2(jiti@2.6.1)): - dependencies: - '@vue/compiler-sfc': 3.5.25 - eslint: 9.39.2(jiti@2.6.1) - - eslint-scope@8.4.0: - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - - eslint-visitor-keys@3.4.3: {} - - eslint-visitor-keys@4.2.1: {} - - eslint@9.39.2(jiti@2.6.1): - dependencies: - '@eslint-community/eslint-utils': 4.9.0(eslint@9.39.2(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/eslintrc': 3.3.3 - '@eslint/js': 9.39.2 - '@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 - escape-string-regexp: 4.0.0 - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.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 - - espree@10.4.0: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 4.2.1 - - espree@9.6.1: - dependencies: - acorn: 8.15.0 - acorn-jsx: 5.3.2(acorn@8.15.0) - eslint-visitor-keys: 3.4.3 - - esquery@1.6.0: - dependencies: - estraverse: 5.3.0 - - esrecurse@4.3.0: - dependencies: - estraverse: 5.3.0 - - estraverse@5.3.0: {} - estree-util-attach-comments@3.0.0: dependencies: '@types/estree': 1.0.8 @@ -10440,73 +7956,35 @@ snapshots: dependencies: '@types/estree': 1.0.8 - esutils@2.0.3: {} - eventemitter3@5.0.1: {} expect-type@1.3.0: {} - exsolve@1.0.8: {} - extend@3.0.2: {} fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - - fast-glob@3.3.1: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 + fast-json-stable-stringify@2.1.0: optional: true - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - - fast-json-stable-stringify@2.1.0: {} - - fast-levenshtein@2.0.6: {} - fast-uri@3.1.0: {} fast-xml-parser@5.3.3: dependencies: strnum: 2.1.2 - fastq@1.19.1: - dependencies: - reusify: 1.1.0 - - fault@2.0.1: - dependencies: - format: 0.2.2 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 fflate@0.8.2: {} - file-entry-cache@8.0.0: - dependencies: - flat-cache: 4.0.1 - file-uri-to-path@1.0.0: {} fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 - find-up-simple@1.0.1: {} - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -10518,11 +7996,6 @@ snapshots: path-exists: 5.0.0 unicorn-magic: 0.1.0 - flat-cache@4.0.1: - dependencies: - flatted: 3.3.3 - keyv: 4.5.4 - flatted@3.3.3: {} flattie@1.1.1: {} @@ -10544,17 +8017,11 @@ snapshots: unicode-properties: 1.4.1 unicode-trie: 2.0.0 - for-each@0.3.5: - dependencies: - is-callable: 1.2.7 - foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - format@0.2.2: {} - forwarded-parse@2.1.2: {} fs.realpath@1.0.0: {} @@ -10562,51 +8029,12 @@ snapshots: fsevents@2.3.3: optional: true - function-bind@1.1.2: {} - - function.prototype.name@1.1.8: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - functions-have-names: 1.2.3 - hasown: 2.0.2 - is-callable: 1.2.7 - - functions-have-names@1.2.3: {} - - generator-function@2.0.1: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} get-east-asian-width@1.4.0: {} - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.2 - math-intrinsics: 1.1.0 - - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.1 - - get-symbol-description@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -10623,10 +8051,6 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-parent@6.0.2: - dependencies: - is-glob: 4.0.3 - glob@10.5.0: dependencies: foreground-child: 3.3.1 @@ -10648,25 +8072,8 @@ snapshots: dependencies: ini: 4.1.1 - globals@14.0.0: {} - - globals@15.15.0: {} - - globals@16.5.0: {} - - globalthis@1.0.4: - dependencies: - define-properties: 1.2.1 - gopd: 1.2.0 - - globrex@0.1.2: {} - - gopd@1.2.0: {} - graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - h3@1.15.4: dependencies: cookie-es: 1.2.2 @@ -10679,28 +8086,8 @@ snapshots: ufo: 1.6.1 uncrypto: 0.1.3 - has-bigints@1.1.0: {} - has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - - has-proto@1.2.0: - dependencies: - dunder-proto: 1.0.1 - - has-symbols@1.1.0: {} - - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.1.0 - - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 - hast-util-from-html@2.0.3: dependencies: '@types/hast': 3.0.4 @@ -10829,12 +8216,6 @@ snapshots: property-information: 7.1.0 space-separated-tokens: 2.0.2 - hermes-estree@0.25.1: {} - - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - hls.js@1.6.15: {} hookable@5.5.3: {} @@ -10843,8 +8224,6 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 - html-entities@2.6.0: {} - html-escaper@2.0.2: {} html-escaper@3.0.3: {} @@ -10878,10 +8257,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ignore@5.3.2: {} - - ignore@7.0.5: {} - import-fresh@3.3.1: dependencies: parent-module: 1.0.1 @@ -10896,12 +8271,8 @@ snapshots: import-meta-resolve@4.2.0: {} - imurmurhash@0.1.4: {} - indent-string@4.0.0: {} - indent-string@5.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -10913,12 +8284,6 @@ snapshots: inline-style-parser@0.2.7: {} - internal-slot@1.1.0: - dependencies: - es-errors: 1.3.0 - hasown: 2.0.2 - side-channel: 1.1.0 - iron-webcrypto@1.2.1: {} is-alphabetical@2.0.1: {} @@ -10928,105 +8293,34 @@ snapshots: is-alphabetical: 2.0.1 is-decimal: 2.0.1 - is-array-buffer@3.0.5: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-arrayish@0.2.1: {} - is-async-function@2.1.1: - dependencies: - async-function: 1.0.0 - call-bound: 1.0.4 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - - is-bigint@1.1.0: - dependencies: - has-bigints: 1.1.0 - is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.2.2: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-builtin-module@5.0.0: - dependencies: - builtin-modules: 5.0.0 - - is-callable@1.2.7: {} - - is-data-view@1.0.2: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-typed-array: 1.1.15 - - is-date-object@1.1.0: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-decimal@2.0.1: {} is-docker@3.0.0: {} is-extglob@2.1.1: {} - is-finalizationregistry@1.1.1: - dependencies: - call-bound: 1.0.4 - is-fullwidth-code-point@3.0.0: {} is-fullwidth-code-point@5.1.0: dependencies: get-east-asian-width: 1.4.0 - is-generator-function@1.1.2: - dependencies: - call-bound: 1.0.4 - generator-function: 2.0.1 - get-proto: 1.0.1 - has-tostringtag: 1.0.2 - safe-regex-test: 1.1.0 - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 is-hexadecimal@2.0.1: {} - is-immutable-type@5.0.1(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3): - dependencies: - '@typescript-eslint/type-utils': 8.49.0(eslint@9.39.2(jiti@2.6.1))(typescript@5.9.3) - eslint: 9.39.2(jiti@2.6.1) - ts-api-utils: 2.1.0(typescript@5.9.3) - ts-declaration-location: 1.0.7(typescript@5.9.3) - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - is-inside-container@1.0.0: dependencies: is-docker: 3.0.0 - is-map@2.0.3: {} - - is-negative-zero@2.0.3: {} - - is-number-object@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - is-number@7.0.0: {} is-obj@2.0.0: {} @@ -11035,55 +8329,14 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-regex@1.2.1: - dependencies: - call-bound: 1.0.4 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - hasown: 2.0.2 - - is-set@2.0.3: {} - - is-shared-array-buffer@1.0.4: - dependencies: - call-bound: 1.0.4 - - is-string@1.1.1: - dependencies: - call-bound: 1.0.4 - has-tostringtag: 1.0.2 - - is-symbol@1.1.1: - dependencies: - call-bound: 1.0.4 - has-symbols: 1.1.0 - safe-regex-test: 1.1.0 - is-text-path@2.0.0: dependencies: text-extensions: 2.4.0 - is-typed-array@1.1.15: - dependencies: - which-typed-array: 1.1.19 - - is-weakmap@2.0.2: {} - - is-weakref@1.1.1: - dependencies: - call-bound: 1.0.4 - - is-weakset@2.0.4: - dependencies: - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - is-wsl@3.1.0: dependencies: is-inside-container: 1.0.0 - isarray@2.0.5: {} - isexe@2.0.0: {} istanbul-lib-coverage@3.2.2: {} @@ -11123,12 +8376,6 @@ snapshots: dependencies: argparse: 2.0.1 - jsdoc-type-pratt-parser@4.8.0: {} - - jsdoc-type-pratt-parser@6.10.0: {} - - jsdoc-type-pratt-parser@7.0.0: {} - jsdom@26.1.0: dependencies: cssstyle: 4.6.0 @@ -11186,55 +8433,23 @@ snapshots: jsesc@3.1.0: {} - json-buffer@3.0.1: {} - json-parse-even-better-errors@2.3.1: {} - json-schema-traverse@0.4.1: {} + json-schema-traverse@0.4.1: + optional: true json-schema-traverse@1.0.0: {} - json-stable-stringify-without-jsonify@1.0.1: {} - json5@2.2.3: {} - jsonc-eslint-parser@2.4.2: - dependencies: - acorn: 8.15.0 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - semver: 7.7.3 - jsonparse@1.3.1: {} - jsx-ast-utils@3.3.5: - dependencies: - array-includes: 3.1.9 - array.prototype.flat: 1.3.3 - object.assign: 4.1.7 - object.values: 1.2.1 - just-debounce-it@3.2.0: {} just-throttle@4.2.0: {} - keyv@4.5.4: - dependencies: - json-buffer: 3.0.1 - kleur@3.0.3: {} - language-subtag-registry@0.3.23: {} - - language-tags@1.0.9: - dependencies: - language-subtag-registry: 0.3.23 - - levn@0.4.1: - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - lightningcss-android-arm64@1.30.2: optional: true @@ -11305,12 +8520,6 @@ snapshots: rfdc: 1.4.1 wrap-ansi: 9.0.2 - local-pkg@1.1.2: - dependencies: - mlly: 1.8.0 - pkg-types: 2.3.0 - quansync: 0.2.11 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -11337,8 +8546,6 @@ snapshots: lodash.upperfirst@4.3.1: {} - lodash@4.17.21: {} - log-update@6.1.0: dependencies: ansi-escapes: 7.2.0 @@ -11401,8 +8608,6 @@ snapshots: markdown-table@3.0.4: {} - math-intrinsics@1.1.0: {} - mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -11433,17 +8638,6 @@ 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 @@ -11591,8 +8785,6 @@ snapshots: meow@12.1.1: {} - merge2@1.4.1: {} - micromark-core-commonmark@2.0.3: dependencies: decode-named-character-reference: 1.2.0 @@ -11612,13 +8804,6 @@ snapshots: micromark-util-symbol: 2.0.1 micromark-util-types: 2.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 @@ -11873,10 +9058,6 @@ snapshots: min-indent@1.0.1: {} - minimatch@3.1.2: - dependencies: - brace-expansion: 1.1.12 - minimatch@5.1.6: dependencies: brace-expansion: 2.0.2 @@ -11893,13 +9074,6 @@ snapshots: dependencies: minipass: 7.1.2 - mlly@1.8.0: - dependencies: - acorn: 8.15.0 - pathe: 2.0.3 - pkg-types: 1.3.1 - ufo: 1.6.1 - module-details-from-path@1.0.4: {} mri@1.2.0: {} @@ -11914,10 +9088,6 @@ snapshots: nanostores@1.1.0: {} - natural-compare@1.4.0: {} - - natural-orderby@5.0.0: {} - neotraverse@0.6.18: {} next@16.0.10(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-react-compiler@1.0.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): @@ -11981,35 +9151,6 @@ snapshots: nwsapi@2.2.23: {} - object-deep-merge@2.0.0: {} - - object-inspect@1.13.4: {} - - object-keys@1.1.1: {} - - object.assign@4.1.7: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - has-symbols: 1.1.0 - object-keys: 1.1.1 - - object.fromentries@2.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - - object.values@1.2.1: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - obug@2.1.1: {} ofetch@1.5.1: @@ -12036,21 +9177,6 @@ snapshots: regex: 6.1.0 regex-recursion: 6.0.2 - optionator@0.9.4: - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - word-wrap: 1.2.5 - - own-keys@1.0.1: - dependencies: - get-intrinsic: 1.3.0 - object-keys: 1.1.1 - safe-push-apply: 1.0.0 - p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 @@ -12098,12 +9224,6 @@ 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@5.2.0: dependencies: '@babel/code-frame': 7.27.1 @@ -12120,8 +9240,6 @@ snapshots: unist-util-visit-children: 3.0.0 vfile: 6.0.3 - parse-statements@1.0.11: {} - parse5@7.3.0: dependencies: entities: 6.0.1 @@ -12173,35 +9291,10 @@ snapshots: pidtree@0.6.0: {} - pkg-types@1.3.1: - dependencies: - confbox: 0.1.8 - mlly: 1.8.0 - pathe: 2.0.3 - - pkg-types@2.3.0: - dependencies: - confbox: 0.2.2 - exsolve: 1.0.8 - pathe: 2.0.3 - - pluralize@8.0.0: {} - - pnpm-workspace-yaml@1.4.3: - dependencies: - yaml: 2.8.2 - - possible-typed-array-names@1.1.0: {} - postcss-prefix-selector@1.16.1(postcss@8.5.6): dependencies: postcss: 8.5.6 - postcss-selector-parser@7.1.1: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - postcss@8.4.31: dependencies: nanoid: 3.3.11 @@ -12225,22 +9318,8 @@ snapshots: dependencies: xtend: 4.0.2 - prelude-ls@1.2.1: {} - - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - - prettier-plugin-astro@0.14.1: - dependencies: - '@astrojs/compiler': 2.13.0 - prettier: 3.7.4 - sass-formatter: 0.7.9 - prettier@2.8.8: {} - prettier@3.7.4: {} - pretty-format@27.5.1: dependencies: ansi-regex: 5.0.1 @@ -12262,12 +9341,8 @@ snapshots: punycode@2.3.1: {} - quansync@0.2.11: {} - quansync@1.0.0: {} - queue-microtask@1.2.3: {} - radix3@1.1.2: {} react-compiler-runtime@1.0.0(react@18.3.1): @@ -12339,21 +9414,6 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - refa@0.12.1: - dependencies: - '@eslint-community/regexpp': 4.12.2 - - reflect.getprototypeof@1.0.10: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - get-intrinsic: 1.3.0 - get-proto: 1.0.1 - which-builtin-type: 1.2.1 - regex-recursion@6.0.2: dependencies: regex-utilities: 2.3.0 @@ -12364,28 +9424,6 @@ snapshots: dependencies: regex-utilities: 2.3.0 - regexp-ast-analysis@0.7.1: - dependencies: - '@eslint-community/regexpp': 4.12.2 - refa: 0.12.1 - - regexp-to-ast@0.5.0: {} - - regexp-tree@0.1.27: {} - - regexp.prototype.flags@1.5.4: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-errors: 1.3.0 - get-proto: 1.0.1 - gopd: 1.2.0 - set-function-name: 2.0.2 - - regjsparser@0.13.0: - dependencies: - jsesc: 3.1.0 - rehype-parse@9.0.1: dependencies: '@types/hast': 3.0.4 @@ -12480,8 +9518,6 @@ snapshots: reselect@5.1.1: {} - reserved-identifiers@1.2.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} @@ -12520,8 +9556,6 @@ snapshots: retext-stringify: 4.0.0 unified: 11.0.5 - reusify@1.1.0: {} - rfdc@1.4.1: {} rolldown-plugin-dts@0.17.8(rolldown@1.0.0-beta.45)(typescript@5.9.3): @@ -12591,37 +9625,8 @@ snapshots: rrweb-cssom@0.8.0: {} - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - - s.color@0.0.15: {} - - safe-array-concat@1.1.3: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - get-intrinsic: 1.3.0 - has-symbols: 1.1.0 - isarray: 2.0.5 - - safe-push-apply@1.0.0: - dependencies: - es-errors: 1.3.0 - isarray: 2.0.5 - - safe-regex-test@1.1.0: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-regex: 1.2.1 - safer-buffer@2.1.2: {} - sass-formatter@0.7.9: - dependencies: - suf-log: 2.5.3 - sax@1.4.3: {} saxes@6.0.0: @@ -12636,38 +9641,10 @@ snapshots: schema-dts@1.1.5: {} - scslre@0.3.0: - dependencies: - '@eslint-community/regexpp': 4.12.2 - refa: 0.12.1 - regexp-ast-analysis: 0.7.1 - semver@6.3.1: {} semver@7.7.3: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.3.0 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - - set-function-name@2.0.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.2 - - set-proto@1.0.0: - dependencies: - dunder-proto: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.1 - sharp@0.34.5: dependencies: '@img/colour': 1.0.0 @@ -12716,34 +9693,6 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - side-channel-list@1.0.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.0: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.0 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - siginfo@2.0.0: {} signal-exit@4.1.0: {} @@ -12791,32 +9740,16 @@ snapshots: space-separated-tokens@2.0.2: {} - spdx-exceptions@2.5.0: {} - - 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: {} stackback@0.0.2: {} std-env@3.10.0: {} - stop-iteration-iterator@1.1.0: - dependencies: - es-errors: 1.3.0 - internal-slot: 1.1.0 - stream-replace-string@2.0.0: {} string-argv@0.3.2: {} - string-ts@2.3.1: {} - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -12840,35 +9773,6 @@ snapshots: get-east-asian-width: 1.4.0 strip-ansi: 7.1.2 - string.prototype.includes@2.0.1: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-abstract: 1.24.1 - - string.prototype.trim@1.2.10: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-data-property: 1.1.4 - define-properties: 1.2.1 - es-abstract: 1.24.1 - es-object-atoms: 1.1.1 - has-property-descriptors: 1.0.2 - - string.prototype.trimend@1.0.9: - dependencies: - call-bind: 1.0.8 - call-bound: 1.0.4 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - - string.prototype.trimstart@1.0.8: - dependencies: - call-bind: 1.0.8 - define-properties: 1.2.1 - es-object-atoms: 1.1.1 - stringify-entities@4.0.4: dependencies: character-entities-html4: 2.1.0 @@ -12886,10 +9790,6 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-indent@4.1.1: {} - - strip-json-comments@3.1.1: {} - strip-literal@3.1.0: dependencies: js-tokens: 9.0.1 @@ -12912,10 +9812,6 @@ snapshots: '@babel/core': 7.28.5 optional: true - suf-log@2.5.3: - dependencies: - s.color: 0.0.15 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -12944,10 +9840,6 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.11.11: - dependencies: - '@pkgr/core': 0.2.9 - tabbable@6.3.0: {} tailwind-merge@3.4.0: {} @@ -13009,15 +9901,6 @@ snapshots: dependencies: is-number: 7.0.0 - to-valid-identifier@1.0.0: - dependencies: - '@sindresorhus/base62': 1.0.0 - reserved-identifiers: 1.2.0 - - toml-eslint-parser@0.10.1: - dependencies: - eslint-visitor-keys: 3.4.3 - totalist@3.0.1: {} tough-cookie@5.1.2: @@ -13044,17 +9927,6 @@ snapshots: trough@2.2.0: {} - ts-api-utils@2.1.0(typescript@5.9.3): - dependencies: - typescript: 5.9.3 - - ts-declaration-location@1.0.7(typescript@5.9.3): - dependencies: - picomatch: 4.0.3 - typescript: 5.9.3 - - ts-pattern@5.9.0: {} - tsconfck@3.1.6(typescript@5.9.3): optionalDependencies: typescript: 5.9.3 @@ -13124,58 +9996,14 @@ snapshots: dependencies: '@mixmark-io/domino': 2.2.0 - type-check@0.4.0: - dependencies: - prelude-ls: 1.2.1 - type-fest@4.41.0: {} - typed-array-buffer@1.0.3: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - is-typed-array: 1.1.15 - - typed-array-byte-length@1.0.3: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - - typed-array-byte-offset@1.0.4: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - has-proto: 1.2.0 - is-typed-array: 1.1.15 - reflect.getprototypeof: 1.0.10 - - typed-array-length@1.0.7: - dependencies: - call-bind: 1.0.8 - for-each: 0.3.5 - gopd: 1.2.0 - is-typed-array: 1.1.15 - possible-typed-array-names: 1.1.0 - reflect.getprototypeof: 1.0.10 - typescript@5.9.3: {} ufo@1.6.1: {} ultrahtml@1.6.0: {} - unbox-primitive@1.1.0: - dependencies: - call-bound: 1.0.4 - has-bigints: 1.1.0 - has-symbols: 1.1.0 - which-boxed-primitive: 1.1.1 - unconfig-core@7.4.2: dependencies: '@quansync/fs': 1.0.0 @@ -13296,13 +10124,12 @@ snapshots: uri-js@4.4.1: dependencies: punycode: 2.3.1 + optional: true use-sync-external-store@1.6.0(react@18.3.1): dependencies: react: 18.3.1 - util-deprecate@1.0.2: {} - vfile-location@5.0.3: dependencies: '@types/unist': 3.0.3 @@ -13463,18 +10290,6 @@ snapshots: - tsx - yaml - vue-eslint-parser@10.2.0(eslint@9.39.2(jiti@2.6.1)): - dependencies: - debug: 4.4.3 - eslint: 9.39.2(jiti@2.6.1) - eslint-scope: 8.4.0 - eslint-visitor-keys: 4.2.1 - espree: 10.4.0 - esquery: 1.6.0 - semver: 7.7.3 - transitivePeerDependencies: - - supports-color - w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 @@ -13512,49 +10327,8 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.1.1: - dependencies: - is-bigint: 1.1.0 - is-boolean-object: 1.2.2 - is-number-object: 1.1.1 - is-string: 1.1.1 - is-symbol: 1.1.1 - - which-builtin-type@1.2.1: - dependencies: - call-bound: 1.0.4 - function.prototype.name: 1.1.8 - has-tostringtag: 1.0.2 - is-async-function: 2.1.1 - is-date-object: 1.1.0 - is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.2 - is-regex: 1.2.1 - is-weakref: 1.1.1 - isarray: 2.0.5 - which-boxed-primitive: 1.1.1 - which-collection: 1.0.2 - which-typed-array: 1.1.19 - - which-collection@1.0.2: - dependencies: - is-map: 2.0.3 - is-set: 2.0.3 - is-weakmap: 2.0.2 - is-weakset: 2.0.4 - which-pm-runs@1.1.0: {} - which-typed-array@1.1.19: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.8 - call-bound: 1.0.4 - for-each: 0.3.5 - get-proto: 1.0.1 - gopd: 1.2.0 - has-tostringtag: 1.0.2 - which@2.0.2: dependencies: isexe: 2.0.0 @@ -13568,8 +10342,6 @@ snapshots: dependencies: string-width: 7.2.0 - word-wrap@1.2.5: {} - wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 @@ -13592,8 +10364,6 @@ snapshots: ws@8.18.3: {} - xml-name-validator@4.0.0: {} - xml-name-validator@5.0.0: {} xmlchars@2.2.0: {} @@ -13608,11 +10378,6 @@ snapshots: yallist@5.0.0: {} - yaml-eslint-parser@1.3.2: - dependencies: - eslint-visitor-keys: 3.4.3 - yaml: 2.8.2 - yaml@2.8.2: {} yargs-parser@21.1.1: {} @@ -13646,12 +10411,6 @@ snapshots: typescript: 5.9.3 zod: 3.25.76 - zod-validation-error@4.0.2(zod@4.1.13): - dependencies: - zod: 4.1.13 - zod@3.25.76: {} - zod@4.1.13: {} - zwitch@2.0.4: {} diff --git a/site/astro.config.mjs b/site/astro.config.mjs index 731fe058..51dfe582 100644 --- a/site/astro.config.mjs +++ b/site/astro.config.mjs @@ -86,28 +86,29 @@ export default defineConfig({ }, experimental: { - fonts: [{ - provider: fontProviders.google(), - name: 'Instrument Sans', - cssVariable: '--font-instrument-sans', - weights: ['400 600'], - styles: ['normal', 'italic'], - subsets: ['latin'], - fallbacks: ['sans-serif'], - optimizedFallbacks: true, - display: 'swap', - - }, { - provider: fontProviders.google(), - name: 'IBM Plex Mono', - cssVariable: '--font-ibm-plex-mono', - weights: ['600', '400'], - styles: ['normal'], - subsets: ['latin'], - fallbacks: ['monospace'], - optimizedFallbacks: true, - display: 'swap', - }], + fonts: [ + { + provider: fontProviders.google(), + name: 'Instrument Sans', + cssVariable: '--font-instrument-sans', + weights: ['400 600'], + styles: ['normal', 'italic'], + subsets: ['latin'], + fallbacks: ['sans-serif'], + optimizedFallbacks: true, + display: 'swap', + }, + { + provider: fontProviders.google(), + name: 'IBM Plex Mono', + cssVariable: '--font-ibm-plex-mono', + weights: ['600', '400'], + styles: ['normal'], + subsets: ['latin'], + fallbacks: ['monospace'], + optimizedFallbacks: true, + display: 'swap', + }, + ], }, - }); diff --git a/site/integrations/check-v8-urls.ts b/site/integrations/check-v8-urls.ts index 4839a668..f2b721da 100644 --- a/site/integrations/check-v8-urls.ts +++ b/site/integrations/check-v8-urls.ts @@ -1,7 +1,7 @@ -import type { AstroIntegration } from 'astro'; import { existsSync, readFileSync } from 'node:fs'; import { join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; +import type { AstroIntegration } from 'astro'; // Video.js v8 URLs to check for migration status const V8_URLS = [ @@ -309,9 +309,9 @@ export default function checkV8Urls(): AstroIntegration { // Calculate statistics const total = results.length; - const migrated = results.filter(r => r.status === 'migrated').length; - const redirected = results.filter(r => r.status === 'redirected').length; - const needsMigration = results.filter(r => r.status === 'needs migration').length; + const migrated = results.filter((r) => r.status === 'migrated').length; + const redirected = results.filter((r) => r.status === 'redirected').length; + const needsMigration = results.filter((r) => r.status === 'needs migration').length; const migratedPercent = ((migrated / total) * 100).toFixed(1); const redirectedPercent = ((redirected / total) * 100).toFixed(1); diff --git a/site/integrations/llms-markdown.ts b/site/integrations/llms-markdown.ts index 801347b1..f6222d7d 100644 --- a/site/integrations/llms-markdown.ts +++ b/site/integrations/llms-markdown.ts @@ -1,7 +1,7 @@ -import type { AstroIntegration } from 'astro'; import { mkdir, readFile, writeFile } from 'node:fs/promises'; import { dirname, join } from 'node:path'; import { fileURLToPath } from 'node:url'; +import type { AstroIntegration } from 'astro'; import { JSDOM } from 'jsdom'; import TurndownService from 'turndown'; @@ -49,7 +49,7 @@ export default function llmsMarkdown(): AstroIntegration { contentElements.forEach((contentEl) => { const clone = contentEl.cloneNode(true) as Element; const ignoreElements = clone.querySelectorAll('[data-llms-ignore]'); - ignoreElements.forEach(el => el.remove()); + ignoreElements.forEach((el) => el.remove()); contentParts.push(clone.innerHTML); }); @@ -91,7 +91,9 @@ export default function llmsMarkdown(): AstroIntegration { const llmsTxtPath = join(siteDir, 'llms.txt'); await writeFile(llmsTxtPath, llmsTxt, 'utf-8'); - logger.info(`Generated ${docsPages.length + blogPages.length + otherPages.length} markdown files and llms.txt index`); + logger.info( + `Generated ${docsPages.length + blogPages.length + otherPages.length} markdown files and llms.txt index` + ); }, }, }; @@ -100,10 +102,13 @@ export default function llmsMarkdown(): AstroIntegration { function generateLlmsTxt( docsPages: Array<{ pathname: string; title: string; description?: string; sort?: string }>, blogPages: Array<{ pathname: string; title: string; description?: string; sort?: string }>, - otherPages: Array<{ pathname: string; title: string; description?: string; sort?: string }>, + otherPages: Array<{ pathname: string; title: string; description?: string; sort?: string }> ): string { // Group docs by framework and style - const docsByFrameworkStyle = new Map>(); + const docsByFrameworkStyle = new Map< + string, + Array<{ pathname: string; title: string; description?: string; sort?: string }> + >(); for (const doc of docsPages) { // Extract framework and style from pathname diff --git a/site/integrations/pagefind.ts b/site/integrations/pagefind.ts index eb26b50b..029c3e40 100644 --- a/site/integrations/pagefind.ts +++ b/site/integrations/pagefind.ts @@ -1,8 +1,8 @@ -import type { AstroIntegration } from 'astro'; import { spawn } from 'node:child_process'; import { existsSync } from 'node:fs'; import { join } from 'node:path'; import { fileURLToPath } from 'node:url'; +import type { AstroIntegration } from 'astro'; import sirv from 'sirv'; export interface PagefindOptions { @@ -26,8 +26,7 @@ export default function pagefind(options: PagefindOptions = {}): AstroIntegratio // Warn if index doesn't exist yet if (!existsSync(pagefindDir)) { logger.warn( - 'Pagefind index not found. Run `pnpm build` first to generate ' - + 'the search index for development mode.', + 'Pagefind index not found. Run `pnpm build` first to generate ' + 'the search index for development mode.' ); } else { logger.debug(`Serving Pagefind index from ${indexDir}`); @@ -71,14 +70,10 @@ export default function pagefind(options: PagefindOptions = {}): AstroIntegratio logger.info('Running Pagefind indexer...'); return new Promise((resolve, reject) => { - const pagefindProcess = spawn( - 'npx', - ['-y', 'pagefind', ...logFlags, '--site', siteDir], - { - stdio: 'inherit', - shell: true, - }, - ); + const pagefindProcess = spawn('npx', ['-y', 'pagefind', ...logFlags, '--site', siteDir], { + stdio: 'inherit', + shell: true, + }); pagefindProcess.on('close', (code) => { if (code === 0) { diff --git a/site/src/components/Aside.astro b/site/src/components/Aside.astro index 30ba0b72..046fb5bd 100644 --- a/site/src/components/Aside.astro +++ b/site/src/components/Aside.astro @@ -1,6 +1,7 @@ --- + import clsx from 'clsx'; -import { Info, Lightbulb, TriangleAlert, OctagonX } from 'lucide-react'; +import { Info, Lightbulb, OctagonX, TriangleAlert } from 'lucide-react'; import { twMerge } from 'tailwind-merge'; type AsideType = 'note' | 'tip' | 'caution' | 'danger'; diff --git a/site/src/components/Code/ClientCode.tsx b/site/src/components/Code/ClientCode.tsx index dcbd367b..2c2ff27c 100644 --- a/site/src/components/Code/ClientCode.tsx +++ b/site/src/components/Code/ClientCode.tsx @@ -1,13 +1,11 @@ -import type { SharedProps } from './Shared'; import css from 'shiki/langs/css.mjs'; import html from 'shiki/langs/html.mjs'; import javascript from 'shiki/langs/javascript.mjs'; import tsx from 'shiki/langs/tsx.mjs'; - import createHighlighter from './createHighlighter'; +import type { SharedProps } from './Shared'; import Shared from './Shared'; -// eslint-disable-next-line antfu/no-top-level-await const clientHighlighter = await createHighlighter({ langs: [html, tsx, css, javascript], }); diff --git a/site/src/components/Code/ServerCode.astro b/site/src/components/Code/ServerCode.astro index 8e5f893a..36a176d5 100644 --- a/site/src/components/Code/ServerCode.astro +++ b/site/src/components/Code/ServerCode.astro @@ -1,4 +1,5 @@ --- + import type { SharedProps } from './Shared'; import Shared from './Shared'; import serverHighlighter from './serverHighlighter'; diff --git a/site/src/components/Code/Shared.tsx b/site/src/components/Code/Shared.tsx index 05ae91bb..1a572064 100644 --- a/site/src/components/Code/Shared.tsx +++ b/site/src/components/Code/Shared.tsx @@ -1,5 +1,5 @@ -import type { BundledLanguage, Highlighter } from 'shiki'; import clsx from 'clsx'; +import type { BundledLanguage, Highlighter } from 'shiki'; import { hastToHtml } from 'shiki'; export interface SharedProps { @@ -40,11 +40,7 @@ export default function Shared({ code, lang, highlighter }: SharedProps) { return (
-      
+      
     
); } diff --git a/site/src/components/Code/createHighlighter.ts b/site/src/components/Code/createHighlighter.ts index b5003e6a..2ec9328d 100644 --- a/site/src/components/Code/createHighlighter.ts +++ b/site/src/components/Code/createHighlighter.ts @@ -2,13 +2,9 @@ import { createHighlighter as libCreateHighlighter } from 'shiki'; import gruvboxDarkSoft from 'shiki/themes/gruvbox-dark-soft.mjs'; import gruvboxLightHard from 'shiki/themes/gruvbox-light-hard.mjs'; -export default function createHighlighter( - config: Omit[0], 'themes'>, -) { - return libCreateHighlighter( - { - ...config, - themes: [gruvboxLightHard, gruvboxDarkSoft], - }, - ); +export default function createHighlighter(config: Omit[0], 'themes'>) { + return libCreateHighlighter({ + ...config, + themes: [gruvboxLightHard, gruvboxDarkSoft], + }); } diff --git a/site/src/components/Code/serverHighlighter.ts b/site/src/components/Code/serverHighlighter.ts index af54f78c..058ec53d 100644 --- a/site/src/components/Code/serverHighlighter.ts +++ b/site/src/components/Code/serverHighlighter.ts @@ -1,7 +1,6 @@ import { bundledLanguages } from 'shiki'; import createHighlighter from './createHighlighter'; -// eslint-disable-next-line antfu/no-top-level-await const serverHighlighter = await createHighlighter({ langs: Object.values(bundledLanguages), }); diff --git a/site/src/components/CopyButton.tsx b/site/src/components/CopyButton.tsx index 12f4b936..d4505718 100644 --- a/site/src/components/CopyButton.tsx +++ b/site/src/components/CopyButton.tsx @@ -13,14 +13,7 @@ export interface CopyButtonProps { timeout?: number; } -export default function CopyButton({ - children, - copied, - copyFrom, - className, - style, - timeout = 2000, -}: CopyButtonProps) { +export default function CopyButton({ children, copied, copyFrom, className, style, timeout = 2000 }: CopyButtonProps) { const buttonRef = useRef(null); const [isCopied, setIsCopied] = useState(false); const isHydrated = useIsHydrated(); @@ -39,7 +32,9 @@ export default function CopyButton({ if (target) { text = target?.textContent || ''; } else { - console.warn(`CopyButton: No target found for selector "${copyFrom.target}" within container "${copyFrom.container}"`); + console.warn( + `CopyButton: No target found for selector "${copyFrom.target}" within container "${copyFrom.container}"` + ); } } else { console.warn(`CopyButton: No container found for selector "${copyFrom.container}"`); @@ -69,7 +64,7 @@ export default function CopyButton({ style={style} aria-label={isCopied ? 'Copied' : 'Copy to clipboard'} > - {isCopied ? (copied || children) : children} + {isCopied ? copied || children : children} ); } diff --git a/site/src/components/CopyMarkdownButton.tsx b/site/src/components/CopyMarkdownButton.tsx index 45cd9654..7ad8e510 100644 --- a/site/src/components/CopyMarkdownButton.tsx +++ b/site/src/components/CopyMarkdownButton.tsx @@ -9,16 +9,13 @@ export interface CopyMarkdownButtonProps { timeout?: number; } -type CopyState - = | { status: 'idle' } - | { status: 'loading' } - | { status: 'success' } - | { status: 'error'; message: string }; +type CopyState = + | { status: 'idle' } + | { status: 'loading' } + | { status: 'success' } + | { status: 'error'; message: string }; -export default function CopyMarkdownButton({ - className, - style, -}: CopyMarkdownButtonProps) { +export default function CopyMarkdownButton({ className, style }: CopyMarkdownButtonProps) { const [state, setState] = useState({ status: 'idle' }); const isHydrated = useIsHydrated(); const disabled = !isHydrated || state.status === 'loading'; @@ -33,10 +30,15 @@ export default function CopyMarkdownButton({ // Create fetch promise - in dev mode, return helpful message const markdownBlobPromise = import.meta.env.DEV - ? Promise.resolve(new Blob([ - 'Markdown source files are only available in production builds.\n\n' - + 'Run `pnpm build` and `pnpm preview` to test this feature.', - ], { type: 'text/plain' })) + ? Promise.resolve( + new Blob( + [ + 'Markdown source files are only available in production builds.\n\n' + + 'Run `pnpm build` and `pnpm preview` to test this feature.', + ], + { type: 'text/plain' } + ) + ) : fetch(mdUrl) .then((response) => { if (!response.ok) { @@ -44,7 +46,7 @@ export default function CopyMarkdownButton({ } return response.text(); }) - .then(text => new Blob([text], { type: 'text/plain' })); + .then((text) => new Blob([text], { type: 'text/plain' })); // Feature detection: ClipboardItem required for Safari compatibility if (typeof ClipboardItem === 'undefined') { @@ -75,10 +77,7 @@ export default function CopyMarkdownButton({ } }; - const ariaLabel - = state.status === 'success' - ? 'Copied' - : 'Copy markdown to clipboard'; + const ariaLabel = state.status === 'success' ? 'Copied' : 'Copy markdown to clipboard'; return (