diff --git a/.gitignore b/.gitignore index 1e397fd98..2e7ecfce3 100644 --- a/.gitignore +++ b/.gitignore @@ -51,8 +51,6 @@ typings/ # Optional npm cache directory .npm -# Optional eslint cache -.eslintcache # Optional REPL history .node_repl_history diff --git a/.lintstagedrc b/.lintstagedrc index ec5bddca6..735ef6b0e 100644 --- a/.lintstagedrc +++ b/.lintstagedrc @@ -1,4 +1,7 @@ { - "*.{js,jsx,ts,tsx}": ["prettier --write", "eslint --fix --no-warn-ignored"], - "*.css": ["prettier --write"] + "*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}": [ + "oxfmt --no-error-on-unmatched-pattern", + "oxlint --type-aware --fix" + ], + "*.{css,md}": ["oxfmt --no-error-on-unmatched-pattern"] } diff --git a/.oxfmtrc.json b/.oxfmtrc.json new file mode 100644 index 000000000..9a9f7d84a --- /dev/null +++ b/.oxfmtrc.json @@ -0,0 +1,39 @@ +{ + "$schema": "./node_modules/oxfmt/configuration_schema.json", + "arrowParens": "always", + "printWidth": 100, + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "sortPackageJson": false, + "sortTailwindcss": { + "stylesheet": "./src/lib/styles/globals.css", + "functions": ["cx"] + }, + "ignorePatterns": [ + "node_modules", + "package.json", + "pnpm-lock.yaml", + "next-env.d.ts", + ".next", + ".github", + "bin", + "static", + "cypress-coverage", + "vitest-coverage", + ".storybook-dist", + "**/*.snap", + "**/*.mp4", + "**/*.png", + "**/*.jpeg", + "**/*.jpg", + "**/*.txt", + "**/*.xml", + "**/*.ico", + "**/*.mdx" + ], + "sortImports": { + "groups": ["builtin", "external", "internal", "parent", "sibling", "index"], + "newlinesBetween": false + } +} diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 000000000..0869b0127 --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,2060 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": ["typescript", "import", "unicorn"], + "jsPlugins": ["eslint-plugin-no-barrel-files"], + "categories": { + "correctness": "off" + }, + "options": { + "typeAware": true + }, + "env": { + "builtin": true, + "es2026": true + }, + "settings": { + "better-tailwindcss": { + "entryPoint": "./src/lib/styles/globals.css", + "callees": [ + [ + "^cc$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cc$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^clb$", + [ + { + "pathPattern": "^base$", + "match": "objectValues" + } + ] + ], + [ + "^clb$", + [ + { + "pathPattern": "^variants.*$", + "match": "objectValues" + } + ] + ], + [ + "^clb$", + [ + { + "pathPattern": "^compoundVariants\\[\\d+\\]\\.classes$", + "match": "objectValues" + } + ] + ], + [ + "^clsx$", + [ + { + "match": "strings" + } + ] + ], + [ + "^clsx$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^cn$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cn$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^cnb$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cnb$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^ctl$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cva$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cva$", + [ + { + "pathPattern": "^variants.*$", + "match": "objectValues" + } + ] + ], + [ + "^cva$", + [ + { + "pathPattern": "^compoundVariants\\[\\d+\\]\\.(?:className|class)$", + "match": "objectValues" + } + ] + ], + [ + "^cx$", + [ + { + "match": "strings" + } + ] + ], + [ + "^cx$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^dcnb$", + [ + { + "match": "strings" + } + ] + ], + [ + "^dcnb$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^objstr$", + [ + { + "match": "objectKeys" + } + ] + ], + [ + "^tv$", + [ + { + "match": "strings" + } + ] + ], + [ + "^tv$", + [ + { + "pathPattern": "^variants.*$", + "match": "objectValues" + } + ] + ], + [ + "^tv$", + [ + { + "pathPattern": "^compoundVariants\\[\\d+\\]\\.(?:className|class).*$", + "match": "objectValues" + } + ] + ], + [ + "^tv$", + [ + { + "pathPattern": "^base$", + "match": "objectValues" + } + ] + ], + [ + "^tv$", + [ + { + "pathPattern": "^slots.*$", + "match": "objectValues" + } + ] + ], + [ + "^tv$", + [ + { + "pathPattern": "^compoundSlots\\[\\d+\\]\\.(?:className|class).*$", + "match": "objectValues" + } + ] + ], + [ + "^twJoin$", + [ + { + "match": "strings" + } + ] + ], + [ + "^twMerge$", + [ + { + "match": "strings" + } + ] + ], + "cn", + "cva" + ] + } + }, + "ignorePatterns": [ + "next-env.d.ts", + "node_modules/**", + ".next/**", + ".github/**", + "bin/**", + "cypress-coverage/**", + "vitest-coverage/**", + "playwright-report/**", + "test-results/**", + "public/**", + "src/.storybook/**", + "*.svg" + ], + "rules": { + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty-static-block": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-import-assign": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-new-native-nonconstructor": "error", + "no-nonoctal-decimal-escape": "error", + "no-obj-calls": "error", + "no-prototype-builtins": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-setter-return": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-unassigned-vars": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": "error", + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "preserve-caught-error": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error", + "no-array-constructor": "error", + "no-unused-expressions": "error", + "no-useless-constructor": "error", + "no-empty-function": "error", + "no-barrel-files/no-barrel-files": "error", + "no-barrel-files/prefer-source-imports": "error", + "import/namespace": "error", + "import/default": "error", + "import/no-named-as-default": "warn", + "import/no-named-as-default-member": "warn", + "import/no-duplicates": "warn", + "typescript/ban-ts-comment": [ + "error", + { + "minimumDescriptionLength": 10 + } + ], + "typescript/no-duplicate-enum-values": "error", + "typescript/no-dynamic-delete": "error", + "typescript/no-empty-object-type": "error", + "typescript/no-explicit-any": "error", + "typescript/no-extra-non-null-assertion": "error", + "typescript/no-extraneous-class": "error", + "typescript/no-invalid-void-type": "error", + "typescript/no-misused-new": "error", + "typescript/no-namespace": "error", + "typescript/no-non-null-asserted-nullish-coalescing": "error", + "typescript/no-non-null-asserted-optional-chain": "error", + "typescript/no-non-null-assertion": "error", + "typescript/no-require-imports": "error", + "typescript/no-this-alias": "error", + "typescript/no-unnecessary-type-constraint": "error", + "typescript/no-unsafe-declaration-merging": "error", + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/prefer-as-const": "error", + "typescript/prefer-literal-enum-member": "error", + "typescript/prefer-namespace-keyword": "error", + "typescript/triple-slash-reference": "error", + "typescript/unified-signatures": "error", + "typescript/adjacent-overload-signatures": "error", + "typescript/array-type": "error", + "typescript/ban-tslint-comment": "error", + "typescript/class-literal-property-style": "error", + "typescript/consistent-generic-constructors": "error", + "typescript/consistent-indexed-object-style": "error", + "typescript/consistent-type-assertions": "error", + "typescript/consistent-type-definitions": "error", + "typescript/no-confusing-non-null-assertion": "error", + "typescript/no-inferrable-types": "error", + "typescript/prefer-for-of": "error", + "typescript/prefer-function-type": "error" + }, + "overrides": [ + { + "files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], + "rules": { + "constructor-super": "off", + "getter-return": "off", + "no-class-assign": "off", + "no-const-assign": "off", + "no-dupe-class-members": "off", + "no-dupe-keys": "off", + "no-func-assign": "off", + "no-import-assign": "off", + "no-new-native-nonconstructor": "off", + "no-obj-calls": "off", + "no-redeclare": "off", + "no-setter-return": "off", + "no-this-before-super": "off", + "no-unreachable": "off", + "no-unsafe-negation": "off", + "no-var": "error", + "no-with": "off", + "prefer-const": "error", + "prefer-rest-params": "error", + "prefer-spread": "error" + } + }, + { + "files": ["**/*.{ts,tsx,js,jsx}"], + "rules": { + "nextjs/google-font-display": "warn", + "nextjs/google-font-preconnect": "warn", + "nextjs/next-script-for-ga": "warn", + "nextjs/no-async-client-component": "error", + "nextjs/no-before-interactive-script-outside-document": "warn", + "nextjs/no-css-tags": "warn", + "nextjs/no-head-element": "warn", + "nextjs/no-img-element": "warn", + "nextjs/no-page-custom-font": "warn", + "nextjs/no-styled-jsx-in-document": "warn", + "nextjs/no-title-in-document-head": "warn", + "nextjs/no-typos": "warn", + "nextjs/no-unwanted-polyfillio": "warn", + "nextjs/inline-script-id": "error", + "nextjs/no-assign-module-variable": "error", + "nextjs/no-document-import-in-page": "error", + "nextjs/no-duplicate-head": "error", + "nextjs/no-head-import-in-document": "error", + "nextjs/no-html-link-for-pages": "error", + "nextjs/no-script-component-in-head": "error", + "nextjs/no-sync-scripts": "error" + }, + "plugins": ["nextjs"] + }, + { + "files": ["**/*.{ts,tsx}"], + "rules": { + "@eslint-react/error-boundaries": "error", + "@eslint-react/exhaustive-deps": "warn", + "@eslint-react/no-access-state-in-setstate": "error", + "@eslint-react/no-array-index-key": "warn", + "@eslint-react/no-children-count": "warn", + "@eslint-react/no-children-for-each": "warn", + "@eslint-react/no-children-map": "warn", + "@eslint-react/no-children-only": "warn", + "@eslint-react/no-children-to-array": "warn", + "@eslint-react/no-clone-element": "warn", + "@eslint-react/no-component-will-mount": "error", + "@eslint-react/no-component-will-receive-props": "error", + "@eslint-react/no-component-will-update": "error", + "@eslint-react/no-context-provider": "warn", + "@eslint-react/no-create-ref": "error", + "@eslint-react/no-direct-mutation-state": "error", + "@eslint-react/no-forward-ref": "warn", + "@eslint-react/no-missing-key": "error", + "@eslint-react/no-nested-component-definitions": "error", + "@eslint-react/no-nested-lazy-component-declarations": "error", + "@eslint-react/no-set-state-in-component-did-mount": "warn", + "@eslint-react/no-set-state-in-component-did-update": "warn", + "@eslint-react/no-set-state-in-component-will-update": "warn", + "@eslint-react/no-unnecessary-use-prefix": "warn", + "@eslint-react/no-unsafe-component-will-mount": "warn", + "@eslint-react/no-unsafe-component-will-receive-props": "warn", + "@eslint-react/no-unsafe-component-will-update": "warn", + "@eslint-react/no-unused-class-component-members": "warn", + "@eslint-react/no-use-context": "warn", + "@eslint-react/purity": "warn", + "@eslint-react/rules-of-hooks": "error", + "@eslint-react/set-state-in-effect": "warn", + "@eslint-react/set-state-in-render": "error", + "@eslint-react/static-components": "error", + "@eslint-react/unsupported-syntax": "error", + "@eslint-react/use-memo": "error", + "@eslint-react/use-state": "warn", + "@eslint-react/jsx-no-children-prop": "warn", + "@eslint-react/jsx-no-children-prop-with-children": "error", + "@eslint-react/jsx-no-comment-textnodes": "warn", + "@eslint-react/jsx-no-key-after-spread": "error", + "@eslint-react/jsx-no-leaked-dollar": "warn", + "@eslint-react/jsx-no-leaked-semicolon": "warn", + "@eslint-react/jsx-no-namespace": "error", + "@eslint-react/rsc-function-definition": "error", + "@eslint-react/dom-no-dangerously-set-innerhtml": "warn", + "@eslint-react/dom-no-dangerously-set-innerhtml-with-children": "error", + "@eslint-react/dom-no-find-dom-node": "error", + "@eslint-react/dom-no-flush-sync": "error", + "@eslint-react/dom-no-hydrate": "error", + "@eslint-react/dom-no-render": "error", + "@eslint-react/dom-no-render-return-value": "error", + "@eslint-react/dom-no-script-url": "warn", + "@eslint-react/dom-no-unsafe-iframe-sandbox": "warn", + "@eslint-react/dom-no-use-form-state": "error", + "@eslint-react/dom-no-void-elements-with-children": "error", + "@eslint-react/web-api-no-leaked-event-listener": "warn", + "@eslint-react/web-api-no-leaked-fetch": "warn", + "@eslint-react/web-api-no-leaked-intersection-observer": "warn", + "@eslint-react/web-api-no-leaked-interval": "warn", + "@eslint-react/web-api-no-leaked-resize-observer": "warn", + "@eslint-react/web-api-no-leaked-timeout": "warn", + "@eslint-react/naming-convention-context-name": "warn", + "@eslint-react/naming-convention-id-name": "warn", + "@eslint-react/naming-convention-ref-name": "warn", + "react/rules-of-hooks": "off", + "react/exhaustive-deps": "off", + "react/static-components": "error", + "react/use-memo": "off", + "react/void-use-memo": "error", + "react/preserve-manual-memoization": "error", + "react/incompatible-library": "warn", + "react/immutability": "error", + "react/globals": "error", + "react/refs": "error", + "react/set-state-in-effect": "off", + "react/error-boundaries": "off", + "react/purity": "off", + "react/set-state-in-render": "off", + "react/unsupported-syntax": "off" + }, + "jsPlugins": ["@eslint-react/eslint-plugin"], + "plugins": ["react"] + }, + { + "files": ["**/*.{js,jsx,mjs,cjs,ts,tsx,mts,cts}"], + "rules": { + "react-you-might-not-need-an-effect/no-derived-state": "warn", + "react-you-might-not-need-an-effect/no-chain-state-updates": "warn", + "react-you-might-not-need-an-effect/no-event-handler": "warn", + "react-you-might-not-need-an-effect/no-adjust-state-on-prop-change": "warn", + "react-you-might-not-need-an-effect/no-reset-all-state-on-prop-change": "warn", + "react-you-might-not-need-an-effect/no-pass-live-state-to-parent": "warn", + "react-you-might-not-need-an-effect/no-pass-data-to-parent": "warn", + "react-you-might-not-need-an-effect/no-external-store-subscription": "warn", + "react-you-might-not-need-an-effect/no-initialize-state": "warn" + }, + "jsPlugins": ["eslint-plugin-react-you-might-not-need-an-effect"], + "globals": { + "AbortController": "readonly", + "AbortSignal": "readonly", + "AbsoluteOrientationSensor": "readonly", + "AbstractRange": "readonly", + "Accelerometer": "readonly", + "addEventListener": "readonly", + "ai": "readonly", + "AI": "readonly", + "AICreateMonitor": "readonly", + "AITextSession": "readonly", + "alert": "readonly", + "AnalyserNode": "readonly", + "Animation": "readonly", + "AnimationEffect": "readonly", + "AnimationEvent": "readonly", + "AnimationPlaybackEvent": "readonly", + "AnimationTimeline": "readonly", + "AsyncDisposableStack": "readonly", + "atob": "readonly", + "Attr": "readonly", + "Audio": "readonly", + "AudioBuffer": "readonly", + "AudioBufferSourceNode": "readonly", + "AudioContext": "readonly", + "AudioData": "readonly", + "AudioDecoder": "readonly", + "AudioDestinationNode": "readonly", + "AudioEncoder": "readonly", + "AudioListener": "readonly", + "AudioNode": "readonly", + "AudioParam": "readonly", + "AudioParamMap": "readonly", + "AudioProcessingEvent": "readonly", + "AudioScheduledSourceNode": "readonly", + "AudioSinkInfo": "readonly", + "AudioWorklet": "readonly", + "AudioWorkletGlobalScope": "readonly", + "AudioWorkletNode": "readonly", + "AudioWorkletProcessor": "readonly", + "AuthenticatorAssertionResponse": "readonly", + "AuthenticatorAttestationResponse": "readonly", + "AuthenticatorResponse": "readonly", + "BackgroundFetchManager": "readonly", + "BackgroundFetchRecord": "readonly", + "BackgroundFetchRegistration": "readonly", + "BarcodeDetector": "readonly", + "BarProp": "readonly", + "BaseAudioContext": "readonly", + "BatteryManager": "readonly", + "BeforeUnloadEvent": "readonly", + "BiquadFilterNode": "readonly", + "Blob": "readonly", + "BlobEvent": "readonly", + "Bluetooth": "readonly", + "BluetoothCharacteristicProperties": "readonly", + "BluetoothDevice": "readonly", + "BluetoothRemoteGATTCharacteristic": "readonly", + "BluetoothRemoteGATTDescriptor": "readonly", + "BluetoothRemoteGATTServer": "readonly", + "BluetoothRemoteGATTService": "readonly", + "BluetoothUUID": "readonly", + "blur": "readonly", + "BroadcastChannel": "readonly", + "BrowserCaptureMediaStreamTrack": "readonly", + "btoa": "readonly", + "ByteLengthQueuingStrategy": "readonly", + "Cache": "readonly", + "caches": "readonly", + "CacheStorage": "readonly", + "cancelAnimationFrame": "readonly", + "cancelIdleCallback": "readonly", + "CanvasCaptureMediaStream": "readonly", + "CanvasCaptureMediaStreamTrack": "readonly", + "CanvasGradient": "readonly", + "CanvasPattern": "readonly", + "CanvasRenderingContext2D": "readonly", + "CaptureController": "readonly", + "CaretPosition": "readonly", + "CDATASection": "readonly", + "ChannelMergerNode": "readonly", + "ChannelSplitterNode": "readonly", + "ChapterInformation": "readonly", + "CharacterBoundsUpdateEvent": "readonly", + "CharacterData": "readonly", + "clearInterval": "readonly", + "clearTimeout": "readonly", + "clientInformation": "readonly", + "Clipboard": "readonly", + "ClipboardChangeEvent": "readonly", + "ClipboardEvent": "readonly", + "ClipboardItem": "readonly", + "close": "readonly", + "closed": "readonly", + "CloseEvent": "readonly", + "CloseWatcher": "readonly", + "CommandEvent": "readonly", + "Comment": "readonly", + "CompositionEvent": "readonly", + "CompressionStream": "readonly", + "confirm": "readonly", + "console": "readonly", + "ConstantSourceNode": "readonly", + "ContentVisibilityAutoStateChangeEvent": "readonly", + "ConvolverNode": "readonly", + "CookieChangeEvent": "readonly", + "CookieDeprecationLabel": "readonly", + "cookieStore": "readonly", + "CookieStore": "readonly", + "CookieStoreManager": "readonly", + "CountQueuingStrategy": "readonly", + "createImageBitmap": "readonly", + "CreateMonitor": "readonly", + "Credential": "readonly", + "credentialless": "readonly", + "CredentialsContainer": "readonly", + "CropTarget": "readonly", + "crossOriginIsolated": "readonly", + "crypto": "readonly", + "Crypto": "readonly", + "CryptoKey": "readonly", + "CSPViolationReportBody": "readonly", + "CSS": "readonly", + "CSSAnimation": "readonly", + "CSSConditionRule": "readonly", + "CSSContainerRule": "readonly", + "CSSCounterStyleRule": "readonly", + "CSSFontFaceRule": "readonly", + "CSSFontFeatureValuesRule": "readonly", + "CSSFontPaletteValuesRule": "readonly", + "CSSFunctionDeclarations": "readonly", + "CSSFunctionDescriptors": "readonly", + "CSSFunctionRule": "readonly", + "CSSGroupingRule": "readonly", + "CSSImageValue": "readonly", + "CSSImportRule": "readonly", + "CSSKeyframeRule": "readonly", + "CSSKeyframesRule": "readonly", + "CSSKeywordValue": "readonly", + "CSSLayerBlockRule": "readonly", + "CSSLayerStatementRule": "readonly", + "CSSMarginRule": "readonly", + "CSSMathClamp": "readonly", + "CSSMathInvert": "readonly", + "CSSMathMax": "readonly", + "CSSMathMin": "readonly", + "CSSMathNegate": "readonly", + "CSSMathProduct": "readonly", + "CSSMathSum": "readonly", + "CSSMathValue": "readonly", + "CSSMatrixComponent": "readonly", + "CSSMediaRule": "readonly", + "CSSNamespaceRule": "readonly", + "CSSNestedDeclarations": "readonly", + "CSSNumericArray": "readonly", + "CSSNumericValue": "readonly", + "CSSPageDescriptors": "readonly", + "CSSPageRule": "readonly", + "CSSPerspective": "readonly", + "CSSPositionTryDescriptors": "readonly", + "CSSPositionTryRule": "readonly", + "CSSPositionValue": "readonly", + "CSSPropertyRule": "readonly", + "CSSRotate": "readonly", + "CSSRule": "readonly", + "CSSRuleList": "readonly", + "CSSScale": "readonly", + "CSSScopeRule": "readonly", + "CSSSkew": "readonly", + "CSSSkewX": "readonly", + "CSSSkewY": "readonly", + "CSSStartingStyleRule": "readonly", + "CSSStyleDeclaration": "readonly", + "CSSStyleRule": "readonly", + "CSSStyleSheet": "readonly", + "CSSStyleValue": "readonly", + "CSSSupportsRule": "readonly", + "CSSTransformComponent": "readonly", + "CSSTransformValue": "readonly", + "CSSTransition": "readonly", + "CSSTranslate": "readonly", + "CSSUnitValue": "readonly", + "CSSUnparsedValue": "readonly", + "CSSVariableReferenceValue": "readonly", + "CSSViewTransitionRule": "readonly", + "currentFrame": "readonly", + "currentTime": "readonly", + "CustomElementRegistry": "readonly", + "customElements": "readonly", + "CustomEvent": "readonly", + "CustomStateSet": "readonly", + "DataTransfer": "readonly", + "DataTransferItem": "readonly", + "DataTransferItemList": "readonly", + "DecompressionStream": "readonly", + "DelayNode": "readonly", + "DelegatedInkTrailPresenter": "readonly", + "DeviceMotionEvent": "readonly", + "DeviceMotionEventAcceleration": "readonly", + "DeviceMotionEventRotationRate": "readonly", + "DeviceOrientationEvent": "readonly", + "devicePixelRatio": "readonly", + "DevicePosture": "readonly", + "DigitalCredential": "readonly", + "dispatchEvent": "readonly", + "DisposableStack": "readonly", + "document": "readonly", + "Document": "readonly", + "DocumentFragment": "readonly", + "documentPictureInPicture": "readonly", + "DocumentPictureInPicture": "readonly", + "DocumentPictureInPictureEvent": "readonly", + "DocumentTimeline": "readonly", + "DocumentType": "readonly", + "DOMError": "readonly", + "DOMException": "readonly", + "DOMImplementation": "readonly", + "DOMMatrix": "readonly", + "DOMMatrixReadOnly": "readonly", + "DOMParser": "readonly", + "DOMPoint": "readonly", + "DOMPointReadOnly": "readonly", + "DOMQuad": "readonly", + "DOMRect": "readonly", + "DOMRectList": "readonly", + "DOMRectReadOnly": "readonly", + "DOMStringList": "readonly", + "DOMStringMap": "readonly", + "DOMTokenList": "readonly", + "DragEvent": "readonly", + "DynamicsCompressorNode": "readonly", + "EditContext": "readonly", + "Element": "readonly", + "ElementInternals": "readonly", + "EncodedAudioChunk": "readonly", + "EncodedVideoChunk": "readonly", + "ErrorEvent": "readonly", + "event": "readonly", + "Event": "readonly", + "EventCounts": "readonly", + "EventSource": "readonly", + "EventTarget": "readonly", + "external": "readonly", + "External": "readonly", + "EyeDropper": "readonly", + "FeaturePolicy": "readonly", + "FederatedCredential": "readonly", + "fence": "readonly", + "Fence": "readonly", + "FencedFrameConfig": "readonly", + "fetch": "readonly", + "fetchLater": "readonly", + "FetchLaterResult": "readonly", + "File": "readonly", + "FileList": "readonly", + "FileReader": "readonly", + "FileSystem": "readonly", + "FileSystemDirectoryEntry": "readonly", + "FileSystemDirectoryHandle": "readonly", + "FileSystemDirectoryReader": "readonly", + "FileSystemEntry": "readonly", + "FileSystemFileEntry": "readonly", + "FileSystemFileHandle": "readonly", + "FileSystemHandle": "readonly", + "FileSystemObserver": "readonly", + "FileSystemWritableFileStream": "readonly", + "find": "readonly", + "focus": "readonly", + "FocusEvent": "readonly", + "FontData": "readonly", + "FontFace": "readonly", + "FontFaceSet": "readonly", + "FontFaceSetLoadEvent": "readonly", + "FormData": "readonly", + "FormDataEvent": "readonly", + "FragmentDirective": "readonly", + "frameElement": "readonly", + "frames": "readonly", + "GainNode": "readonly", + "Gamepad": "readonly", + "GamepadAxisMoveEvent": "readonly", + "GamepadButton": "readonly", + "GamepadButtonEvent": "readonly", + "GamepadEvent": "readonly", + "GamepadHapticActuator": "readonly", + "GamepadPose": "readonly", + "Geolocation": "readonly", + "GeolocationCoordinates": "readonly", + "GeolocationPosition": "readonly", + "GeolocationPositionError": "readonly", + "getComputedStyle": "readonly", + "getScreenDetails": "readonly", + "getSelection": "readonly", + "GPU": "readonly", + "GPUAdapter": "readonly", + "GPUAdapterInfo": "readonly", + "GPUBindGroup": "readonly", + "GPUBindGroupLayout": "readonly", + "GPUBuffer": "readonly", + "GPUBufferUsage": "readonly", + "GPUCanvasContext": "readonly", + "GPUColorWrite": "readonly", + "GPUCommandBuffer": "readonly", + "GPUCommandEncoder": "readonly", + "GPUCompilationInfo": "readonly", + "GPUCompilationMessage": "readonly", + "GPUComputePassEncoder": "readonly", + "GPUComputePipeline": "readonly", + "GPUDevice": "readonly", + "GPUDeviceLostInfo": "readonly", + "GPUError": "readonly", + "GPUExternalTexture": "readonly", + "GPUInternalError": "readonly", + "GPUMapMode": "readonly", + "GPUOutOfMemoryError": "readonly", + "GPUPipelineError": "readonly", + "GPUPipelineLayout": "readonly", + "GPUQuerySet": "readonly", + "GPUQueue": "readonly", + "GPURenderBundle": "readonly", + "GPURenderBundleEncoder": "readonly", + "GPURenderPassEncoder": "readonly", + "GPURenderPipeline": "readonly", + "GPUSampler": "readonly", + "GPUShaderModule": "readonly", + "GPUShaderStage": "readonly", + "GPUSupportedFeatures": "readonly", + "GPUSupportedLimits": "readonly", + "GPUTexture": "readonly", + "GPUTextureUsage": "readonly", + "GPUTextureView": "readonly", + "GPUUncapturedErrorEvent": "readonly", + "GPUValidationError": "readonly", + "GravitySensor": "readonly", + "Gyroscope": "readonly", + "HashChangeEvent": "readonly", + "Headers": "readonly", + "HID": "readonly", + "HIDConnectionEvent": "readonly", + "HIDDevice": "readonly", + "HIDInputReportEvent": "readonly", + "Highlight": "readonly", + "HighlightRegistry": "readonly", + "history": "readonly", + "History": "readonly", + "HTMLAllCollection": "readonly", + "HTMLAnchorElement": "readonly", + "HTMLAreaElement": "readonly", + "HTMLAudioElement": "readonly", + "HTMLBaseElement": "readonly", + "HTMLBodyElement": "readonly", + "HTMLBRElement": "readonly", + "HTMLButtonElement": "readonly", + "HTMLCanvasElement": "readonly", + "HTMLCollection": "readonly", + "HTMLDataElement": "readonly", + "HTMLDataListElement": "readonly", + "HTMLDetailsElement": "readonly", + "HTMLDialogElement": "readonly", + "HTMLDirectoryElement": "readonly", + "HTMLDivElement": "readonly", + "HTMLDListElement": "readonly", + "HTMLDocument": "readonly", + "HTMLElement": "readonly", + "HTMLEmbedElement": "readonly", + "HTMLFencedFrameElement": "readonly", + "HTMLFieldSetElement": "readonly", + "HTMLFontElement": "readonly", + "HTMLFormControlsCollection": "readonly", + "HTMLFormElement": "readonly", + "HTMLFrameElement": "readonly", + "HTMLFrameSetElement": "readonly", + "HTMLHeadElement": "readonly", + "HTMLHeadingElement": "readonly", + "HTMLHRElement": "readonly", + "HTMLHtmlElement": "readonly", + "HTMLIFrameElement": "readonly", + "HTMLImageElement": "readonly", + "HTMLInputElement": "readonly", + "HTMLLabelElement": "readonly", + "HTMLLegendElement": "readonly", + "HTMLLIElement": "readonly", + "HTMLLinkElement": "readonly", + "HTMLMapElement": "readonly", + "HTMLMarqueeElement": "readonly", + "HTMLMediaElement": "readonly", + "HTMLMenuElement": "readonly", + "HTMLMetaElement": "readonly", + "HTMLMeterElement": "readonly", + "HTMLModElement": "readonly", + "HTMLObjectElement": "readonly", + "HTMLOListElement": "readonly", + "HTMLOptGroupElement": "readonly", + "HTMLOptionElement": "readonly", + "HTMLOptionsCollection": "readonly", + "HTMLOutputElement": "readonly", + "HTMLParagraphElement": "readonly", + "HTMLParamElement": "readonly", + "HTMLPictureElement": "readonly", + "HTMLPreElement": "readonly", + "HTMLProgressElement": "readonly", + "HTMLQuoteElement": "readonly", + "HTMLScriptElement": "readonly", + "HTMLSelectedContentElement": "readonly", + "HTMLSelectElement": "readonly", + "HTMLSlotElement": "readonly", + "HTMLSourceElement": "readonly", + "HTMLSpanElement": "readonly", + "HTMLStyleElement": "readonly", + "HTMLTableCaptionElement": "readonly", + "HTMLTableCellElement": "readonly", + "HTMLTableColElement": "readonly", + "HTMLTableElement": "readonly", + "HTMLTableRowElement": "readonly", + "HTMLTableSectionElement": "readonly", + "HTMLTemplateElement": "readonly", + "HTMLTextAreaElement": "readonly", + "HTMLTimeElement": "readonly", + "HTMLTitleElement": "readonly", + "HTMLTrackElement": "readonly", + "HTMLUListElement": "readonly", + "HTMLUnknownElement": "readonly", + "HTMLVideoElement": "readonly", + "IDBCursor": "readonly", + "IDBCursorWithValue": "readonly", + "IDBDatabase": "readonly", + "IDBFactory": "readonly", + "IDBIndex": "readonly", + "IDBKeyRange": "readonly", + "IDBObjectStore": "readonly", + "IDBOpenDBRequest": "readonly", + "IDBRecord": "readonly", + "IDBRequest": "readonly", + "IDBTransaction": "readonly", + "IDBVersionChangeEvent": "readonly", + "IdentityCredential": "readonly", + "IdentityCredentialError": "readonly", + "IdentityProvider": "readonly", + "IdleDeadline": "readonly", + "IdleDetector": "readonly", + "IIRFilterNode": "readonly", + "Image": "readonly", + "ImageBitmap": "readonly", + "ImageBitmapRenderingContext": "readonly", + "ImageCapture": "readonly", + "ImageData": "readonly", + "ImageDecoder": "readonly", + "ImageTrack": "readonly", + "ImageTrackList": "readonly", + "indexedDB": "readonly", + "Ink": "readonly", + "innerHeight": "readonly", + "innerWidth": "readonly", + "InputDeviceCapabilities": "readonly", + "InputDeviceInfo": "readonly", + "InputEvent": "readonly", + "IntegrityViolationReportBody": "readonly", + "InterestEvent": "readonly", + "IntersectionObserver": "readonly", + "IntersectionObserverEntry": "readonly", + "isSecureContext": "readonly", + "Keyboard": "readonly", + "KeyboardEvent": "readonly", + "KeyboardLayoutMap": "readonly", + "KeyframeEffect": "readonly", + "LanguageDetector": "readonly", + "LargestContentfulPaint": "readonly", + "LaunchParams": "readonly", + "launchQueue": "readonly", + "LaunchQueue": "readonly", + "LayoutShift": "readonly", + "LayoutShiftAttribution": "readonly", + "length": "readonly", + "LinearAccelerationSensor": "readonly", + "localStorage": "readonly", + "location": "writable", + "Location": "readonly", + "locationbar": "readonly", + "Lock": "readonly", + "LockManager": "readonly", + "matchMedia": "readonly", + "MathMLElement": "readonly", + "MediaCapabilities": "readonly", + "MediaCapabilitiesInfo": "readonly", + "MediaDeviceInfo": "readonly", + "MediaDevices": "readonly", + "MediaElementAudioSourceNode": "readonly", + "MediaEncryptedEvent": "readonly", + "MediaError": "readonly", + "MediaKeyError": "readonly", + "MediaKeyMessageEvent": "readonly", + "MediaKeys": "readonly", + "MediaKeySession": "readonly", + "MediaKeyStatusMap": "readonly", + "MediaKeySystemAccess": "readonly", + "MediaList": "readonly", + "MediaMetadata": "readonly", + "MediaQueryList": "readonly", + "MediaQueryListEvent": "readonly", + "MediaRecorder": "readonly", + "MediaRecorderErrorEvent": "readonly", + "MediaSession": "readonly", + "MediaSource": "readonly", + "MediaSourceHandle": "readonly", + "MediaStream": "readonly", + "MediaStreamAudioDestinationNode": "readonly", + "MediaStreamAudioSourceNode": "readonly", + "MediaStreamEvent": "readonly", + "MediaStreamTrack": "readonly", + "MediaStreamTrackAudioSourceNode": "readonly", + "MediaStreamTrackAudioStats": "readonly", + "MediaStreamTrackEvent": "readonly", + "MediaStreamTrackGenerator": "readonly", + "MediaStreamTrackProcessor": "readonly", + "MediaStreamTrackVideoStats": "readonly", + "menubar": "readonly", + "MessageChannel": "readonly", + "MessageEvent": "readonly", + "MessagePort": "readonly", + "MIDIAccess": "readonly", + "MIDIConnectionEvent": "readonly", + "MIDIInput": "readonly", + "MIDIInputMap": "readonly", + "MIDIMessageEvent": "readonly", + "MIDIOutput": "readonly", + "MIDIOutputMap": "readonly", + "MIDIPort": "readonly", + "MimeType": "readonly", + "MimeTypeArray": "readonly", + "model": "readonly", + "ModelGenericSession": "readonly", + "ModelManager": "readonly", + "MouseEvent": "readonly", + "moveBy": "readonly", + "moveTo": "readonly", + "MutationEvent": "readonly", + "MutationObserver": "readonly", + "MutationRecord": "readonly", + "name": "readonly", + "NamedNodeMap": "readonly", + "NavigateEvent": "readonly", + "navigation": "readonly", + "Navigation": "readonly", + "NavigationActivation": "readonly", + "NavigationCurrentEntryChangeEvent": "readonly", + "NavigationDestination": "readonly", + "NavigationHistoryEntry": "readonly", + "NavigationPrecommitController": "readonly", + "NavigationPreloadManager": "readonly", + "NavigationTransition": "readonly", + "navigator": "readonly", + "Navigator": "readonly", + "NavigatorLogin": "readonly", + "NavigatorManagedData": "readonly", + "NavigatorUAData": "readonly", + "NetworkInformation": "readonly", + "Node": "readonly", + "NodeFilter": "readonly", + "NodeIterator": "readonly", + "NodeList": "readonly", + "Notification": "readonly", + "NotifyPaintEvent": "readonly", + "NotRestoredReasonDetails": "readonly", + "NotRestoredReasons": "readonly", + "Observable": "readonly", + "OfflineAudioCompletionEvent": "readonly", + "OfflineAudioContext": "readonly", + "offscreenBuffering": "readonly", + "OffscreenCanvas": "readonly", + "OffscreenCanvasRenderingContext2D": "readonly", + "onabort": "writable", + "onafterprint": "writable", + "onanimationcancel": "writable", + "onanimationend": "writable", + "onanimationiteration": "writable", + "onanimationstart": "writable", + "onappinstalled": "writable", + "onauxclick": "writable", + "onbeforeinput": "writable", + "onbeforeinstallprompt": "writable", + "onbeforematch": "writable", + "onbeforeprint": "writable", + "onbeforetoggle": "writable", + "onbeforeunload": "writable", + "onbeforexrselect": "writable", + "onblur": "writable", + "oncancel": "writable", + "oncanplay": "writable", + "oncanplaythrough": "writable", + "onchange": "writable", + "onclick": "writable", + "onclose": "writable", + "oncommand": "writable", + "oncontentvisibilityautostatechange": "writable", + "oncontextlost": "writable", + "oncontextmenu": "writable", + "oncontextrestored": "writable", + "oncopy": "writable", + "oncuechange": "writable", + "oncut": "writable", + "ondblclick": "writable", + "ondevicemotion": "writable", + "ondeviceorientation": "writable", + "ondeviceorientationabsolute": "writable", + "ondrag": "writable", + "ondragend": "writable", + "ondragenter": "writable", + "ondragleave": "writable", + "ondragover": "writable", + "ondragstart": "writable", + "ondrop": "writable", + "ondurationchange": "writable", + "onemptied": "writable", + "onended": "writable", + "onerror": "writable", + "onfocus": "writable", + "onformdata": "writable", + "ongamepadconnected": "writable", + "ongamepaddisconnected": "writable", + "ongotpointercapture": "writable", + "onhashchange": "writable", + "oninput": "writable", + "oninvalid": "writable", + "onkeydown": "writable", + "onkeypress": "writable", + "onkeyup": "writable", + "onlanguagechange": "writable", + "onload": "writable", + "onloadeddata": "writable", + "onloadedmetadata": "writable", + "onloadstart": "writable", + "onlostpointercapture": "writable", + "onmessage": "writable", + "onmessageerror": "writable", + "onmousedown": "writable", + "onmouseenter": "writable", + "onmouseleave": "writable", + "onmousemove": "writable", + "onmouseout": "writable", + "onmouseover": "writable", + "onmouseup": "writable", + "onmousewheel": "writable", + "onoffline": "writable", + "ononline": "writable", + "onpagehide": "writable", + "onpagereveal": "writable", + "onpageshow": "writable", + "onpageswap": "writable", + "onpaste": "writable", + "onpause": "writable", + "onplay": "writable", + "onplaying": "writable", + "onpointercancel": "writable", + "onpointerdown": "writable", + "onpointerenter": "writable", + "onpointerleave": "writable", + "onpointermove": "writable", + "onpointerout": "writable", + "onpointerover": "writable", + "onpointerrawupdate": "writable", + "onpointerup": "writable", + "onpopstate": "writable", + "onprogress": "writable", + "onratechange": "writable", + "onrejectionhandled": "writable", + "onreset": "writable", + "onresize": "writable", + "onscroll": "writable", + "onscrollend": "writable", + "onscrollsnapchange": "writable", + "onscrollsnapchanging": "writable", + "onsearch": "writable", + "onsecuritypolicyviolation": "writable", + "onseeked": "writable", + "onseeking": "writable", + "onselect": "writable", + "onselectionchange": "writable", + "onselectstart": "writable", + "onslotchange": "writable", + "onstalled": "writable", + "onstorage": "writable", + "onsubmit": "writable", + "onsuspend": "writable", + "ontimeupdate": "writable", + "ontoggle": "writable", + "ontransitioncancel": "writable", + "ontransitionend": "writable", + "ontransitionrun": "writable", + "ontransitionstart": "writable", + "onunhandledrejection": "writable", + "onunload": "writable", + "onvolumechange": "writable", + "onwaiting": "writable", + "onwheel": "writable", + "open": "readonly", + "opener": "readonly", + "Option": "readonly", + "OrientationSensor": "readonly", + "origin": "readonly", + "originAgentCluster": "readonly", + "OscillatorNode": "readonly", + "OTPCredential": "readonly", + "outerHeight": "readonly", + "outerWidth": "readonly", + "OverconstrainedError": "readonly", + "PageRevealEvent": "readonly", + "PageSwapEvent": "readonly", + "PageTransitionEvent": "readonly", + "pageXOffset": "readonly", + "pageYOffset": "readonly", + "PannerNode": "readonly", + "parent": "readonly", + "PasswordCredential": "readonly", + "Path2D": "readonly", + "PaymentAddress": "readonly", + "PaymentManager": "readonly", + "PaymentMethodChangeEvent": "readonly", + "PaymentRequest": "readonly", + "PaymentRequestUpdateEvent": "readonly", + "PaymentResponse": "readonly", + "performance": "readonly", + "Performance": "readonly", + "PerformanceElementTiming": "readonly", + "PerformanceEntry": "readonly", + "PerformanceEventTiming": "readonly", + "PerformanceLongAnimationFrameTiming": "readonly", + "PerformanceLongTaskTiming": "readonly", + "PerformanceMark": "readonly", + "PerformanceMeasure": "readonly", + "PerformanceNavigation": "readonly", + "PerformanceNavigationTiming": "readonly", + "PerformanceObserver": "readonly", + "PerformanceObserverEntryList": "readonly", + "PerformancePaintTiming": "readonly", + "PerformanceResourceTiming": "readonly", + "PerformanceScriptTiming": "readonly", + "PerformanceServerTiming": "readonly", + "PerformanceTiming": "readonly", + "PeriodicSyncManager": "readonly", + "PeriodicWave": "readonly", + "Permissions": "readonly", + "PermissionStatus": "readonly", + "PERSISTENT": "readonly", + "personalbar": "readonly", + "PictureInPictureEvent": "readonly", + "PictureInPictureWindow": "readonly", + "Plugin": "readonly", + "PluginArray": "readonly", + "PointerEvent": "readonly", + "PopStateEvent": "readonly", + "postMessage": "readonly", + "Presentation": "readonly", + "PresentationAvailability": "readonly", + "PresentationConnection": "readonly", + "PresentationConnectionAvailableEvent": "readonly", + "PresentationConnectionCloseEvent": "readonly", + "PresentationConnectionList": "readonly", + "PresentationReceiver": "readonly", + "PresentationRequest": "readonly", + "PressureObserver": "readonly", + "PressureRecord": "readonly", + "print": "readonly", + "ProcessingInstruction": "readonly", + "Profiler": "readonly", + "ProgressEvent": "readonly", + "PromiseRejectionEvent": "readonly", + "prompt": "readonly", + "ProtectedAudience": "readonly", + "PublicKeyCredential": "readonly", + "PushManager": "readonly", + "PushSubscription": "readonly", + "PushSubscriptionOptions": "readonly", + "queryLocalFonts": "readonly", + "queueMicrotask": "readonly", + "QuotaExceededError": "readonly", + "RadioNodeList": "readonly", + "Range": "readonly", + "ReadableByteStreamController": "readonly", + "ReadableStream": "readonly", + "ReadableStreamBYOBReader": "readonly", + "ReadableStreamBYOBRequest": "readonly", + "ReadableStreamDefaultController": "readonly", + "ReadableStreamDefaultReader": "readonly", + "registerProcessor": "readonly", + "RelativeOrientationSensor": "readonly", + "RemotePlayback": "readonly", + "removeEventListener": "readonly", + "ReportBody": "readonly", + "reportError": "readonly", + "ReportingObserver": "readonly", + "Request": "readonly", + "requestAnimationFrame": "readonly", + "requestIdleCallback": "readonly", + "resizeBy": "readonly", + "ResizeObserver": "readonly", + "ResizeObserverEntry": "readonly", + "ResizeObserverSize": "readonly", + "resizeTo": "readonly", + "Response": "readonly", + "RestrictionTarget": "readonly", + "RTCCertificate": "readonly", + "RTCDataChannel": "readonly", + "RTCDataChannelEvent": "readonly", + "RTCDtlsTransport": "readonly", + "RTCDTMFSender": "readonly", + "RTCDTMFToneChangeEvent": "readonly", + "RTCEncodedAudioFrame": "readonly", + "RTCEncodedVideoFrame": "readonly", + "RTCError": "readonly", + "RTCErrorEvent": "readonly", + "RTCIceCandidate": "readonly", + "RTCIceTransport": "readonly", + "RTCPeerConnection": "readonly", + "RTCPeerConnectionIceErrorEvent": "readonly", + "RTCPeerConnectionIceEvent": "readonly", + "RTCRtpReceiver": "readonly", + "RTCRtpScriptTransform": "readonly", + "RTCRtpSender": "readonly", + "RTCRtpTransceiver": "readonly", + "RTCSctpTransport": "readonly", + "RTCSessionDescription": "readonly", + "RTCStatsReport": "readonly", + "RTCTrackEvent": "readonly", + "sampleRate": "readonly", + "scheduler": "readonly", + "Scheduler": "readonly", + "Scheduling": "readonly", + "screen": "readonly", + "Screen": "readonly", + "ScreenDetailed": "readonly", + "ScreenDetails": "readonly", + "screenLeft": "readonly", + "ScreenOrientation": "readonly", + "screenTop": "readonly", + "screenX": "readonly", + "screenY": "readonly", + "ScriptProcessorNode": "readonly", + "scroll": "readonly", + "scrollbars": "readonly", + "scrollBy": "readonly", + "ScrollTimeline": "readonly", + "scrollTo": "readonly", + "scrollX": "readonly", + "scrollY": "readonly", + "SecurityPolicyViolationEvent": "readonly", + "Selection": "readonly", + "self": "readonly", + "Sensor": "readonly", + "SensorErrorEvent": "readonly", + "Serial": "readonly", + "SerialPort": "readonly", + "ServiceWorker": "readonly", + "ServiceWorkerContainer": "readonly", + "ServiceWorkerRegistration": "readonly", + "sessionStorage": "readonly", + "setInterval": "readonly", + "setTimeout": "readonly", + "ShadowRoot": "readonly", + "sharedStorage": "readonly", + "SharedStorage": "readonly", + "SharedStorageAppendMethod": "readonly", + "SharedStorageClearMethod": "readonly", + "SharedStorageDeleteMethod": "readonly", + "SharedStorageModifierMethod": "readonly", + "SharedStorageSetMethod": "readonly", + "SharedStorageWorklet": "readonly", + "SharedWorker": "readonly", + "showDirectoryPicker": "readonly", + "showOpenFilePicker": "readonly", + "showSaveFilePicker": "readonly", + "SnapEvent": "readonly", + "SourceBuffer": "readonly", + "SourceBufferList": "readonly", + "SpeechGrammar": "readonly", + "SpeechGrammarList": "readonly", + "SpeechRecognition": "readonly", + "SpeechRecognitionErrorEvent": "readonly", + "SpeechRecognitionEvent": "readonly", + "SpeechRecognitionPhrase": "readonly", + "speechSynthesis": "readonly", + "SpeechSynthesis": "readonly", + "SpeechSynthesisErrorEvent": "readonly", + "SpeechSynthesisEvent": "readonly", + "SpeechSynthesisUtterance": "readonly", + "SpeechSynthesisVoice": "readonly", + "StaticRange": "readonly", + "status": "readonly", + "statusbar": "readonly", + "StereoPannerNode": "readonly", + "stop": "readonly", + "Storage": "readonly", + "StorageBucket": "readonly", + "StorageBucketManager": "readonly", + "StorageEvent": "readonly", + "StorageManager": "readonly", + "structuredClone": "readonly", + "styleMedia": "readonly", + "StylePropertyMap": "readonly", + "StylePropertyMapReadOnly": "readonly", + "StyleSheet": "readonly", + "StyleSheetList": "readonly", + "SubmitEvent": "readonly", + "Subscriber": "readonly", + "SubtleCrypto": "readonly", + "Summarizer": "readonly", + "SuppressedError": "readonly", + "SVGAElement": "readonly", + "SVGAngle": "readonly", + "SVGAnimatedAngle": "readonly", + "SVGAnimatedBoolean": "readonly", + "SVGAnimatedEnumeration": "readonly", + "SVGAnimatedInteger": "readonly", + "SVGAnimatedLength": "readonly", + "SVGAnimatedLengthList": "readonly", + "SVGAnimatedNumber": "readonly", + "SVGAnimatedNumberList": "readonly", + "SVGAnimatedPreserveAspectRatio": "readonly", + "SVGAnimatedRect": "readonly", + "SVGAnimatedString": "readonly", + "SVGAnimatedTransformList": "readonly", + "SVGAnimateElement": "readonly", + "SVGAnimateMotionElement": "readonly", + "SVGAnimateTransformElement": "readonly", + "SVGAnimationElement": "readonly", + "SVGCircleElement": "readonly", + "SVGClipPathElement": "readonly", + "SVGComponentTransferFunctionElement": "readonly", + "SVGDefsElement": "readonly", + "SVGDescElement": "readonly", + "SVGElement": "readonly", + "SVGEllipseElement": "readonly", + "SVGFEBlendElement": "readonly", + "SVGFEColorMatrixElement": "readonly", + "SVGFEComponentTransferElement": "readonly", + "SVGFECompositeElement": "readonly", + "SVGFEConvolveMatrixElement": "readonly", + "SVGFEDiffuseLightingElement": "readonly", + "SVGFEDisplacementMapElement": "readonly", + "SVGFEDistantLightElement": "readonly", + "SVGFEDropShadowElement": "readonly", + "SVGFEFloodElement": "readonly", + "SVGFEFuncAElement": "readonly", + "SVGFEFuncBElement": "readonly", + "SVGFEFuncGElement": "readonly", + "SVGFEFuncRElement": "readonly", + "SVGFEGaussianBlurElement": "readonly", + "SVGFEImageElement": "readonly", + "SVGFEMergeElement": "readonly", + "SVGFEMergeNodeElement": "readonly", + "SVGFEMorphologyElement": "readonly", + "SVGFEOffsetElement": "readonly", + "SVGFEPointLightElement": "readonly", + "SVGFESpecularLightingElement": "readonly", + "SVGFESpotLightElement": "readonly", + "SVGFETileElement": "readonly", + "SVGFETurbulenceElement": "readonly", + "SVGFilterElement": "readonly", + "SVGForeignObjectElement": "readonly", + "SVGGElement": "readonly", + "SVGGeometryElement": "readonly", + "SVGGradientElement": "readonly", + "SVGGraphicsElement": "readonly", + "SVGImageElement": "readonly", + "SVGLength": "readonly", + "SVGLengthList": "readonly", + "SVGLinearGradientElement": "readonly", + "SVGLineElement": "readonly", + "SVGMarkerElement": "readonly", + "SVGMaskElement": "readonly", + "SVGMatrix": "readonly", + "SVGMetadataElement": "readonly", + "SVGMPathElement": "readonly", + "SVGNumber": "readonly", + "SVGNumberList": "readonly", + "SVGPathElement": "readonly", + "SVGPatternElement": "readonly", + "SVGPoint": "readonly", + "SVGPointList": "readonly", + "SVGPolygonElement": "readonly", + "SVGPolylineElement": "readonly", + "SVGPreserveAspectRatio": "readonly", + "SVGRadialGradientElement": "readonly", + "SVGRect": "readonly", + "SVGRectElement": "readonly", + "SVGScriptElement": "readonly", + "SVGSetElement": "readonly", + "SVGStopElement": "readonly", + "SVGStringList": "readonly", + "SVGStyleElement": "readonly", + "SVGSVGElement": "readonly", + "SVGSwitchElement": "readonly", + "SVGSymbolElement": "readonly", + "SVGTextContentElement": "readonly", + "SVGTextElement": "readonly", + "SVGTextPathElement": "readonly", + "SVGTextPositioningElement": "readonly", + "SVGTitleElement": "readonly", + "SVGTransform": "readonly", + "SVGTransformList": "readonly", + "SVGTSpanElement": "readonly", + "SVGUnitTypes": "readonly", + "SVGUseElement": "readonly", + "SVGViewElement": "readonly", + "SyncManager": "readonly", + "TaskAttributionTiming": "readonly", + "TaskController": "readonly", + "TaskPriorityChangeEvent": "readonly", + "TaskSignal": "readonly", + "TEMPORARY": "readonly", + "Text": "readonly", + "TextDecoder": "readonly", + "TextDecoderStream": "readonly", + "TextEncoder": "readonly", + "TextEncoderStream": "readonly", + "TextEvent": "readonly", + "TextFormat": "readonly", + "TextFormatUpdateEvent": "readonly", + "TextMetrics": "readonly", + "TextTrack": "readonly", + "TextTrackCue": "readonly", + "TextTrackCueList": "readonly", + "TextTrackList": "readonly", + "TextUpdateEvent": "readonly", + "TimeEvent": "readonly", + "TimeRanges": "readonly", + "ToggleEvent": "readonly", + "toolbar": "readonly", + "top": "readonly", + "Touch": "readonly", + "TouchEvent": "readonly", + "TouchList": "readonly", + "TrackEvent": "readonly", + "TransformStream": "readonly", + "TransformStreamDefaultController": "readonly", + "TransitionEvent": "readonly", + "Translator": "readonly", + "TreeWalker": "readonly", + "TrustedHTML": "readonly", + "TrustedScript": "readonly", + "TrustedScriptURL": "readonly", + "TrustedTypePolicy": "readonly", + "TrustedTypePolicyFactory": "readonly", + "trustedTypes": "readonly", + "UIEvent": "readonly", + "URL": "readonly", + "URLPattern": "readonly", + "URLSearchParams": "readonly", + "USB": "readonly", + "USBAlternateInterface": "readonly", + "USBConfiguration": "readonly", + "USBConnectionEvent": "readonly", + "USBDevice": "readonly", + "USBEndpoint": "readonly", + "USBInterface": "readonly", + "USBInTransferResult": "readonly", + "USBIsochronousInTransferPacket": "readonly", + "USBIsochronousInTransferResult": "readonly", + "USBIsochronousOutTransferPacket": "readonly", + "USBIsochronousOutTransferResult": "readonly", + "USBOutTransferResult": "readonly", + "UserActivation": "readonly", + "ValidityState": "readonly", + "VideoColorSpace": "readonly", + "VideoDecoder": "readonly", + "VideoEncoder": "readonly", + "VideoFrame": "readonly", + "VideoPlaybackQuality": "readonly", + "viewport": "readonly", + "Viewport": "readonly", + "ViewTimeline": "readonly", + "ViewTransition": "readonly", + "ViewTransitionTypeSet": "readonly", + "VirtualKeyboard": "readonly", + "VirtualKeyboardGeometryChangeEvent": "readonly", + "VisibilityStateEntry": "readonly", + "visualViewport": "readonly", + "VisualViewport": "readonly", + "VTTCue": "readonly", + "VTTRegion": "readonly", + "WakeLock": "readonly", + "WakeLockSentinel": "readonly", + "WaveShaperNode": "readonly", + "WebAssembly": "readonly", + "WebGL2RenderingContext": "readonly", + "WebGLActiveInfo": "readonly", + "WebGLBuffer": "readonly", + "WebGLContextEvent": "readonly", + "WebGLFramebuffer": "readonly", + "WebGLObject": "readonly", + "WebGLProgram": "readonly", + "WebGLQuery": "readonly", + "WebGLRenderbuffer": "readonly", + "WebGLRenderingContext": "readonly", + "WebGLSampler": "readonly", + "WebGLShader": "readonly", + "WebGLShaderPrecisionFormat": "readonly", + "WebGLSync": "readonly", + "WebGLTexture": "readonly", + "WebGLTransformFeedback": "readonly", + "WebGLUniformLocation": "readonly", + "WebGLVertexArrayObject": "readonly", + "WebSocket": "readonly", + "WebSocketError": "readonly", + "WebSocketStream": "readonly", + "WebTransport": "readonly", + "WebTransportBidirectionalStream": "readonly", + "WebTransportDatagramDuplexStream": "readonly", + "WebTransportError": "readonly", + "WebTransportReceiveStream": "readonly", + "WebTransportSendStream": "readonly", + "WGSLLanguageFeatures": "readonly", + "WheelEvent": "readonly", + "when": "readonly", + "window": "readonly", + "Window": "readonly", + "WindowControlsOverlay": "readonly", + "WindowControlsOverlayGeometryChangeEvent": "readonly", + "Worker": "readonly", + "Worklet": "readonly", + "WorkletGlobalScope": "readonly", + "WritableStream": "readonly", + "WritableStreamDefaultController": "readonly", + "WritableStreamDefaultWriter": "readonly", + "XMLDocument": "readonly", + "XMLHttpRequest": "readonly", + "XMLHttpRequestEventTarget": "readonly", + "XMLHttpRequestUpload": "readonly", + "XMLSerializer": "readonly", + "XPathEvaluator": "readonly", + "XPathExpression": "readonly", + "XPathResult": "readonly", + "XRAnchor": "readonly", + "XRAnchorSet": "readonly", + "XRBoundedReferenceSpace": "readonly", + "XRCamera": "readonly", + "XRCPUDepthInformation": "readonly", + "XRDepthInformation": "readonly", + "XRDOMOverlayState": "readonly", + "XRFrame": "readonly", + "XRHand": "readonly", + "XRHitTestResult": "readonly", + "XRHitTestSource": "readonly", + "XRInputSource": "readonly", + "XRInputSourceArray": "readonly", + "XRInputSourceEvent": "readonly", + "XRInputSourcesChangeEvent": "readonly", + "XRJointPose": "readonly", + "XRJointSpace": "readonly", + "XRLayer": "readonly", + "XRLightEstimate": "readonly", + "XRLightProbe": "readonly", + "XRPose": "readonly", + "XRRay": "readonly", + "XRReferenceSpace": "readonly", + "XRReferenceSpaceEvent": "readonly", + "XRRenderState": "readonly", + "XRRigidTransform": "readonly", + "XRSession": "readonly", + "XRSessionEvent": "readonly", + "XRSpace": "readonly", + "XRSystem": "readonly", + "XRTransientInputHitTestResult": "readonly", + "XRTransientInputHitTestSource": "readonly", + "XRView": "readonly", + "XRViewerPose": "readonly", + "XRViewport": "readonly", + "XRWebGLBinding": "readonly", + "XRWebGLDepthInformation": "readonly", + "XRWebGLLayer": "readonly", + "XSLTProcessor": "readonly" + } + }, + { + "files": ["**/*.{ts,tsx,js,jsx}"], + "rules": { + "import/extensions": [ + "error", + "never", + { + "css": "always", + "jpg": "always", + "json": "always", + "png": "always", + "svg": "always" + } + ], + "import/prefer-default-export": "off", + "import/no-named-as-default": "off", + "import/namespace": "off", + "unicorn/catch-error-name": "error", + "unicorn/error-message": "error", + "unicorn/no-abusive-eslint-disable": "error", + "unicorn/no-array-callback-reference": "error", + "unicorn/no-unreadable-array-destructuring": "error", + "unicorn/no-zero-fractions": "error", + "unicorn/prefer-includes": "error", + "unicorn/prefer-dom-node-append": "error", + "unicorn/prefer-dom-node-remove": "error", + "unicorn/prefer-query-selector": "error", + "unicorn/prefer-spread": "error", + "unicorn/prefer-string-starts-ends-with": "error", + "unicorn/prefer-dom-node-text-content": "error", + "unicorn/prefer-type-error": "error", + "unicorn/throw-new-error": "error", + "lodash/import-scope": ["error", "method"] + }, + "jsPlugins": ["eslint-plugin-lodash"] + }, + { + "files": ["**/*.{ts,tsx}"], + "rules": { + "better-tailwindcss/enforce-consistent-class-order": "warn", + "better-tailwindcss/enforce-consistent-line-wrapping": "off", + "better-tailwindcss/no-deprecated-classes": "warn", + "better-tailwindcss/no-duplicate-classes": "warn", + "better-tailwindcss/no-unnecessary-whitespace": "warn", + "better-tailwindcss/enforce-canonical-classes": "warn", + "better-tailwindcss/no-concatenated-classes": "error", + "better-tailwindcss/no-conflicting-classes": "error", + "better-tailwindcss/no-unknown-classes": "error" + }, + "jsPlugins": ["eslint-plugin-better-tailwindcss"] + }, + { + "files": ["**/*.test.ts", "**/*.test.tsx"], + "jsPlugins": ["eslint-plugin-better-tailwindcss"], + "rules": { + "better-tailwindcss/enforce-consistent-class-order": "off", + "better-tailwindcss/enforce-consistent-line-wrapping": "off", + "better-tailwindcss/no-deprecated-classes": "off", + "better-tailwindcss/no-duplicate-classes": "off", + "better-tailwindcss/no-unnecessary-whitespace": "off", + "better-tailwindcss/enforce-canonical-classes": "off", + "better-tailwindcss/no-concatenated-classes": "off", + "better-tailwindcss/no-conflicting-classes": "off", + "better-tailwindcss/no-unknown-classes": "off" + } + }, + { + "files": ["**/*.js"], + "rules": { + "typescript/no-unsafe-argument": "off", + "typescript/no-unsafe-assignment": "off", + "typescript/no-unsafe-call": "off", + "typescript/no-unsafe-member-access": "off", + "typescript/no-unsafe-return": "off" + }, + "globals": { + "module": "readonly", + "require": "readonly", + "exports": "readonly", + "__dirname": "readonly", + "__filename": "readonly", + "Buffer": "readonly", + "window": "readonly", + "document": "readonly", + "console": "readonly", + "process": "readonly" + } + }, + { + "files": ["**/*.{ts,tsx,js,jsx}"], + "rules": { + "class-methods-use-this": "off", + "no-console": "warn", + "no-extra-boolean-cast": "off", + "no-promise-executor-return": "off", + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "react-select", + "message": "Please use `@/components/Form/Select/ThemedReactSelect` instead." + }, + { + "name": "prop-types", + "importNames": ["default"], + "message": "Please use named imports of \"prop-types\".\n Example: \"import { func } from 'prop-types';\"" + }, + { + "name": "react", + "importNames": ["default"], + "message": "React is globally available for all page files." + }, + { + "name": "tailwind-merge", + "importNames": ["twMerge"], + "message": "Please import `cn` from `@/lib/utils.ts` instead of directly from tailwind-merge." + }, + { + "name": "class-variance-authority", + "importNames": ["cx", "cva"], + "message": "Please import from `@/lib/utils.ts` instead of directly from class-variance-authority." + } + ] + } + ], + "no-use-before-define": "off" + } + }, + { + "files": ["**/*.ts", "**/*.tsx"], + "rules": { + "no-restricted-imports": [ + "error", + { + "paths": [ + { + "name": "react-select", + "message": "Please use `@/components/Form/Select/ThemedReactSelect` instead." + }, + { + "name": "react", + "importNames": ["default"], + "message": "React is globally available for all page files." + }, + { + "name": "tailwind-merge", + "importNames": ["twMerge"], + "message": "Please import `cn` from `@/lib/utils.ts` instead of directly from tailwind-merge." + }, + { + "name": "class-variance-authority", + "importNames": ["cx", "cva"], + "message": "Please import from `@/lib/utils.ts` instead of directly from class-variance-authority." + } + ] + } + ], + "no-unused-vars": [ + "error", + { + "vars": "all", + "varsIgnorePattern": "_" + } + ], + "typescript/consistent-type-imports": "error", + "typescript/explicit-module-boundary-types": "off", + "typescript/no-empty-object-type": [ + "error", + { + "allowInterfaces": "with-single-extends" + } + ], + "typescript/unbound-method": "off", + "typescript/no-misused-promises": "off", + "typescript/no-unsafe-assignment": "off", + "typescript/no-unsafe-argument": "off", + "typescript/no-unsafe-call": "off", + "typescript/no-unsafe-member-access": "off", + "typescript/no-unsafe-return": "off", + "typescript/no-floating-promises": "off", + "typescript/require-await": "off", + "typescript/no-redundant-type-constituents": "off", + "typescript/ban-ts-comment": "off" + } + }, + { + "files": [ + "**/*.test.ts", + "**/*.test.tsx", + "**/*.test.js", + "**/*.test.jsx", + "src/test-utils/**/*.{ts,js}" + ], + "rules": { + "vitest/expect-expect": [ + "error", + { + "assertFunctionNames": ["expect", "createSnapshotTest"] + } + ], + "vitest/no-commented-out-tests": "error", + "vitest/no-conditional-expect": "error", + "vitest/no-disabled-tests": "warn", + "vitest/no-focused-tests": "error", + "vitest/no-identical-title": "error", + "vitest/no-import-node-test": "error", + "vitest/no-interpolation-in-snapshots": "error", + "vitest/no-mocks-import": "error", + "vitest/no-standalone-expect": "error", + "vitest/no-unneeded-async-expect-function": "error", + "vitest/prefer-called-exactly-once-with": "error", + "vitest/require-local-test-context-for-concurrent-snapshots": "error", + "vitest/valid-describe-callback": "error", + "vitest/valid-expect": "error", + "vitest/valid-expect-in-promise": "error", + "vitest/valid-title": "error", + "vitest/consistent-test-it": [ + "error", + { + "fn": "it", + "withinDescribe": "it" + } + ], + "vitest/prefer-lowercase-title": [ + "error", + { + "ignore": ["describe"] + } + ], + "vitest/no-test-prefixes": "error", + "vitest/no-test-return-statement": "error", + "vitest/prefer-strict-equal": "error" + }, + "globals": { + "suite": "writable", + "test": "writable", + "describe": "writable", + "it": "writable", + "expectTypeOf": "writable", + "assertType": "writable", + "expect": "writable", + "assert": "writable", + "chai": "writable", + "vitest": "writable", + "vi": "writable", + "beforeAll": "writable", + "afterAll": "writable", + "beforeEach": "writable", + "afterEach": "writable", + "onTestFailed": "writable", + "onTestFinished": "writable" + }, + "plugins": ["vitest"] + }, + { + "files": ["**/*.test.ts", "**/*.test.tsx"], + "rules": { + "typescript/no-non-null-assertion": "off" + }, + "jsPlugins": ["@eslint-react/eslint-plugin"] + }, + { + "files": ["src/e2e/**/*.spec.ts"], + "rules": { + "no-empty-pattern": "off", + "playwright/consistent-spacing-between-blocks": "warn", + "playwright/expect-expect": [ + "warn", + { + "assertFunctionNames": ["expect", "assertError", "assertFailedLogin"] + } + ], + "playwright/max-nested-describe": "warn", + "playwright/missing-playwright-await": "error", + "playwright/no-conditional-expect": "warn", + "playwright/no-conditional-in-test": "warn", + "playwright/no-duplicate-hooks": "warn", + "playwright/no-duplicate-slow": "warn", + "playwright/no-element-handle": "warn", + "playwright/no-eval": "warn", + "playwright/no-focused-test": "error", + "playwright/no-force-option": "warn", + "playwright/no-identical-title": "warn", + "playwright/no-nested-step": "warn", + "playwright/no-networkidle": "error", + "playwright/no-page-pause": "warn", + "playwright/no-skipped-test": "warn", + "playwright/no-standalone-expect": "error", + "playwright/no-unnecessary-assertions": "error", + "playwright/no-unsafe-references": "error", + "playwright/no-unused-locators": "error", + "playwright/no-useless-await": "warn", + "playwright/no-useless-not": "warn", + "playwright/no-wait-for-navigation": "error", + "playwright/no-wait-for-selector": "warn", + "playwright/no-wait-for-timeout": "warn", + "playwright/prefer-hooks-in-order": "warn", + "playwright/prefer-hooks-on-top": "warn", + "playwright/prefer-locator": "warn", + "playwright/prefer-to-have-count": "warn", + "playwright/prefer-to-have-length": "warn", + "playwright/prefer-web-first-assertions": "error", + "playwright/valid-describe-callback": "error", + "playwright/valid-expect": "error", + "playwright/valid-expect-in-promise": "error", + "playwright/valid-test-tags": "error", + "playwright/valid-title": "error", + "func-names": "off", + "no-unused-expressions": "off" + }, + "jsPlugins": ["eslint-plugin-playwright"], + "env": { + "shared-node-browser": true + } + }, + { + "files": ["src/app/api/**/*.ts"], + "rules": { + "no-console": "off" + } + }, + { + "files": ["**/*.stories.@(ts|tsx|js|jsx|mjs|cjs)", "**/*.story.@(ts|tsx|js|jsx|mjs|cjs)"], + "rules": { + "storybook/await-interactions": "error", + "storybook/context-in-play-function": "error", + "storybook/default-exports": "error", + "storybook/hierarchy-separator": "warn", + "storybook/no-redundant-story-name": "warn", + "storybook/no-renderer-packages": "error", + "storybook/prefer-pascal-case": "warn", + "storybook/story-exports": "error", + "storybook/use-storybook-expect": "error", + "storybook/use-storybook-testing-library": "error", + "import/no-anonymous-default-export": "off", + "react/rules-of-hooks": "off" + }, + "jsPlugins": ["eslint-plugin-storybook"], + "plugins": ["react"] + }, + { + "files": [".storybook/main.@(js|cjs|mjs|ts)"], + "rules": { + "storybook/no-uninstalled-addons": "error" + }, + "jsPlugins": ["eslint-plugin-storybook"] + } + ] +} diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 0b4d74bc6..000000000 --- a/.prettierignore +++ /dev/null @@ -1,19 +0,0 @@ -node_modules -package.json -pnpm-lock.yaml -next-env.d.ts -.next -.github -bin -static -cypress-coverage -vitest-coverage -.storybook-dist -**/*.snap -**/*.mp4 -**/*.png -**/*.jpeg -**/*.jpg -**/*.txt -**/*.xml -**/*.ico diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 50689947d..000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,422 +0,0 @@ -import { defineConfig, globalIgnores } from 'eslint/config'; -import tseslint from 'typescript-eslint'; -import eslint from '@eslint/js'; -import { FlatCompat } from '@eslint/eslintrc'; -import eslintPluginUnicorn from 'eslint-plugin-unicorn'; -import eslintReact from '@eslint-react/eslint-plugin'; -import eslintPluginVitest from '@vitest/eslint-plugin'; -import eslintPluginImportX from 'eslint-plugin-import-x'; -import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; -import eslintPluginBetterTailwindcss from 'eslint-plugin-better-tailwindcss'; -import { getDefaultCallees } from 'eslint-plugin-better-tailwindcss/defaults'; -import noBarrelFiles from 'eslint-plugin-no-barrel-files'; -import eslintPluginLodash from 'eslint-plugin-lodash'; -import eslintPluginPlaywright from 'eslint-plugin-playwright'; -import eslintPluginReactHooks from 'eslint-plugin-react-hooks'; -import reactYouMightNotNeedAnEffect from 'eslint-plugin-react-you-might-not-need-an-effect'; -import eslintPluginStorybook from 'eslint-plugin-storybook'; - -const compat = new FlatCompat({ - baseDirectory: import.meta.dirname, -}); - -/** @type {import("eslint").Linter.Config['languageOptions']} */ -const languageOptions = { - parserOptions: { - projectService: { - allowDefaultProject: ['*.config.js', '*.config.mjs'], - }, - tsconfigRootDir: import.meta.dirname, - }, - ecmaVersion: 'latest', - sourceType: 'module', -}; - -export default defineConfig( - // ── Global ignores (replaces .eslintignore) ── - globalIgnores([ - 'next-env.d.ts', - 'node_modules/**', - '.next/**', - '.github/**', - 'bin/**', - 'cypress-coverage/**', - 'vitest-coverage/**', - 'playwright-report/**', - 'test-results/**', - 'public/**', - 'src/.storybook/**', - '*.svg', - ]), - - // ── Base configs ── - eslint.configs.recommended, - ...tseslint.configs.strict, - ...tseslint.configs.stylistic, - { languageOptions }, - - // ── Next.js (via FlatCompat — @next/eslint-plugin-next doesn't export flat configs yet) ── - ...compat.plugins('@next/next').map((config) => ({ - ...config, - files: ['**/*.{ts,tsx,js,jsx}'], - })), - { - files: ['**/*.{ts,tsx,js,jsx}'], - rules: { - '@next/next/google-font-display': 'warn', - '@next/next/google-font-preconnect': 'warn', - '@next/next/next-script-for-ga': 'warn', - '@next/next/no-async-client-component': 'error', - '@next/next/no-before-interactive-script-outside-document': 'warn', - '@next/next/no-css-tags': 'warn', - '@next/next/no-head-element': 'warn', - '@next/next/no-img-element': 'warn', - '@next/next/no-page-custom-font': 'warn', - '@next/next/no-styled-jsx-in-document': 'warn', - '@next/next/no-title-in-document-head': 'warn', - '@next/next/no-typos': 'warn', - '@next/next/no-unwanted-polyfillio': 'warn', - '@next/next/inline-script-id': 'error', - '@next/next/no-assign-module-variable': 'error', - '@next/next/no-document-import-in-page': 'error', - '@next/next/no-duplicate-head': 'error', - '@next/next/no-head-import-in-document': 'error', - '@next/next/no-html-link-for-pages': 'error', - '@next/next/no-script-component-in-head': 'error', - '@next/next/no-sync-scripts': 'error', - }, - }, - - // ── React (via @eslint-react) ── - { - files: ['**/*.{ts,tsx}'], - extends: [eslintReact.configs['recommended-typescript']], - }, - - // ── React Hooks / React Compiler (compiler-specific rules only; overlaps with @eslint-react disabled) ── - { - files: ['**/*.{ts,tsx}'], - ...eslintPluginReactHooks.configs.flat['recommended-latest'], - rules: { - ...eslintPluginReactHooks.configs.flat['recommended-latest'].rules, - 'react-hooks/rules-of-hooks': 'off', - 'react-hooks/exhaustive-deps': 'off', - 'react-hooks/use-memo': 'off', - 'react-hooks/component-hook-factories': 'off', - 'react-hooks/set-state-in-effect': 'off', - 'react-hooks/error-boundaries': 'off', - 'react-hooks/purity': 'off', - 'react-hooks/set-state-in-render': 'off', - 'react-hooks/unsupported-syntax': 'off', - }, - }, - - // ── React "You Might Not Need an Effect" ── - { - files: ['**/*.{ts,tsx}'], - ...reactYouMightNotNeedAnEffect.configs.recommended, - }, - - // ── Import-X (replaces eslint-plugin-import) ── - eslintPluginImportX.flatConfigs.recommended, - eslintPluginImportX.flatConfigs.typescript, - { - files: ['**/*.{ts,tsx,js,jsx}'], - rules: { - 'import-x/extensions': [ - 'error', - 'never', - { - css: 'always', - jpg: 'always', - json: 'always', - png: 'always', - svg: 'always', - }, - ], - 'import-x/no-unresolved': 'off', - 'import-x/no-extraneous-dependencies': ['error', { devDependencies: true }], - 'import-x/order': [ - 'error', - { groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'] }, - ], - 'import-x/prefer-default-export': 'off', - 'import-x/no-named-as-default': 'off', - 'import-x/namespace': 'off', - }, - }, - - // ── Unicorn (individual rules, updated names from v43→v63) ── - { - files: ['**/*.{ts,tsx,js,jsx}'], - plugins: { unicorn: eslintPluginUnicorn }, - rules: { - 'unicorn/catch-error-name': 'error', - 'unicorn/error-message': 'error', - 'unicorn/no-abusive-eslint-disable': 'error', - 'unicorn/no-array-callback-reference': 'error', - 'unicorn/no-for-loop': 'error', - 'unicorn/no-unreadable-array-destructuring': 'error', - 'unicorn/no-zero-fractions': 'error', - 'unicorn/prefer-includes': 'error', - 'unicorn/prefer-dom-node-append': 'error', - 'unicorn/prefer-dom-node-remove': 'error', - 'unicorn/prefer-query-selector': 'error', - 'unicorn/prefer-spread': 'error', - 'unicorn/prefer-string-starts-ends-with': 'error', - 'unicorn/prefer-dom-node-text-content': 'error', - 'unicorn/prefer-type-error': 'error', - 'unicorn/throw-new-error': 'error', - }, - }, - - // ── Lodash (v8 supports ESLint 9 natively) ── - { - files: ['**/*.{ts,tsx,js,jsx}'], - plugins: { lodash: eslintPluginLodash }, - rules: { - 'lodash/import-scope': ['error', 'method'], - }, - }, - - // ── Better Tailwind CSS ── - { - files: ['**/*.{ts,tsx}'], - ignores: ['**/*.test.{ts,tsx}'], - plugins: { 'better-tailwindcss': eslintPluginBetterTailwindcss }, - rules: { - ...eslintPluginBetterTailwindcss.configs.recommended.rules, - 'better-tailwindcss/enforce-consistent-line-wrapping': 'off', - }, - settings: { - 'better-tailwindcss': { - entryPoint: './src/lib/styles/globals.css', - callees: [...getDefaultCallees(), 'cn', 'cva'], - }, - }, - }, - - // ── No Barrel Files ── - ...noBarrelFiles.configs['flat/recommended'], - - // ── CommonJS files ── - { - files: ['**/*.js'], - languageOptions: { - sourceType: 'commonjs', - globals: { - module: 'readonly', - require: 'readonly', - exports: 'readonly', - __dirname: 'readonly', - __filename: 'readonly', - Buffer: 'readonly', - window: 'readonly', - document: 'readonly', - console: 'readonly', - process: 'readonly', - }, - }, - rules: { - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - }, - }, - - // ── Vanilla ESLint rules ── - { - files: ['**/*.{ts,tsx,js,jsx}'], - rules: { - 'arrow-body-style': 'off', - 'class-methods-use-this': 'off', - 'implicit-arrow-linebreak': 'off', - 'multiline-ternary': 'off', - 'no-console': 'warn', - 'no-extra-boolean-cast': 'off', - 'no-promise-executor-return': 'off', - 'no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react-select', - message: 'Please use `@/components/Form/Select/ThemedReactSelect` instead.', - }, - { - name: 'prop-types', - importNames: ['default'], - message: - 'Please use named imports of "prop-types".\n Example: "import { func } from \'prop-types\';"', - }, - { - name: 'react', - importNames: ['default'], - message: 'React is globally available for all page files.', - }, - { - name: 'tailwind-merge', - importNames: ['twMerge'], - message: - 'Please import `cn` from `@/lib/utils.ts` instead of directly from tailwind-merge.', - }, - { - name: 'class-variance-authority', - importNames: ['cx', 'cva'], - message: - 'Please import from `@/lib/utils.ts` instead of directly from class-variance-authority.', - }, - ], - }, - ], - 'no-use-before-define': 'off', - }, - }, - - // ── TypeScript files override ── - { - files: ['**/*.ts', '**/*.tsx'], - rules: { - 'no-restricted-imports': 'off', - - '@typescript-eslint/consistent-type-imports': 'error', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - types: ['boolean'], - format: ['PascalCase', 'UPPER_CASE'], - prefix: [ - 'is', - 'are', - 'was', - 'should', - 'has', - 'can', - 'did', - 'will', - 'IS_', - 'ARE_', - 'WAS_', - 'SHOULD_', - 'HAS_', - 'CAN_', - 'DID_', - 'WILL_', - ], - }, - ], - '@typescript-eslint/no-empty-object-type': [ - 'error', - { allowInterfaces: 'with-single-extends' }, - ], - '@typescript-eslint/no-explicit-any': 'error', - '@typescript-eslint/no-restricted-imports': [ - 'error', - { - paths: [ - { - name: 'react-select', - message: 'Please use `@/components/Form/Select/ThemedReactSelect` instead.', - }, - { - name: 'react', - importNames: ['default'], - message: 'React is globally available for all page files.', - }, - { - name: 'tailwind-merge', - importNames: ['twMerge'], - message: - 'Please import `cn` from `@/lib/utils.ts` instead of directly from tailwind-merge.', - }, - { - name: 'class-variance-authority', - importNames: ['cx', 'cva'], - message: - 'Please import from `@/lib/utils.ts` instead of directly from class-variance-authority.', - }, - ], - }, - ], - '@typescript-eslint/no-unused-vars': ['error', { vars: 'all', varsIgnorePattern: '_' }], - '@typescript-eslint/unbound-method': 'off', - '@typescript-eslint/no-misused-promises': 'off', - '@typescript-eslint/no-unsafe-assignment': 'off', - '@typescript-eslint/no-unsafe-argument': 'off', - '@typescript-eslint/no-unsafe-call': 'off', - '@typescript-eslint/no-unsafe-member-access': 'off', - '@typescript-eslint/no-unsafe-return': 'off', - '@typescript-eslint/no-floating-promises': 'off', - '@typescript-eslint/require-await': 'off', - '@typescript-eslint/no-redundant-type-constituents': 'off', - '@typescript-eslint/ban-ts-comment': 'off', - }, - }, - - // ── Test files (Vitest) ── - { - files: [ - '**/*.test.ts', - '**/*.test.tsx', - '**/*.test.js', - '**/*.test.jsx', - 'src/test-utils/**/*.{ts,js}', - ], - plugins: { vitest: eslintPluginVitest }, - languageOptions: { - globals: eslintPluginVitest.environments.env.globals, - }, - rules: { - ...eslintPluginVitest.configs.recommended.rules, - 'vitest/consistent-test-it': ['error', { fn: 'it', withinDescribe: 'it' }], - 'vitest/expect-expect': ['error', { assertFunctionNames: ['expect', 'createSnapshotTest'] }], - 'vitest/prefer-lowercase-title': ['error', { ignore: ['describe'] }], - 'vitest/no-test-prefixes': 'error', - 'vitest/no-test-return-statement': 'error', - 'vitest/prefer-strict-equal': 'error', - 'vitest/valid-describe-callback': 'error', - }, - }, - - // ── TypeScript test files (relaxed rules) ── - { - files: ['**/*.test.ts', '**/*.test.tsx'], - rules: { - '@typescript-eslint/no-non-null-assertion': 'off', - '@eslint-react/component-hook-factories': 'off', - }, - }, - - // ── Playwright E2E tests ── - { - files: ['src/e2e/**/*.spec.ts'], - ...eslintPluginPlaywright.configs['flat/recommended'], - rules: { - ...eslintPluginPlaywright.configs['flat/recommended'].rules, - 'func-names': 'off', - 'no-unused-expressions': 'off', - 'playwright/expect-expect': [ - 'warn', - { assertFunctionNames: ['expect', 'assertError', 'assertFailedLogin'] }, - ], - }, - }, - - // ── API routes: allow console ── - { - files: ['src/app/api/**/*.ts'], - rules: { - 'no-console': 'off', - }, - }, - - // ── Storybook stories ── - ...eslintPluginStorybook.configs['flat/recommended'], - - // ── Prettier (must be last) ── - eslintPluginPrettierRecommended, -); diff --git a/next.config.ts b/next.config.ts index e6c220151..2e612dee7 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,7 @@ -import type { NextConfig } from 'next'; -import { withSentryConfig } from '@sentry/nextjs/config'; import bundleAnalyzer from '@next/bundle-analyzer'; import createMDX from '@next/mdx'; +import { withSentryConfig } from '@sentry/nextjs/config'; +import type { NextConfig } from 'next'; import { svgoConfig } from './src/lib/config/svgo'; const hasBundleAnalyzer = process.env.ANALYZE === 'true'; diff --git a/package.json b/package.json index 7bc03c1f8..1817e5316 100644 --- a/package.json +++ b/package.json @@ -7,11 +7,11 @@ "build:analyze": "cross-env ANALYZE=true next build", "chromatic": "chromatic --exit-zero-on-changes", "dev": "next -p 3000", - "format": "prettier --write \"**/*\"", - "format:md": "prettier --write \"**/*.md\"", - "lint": "pnpm lint:scripts && pnpm format:md", - "lint:ci": "eslint .", - "lint:scripts": "eslint --fix src", + "format": "oxfmt", + "format:check": "oxfmt --check", + "lint": "pnpm lint:scripts && pnpm format", + "lint:ci": "oxlint --type-aware && oxfmt --check", + "lint:scripts": "oxlint --type-aware --fix", "postbuild": "next-sitemap --config next-sitemap.config.ts", "prepare": "husky", "start": "next start -p 3000", @@ -69,10 +69,7 @@ }, "devDependencies": { "@eslint-react/eslint-plugin": "^5.28.1", - "@eslint/eslintrc": "^3.3.7", - "@eslint/js": "^10.0.1", "@faker-js/faker": "^10.6.0", - "@next/eslint-plugin-next": "^16.4.2", "@playwright/test": "^1.64.1", "@storybook/addon-docs": "^10.6.2", "@storybook/nextjs": "^10.6.2", @@ -89,37 +86,29 @@ "@types/react-dom": "^19.3.0", "@vitejs/plugin-react": "^6.1.2", "@vitest/coverage-v8": "^5.0.5", - "@vitest/eslint-plugin": "^1.6.27", "@vitest/ui": "^5.0.5", "axios-mock-adapter": "^2.1.0", "babel-plugin-react-compiler": "^1.0.0", "chromatic": "^18.13.0", "cross-env": "^10.1.0", "dotenv": "^18.0.8", - "eslint": "^10.13.0", - "eslint-config-prettier": "^10.1.8", - "eslint-import-resolver-typescript": "^4.4.5", "eslint-plugin-better-tailwindcss": "^4.9.1", - "eslint-plugin-import-x": "^4.17.1", "eslint-plugin-lodash": "^8.1.0", "eslint-plugin-no-barrel-files": "^2.2.0", "eslint-plugin-playwright": "^2.12.1", - "eslint-plugin-prettier": "^5.5.7", - "eslint-plugin-react-hooks": "^7.1.1", "eslint-plugin-react-you-might-not-need-an-effect": "^1.0.2", "eslint-plugin-storybook": "^10.6.2", - "eslint-plugin-unicorn": "^78.0.0", "husky": "^9.1.7", "jsdom": "^30.1.3", "lint-staged": "17.6.0", + "oxfmt": "^0.73.0", + "oxlint": "^1.88.0", + "oxlint-tsgolint": "^7.0.2004", "postcss": "^8.5.14", - "prettier": "^3.9.10", - "prettier-plugin-tailwindcss": "^0.8.1", "shadcn": "^4.22.1", "storybook": "^10.6.2", "tailwindcss": "^4.3.3", "typescript": "^6.0.3", - "typescript-eslint": "^8.71.2", "vite": "^8.0.12", "vite-plugin-magical-svg": "^1.10.3", "vite-tsconfig-paths": "^6.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0cc4d8b8..be1f16a51 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -275,18 +275,9 @@ importers: '@eslint-react/eslint-plugin': specifier: ^5.28.1 version: 5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@eslint/eslintrc': - specifier: ^3.3.7 - version: 3.3.7(supports-color@8.1.1) - '@eslint/js': - specifier: ^10.0.1 - version: 10.0.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) '@faker-js/faker': specifier: ^10.6.0 version: 10.6.0 - '@next/eslint-plugin-next': - specifier: ^16.4.2 - version: 16.4.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) '@playwright/test': specifier: ^1.64.1 version: 1.64.1 @@ -335,9 +326,6 @@ importers: '@vitest/coverage-v8': specifier: ^5.0.5 version: 5.0.5(vitest@5.0.5) - '@vitest/eslint-plugin': - specifier: ^1.6.27 - version: 1.6.27(@typescript-eslint/eslint-plugin@8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)(vitest@5.0.5) '@vitest/ui': specifier: ^5.0.5 version: 5.0.5(vitest@5.0.5) @@ -356,21 +344,9 @@ importers: dotenv: specifier: ^18.0.8 version: 18.0.8 - eslint: - specifier: ^10.13.0 - version: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-config-prettier: - specifier: ^10.1.8 - version: 10.1.8(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) - eslint-import-resolver-typescript: - specifier: ^4.4.5 - version: 4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) eslint-plugin-better-tailwindcss: specifier: ^4.9.1 - version: 4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(tailwindcss@4.3.3)(typescript@6.0.3) - eslint-plugin-import-x: - specifier: ^4.17.1 - version: 4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) + version: 4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(oxlint@1.88.0(oxlint-tsgolint@7.0.2004))(tailwindcss@4.3.3)(typescript@6.0.3) eslint-plugin-lodash: specifier: ^8.1.0 version: 8.1.0(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) @@ -380,21 +356,12 @@ importers: eslint-plugin-playwright: specifier: ^2.12.1 version: 2.12.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) - eslint-plugin-prettier: - specifier: ^5.5.7 - version: 5.5.7(eslint-config-prettier@10.1.8(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.9.10) - eslint-plugin-react-hooks: - specifier: ^7.1.1 - version: 7.1.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) eslint-plugin-react-you-might-not-need-an-effect: specifier: ^1.0.2 version: 1.0.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) eslint-plugin-storybook: specifier: ^10.6.2 version: 10.6.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - eslint-plugin-unicorn: - specifier: ^78.0.0 - version: 78.0.0(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) husky: specifier: ^9.1.7 version: 9.1.7 @@ -404,15 +371,18 @@ importers: lint-staged: specifier: 17.6.0 version: 17.6.0 + oxfmt: + specifier: ^0.73.0 + version: 0.73.0 + oxlint: + specifier: ^1.88.0 + version: 1.88.0(oxlint-tsgolint@7.0.2004) + oxlint-tsgolint: + specifier: ^7.0.2004 + version: 7.0.2004 postcss: specifier: ^8.5.18 version: 8.5.31 - prettier: - specifier: ^3.9.10 - version: 3.9.10 - prettier-plugin-tailwindcss: - specifier: ^0.8.1 - version: 0.8.1(prettier@3.9.10) shadcn: specifier: ^4.22.1 version: 4.22.1(babel-plugin-macros@3.1.0)(supports-color@8.1.1) @@ -425,9 +395,6 @@ importers: typescript: specifier: ^6.0.3 version: 6.0.3 - typescript-eslint: - specifier: ^8.71.2 - version: 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) vite: specifier: ^8.0.0 version: 8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1) @@ -1135,18 +1102,12 @@ packages: '@dual-bundle/import-meta-resolve@4.2.1': resolution: {integrity: sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==} - '@emnapi/core@1.10.0': - resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.0': resolution: {integrity: sha512-l9Oo58x0HOP5znGzVhYW9U3e5wVuA4LAZU2AGezTmkhO1CgQRFDhDg4nneHsu/t3WniXg9QrG2nIXL/ZS8ln8Q==} '@emnapi/core@1.9.2': resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==} - '@emnapi/runtime@1.10.0': - resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.0': resolution: {integrity: sha512-55coeOFKHv1ywEcUXJtWU5f+Jr/W5tZDvZig8DLKSwUN1JpROQ4rk/SNOQiFWmaR/VKF4zuFyW1B8JduOSv6Pg==} @@ -1368,12 +1329,6 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.9.1': - resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - 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} @@ -1464,19 +1419,6 @@ packages: resolution: {integrity: sha512-rVcxLmwSkEL3aWS3vAgsTRrQHoYE1b0XcgDtKHDJ92XOkyUpcbS/g0tUJKhvCtlEhYzgKBWsgDd+Z/aPhd166w==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - '@eslint/eslintrc@3.3.7': - resolution: {integrity: sha512-F42g89Qd5oAWtp0k0nnSrjziAKza7w8SVT4mStc18LZMaRb4J1HQAHLCalEtDCxrTuksx7NU9qsmeLwpOfPqWw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/js@10.0.1': - resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} - engines: {node: ^20.19.0 || ^22.13.0 || >=24} - peerDependencies: - eslint: ^10.0.0 - peerDependenciesMeta: - eslint: - optional: true - '@eslint/object-schema@3.0.5': resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -2002,9 +1944,6 @@ packages: '@next/env@16.4.2': resolution: {integrity: sha512-nTUTFH7G5/J/fmpkjVLegOkqyKOP0CEsJcMsyO4UCYeN1su+YMW/MfaSErnJskL7XM+UDK6aTvslxsRCyya/sA==} - '@next/eslint-plugin-next@16.4.2': - resolution: {integrity: sha512-gCTWlw0e+Y6kajpFyKKgA195jUJCRhlzJE0lV7ufe8a+ghIsANWZ0/FiJwg6DuOG1+OvRbcZDcFBoRh3mNJx0g==} - '@next/mdx@16.4.2': resolution: {integrity: sha512-elDnhfH37V+dBiOTmhW8VFcAm6wrXU0LI+NYk5oGVBtrdfRk9FMLpAofTi9sgTazohoThiDVFJQpzKRgbB8SEg==} peerDependencies: @@ -2448,6 +2387,280 @@ packages: cpu: [x64] os: [win32] + '@oxfmt/binding-android-arm-eabi@0.73.0': + resolution: {integrity: sha512-dhunAdMbi/4o0Y66/+Wl6rpsNqpvE4i26Qw6bB77A97L2lJoktWg6m+X9QOon8iOEEqzD9rEZqFi5uZ4oIzhCA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxfmt/binding-android-arm64@0.73.0': + resolution: {integrity: sha512-dBoypjC2/xeyKyIhN2waX0/XeoccH9k0lVVe+sGRc4X8HSJVRtqyZDoXdr7bGY9A75c51dX0z0dLDpGQKwCdCg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxfmt/binding-darwin-arm64@0.73.0': + resolution: {integrity: sha512-Tn7Y+qWIpCQK+qdYwBcn6YvqeBuPiuG3tcNlYg16a5QL2o3rSmrgBB1nCyYqo0uvc1LNrfQW9/CK2tzFuID/Fg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxfmt/binding-darwin-x64@0.73.0': + resolution: {integrity: sha512-yVb0E0tg/+9Xc9YJCBq66qF1DC/aN5mhb5nnHz0k4ikwkMANtSul2VPDSwjYdXR6/DFimc+pPUgLBqkIa5Ctuw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxfmt/binding-freebsd-x64@0.73.0': + resolution: {integrity: sha512-IKR4lFnBkYNL9Uqdxa5GMTQLvnLj+3sDwTvh2atHCzah0xeo+1xR5bigRU8uyXlOsA4VpXUn0UAimq4E4RBGmQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxfmt/binding-linux-arm-gnueabihf@0.73.0': + resolution: {integrity: sha512-7qnZ4g0ZCO3aZevOOQpZIABYwwXJW1lLDo2elviGdPQ0i11255xKEMFsi97fC1/nauQFseCJfELUy/k2JoOP+g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm-musleabihf@0.73.0': + resolution: {integrity: sha512-36eBico2j/WPB84gb4FYd/jjqGCKOwU4M+TWLBUIqlnzTozQueLy0joA5BwsSp2OZFVkOlpCwvA3ndPamdiyLw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxfmt/binding-linux-arm64-gnu@0.73.0': + resolution: {integrity: sha512-VZ3cSgCAT18knKo52DcACmAuIoqG6qVEyeZRFbJd0xmYQ8GyYjuBc6IAh6MZHijT6q7p4/HPI+6ZWsCuhdV6iw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-arm64-musl@0.73.0': + resolution: {integrity: sha512-8YVzH59XSHcqwXNgc5qK851zCqwpmBgOifARXEPPe5/xTsIbHceYoPZAyqfpYV0CfKmzSaEDBgYHFza4rhx+Zw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-ppc64-gnu@0.73.0': + resolution: {integrity: sha512-MqRJnmCys0rwOgpWyEidSA7v/bvOqfNDJhPkQoR9mPVYrvSmMaW2Xhdpl28cbTA+brOM1is62GjIvJplVlUVpw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-gnu@0.73.0': + resolution: {integrity: sha512-4t2F3SWJSK/O/kRRFnL0elJzn75fJGGu71gs1HtiWcS80SmJOpkHiwwLnTp9suGdns8VHEPxYS0GTcyVwHKWBA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-riscv64-musl@0.73.0': + resolution: {integrity: sha512-D8b4I8I1kLdJQFwdFXNV+cwh3xWSiNKofjdGUk0nDpc0AHOds8T+poGbP9RWQMvgsvMb9OMgp/aV7ahBR37TbQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-linux-s390x-gnu@0.73.0': + resolution: {integrity: sha512-QrC1S5VL1+N5rvorB15jH7CPvjVHA7GyUI5oVEd8Bd9m5605RDBQYTxDQ920DuylRoZOh2V7/xXpfCtFUrojUQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-gnu@0.73.0': + resolution: {integrity: sha512-dFcUKQPltCEPa+YlkF3zqufn6nJPZdG73LpnjBvZFFsU3laCMssDXSYB99mVaj43FqdEgjpz5TO6gbYXcczd9g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxfmt/binding-linux-x64-musl@0.73.0': + resolution: {integrity: sha512-LmQe+nV8e+eUwfPNCxDF+owbsg88toBiR/8rZRgVOeKQP3MaGefXZRvBoc1UG37iWEQ/9JlCXG9Mc4nf4N3agw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxfmt/binding-openharmony-arm64@0.73.0': + resolution: {integrity: sha512-8weOr1OKknE0G2DbR6ejJUT9AOsoBU6cXlsetmbihHv1K+bK7qP61T6lJxY0k/aAO7GyOJiRGNlL+04r4eH8Xg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxfmt/binding-win32-arm64-msvc@0.73.0': + resolution: {integrity: sha512-mZV+QxXYgb8E18gzAFItb937VIsE4dqWdStrD3tRRC52UubOYEuU+e7NaIqUsGdB5YsJqNeuck3Ue/af2r9wyA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxfmt/binding-win32-ia32-msvc@0.73.0': + resolution: {integrity: sha512-QJPUsbgUb97ZPPMkFUq6VQq0fLhC4Np19KL9aB/qKVwXnpKE6MIiILXqzhKnQ/UbnEDjKJ7Xv1d6zH4bYPCUdQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxfmt/binding-win32-x64-msvc@0.73.0': + resolution: {integrity: sha512-cGcze2fu+ykIaFtkEvZlkZ3HvnCLk+WISthtq99zWTWn0x13t5L9TxvGdLZMUMvtfYR+ICkiCwKnguVubdcw0w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + + '@oxlint-tsgolint/darwin-arm64@7.0.2004': + resolution: {integrity: sha512-uJk3ttju7Lz+Nv8WG4CsLyewoL1qf/Ny8S8OksJ7Bm/F14Tc9gMfW6arM1PCc57IzH/X/I79YsCWTgxX1FKibQ==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@7.0.2004': + resolution: {integrity: sha512-0BFfHTzDxNDFPcu0UZAXT6CyCJHAXM0dZveyDb4KEHa2qF/DSnOKOrmvK/wFuFol9kvijbGM9JfuOsor+zWXRw==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@7.0.2004': + resolution: {integrity: sha512-TAehQc+qdRXyDN3nl/r/3/oPrBVrbtrDeGMkFyG6mf+XphpoJ2lAMVFLclyvrVZCw02RbKROjyw8h72XwQQHcw==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@7.0.2004': + resolution: {integrity: sha512-LPunZvm6ZbWPfHMAyfZf9ci3HHvNEzLejO8zdqO3GoVGoSEHqqufHUD7+OgeatVSaJP7uXDJ2HaNOHIoH7go4Q==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@7.0.2004': + resolution: {integrity: sha512-FVWplzDImWhiuawnIZVETaQecv4GWom6Jv4Fx2xj7hhXXDZ5okEgiw1gTCImHTIQsi2ycC5oSxVwrn69bMh7iw==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@7.0.2004': + resolution: {integrity: sha512-7PsxuUx11Ry9DYTWcljTzRbmZY9B6O9fFFfZV+aodQEMy6pfRT3fhoQRv9PtGN/89z1pPz3nFKrsFm6WqNtX7w==} + cpu: [x64] + os: [win32] + + '@oxlint/binding-android-arm-eabi@1.88.0': + resolution: {integrity: sha512-k6Fgkf86ubfeH4GvqYsRolfuVAp0pfYVZvifSlXNHPdMaWUOfxUrmLEeDD7hF6U2oJuhsVxhSWq86/xCJ+9MmA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@oxlint/binding-android-arm64@1.88.0': + resolution: {integrity: sha512-AsIyhl9o1ejwtac7NMbhKpMdSml6NWR0ljKjZERxC8OHYDAW8o/Om9n1QHVLi4VCEUo42Zte2/Op9kyoGpJZMg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + + '@oxlint/binding-darwin-arm64@1.88.0': + resolution: {integrity: sha512-qgBjB7eEKcCB4RqjXGuoSZq74g0wD09fWFJ+HWcCJcKaga8TeUHtb+BY0SsxdleSLBgx4RZ7qmgo0EzqEq7JoQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + + '@oxlint/binding-darwin-x64@1.88.0': + resolution: {integrity: sha512-sCz3X5Mw/xdzEzn4fsCt1Iq8NKJnGNfhR+b9B5k+4DysYAHsmIhYoocnBPiQ9kvY3+pUun2A0Z8Vtun/Nv6YoQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + + '@oxlint/binding-freebsd-x64@1.88.0': + resolution: {integrity: sha512-xTOdYOIqCufgIj0knvxu86FBfovP6QBiD7ngNva01gb8xPQCD5gXkE5APGczH35zStim1O3zqvFbLQmY85xXRg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + + '@oxlint/binding-linux-arm-gnueabihf@1.88.0': + resolution: {integrity: sha512-BLadtw88NdYJBrAtC1dYzrPfSP2d5zgx6iuZycdD0YmZBJ2Nqbit9Z4PSaIb6gxK25dweArGMPbOmq/0ugwUPg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm-musleabihf@1.88.0': + resolution: {integrity: sha512-wILSczl/DaZsCcf7j7tvNbssp8hxEHIJxrv4j7+JjI3TAL1U/JTWbeUtoJJC/vo8+2hkTmHLYoKJjmiNbijdXw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + + '@oxlint/binding-linux-arm64-gnu@1.88.0': + resolution: {integrity: sha512-jutT2Hy8JCuZuMwIFHo2HtyxfOfBJHyQxlBHBK1SL9W2f8n/WhjAP0FnDMz9d/mjhv9+QA0mx5AdQ9fDjsrFFg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-arm64-musl@1.88.0': + resolution: {integrity: sha512-8N8iGV9hh4Lkeuq7QsEkjoXNRRflqR1G2qyoGYXcA0k5qllrdqmfylKEXyHIVERxqNDyMO4StqDQ0uLxXcBQAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-ppc64-gnu@1.88.0': + resolution: {integrity: sha512-5ydcQt3znNQ/rGEWYRvpS2cK9+T18P2VYgnyJ+eloEAwi9YUmsXy5VGrRqNWIK6qzWwHGnEE3ojVqqQNo+f0hA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-gnu@1.88.0': + resolution: {integrity: sha512-iGx0uvFT54b/5DPJdEBCxYIrVB3v0uTy+JhRh3CyEp8/22BXDkG8rffkFwREdLsdj9mOrPbJYVOZw8ipcBuzjw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-riscv64-musl@1.88.0': + resolution: {integrity: sha512-Wt47mKMWelVjRjuR7BCFxXkB0m79K1sTEbqMHRWciKUgo5iv7sWsF4RXSOyFYHD9zerNrkRZblnN273rhwOA1Q==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@oxlint/binding-linux-s390x-gnu@1.88.0': + resolution: {integrity: sha512-g3L12KCS4+1gtUt3RbJ4F+Yxx4LNmmZLEPfhd8rAHEJjJk2lAgNfnjGoP/phJyhG5WS6VbNYbJtadJelNfvTMA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-gnu@1.88.0': + resolution: {integrity: sha512-og/XHVDOD9ZJgRiZkT9DgzQd4sr+JZW7e4l17Q/jVMZiIbeEd4uIu9iAoUbTF1gIvVZoRc4QDOxyVUvQGp4WHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@oxlint/binding-linux-x64-musl@1.88.0': + resolution: {integrity: sha512-EmhBsp+xuKb6YbZNEMLBo80Xw71AZOIm18do8ni/GLX/Lw1XzNhVYpbxO1KasYtoAvrGtCOdCPULRlIE0bPbTQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + + '@oxlint/binding-openharmony-arm64@1.88.0': + resolution: {integrity: sha512-DBUcx/KwYdg1DAz+G01P/GFv512J04EsZadbHptx2FTpWT/MWRg21ZToNHt9pnsfQRBQ3et/g+vqzbvrdAVbuA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + + '@oxlint/binding-win32-arm64-msvc@1.88.0': + resolution: {integrity: sha512-xeVd0n4XG5HvynxfYvXi6uB+JvZbVZataowPS8cYpMbYg9mwE4sSyElFQd4LVJFifq8bRLDSR18XgEildmcXAg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + + '@oxlint/binding-win32-ia32-msvc@1.88.0': + resolution: {integrity: sha512-MA6iOw//amleaz2mVMsZrA7NHlEexjTrhIxSMFCXQi6IUuQO+3Od00GZhr2iCYw6RFzMW36jkKK/WHBXMsoQAw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ia32] + os: [win32] + + '@oxlint/binding-win32-x64-msvc@1.88.0': + resolution: {integrity: sha512-3Sz6rVWe8Dy+ufsXurFN1GX2dX43F/lQMSLelK9gFjiba7nHvLlqlhR5cHlWVnCpSqUY1hN9pyCX9XToe6ve6g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@pkgr/core@0.3.6': resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3559,14 +3772,6 @@ packages: '@types/validate-npm-package-name@4.0.2': resolution: {integrity: sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw==} - '@typescript-eslint/eslint-plugin@8.71.2': - resolution: {integrity: sha512-K72/pvT7qpm8q3k8G5u93NCSN1RcLxX5h7Gw0bQpbMXviBHeY6Nx1WEwmk9wP+eKTSQ8ecxvcgt/ZX/rB938xQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/parser': ^8.71.2 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.71.2': resolution: {integrity: sha512-aTtmZjp/x3gsGHkDs04/1I8kNogBJkpQaeGaN0PfiG43NzDEmW2n+OP5im9wfsvyX0yP1UZWBrAGtDBfH9jEVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3590,13 +3795,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.71.2': - resolution: {integrity: sha512-cC8UaalCViJkb3rH/xLIvidEwoFRtMZMUqDjjJMGEKaTFwYRHYBcoczlEGHuvkHEO8svRDrgZ0yQgOArFmwang==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.71.2': resolution: {integrity: sha512-y5Ukl3oVp7e/VGxqIoEXoeb/Roj71PAJ4WG/N/RGj+eeDvKRLM15kGr9MijLbN0i03S52zxu31Z98E5gWChJKw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3621,126 +3819,6 @@ packages: '@ungap/structured-clone@1.4.0': resolution: {integrity: sha512-1mEZtMKPM09vDmQt5y7YvmN2+DFTP7Tg0EWXdic8/C6VRnpb33e4ghisCIE3WZjsE2N8mf+QV1Zqh7ZFYLWInQ==} - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - resolution: {integrity: sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==} - cpu: [arm] - os: [android] - - '@unrs/resolver-binding-android-arm64@1.12.2': - resolution: {integrity: sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==} - cpu: [arm64] - os: [android] - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - resolution: {integrity: sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==} - cpu: [arm64] - os: [darwin] - - '@unrs/resolver-binding-darwin-x64@1.12.2': - resolution: {integrity: sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==} - cpu: [x64] - os: [darwin] - - '@unrs/resolver-binding-freebsd-x64@1.12.2': - resolution: {integrity: sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==} - cpu: [x64] - os: [freebsd] - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - resolution: {integrity: sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - resolution: {integrity: sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==} - cpu: [arm] - os: [linux] - - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - resolution: {integrity: sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - resolution: {integrity: sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - resolution: {integrity: sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==} - cpu: [loong64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - resolution: {integrity: sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==} - cpu: [loong64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - resolution: {integrity: sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - resolution: {integrity: sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==} - cpu: [riscv64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - resolution: {integrity: sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==} - cpu: [riscv64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - resolution: {integrity: sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - resolution: {integrity: sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - resolution: {integrity: sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==} - cpu: [x64] - os: [linux] - libc: [musl] - - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - resolution: {integrity: sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==} - cpu: [arm64] - os: [openharmony] - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - resolution: {integrity: sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==} - engines: {node: '>=14.0.0'} - cpu: [wasm32] - - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - resolution: {integrity: sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==} - cpu: [arm64] - os: [win32] - - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - resolution: {integrity: sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==} - cpu: [ia32] - os: [win32] - - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - resolution: {integrity: sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==} - cpu: [x64] - os: [win32] - '@valibot/to-json-schema@1.8.0': resolution: {integrity: sha512-a0M+uwCuQZEPAo65NYkFSJ14O5c213KoSZmPdoCfuFvUhfULi4T2Z6Tpjv6lTVMW9RoLm74RpRAjNEa43KcN+g==} peerDependencies: @@ -3774,22 +3852,6 @@ packages: '@vitest/browser': optional: true - '@vitest/eslint-plugin@1.6.27': - resolution: {integrity: sha512-X1RCAfwbatG4GFbJ/1PIHP9MSZMt0JJThqbYID+vS4L783k6QGlLPe421wQE8dHXuGCcenVLsydiM4qzsYWxhg==} - engines: {node: '>=18'} - peerDependencies: - '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.57.0' - typescript: '>=5.0.0' - vitest: '*' - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true - typescript: - optional: true - vitest: - optional: true - '@vitest/expect@3.2.4': resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} @@ -4165,10 +4227,6 @@ packages: buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - builtin-modules@5.4.0: - resolution: {integrity: sha512-JCWSCdun+4Ovd9BhM/Vtlmwb7oD6Wl4YiPRXXwhAuwlPhW1un/MKgXn7GZoFm53ginnoNzus69V8JWx0K393jg==} - engines: {node: '>=18.20'} - builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} @@ -4240,9 +4298,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==} @@ -4283,10 +4338,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - ci-info@4.4.0: - resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} - engines: {node: '>=8'} - cipher-base@1.0.7: resolution: {integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==} engines: {node: '>= 0.10'} @@ -4366,10 +4417,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - comment-parser@1.4.9: - resolution: {integrity: sha512-+2AvZKjJaNq9GQljm3tr0utwrig5BL+jgJGvz5rDpGKNIp+ojcRXWUwBbh/sGIi1QCprR6PsKFakub+w1v+4hQ==} - engines: {node: '>= 12.0.0'} - common-path-prefix@3.0.0: resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} @@ -4665,10 +4712,6 @@ packages: des.js@1.1.0: resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} - detect-indent@7.0.2: - resolution: {integrity: sha512-y+8xyqdGLL+6sh0tVeHcfP/QDd8gUgbasolJJpY7NgeQGSZ739bDtSiaiDgtoicy+mtYB81dKLxO9xRhCyIB3A==} - engines: {node: '>=12.20'} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -4852,34 +4895,6 @@ packages: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - eslint-config-prettier@10.1.8: - resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - - eslint-import-context@0.1.9: - resolution: {integrity: sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - - eslint-import-resolver-typescript@4.4.5: - resolution: {integrity: sha512-nbE5XLph6TLtGYcu/U6e6ZVXyKBhbDWK5cLGk76eJ7NdZpwf1P9EFkpt1Z01mNZNrrilsAYWKH6zUkL4reoXbw==} - engines: {node: ^16.17.0 || >=18.6.0} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - eslint-plugin-import-x: '*' - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - eslint-plugin-better-tailwindcss@4.9.1: resolution: {integrity: sha512-WOuUOlc27Ib3tcYNt6qhRpvQUie5Y/pNTkwO779QGdfF1tu0k51avWtmvfPv++7/1oVjntoFHcUK4+5a6SPZvA==} engines: {node: ^20.19.0 || ^22.12.0 || >=23.0.0} @@ -4893,19 +4908,6 @@ packages: oxlint: optional: true - eslint-plugin-import-x@4.17.1: - resolution: {integrity: sha512-4cdstYkKCyjumM2Q9NSI03K8D2a9F4Ssz33K2lv2hQa4KmR9jPLwk3uWGtNvclfqBrPGfGuMBwsGMbe6dMRbfg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - '@typescript-eslint/utils': ^8.56.0 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - eslint-import-resolver-node: '*' - peerDependenciesMeta: - '@typescript-eslint/utils': - optional: true - eslint-import-resolver-node: - optional: true - eslint-plugin-lodash@8.1.0: resolution: {integrity: sha512-2ULyk2quC7j43VADNOJxpmohba5dbIZ34vx/iFx83Gyf3UAexNX0x1UNDUQFbv1j0vCaxDlY9hZlXGfylKaYYw==} engines: {node: '>=10'} @@ -4927,20 +4929,6 @@ packages: peerDependencies: eslint: '>=8.40.0' - eslint-plugin-prettier@5.5.7: - resolution: {integrity: sha512-WjHyn3GrFd+ZR0rzsLiM4zJZ35PZMOE0SUIxzGmnWNG0126yNfJKJzObmmkYDwHJfGlkz3PSlzyG9ez/LJntwg==} - engines: {node: ^14.18.0 || >=16.0.0} - peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '>= 7.0.0 <10.0.0 || >=10.1.0' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true - eslint-plugin-react-dom@5.28.1: resolution: {integrity: sha512-pCxNfncwqffujtFRVNCsGdHUll4vUMrOPMc6oyfAtDTuOSyylpvrNszEemvwzhyKqK2u+chgy0zSoCYZNKfQVg==} engines: {node: '>=20.19.0'} @@ -4948,14 +4936,8 @@ packages: eslint: '*' typescript: '*' peerDependenciesMeta: - eslint: - optional: true - - eslint-plugin-react-hooks@7.1.1: - resolution: {integrity: sha512-f2I7Gw6JbvCexzIInuSbZpfdQ44D7iqdWX01FKLvrPgqxoE7oMj8clOfto8U6vYiz4yd5oKu39rRSVOe1zRu0g==} - 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 || ^10.0.0 + eslint: + optional: true eslint-plugin-react-jsx@5.28.1: resolution: {integrity: sha512-+pQ95B6areodxaQlY9uvbWX78ousi0Q8VZhGr/buu3zIX6myiPq7zjylML5tmSsURIPSv8LHM7BPNx1bb9gkJQ==} @@ -5018,16 +5000,6 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-unicorn@78.0.0: - resolution: {integrity: sha512-XTDqxcJeAmh2lhgU75TpuMDdFtPDnAU+DCW56nR5UzXTG+uOyvOGjV80O11my7kNb2bYSCPlWa8c4K8/rwlYog==} - engines: {node: '>=22'} - peerDependencies: - eslint: '>=10.4' - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - eslint-scope@9.1.2: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -5036,10 +5008,6 @@ packages: 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-visitor-keys@5.0.1: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -5054,10 +5022,6 @@ packages: jiti: optional: true - espree@10.4.0: - resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@11.2.0: resolution: {integrity: sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} @@ -5158,13 +5122,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - - fast-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'} @@ -5233,10 +5190,6 @@ packages: find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - find-up-simple@1.0.1: - resolution: {integrity: sha512-afd4O7zpqHeRyg4PfDQsXmlDe2PfdHtJt6Akt8jOWaApLOZk5JXs6VMR29lz03pRe9mpykrRCYIYxaJYcfpncQ==} - engines: {node: '>=18'} - find-up@3.0.0: resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} engines: {node: '>=6'} @@ -5363,9 +5316,6 @@ packages: resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==} engines: {node: '>=18'} - get-tsconfig@4.14.3: - resolution: {integrity: sha512-++QEw4DIY7WGoukz+/+A/8dGYPT9l9yIadnmSgZ8Rjr3YVSVDipQSO9CdnJo9ePqFqUUqh+wk9uIaoiAwsiPkA==} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -5388,10 +5338,6 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob 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 exorbitant rates) by contacting i@izs.me - globals@14.0.0: - resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} - engines: {node: '>=18'} - globals@16.5.0: resolution: {integrity: sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==} engines: {node: '>=18'} @@ -5461,12 +5407,6 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hermes-estree@0.25.1: - resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} - - hermes-parser@0.25.1: - resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} - hls-video-element@1.5.11: resolution: {integrity: sha512-tJJ65/52CDxj8XFyIve6zT9nVVdUIc6mqvKR25X0ycPKHk07rpjp4xxVteeCefDUBSf/tFLhlICFmn3KWj37xA==} @@ -5561,10 +5501,6 @@ packages: peerDependencies: postcss: ^8.5.18 - identifier-regex@1.1.0: - resolution: {integrity: sha512-SLX4H/vtcYlYnL7XqnuJKHU7Z8517TgsW9nmQiGOgMCjQ8V/deLYu6bEmbGoXe7WMMhc9+EUGyFFneHja8KabA==} - engines: {node: '>=18'} - ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -5572,10 +5508,6 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.12: - resolution: {integrity: sha512-/8UvqAPU9DGTI9k4mxtf49U37Isfwr8Uts96+SBHIkFxPJnHS0Ew4f00sM4Scd8V8EjM0jUNtVDdv1kPdt35lg==} - engines: {node: '>= 4'} - immediate@3.0.6: resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} @@ -5594,10 +5526,6 @@ packages: 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. @@ -5633,13 +5561,6 @@ packages: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} - is-builtin-module@5.0.0: - resolution: {integrity: sha512-f4RqJKBUe5rQkJ2eJEJBXSticB3hGbN9j0yxxMQFqIW89Jp9WYFtzfTcRlstDKVUTRzSOTLKRfO9vIztenwtxA==} - engines: {node: '>=18.20'} - - is-bun-module@2.0.0: - resolution: {integrity: sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==} - is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} @@ -6463,11 +6384,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-postinstall@0.3.4: - resolution: {integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - hasBin: true - native-promise-only@0.8.1: resolution: {integrity: sha512-zkVhZUA3y8mbz652WrL5x0fB0ehrBkulWT3TomAQ9iDtyXZvzKeEA6GPxAItBYeNYl5yngKRX612qHOhvMkDeg==} @@ -6638,6 +6554,39 @@ packages: oxc-resolver@11.21.2: resolution: {integrity: sha512-w5tLwYN3Zo24w5EeWJjJWZOwhYqTtC8PS2B1tIt7BZUuqTIcU07sQValbDw+rq7+AuAGzOHklgK+ifsy4lpXfw==} + oxfmt@0.73.0: + resolution: {integrity: sha512-Ke4xbpuzqIBP4bkd48q815RhqWNJqOBzxVA9199M4qcF0y0LtpUv7UTg1dJ5ea6jw0RBUDZvX3qOUMNmmxfxbw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@astrojs/compiler-rs': ^0.4.0 || ^0.5.0 + svelte: ^5.0.0 + vite-plus: '*' + peerDependenciesMeta: + '@astrojs/compiler-rs': + optional: true + svelte: + optional: true + vite-plus: + optional: true + + oxlint-tsgolint@7.0.2004: + resolution: {integrity: sha512-vQ9WDF3fiZJvRdSDosNOflerOCOpwol6vWzVDxW76RcU19cjTh7engvkHLvmv+tzedR8fAiJUVUGr6IVZdkzXQ==} + hasBin: true + + oxlint@1.88.0: + resolution: {integrity: sha512-uIcFgw8BmqvFRGzH5+r7d2zJMEexwNSrEmM6WQNnGh3VkO0XYTEFoyxyNE6tjKMUib9Cue4XJA2DoWruO5D6aw==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=7.0.2003' + vite-plus: '*' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} @@ -6801,10 +6750,6 @@ packages: engines: {node: '>=20'} hasBin: true - pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} - possible-typed-array-names@1.1.0: resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} engines: {node: '>= 0.4'} @@ -6865,65 +6810,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.1: - resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} - engines: {node: '>=6.0.0'} - - prettier-plugin-tailwindcss@0.8.1: - resolution: {integrity: sha512-iaFMYqDsE4ffdDkn5qup0j5f2aCEBFZrdrZnvu9QKTlWx/iGPeQ4HHu7b7fCPMxeo9nwQBiOAh2nSypdFYWJkw==} - engines: {node: '>=20.19'} - peerDependencies: - '@ianvs/prettier-plugin-sort-imports': '*' - '@prettier/plugin-hermes': '*' - '@prettier/plugin-oxc': '*' - '@prettier/plugin-pug': '*' - '@shopify/prettier-plugin-liquid': '*' - '@trivago/prettier-plugin-sort-imports': '*' - '@zackad/prettier-plugin-twig': '*' - prettier: ^3.0 - prettier-plugin-astro: '*' - prettier-plugin-css-order: '*' - prettier-plugin-jsdoc: '*' - prettier-plugin-marko: '*' - prettier-plugin-multiline-arrays: '*' - prettier-plugin-organize-attributes: '*' - prettier-plugin-organize-imports: '*' - prettier-plugin-sort-imports: '*' - prettier-plugin-svelte: '*' - peerDependenciesMeta: - '@ianvs/prettier-plugin-sort-imports': - optional: true - '@prettier/plugin-hermes': - optional: true - '@prettier/plugin-oxc': - optional: true - '@prettier/plugin-pug': - optional: true - '@shopify/prettier-plugin-liquid': - optional: true - '@trivago/prettier-plugin-sort-imports': - optional: true - '@zackad/prettier-plugin-twig': - optional: true - prettier-plugin-astro: - optional: true - prettier-plugin-css-order: - optional: true - prettier-plugin-jsdoc: - optional: true - prettier-plugin-marko: - optional: true - prettier-plugin-multiline-arrays: - optional: true - prettier-plugin-organize-attributes: - optional: true - prettier-plugin-organize-imports: - optional: true - prettier-plugin-sort-imports: - optional: true - prettier-plugin-svelte: - optional: true - prettier@3.9.10: resolution: {integrity: sha512-skGHTH1Yb9QvaTC4hWnRTzEYtCpApF0UMBPz+t/0ZPzP8ihefo/btKd+QA7pUE0fEwA1SbS/NmhyEcstdXOIdA==} engines: {node: '>=14'} @@ -6993,10 +6879,6 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - quote-js-string@0.1.0: - resolution: {integrity: sha512-Y3NoRtprEEZQD8RfxMCfS0ZTqc4e+i18OrXEXAvpM6TfC/3y+0L5rNbZiSnbBBEkDfFzbpd8o+cE8q3/anjMGA==} - engines: {node: '>=22'} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -7188,17 +7070,10 @@ packages: reselect@5.3.0: resolution: {integrity: sha512-XGoLeRAVzUTcJ1qkxPQhDJyIZ5d6zzZD9nT7AEZOaaU9UbWclhycElmhO+VD5bFeLuzhPBaOV2oXC8uG35ZSpg==} - 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'} - resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve-url-loader@5.0.0: resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} engines: {node: '>=12'} @@ -7437,10 +7312,6 @@ packages: spotify-audio-element@1.0.4: resolution: {integrity: sha512-QdKrJPkYCzaNwwz2vN2eDGyoW0KmQFmnwVprB41mpMzj4qujbqr6pegEchQeTn0b5PceKiLoVu0pp2QDpTcWnw==} - stable-hash-x@0.2.0: - resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==} - engines: {node: '>=12.0.0'} - stackframe@1.3.4: resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} @@ -7535,10 +7406,6 @@ packages: resolution: {integrity: sha512-SlyRoSkdh1dYP0PzclLE7r0M9sgbFKKMFXpFRUMNuKhQSbC6VQIGzq3E0qsfvGJaUFJPGv6Ws1NZ/haTAjfbMA==} engines: {node: '>=12'} - strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} - strnum@2.5.1: resolution: {integrity: sha512-UM4nTLWzQiDBseVxUGxN0wJzIk0UU89Qi7pKXz9qISo+lhviJikTuikBsK/oFRlpvYHvSdz0TVoLyQ+sEpYwxA==} @@ -7723,6 +7590,10 @@ packages: resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==} engines: {node: '>=12.0.0'} + tinypool@2.2.0: + resolution: {integrity: sha512-jBrmx4lYmaC9k/mgPbylxs7kBUxHtD8256up+HjLaDFfXScKJQyil+SWXSvhAtT7XHo+yTVlpB81PGmHP8oLSQ==} + engines: {node: ^20.0.0 || >=22.0.0} + tinyrainbow@2.0.0: resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} @@ -7852,13 +7723,6 @@ packages: resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typescript-eslint@8.71.2: - resolution: {integrity: sha512-Rz4effbMy2g9wnvOJZG6SbVavX313Lap1vNEbk1RUochzickvzP8P4HB+bkNg5e50eVz1hQGjh9K1omI1xB4Bw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: '>=4.8.4 <6.1.0' - typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -7928,9 +7792,6 @@ packages: resolution: {integrity: sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==} engines: {node: '>=18.12.0'} - unrs-resolver@1.12.2: - resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} - update-browserslist-db@1.3.4: resolution: {integrity: sha512-t8wonIOdQyOjtPd2VktlBu6QjTVTks6v8bSi7kd0r2Vll8TK1JYDZtRRdbmCHOAMphkZgrzK+L+vXK4pyZ8t4A==} hasBin: true @@ -8297,12 +8158,6 @@ packages: peerDependencies: zod: ^3.25.28 || ^4 - 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@4.6.7: resolution: {integrity: sha512-g8W2D2kU6a8untc053fX1uVBKzM7yqAxW/3zwk83+6RyF2+SKOuV+c0wBDhUwzV1PaGapmZH+rmcUzPf+3CGwg==} @@ -9187,12 +9042,6 @@ snapshots: '@dual-bundle/import-meta-resolve@4.2.1': {} - '@emnapi/core@1.10.0': - dependencies: - '@emnapi/wasi-threads': 1.2.1 - tslib: 2.8.1 - optional: true - '@emnapi/core@1.11.0': dependencies: '@emnapi/wasi-threads': 1.2.2 @@ -9205,11 +9054,6 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.10.0': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.11.0': dependencies: tslib: 2.8.1 @@ -9384,11 +9228,6 @@ snapshots: eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))': - dependencies: - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.2': {} '@eslint-react/ast@5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': @@ -9503,24 +9342,6 @@ snapshots: mdn-data: 2.37.2 source-map-js: 1.2.2 - '@eslint/eslintrc@3.3.7(supports-color@8.1.1)': - dependencies: - ajv: 6.15.0 - debug: 4.4.3(supports-color@8.1.1) - espree: 10.4.0 - globals: 14.0.0 - ignore: 5.3.2 - import-fresh: 3.3.1 - js-yaml: 4.3.2 - minimatch: 3.1.5 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - - '@eslint/js@10.0.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))': - optionalDependencies: - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - '@eslint/object-schema@3.0.5': {} '@eslint/plugin-kit@0.7.3': @@ -9954,13 +9775,6 @@ snapshots: '@napi-rs/lzma-linux-x64-gnu@1.5.1': optional: true - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@tybys/wasm-util': 0.10.4 - optional: true - '@napi-rs/wasm-runtime@1.2.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0)': dependencies: '@emnapi/core': 1.11.0 @@ -9986,13 +9800,6 @@ snapshots: '@next/env@16.4.2': {} - '@next/eslint-plugin-next@16.4.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))': - dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) - fast-glob: 3.3.1 - transitivePeerDependencies: - - eslint - '@next/mdx@16.4.2(@mdx-js/loader@3.1.1(supports-color@8.1.1)(webpack@5.112.0(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.31)(sharp@0.35.5(@types/node@26.6.5))(svgo@4.1.0)))(@mdx-js/react@3.1.1(@types/react@19.3.0)(react@19.3.1))': dependencies: source-map: 0.7.6 @@ -10115,117 +9922,249 @@ snapshots: '@oxc-parser/binding-linux-s390x-gnu@0.127.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.152.0': + '@oxc-parser/binding-linux-s390x-gnu@0.152.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-gnu@0.152.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.127.0': + optional: true + + '@oxc-parser/binding-linux-x64-musl@0.152.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.127.0': + optional: true + + '@oxc-parser/binding-openharmony-arm64@0.152.0': + optional: true + + '@oxc-parser/binding-wasm32-wasi@0.127.0': + dependencies: + '@emnapi/core': 1.9.2 + '@emnapi/runtime': 1.9.2 + '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-arm64-msvc@0.152.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-ia32-msvc@0.152.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.127.0': + optional: true + + '@oxc-parser/binding-win32-x64-msvc@0.152.0': + optional: true + + '@oxc-project/types@0.127.0': {} + + '@oxc-project/types@0.152.0': {} + + '@oxc-project/types@0.154.0': {} + + '@oxc-resolver/binding-android-arm-eabi@11.21.2': + optional: true + + '@oxc-resolver/binding-android-arm64@11.21.2': + optional: true + + '@oxc-resolver/binding-darwin-arm64@11.21.2': + optional: true + + '@oxc-resolver/binding-darwin-x64@11.21.2': + optional: true + + '@oxc-resolver/binding-freebsd-x64@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-arm-musleabihf@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-gnu@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-arm64-musl@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-ppc64-gnu@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-gnu@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-riscv64-musl@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-s390x-gnu@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-x64-gnu@11.21.2': + optional: true + + '@oxc-resolver/binding-linux-x64-musl@11.21.2': + optional: true + + '@oxc-resolver/binding-openharmony-arm64@11.21.2': + optional: true + + '@oxc-resolver/binding-wasm32-wasi@11.21.2': + dependencies: + '@emnapi/core': 1.11.0 + '@emnapi/runtime': 1.11.0 + '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) + optional: true + + '@oxc-resolver/binding-win32-arm64-msvc@11.21.2': + optional: true + + '@oxc-resolver/binding-win32-x64-msvc@11.21.2': + optional: true + + '@oxfmt/binding-android-arm-eabi@0.73.0': + optional: true + + '@oxfmt/binding-android-arm64@0.73.0': + optional: true + + '@oxfmt/binding-darwin-arm64@0.73.0': + optional: true + + '@oxfmt/binding-darwin-x64@0.73.0': + optional: true + + '@oxfmt/binding-freebsd-x64@0.73.0': + optional: true + + '@oxfmt/binding-linux-arm-gnueabihf@0.73.0': + optional: true + + '@oxfmt/binding-linux-arm-musleabihf@0.73.0': + optional: true + + '@oxfmt/binding-linux-arm64-gnu@0.73.0': + optional: true + + '@oxfmt/binding-linux-arm64-musl@0.73.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.127.0': + '@oxfmt/binding-linux-ppc64-gnu@0.73.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.152.0': + '@oxfmt/binding-linux-riscv64-gnu@0.73.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.127.0': + '@oxfmt/binding-linux-riscv64-musl@0.73.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.152.0': + '@oxfmt/binding-linux-s390x-gnu@0.73.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.127.0': + '@oxfmt/binding-linux-x64-gnu@0.73.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.152.0': + '@oxfmt/binding-linux-x64-musl@0.73.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.127.0': - dependencies: - '@emnapi/core': 1.9.2 - '@emnapi/runtime': 1.9.2 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2) + '@oxfmt/binding-openharmony-arm64@0.73.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.127.0': + '@oxfmt/binding-win32-arm64-msvc@0.73.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.152.0': + '@oxfmt/binding-win32-ia32-msvc@0.73.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.127.0': + '@oxfmt/binding-win32-x64-msvc@0.73.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.152.0': + '@oxlint-tsgolint/darwin-arm64@7.0.2004': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.127.0': + '@oxlint-tsgolint/darwin-x64@7.0.2004': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.152.0': + '@oxlint-tsgolint/linux-arm64@7.0.2004': optional: true - '@oxc-project/types@0.127.0': {} + '@oxlint-tsgolint/linux-x64@7.0.2004': + optional: true - '@oxc-project/types@0.152.0': {} + '@oxlint-tsgolint/win32-arm64@7.0.2004': + optional: true - '@oxc-project/types@0.154.0': {} + '@oxlint-tsgolint/win32-x64@7.0.2004': + optional: true - '@oxc-resolver/binding-android-arm-eabi@11.21.2': + '@oxlint/binding-android-arm-eabi@1.88.0': optional: true - '@oxc-resolver/binding-android-arm64@11.21.2': + '@oxlint/binding-android-arm64@1.88.0': optional: true - '@oxc-resolver/binding-darwin-arm64@11.21.2': + '@oxlint/binding-darwin-arm64@1.88.0': optional: true - '@oxc-resolver/binding-darwin-x64@11.21.2': + '@oxlint/binding-darwin-x64@1.88.0': optional: true - '@oxc-resolver/binding-freebsd-x64@11.21.2': + '@oxlint/binding-freebsd-x64@1.88.0': optional: true - '@oxc-resolver/binding-linux-arm-gnueabihf@11.21.2': + '@oxlint/binding-linux-arm-gnueabihf@1.88.0': optional: true - '@oxc-resolver/binding-linux-arm-musleabihf@11.21.2': + '@oxlint/binding-linux-arm-musleabihf@1.88.0': optional: true - '@oxc-resolver/binding-linux-arm64-gnu@11.21.2': + '@oxlint/binding-linux-arm64-gnu@1.88.0': optional: true - '@oxc-resolver/binding-linux-arm64-musl@11.21.2': + '@oxlint/binding-linux-arm64-musl@1.88.0': optional: true - '@oxc-resolver/binding-linux-ppc64-gnu@11.21.2': + '@oxlint/binding-linux-ppc64-gnu@1.88.0': optional: true - '@oxc-resolver/binding-linux-riscv64-gnu@11.21.2': + '@oxlint/binding-linux-riscv64-gnu@1.88.0': optional: true - '@oxc-resolver/binding-linux-riscv64-musl@11.21.2': + '@oxlint/binding-linux-riscv64-musl@1.88.0': optional: true - '@oxc-resolver/binding-linux-s390x-gnu@11.21.2': + '@oxlint/binding-linux-s390x-gnu@1.88.0': optional: true - '@oxc-resolver/binding-linux-x64-gnu@11.21.2': + '@oxlint/binding-linux-x64-gnu@1.88.0': optional: true - '@oxc-resolver/binding-linux-x64-musl@11.21.2': + '@oxlint/binding-linux-x64-musl@1.88.0': optional: true - '@oxc-resolver/binding-openharmony-arm64@11.21.2': + '@oxlint/binding-openharmony-arm64@1.88.0': optional: true - '@oxc-resolver/binding-wasm32-wasi@11.21.2': - dependencies: - '@emnapi/core': 1.11.0 - '@emnapi/runtime': 1.11.0 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.11.0)(@emnapi/runtime@1.11.0) + '@oxlint/binding-win32-arm64-msvc@1.88.0': optional: true - '@oxc-resolver/binding-win32-arm64-msvc@11.21.2': + '@oxlint/binding-win32-ia32-msvc@1.88.0': optional: true - '@oxc-resolver/binding-win32-x64-msvc@11.21.2': + '@oxlint/binding-win32-x64-msvc@1.88.0': optional: true '@pkgr/core@0.3.6': {} @@ -11340,22 +11279,6 @@ snapshots: '@types/validate-npm-package-name@4.0.2': {} - '@typescript-eslint/eslint-plugin@8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': - dependencies: - '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.71.2 - '@typescript-eslint/type-utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.71.2 - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - ignore: 7.0.12 - natural-compare: 1.4.0 - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 8.71.2 @@ -11386,18 +11309,6 @@ snapshots: dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': - dependencies: - '@typescript-eslint/types': 8.71.2 - '@typescript-eslint/typescript-estree': 8.71.2(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - ts-api-utils: 2.5.0(typescript@6.0.3) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/types@8.71.2': {} '@typescript-eslint/typescript-estree@8.71.2(supports-color@8.1.1)(typescript@6.0.3)': @@ -11433,76 +11344,6 @@ snapshots: '@ungap/structured-clone@1.4.0': {} - '@unrs/resolver-binding-android-arm-eabi@1.12.2': - optional: true - - '@unrs/resolver-binding-android-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-darwin-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-freebsd-x64@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-gnueabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm-musleabihf@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-arm64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-loong64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-ppc64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-riscv64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-s390x-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-x64-gnu@1.12.2': - optional: true - - '@unrs/resolver-binding-linux-x64-musl@1.12.2': - optional: true - - '@unrs/resolver-binding-openharmony-arm64@1.12.2': - optional: true - - '@unrs/resolver-binding-wasm32-wasi@1.12.2': - dependencies: - '@emnapi/core': 1.10.0 - '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.2.5(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) - optional: true - - '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': - optional: true - - '@unrs/resolver-binding-win32-ia32-msvc@1.12.2': - optional: true - - '@unrs/resolver-binding-win32-x64-msvc@1.12.2': - optional: true - '@valibot/to-json-schema@1.8.0(valibot@1.5.0(typescript@6.0.3))': dependencies: valibot: 1.5.0(typescript@6.0.3) @@ -11531,18 +11372,6 @@ snapshots: tinyrainbow: 3.2.0 vitest: 5.0.5(@opentelemetry/api@1.9.1)(@types/node@26.6.5)(@vitest/coverage-v8@5.0.5)(@vitest/ui@5.0.5)(jsdom@30.1.3)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1)) - '@vitest/eslint-plugin@1.6.27(@typescript-eslint/eslint-plugin@8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)(vitest@5.0.5)': - dependencies: - '@typescript-eslint/scope-manager': 8.71.2 - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - typescript: 6.0.3 - vitest: 5.0.5(@opentelemetry/api@1.9.1)(@types/node@26.6.5)(@vitest/coverage-v8@5.0.5)(@vitest/ui@5.0.5)(jsdom@30.1.3)(vite@8.3.4(@types/node@26.6.5)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.51.2)(yaml@2.9.1)) - transitivePeerDependencies: - - supports-color - '@vitest/expect@3.2.4': dependencies: '@types/chai': 5.2.3 @@ -12002,8 +11831,6 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@5.4.0: {} - builtin-status-codes@3.0.0: {} bundle-name@4.1.1: @@ -12077,8 +11904,6 @@ snapshots: chalk@5.6.2: {} - change-case@5.4.4: {} - character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -12099,8 +11924,6 @@ snapshots: chrome-trace-event@1.0.4: {} - ci-info@4.4.0: {} - cipher-base@1.0.7: dependencies: inherits: 2.0.4 @@ -12157,8 +11980,6 @@ snapshots: commander@8.3.0: {} - comment-parser@1.4.9: {} - common-path-prefix@3.0.0: {} commondir@1.0.1: {} @@ -12486,8 +12307,6 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - detect-indent@7.0.2: {} - detect-libc@2.1.2: {} detect-node-es@1.1.0: {} @@ -12700,33 +12519,7 @@ snapshots: escape-string-regexp@5.0.0: {} - eslint-config-prettier@10.1.8(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)): - dependencies: - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - - eslint-import-context@0.1.9(unrs-resolver@1.12.2): - dependencies: - get-tsconfig: 4.14.3 - stable-hash-x: 0.2.0 - optionalDependencies: - unrs-resolver: 1.12.2 - - eslint-import-resolver-typescript@4.4.5(eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) - get-tsconfig: 4.14.3 - is-bun-module: 2.0.0 - stable-hash-x: 0.2.0 - tinyglobby: 0.2.17 - unrs-resolver: 1.12.2 - optionalDependencies: - eslint-plugin-import-x: 4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - eslint-plugin-better-tailwindcss@4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(tailwindcss@4.3.3)(typescript@6.0.3): + eslint-plugin-better-tailwindcss@4.9.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(oxlint@1.88.0(oxlint-tsgolint@7.0.2004))(tailwindcss@4.3.3)(typescript@6.0.3): dependencies: '@eslint/css-tree': 4.1.2 '@valibot/to-json-schema': 1.8.0(valibot@1.5.0(typescript@6.0.3)) @@ -12739,27 +12532,11 @@ snapshots: valibot: 1.5.0(typescript@6.0.3) optionalDependencies: eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) + oxlint: 1.88.0(oxlint-tsgolint@7.0.2004) transitivePeerDependencies: - '@eslint/css' - typescript - eslint-plugin-import-x@4.17.1(@typescript-eslint/utils@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): - dependencies: - '@typescript-eslint/types': 8.71.2 - comment-parser: 1.4.9 - debug: 4.4.3(supports-color@8.1.1) - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - eslint-import-context: 0.1.9(unrs-resolver@1.12.2) - is-glob: 4.0.3 - minimatch: 10.2.6 - semver: 7.8.5 - stable-hash-x: 0.2.0 - unrs-resolver: 1.12.2 - optionalDependencies: - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - transitivePeerDependencies: - - supports-color - eslint-plugin-lodash@8.1.0(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)): dependencies: eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) @@ -12781,15 +12558,6 @@ snapshots: eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) globals: 17.13.0 - eslint-plugin-prettier@5.5.7(eslint-config-prettier@10.1.8(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(prettier@3.9.10): - dependencies: - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - prettier: 3.9.10 - prettier-linter-helpers: 1.0.1 - synckit: 0.12.3 - optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) - eslint-plugin-react-dom@5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): dependencies: '@eslint-react/ast': 5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) @@ -12807,17 +12575,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-react-hooks@7.1.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1): - dependencies: - '@babel/core': 7.29.7(supports-color@8.1.1) - '@babel/parser': 7.29.9 - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - hermes-parser: 0.25.1 - zod: 4.6.7 - zod-validation-error: 4.0.2(zod@4.6.7) - transitivePeerDependencies: - - supports-color - eslint-plugin-react-jsx@5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): dependencies: '@eslint-react/ast': 5.28.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) @@ -12916,36 +12673,6 @@ snapshots: - supports-color - typescript - eslint-plugin-unicorn@78.0.0(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): - dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1)) - '@eslint/css-tree': 4.1.2 - browserslist: 4.29.3 - change-case: 5.4.4 - ci-info: 4.4.0 - core-js-compat: 3.50.0 - detect-indent: 7.0.2 - entities: 8.1.0 - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - find-up-simple: 1.0.1 - globals: 17.13.0 - identifier-regex: 1.1.0 - indent-string: 5.0.0 - is-builtin-module: 5.0.0 - micromark: 4.0.3(supports-color@8.1.1) - parse5: 8.0.1 - pluralize: 8.0.0 - quote-js-string: 0.1.0 - regjsparser: 0.13.4 - reserved-identifiers: 1.2.0 - semver: 7.8.5 - strip-indent: 4.1.1 - yaml: 2.9.1 - optionalDependencies: - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - eslint-scope@9.1.2: dependencies: '@types/esrecurse': 4.3.1 @@ -12955,8 +12682,6 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.2.1: {} - eslint-visitor-keys@5.0.1: {} eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1): @@ -12996,12 +12721,6 @@ snapshots: transitivePeerDependencies: - supports-color - espree@10.4.0: - dependencies: - acorn: 8.19.0 - acorn-jsx: 5.3.2(acorn@8.19.0) - eslint-visitor-keys: 4.2.1 - espree@11.2.0: dependencies: acorn: 8.19.0 @@ -13148,16 +12867,6 @@ snapshots: 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-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -13236,8 +12945,6 @@ snapshots: find-root@1.1.0: {} - find-up-simple@1.0.1: {} - find-up@3.0.0: dependencies: locate-path: 3.0.0 @@ -13370,10 +13077,6 @@ snapshots: '@sec-ant/readable-stream': 0.4.1 is-stream: 4.0.1 - get-tsconfig@4.14.3: - dependencies: - resolve-pkg-maps: 1.0.0 - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -13401,8 +13104,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - globals@14.0.0: {} - globals@16.5.0: {} globals@17.13.0: {} @@ -13501,12 +13202,6 @@ snapshots: he@1.2.0: {} - hermes-estree@0.25.1: {} - - hermes-parser@0.25.1: - dependencies: - hermes-estree: 0.25.1 - hls-video-element@1.5.11: dependencies: custom-media-element: 1.4.6 @@ -13605,16 +13300,10 @@ snapshots: dependencies: postcss: 8.5.31 - identifier-regex@1.1.0: - dependencies: - reserved-identifiers: 1.2.0 - ieee754@1.2.1: {} ignore@5.3.2: {} - ignore@7.0.12: {} - immediate@3.0.6: {} import-fresh@3.3.1: @@ -13630,8 +13319,6 @@ snapshots: indent-string@4.0.0: {} - indent-string@5.0.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -13661,14 +13348,6 @@ snapshots: is-buffer@2.0.5: {} - is-builtin-module@5.0.0: - dependencies: - builtin-modules: 5.4.0 - - is-bun-module@2.0.0: - dependencies: - semver: 7.8.5 - is-callable@1.2.7: {} is-core-module@2.17.0: @@ -14626,8 +14305,6 @@ snapshots: nanoid@3.3.20: {} - napi-postinstall@0.3.4: {} - native-promise-only@0.8.1: {} natural-compare@1.4.0: {} @@ -14899,6 +14576,62 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.21.2 '@oxc-resolver/binding-win32-x64-msvc': 11.21.2 + oxfmt@0.73.0: + dependencies: + tinypool: 2.2.0 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.73.0 + '@oxfmt/binding-android-arm64': 0.73.0 + '@oxfmt/binding-darwin-arm64': 0.73.0 + '@oxfmt/binding-darwin-x64': 0.73.0 + '@oxfmt/binding-freebsd-x64': 0.73.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.73.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.73.0 + '@oxfmt/binding-linux-arm64-gnu': 0.73.0 + '@oxfmt/binding-linux-arm64-musl': 0.73.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.73.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.73.0 + '@oxfmt/binding-linux-riscv64-musl': 0.73.0 + '@oxfmt/binding-linux-s390x-gnu': 0.73.0 + '@oxfmt/binding-linux-x64-gnu': 0.73.0 + '@oxfmt/binding-linux-x64-musl': 0.73.0 + '@oxfmt/binding-openharmony-arm64': 0.73.0 + '@oxfmt/binding-win32-arm64-msvc': 0.73.0 + '@oxfmt/binding-win32-ia32-msvc': 0.73.0 + '@oxfmt/binding-win32-x64-msvc': 0.73.0 + + oxlint-tsgolint@7.0.2004: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 7.0.2004 + '@oxlint-tsgolint/darwin-x64': 7.0.2004 + '@oxlint-tsgolint/linux-arm64': 7.0.2004 + '@oxlint-tsgolint/linux-x64': 7.0.2004 + '@oxlint-tsgolint/win32-arm64': 7.0.2004 + '@oxlint-tsgolint/win32-x64': 7.0.2004 + + oxlint@1.88.0(oxlint-tsgolint@7.0.2004): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.88.0 + '@oxlint/binding-android-arm64': 1.88.0 + '@oxlint/binding-darwin-arm64': 1.88.0 + '@oxlint/binding-darwin-x64': 1.88.0 + '@oxlint/binding-freebsd-x64': 1.88.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.88.0 + '@oxlint/binding-linux-arm-musleabihf': 1.88.0 + '@oxlint/binding-linux-arm64-gnu': 1.88.0 + '@oxlint/binding-linux-arm64-musl': 1.88.0 + '@oxlint/binding-linux-ppc64-gnu': 1.88.0 + '@oxlint/binding-linux-riscv64-gnu': 1.88.0 + '@oxlint/binding-linux-riscv64-musl': 1.88.0 + '@oxlint/binding-linux-s390x-gnu': 1.88.0 + '@oxlint/binding-linux-x64-gnu': 1.88.0 + '@oxlint/binding-linux-x64-musl': 1.88.0 + '@oxlint/binding-openharmony-arm64': 1.88.0 + '@oxlint/binding-win32-arm64-msvc': 1.88.0 + '@oxlint/binding-win32-ia32-msvc': 1.88.0 + '@oxlint/binding-win32-x64-msvc': 1.88.0 + oxlint-tsgolint: 7.0.2004 + p-limit@2.3.0: dependencies: p-try: 2.2.0 @@ -15050,8 +14783,6 @@ snapshots: dependencies: playwright-core: 1.64.1 - pluralize@8.0.0: {} - possible-typed-array-names@1.1.0: {} postcss-loader@8.2.1(postcss@8.5.31)(typescript@6.0.3)(webpack@5.112.0(clean-css@5.3.3)(csso@5.0.5)(esbuild@0.28.2)(html-minifier-terser@6.1.0)(lightningcss@1.33.0)(postcss@8.5.31)(sharp@0.35.5(@types/node@26.6.5))(svgo@4.1.0)): @@ -15103,15 +14834,8 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.1: - dependencies: - fast-diff: 1.3.0 - - prettier-plugin-tailwindcss@0.8.1(prettier@3.9.10): - dependencies: - prettier: 3.9.10 - - prettier@3.9.10: {} + prettier@3.9.10: + optional: true pretty-error@4.0.0: dependencies: @@ -15186,8 +14910,6 @@ snapshots: queue-microtask@1.2.3: {} - quote-js-string@0.1.0: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -15472,12 +15194,8 @@ snapshots: reselect@5.3.0: {} - reserved-identifiers@1.2.0: {} - resolve-from@4.0.0: {} - resolve-pkg-maps@1.0.0: {} - resolve-url-loader@5.0.0: dependencies: adjust-sourcemap-loader: 4.0.0 @@ -15825,8 +15543,6 @@ snapshots: spotify-audio-element@1.0.4: {} - stable-hash-x@0.2.0: {} - stackframe@1.3.4: {} stacktrace-parser@0.1.11: @@ -15933,8 +15649,6 @@ snapshots: strip-indent@4.1.1: {} - strip-json-comments@3.1.1: {} - strnum@2.5.1: dependencies: anynum: 1.0.1 @@ -16065,6 +15779,8 @@ snapshots: fdir: 6.5.0(picomatch@4.0.7) picomatch: 4.0.7 + tinypool@2.2.0: {} + tinyrainbow@2.0.0: {} tinyrainbow@3.2.0: {} @@ -16169,17 +15885,6 @@ snapshots: es-errors: 1.3.0 is-typed-array: 1.1.15 - typescript-eslint@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3): - dependencies: - '@typescript-eslint/eslint-plugin': 8.71.2(@typescript-eslint/parser@8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/parser': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/typescript-estree': 8.71.2(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.71.2(eslint@10.13.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.13.0(jiti@2.7.0)(supports-color@8.1.1) - typescript: 6.0.3 - transitivePeerDependencies: - - supports-color - typescript@6.0.3: {} undici-types@8.9.0: {} @@ -16249,33 +15954,6 @@ snapshots: picomatch: 4.0.7 webpack-virtual-modules: 0.6.2 - unrs-resolver@1.12.2: - dependencies: - napi-postinstall: 0.3.4 - optionalDependencies: - '@unrs/resolver-binding-android-arm-eabi': 1.12.2 - '@unrs/resolver-binding-android-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-arm64': 1.12.2 - '@unrs/resolver-binding-darwin-x64': 1.12.2 - '@unrs/resolver-binding-freebsd-x64': 1.12.2 - '@unrs/resolver-binding-linux-arm-gnueabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm-musleabihf': 1.12.2 - '@unrs/resolver-binding-linux-arm64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-arm64-musl': 1.12.2 - '@unrs/resolver-binding-linux-loong64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-loong64-musl': 1.12.2 - '@unrs/resolver-binding-linux-ppc64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-riscv64-musl': 1.12.2 - '@unrs/resolver-binding-linux-s390x-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-gnu': 1.12.2 - '@unrs/resolver-binding-linux-x64-musl': 1.12.2 - '@unrs/resolver-binding-openharmony-arm64': 1.12.2 - '@unrs/resolver-binding-wasm32-wasi': 1.12.2 - '@unrs/resolver-binding-win32-arm64-msvc': 1.12.2 - '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 - '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 - update-browserslist-db@1.3.4(browserslist@4.29.3): dependencies: browserslist: 4.29.3 @@ -16578,7 +16256,8 @@ snapshots: yaml@1.10.3: {} - yaml@2.9.1: {} + yaml@2.9.1: + optional: true yocto-queue@0.1.0: {} @@ -16598,10 +16277,6 @@ snapshots: dependencies: zod: 4.6.7 - zod-validation-error@4.0.2(zod@4.6.7): - dependencies: - zod: 4.6.7 - zod@4.6.7: {} zwitch@2.0.4: {} diff --git a/prettier.config.js b/prettier.config.js deleted file mode 100644 index 74ab1afe7..000000000 --- a/prettier.config.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - plugins: ['prettier-plugin-tailwindcss'], - tailwindStylesheet: './src/lib/styles/globals.css', - tailwindFunctions: ['cx'], - arrowParens: 'always', - printWidth: 100, - semi: true, - singleQuote: true, - trailingComma: 'all', -}; diff --git a/src/.storybook/main.ts b/src/.storybook/main.ts index ce60947fd..4b2dacdb5 100644 --- a/src/.storybook/main.ts +++ b/src/.storybook/main.ts @@ -1,5 +1,5 @@ -import { svgoConfig } from '../lib/config/svgo'; import type { StorybookConfig } from '@storybook/nextjs'; +import { svgoConfig } from '../lib/config/svgo'; const config: StorybookConfig = { stories: [ diff --git a/src/.storybook/preview-head.html b/src/.storybook/preview-head.html index b09ef3770..9cc1676e6 100644 --- a/src/.storybook/preview-head.html +++ b/src/.storybook/preview-head.html @@ -1,6 +1,9 @@ - +