diff --git a/.changeset/orange-crabs-fetch.md b/.changeset/orange-crabs-fetch.md new file mode 100644 index 0000000..029acee --- /dev/null +++ b/.changeset/orange-crabs-fetch.md @@ -0,0 +1,5 @@ +--- +"@virtual-live-lab/eslint-config": patch +--- + +Astroプリセットを FlatConfig に移行 diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index d745e2c..806d995 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -33,11 +33,14 @@ "eslint": "^9.13.0" }, "dependencies": { + "@astrojs/compiler": "^2.10.3", "@eslint/compat": "^1.2.1", "@eslint/eslintrc": "^3.1.0", "@eslint/js": "^9.13.0", "@stylistic/eslint-plugin-ts": "^2.9.0", "@typescript-eslint/utils": "^8.11.0", + "astro-eslint-parser": "^1.0.3", + "astrojs-compiler-sync": "^1.0.1", "eslint": "^9.13.0", "eslint-config-flat-gitignore": "^0.3.0", "eslint-config-prettier": "^9.1.0", @@ -49,7 +52,8 @@ "eslint-plugin-tailwindcss": "^3.17.5", "globals": "^15.11.0", "pkg-dir": "^8.0.0", - "typescript-eslint": "^8.11.0" + "typescript-eslint": "^8.11.0", + "typescript-eslint-parser-for-extra-files": "^0.7.0" }, "devDependencies": { "@types/eslint": "9.6.1", diff --git a/packages/eslint-config/src/base/astro.ts b/packages/eslint-config/src/base/astro.ts index 367d719..6d07622 100644 --- a/packages/eslint-config/src/base/astro.ts +++ b/packages/eslint-config/src/base/astro.ts @@ -1,13 +1,53 @@ -import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; +import * as astroESLintParser from "astro-eslint-parser"; +import astroPlugin from "eslint-plugin-astro"; +import tseslint from "typescript-eslint"; +import * as typescriptESLintParserForExtraFiles from "typescript-eslint-parser-for-extra-files"; -import eslintPluginAstro from "eslint-plugin-astro"; +import { __dirname } from "../lib/dir"; +import { astroFiles, tsFiles } from "../utils/files"; +import { jsConfig } from "./js"; +import { stylisticConfig } from "./stylistic"; +import { tsConfig } from "./typescript"; -const astroConfig = [ - // eslint-plugin-astroの型定義の都合上anyと判定されてしまうので、asを使って型を指定する - ...eslintPluginAstro.configs["flat/recommended"], - // flat/jsx-a11y-strictは、eslint-plugin-jsx-a11yの設定をベースにしているので、 - // インストールされていないとエラーになるが、このパッケージはdependenciesに含まれているので問題ない - ...eslintPluginAstro.configs["flat/jsx-a11y-strict"], -] satisfies FlatConfig.ConfigArray; - -export { astroConfig }; +export const astroConfig = tseslint.config( + { + files: [tsFiles], + languageOptions: { + parser: typescriptESLintParserForExtraFiles, + parserOptions: { + project: true, + projectService: false, + tsconfigRootDir: __dirname, + }, + }, + }, + { + extends: [ + ...jsConfig, + ...stylisticConfig, + ...tsConfig, + ...astroPlugin.configs.recommended, + ...astroPlugin.configs["jsx-a11y-strict"], + ], + files: [astroFiles], + languageOptions: { + parser: astroESLintParser, + parserOptions: { + parser: typescriptESLintParserForExtraFiles, + project: true, + projectService: false, + tsconfigRootDir: __dirname, + }, + }, + name: "@virtual-live-lab/eslint-config/astro", + rules: { + "astro/no-set-html-directive": "error", + "astro/no-set-text-directive": "error", + "astro/no-unused-css-selector": "error", + "astro/prefer-class-list-directive": "error", + "astro/prefer-object-class-list": "error", + "astro/prefer-split-class-list": "error", + "astro/sort-attributes": "error", + }, + }, +); diff --git a/packages/eslint-config/src/presets/astro.ts b/packages/eslint-config/src/presets/astro.ts index 7487d87..c156ce4 100644 --- a/packages/eslint-config/src/presets/astro.ts +++ b/packages/eslint-config/src/presets/astro.ts @@ -1,13 +1,8 @@ -import type { FlatConfig } from "@typescript-eslint/utils/ts-eslint"; - import tseslint from "typescript-eslint"; import { astroConfig } from "../base/astro"; -import react from "./react"; +import ts from "./ts"; -const astro = tseslint.config( - ...react, - ...astroConfig, -) satisfies FlatConfig.ConfigArray; +const astro = tseslint.config(...ts, ...astroConfig); export default astro; diff --git a/packages/eslint-config/src/utils/files.ts b/packages/eslint-config/src/utils/files.ts index 7e63505..8503232 100644 --- a/packages/eslint-config/src/utils/files.ts +++ b/packages/eslint-config/src/utils/files.ts @@ -1,3 +1,4 @@ export const tsFiles = "**/*.{ts,tsx,mts,cts}"; export const jsFiles = "**/*.{js,jsx,mjs,cjs}"; export const jsxFiles = "**/*.{jsx,tsx}"; +export const astroFiles = "**/*.astro"; diff --git a/packages/eslint-config/test/__snapshots__/snapshot.test.ts.snap b/packages/eslint-config/test/__snapshots__/snapshot.test.ts.snap index 3ce04bb..cf4f9d0 100644 --- a/packages/eslint-config/test/__snapshots__/snapshot.test.ts.snap +++ b/packages/eslint-config/test/__snapshots__/snapshot.test.ts.snap @@ -6,278 +6,2487 @@ exports[`Test ESLint config with snapshot > astro preset > matches snapshot 1`] "languageOptions": { "ecmaVersion": "latest", "globals": { + "AI": false, + "AITextSession": false, "AbortController": false, "AbortSignal": false, + "AbsoluteOrientationSensor": false, + "AbstractRange": false, + "Accelerometer": false, + "AnalyserNode": false, + "Animation": false, + "AnimationEffect": false, + "AnimationEvent": false, + "AnimationPlaybackEvent": false, + "AnimationTimeline": false, "Astro": false, + "Attr": false, + "Audio": false, + "AudioBuffer": false, + "AudioBufferSourceNode": false, + "AudioContext": false, + "AudioData": false, + "AudioDecoder": false, + "AudioDestinationNode": false, + "AudioEncoder": false, + "AudioListener": false, + "AudioNode": false, + "AudioParam": false, + "AudioParamMap": false, + "AudioProcessingEvent": false, + "AudioScheduledSourceNode": false, + "AudioSinkInfo": false, + "AudioWorklet": false, + "AudioWorkletGlobalScope": false, + "AudioWorkletNode": false, + "AudioWorkletProcessor": false, + "AuthenticatorAssertionResponse": false, + "AuthenticatorAttestationResponse": false, + "AuthenticatorResponse": false, + "BackgroundFetchManager": false, + "BackgroundFetchRecord": false, + "BackgroundFetchRegistration": false, + "BarProp": false, + "BarcodeDetector": false, + "BaseAudioContext": false, + "BatteryManager": false, + "BeforeUnloadEvent": false, + "BiquadFilterNode": false, "Blob": false, + "BlobEvent": false, + "Bluetooth": false, + "BluetoothCharacteristicProperties": false, + "BluetoothDevice": false, + "BluetoothRemoteGATTCharacteristic": false, + "BluetoothRemoteGATTDescriptor": false, + "BluetoothRemoteGATTServer": false, + "BluetoothRemoteGATTService": false, + "BluetoothUUID": false, "BroadcastChannel": false, + "BrowserCaptureMediaStreamTrack": false, "Buffer": false, "ByteLengthQueuingStrategy": false, + "CDATASection": false, + "CSS": false, + "CSSAnimation": false, + "CSSConditionRule": false, + "CSSContainerRule": false, + "CSSCounterStyleRule": false, + "CSSFontFaceRule": false, + "CSSFontFeatureValuesRule": false, + "CSSFontPaletteValuesRule": false, + "CSSGroupingRule": false, + "CSSImageValue": false, + "CSSImportRule": false, + "CSSKeyframeRule": false, + "CSSKeyframesRule": false, + "CSSKeywordValue": false, + "CSSLayerBlockRule": false, + "CSSLayerStatementRule": false, + "CSSMathClamp": false, + "CSSMathInvert": false, + "CSSMathMax": false, + "CSSMathMin": false, + "CSSMathNegate": false, + "CSSMathProduct": false, + "CSSMathSum": false, + "CSSMathValue": false, + "CSSMatrixComponent": false, + "CSSMediaRule": false, + "CSSNamespaceRule": false, + "CSSNumericArray": false, + "CSSNumericValue": false, + "CSSPageDescriptors": false, + "CSSPageRule": false, + "CSSPerspective": false, + "CSSPositionTryDescriptors": false, + "CSSPositionTryRule": false, + "CSSPositionValue": false, + "CSSPropertyRule": false, + "CSSRotate": false, + "CSSRule": false, + "CSSRuleList": false, + "CSSScale": false, + "CSSScopeRule": false, + "CSSSkew": false, + "CSSSkewX": false, + "CSSSkewY": false, + "CSSStartingStyleRule": false, + "CSSStyleDeclaration": false, + "CSSStyleRule": false, + "CSSStyleSheet": false, + "CSSStyleValue": false, + "CSSSupportsRule": false, + "CSSTransformComponent": false, + "CSSTransformValue": false, + "CSSTransition": false, + "CSSTranslate": false, + "CSSUnitValue": false, + "CSSUnparsedValue": false, + "CSSVariableReferenceValue": false, + "CSSViewTransitionRule": false, + "Cache": false, + "CacheStorage": false, + "CanvasCaptureMediaStream": false, + "CanvasCaptureMediaStreamTrack": false, + "CanvasGradient": false, + "CanvasPattern": false, + "CanvasRenderingContext2D": false, + "CaptureController": false, + "CaretPosition": false, + "ChannelMergerNode": false, + "ChannelSplitterNode": false, + "ChapterInformation": false, + "CharacterBoundsUpdateEvent": false, + "CharacterData": false, + "Clipboard": false, + "ClipboardEvent": false, + "ClipboardItem": false, + "CloseEvent": false, + "CloseWatcher": false, + "Comment": false, + "CompositionEvent": false, "CompressionStream": false, + "ConstantSourceNode": false, + "ContentVisibilityAutoStateChangeEvent": false, + "ConvolverNode": false, + "CookieChangeEvent": false, + "CookieDeprecationLabel": false, + "CookieStore": false, + "CookieStoreManager": false, "CountQueuingStrategy": false, + "Credential": false, + "CredentialsContainer": false, + "CropTarget": false, "Crypto": false, "CryptoKey": false, + "CustomElementRegistry": false, "CustomEvent": false, + "CustomStateSet": false, + "DOMError": false, "DOMException": false, + "DOMImplementation": false, + "DOMMatrix": false, + "DOMMatrixReadOnly": false, + "DOMParser": false, + "DOMPoint": false, + "DOMPointReadOnly": false, + "DOMQuad": false, + "DOMRect": false, + "DOMRectList": false, + "DOMRectReadOnly": false, + "DOMStringList": false, + "DOMStringMap": false, + "DOMTokenList": false, + "DataTransfer": false, + "DataTransferItem": false, + "DataTransferItemList": false, "DecompressionStream": false, + "DelayNode": false, + "DelegatedInkTrailPresenter": false, + "DeviceMotionEvent": false, + "DeviceMotionEventAcceleration": false, + "DeviceMotionEventRotationRate": false, + "DeviceOrientationEvent": false, + "Document": false, + "DocumentFragment": false, + "DocumentPictureInPicture": false, + "DocumentPictureInPictureEvent": false, + "DocumentTimeline": false, + "DocumentType": false, + "DragEvent": false, + "DynamicsCompressorNode": false, + "EditContext": false, + "Element": false, + "ElementInternals": false, + "EncodedAudioChunk": false, + "EncodedVideoChunk": false, + "ErrorEvent": false, "Event": false, + "EventCounts": false, + "EventSource": false, "EventTarget": false, + "External": false, + "EyeDropper": false, + "FeaturePolicy": false, + "FederatedCredential": false, + "Fence": false, + "FencedFrameConfig": false, + "FetchLaterResult": false, "File": false, + "FileList": false, + "FileReader": false, + "FileSystem": false, + "FileSystemDirectoryEntry": false, + "FileSystemDirectoryHandle": false, + "FileSystemDirectoryReader": false, + "FileSystemEntry": false, + "FileSystemFileEntry": false, + "FileSystemFileHandle": false, + "FileSystemHandle": false, + "FileSystemWritableFileStream": false, + "Float16Array": false, + "FocusEvent": false, + "FontData": false, + "FontFace": false, + "FontFaceSet": false, + "FontFaceSetLoadEvent": false, "FormData": false, + "FormDataEvent": false, "Fragment": false, - "Headers": false, - "Iterator": false, - "MessageChannel": false, - "MessageEvent": false, - "MessagePort": false, - "Navigator": false, - "Performance": false, - "PerformanceEntry": false, - "PerformanceMark": false, - "PerformanceMeasure": false, - "PerformanceObserver": false, - "PerformanceObserverEntryList": false, - "PerformanceResourceTiming": false, - "ReadableByteStreamController": false, - "ReadableStream": false, - "ReadableStreamBYOBReader": false, - "ReadableStreamBYOBRequest": false, - "ReadableStreamDefaultController": false, - "ReadableStreamDefaultReader": false, - "Request": false, - "Response": false, - "SubtleCrypto": false, - "TextDecoder": false, - "TextDecoderStream": false, - "TextEncoder": false, - "TextEncoderStream": false, - "TransformStream": false, - "TransformStreamDefaultController": false, - "URL": false, - "URLSearchParams": false, - "WebAssembly": false, - "WebSocket": false, - "WritableStream": false, - "WritableStreamDefaultController": false, - "WritableStreamDefaultWriter": false, - "__dirname": false, - "__filename": false, - "atob": false, - "btoa": false, - "clearImmediate": false, - "clearInterval": false, - "clearTimeout": false, - "console": false, - "crypto": false, - "exports": true, - "fetch": false, - "global": false, + "FragmentDirective": false, + "GPU": false, + "GPUAdapter": false, + "GPUAdapterInfo": false, + "GPUBindGroup": false, + "GPUBindGroupLayout": false, + "GPUBuffer": false, + "GPUBufferUsage": false, + "GPUCanvasContext": false, + "GPUColorWrite": false, + "GPUCommandBuffer": false, + "GPUCommandEncoder": false, + "GPUCompilationInfo": false, + "GPUCompilationMessage": false, + "GPUComputePassEncoder": false, + "GPUComputePipeline": false, + "GPUDevice": false, + "GPUDeviceLostInfo": false, + "GPUError": false, + "GPUExternalTexture": false, + "GPUInternalError": false, + "GPUMapMode": false, + "GPUOutOfMemoryError": false, + "GPUPipelineError": false, + "GPUPipelineLayout": false, + "GPUQuerySet": false, + "GPUQueue": false, + "GPURenderBundle": false, + "GPURenderBundleEncoder": false, + "GPURenderPassEncoder": false, + "GPURenderPipeline": false, + "GPUSampler": false, + "GPUShaderModule": false, + "GPUShaderStage": false, + "GPUSupportedFeatures": false, + "GPUSupportedLimits": false, + "GPUTexture": false, + "GPUTextureUsage": false, + "GPUTextureView": false, + "GPUUncapturedErrorEvent": false, + "GPUValidationError": false, + "GainNode": false, + "Gamepad": false, + "GamepadAxisMoveEvent": false, + "GamepadButton": false, + "GamepadButtonEvent": false, + "GamepadEvent": false, + "GamepadHapticActuator": false, + "GamepadPose": false, + "Geolocation": false, + "GeolocationCoordinates": false, + "GeolocationPosition": false, + "GeolocationPositionError": false, + "GravitySensor": false, + "Gyroscope": false, + "HID": false, + "HIDConnectionEvent": false, + "HIDDevice": false, + "HIDInputReportEvent": false, + "HTMLAllCollection": false, + "HTMLAnchorElement": false, + "HTMLAreaElement": false, + "HTMLAudioElement": false, + "HTMLBRElement": false, + "HTMLBaseElement": false, + "HTMLBodyElement": false, + "HTMLButtonElement": false, + "HTMLCanvasElement": false, + "HTMLCollection": false, + "HTMLDListElement": false, + "HTMLDataElement": false, + "HTMLDataListElement": false, + "HTMLDetailsElement": false, + "HTMLDialogElement": false, + "HTMLDirectoryElement": false, + "HTMLDivElement": false, + "HTMLDocument": false, + "HTMLElement": false, + "HTMLEmbedElement": false, + "HTMLFencedFrameElement": false, + "HTMLFieldSetElement": false, + "HTMLFontElement": false, + "HTMLFormControlsCollection": false, + "HTMLFormElement": false, + "HTMLFrameElement": false, + "HTMLFrameSetElement": false, + "HTMLHRElement": false, + "HTMLHeadElement": false, + "HTMLHeadingElement": false, + "HTMLHtmlElement": false, + "HTMLIFrameElement": false, + "HTMLImageElement": false, + "HTMLInputElement": false, + "HTMLLIElement": false, + "HTMLLabelElement": false, + "HTMLLegendElement": false, + "HTMLLinkElement": false, + "HTMLMapElement": false, + "HTMLMarqueeElement": false, + "HTMLMediaElement": false, + "HTMLMenuElement": false, + "HTMLMetaElement": false, + "HTMLMeterElement": false, + "HTMLModElement": false, + "HTMLOListElement": false, + "HTMLObjectElement": false, + "HTMLOptGroupElement": false, + "HTMLOptionElement": false, + "HTMLOptionsCollection": false, + "HTMLOutputElement": false, + "HTMLParagraphElement": false, + "HTMLParamElement": false, + "HTMLPictureElement": false, + "HTMLPreElement": false, + "HTMLProgressElement": false, + "HTMLQuoteElement": false, + "HTMLScriptElement": false, + "HTMLSelectElement": false, + "HTMLSlotElement": false, + "HTMLSourceElement": false, + "HTMLSpanElement": false, + "HTMLStyleElement": false, + "HTMLTableCaptionElement": false, + "HTMLTableCellElement": false, + "HTMLTableColElement": false, + "HTMLTableElement": false, + "HTMLTableRowElement": false, + "HTMLTableSectionElement": false, + "HTMLTemplateElement": false, + "HTMLTextAreaElement": false, + "HTMLTimeElement": false, + "HTMLTitleElement": false, + "HTMLTrackElement": false, + "HTMLUListElement": false, + "HTMLUnknownElement": false, + "HTMLVideoElement": false, + "HashChangeEvent": false, + "Headers": false, + "Highlight": false, + "HighlightRegistry": false, + "History": false, + "IDBCursor": false, + "IDBCursorWithValue": false, + "IDBDatabase": false, + "IDBFactory": false, + "IDBIndex": false, + "IDBKeyRange": false, + "IDBObjectStore": false, + "IDBOpenDBRequest": false, + "IDBRequest": false, + "IDBTransaction": false, + "IDBVersionChangeEvent": false, + "IIRFilterNode": false, + "IdentityCredential": false, + "IdentityCredentialError": false, + "IdentityProvider": false, + "IdleDeadline": false, + "IdleDetector": false, + "Image": false, + "ImageBitmap": false, + "ImageBitmapRenderingContext": false, + "ImageCapture": false, + "ImageData": false, + "ImageDecoder": false, + "ImageTrack": false, + "ImageTrackList": false, + "Ink": false, + "InputDeviceCapabilities": false, + "InputDeviceInfo": false, + "InputEvent": false, + "IntersectionObserver": false, + "IntersectionObserverEntry": false, + "Iterator": false, + "Keyboard": false, + "KeyboardEvent": false, + "KeyboardLayoutMap": false, + "KeyframeEffect": false, + "LargestContentfulPaint": false, + "LaunchParams": false, + "LaunchQueue": false, + "LayoutShift": false, + "LayoutShiftAttribution": false, + "LinearAccelerationSensor": false, + "Location": false, + "Lock": false, + "LockManager": false, + "MIDIAccess": false, + "MIDIConnectionEvent": false, + "MIDIInput": false, + "MIDIInputMap": false, + "MIDIMessageEvent": false, + "MIDIOutput": false, + "MIDIOutputMap": false, + "MIDIPort": false, + "MathMLElement": false, + "MediaCapabilities": false, + "MediaCapabilitiesInfo": false, + "MediaDeviceInfo": false, + "MediaDevices": false, + "MediaElementAudioSourceNode": false, + "MediaEncryptedEvent": false, + "MediaError": false, + "MediaKeyError": false, + "MediaKeyMessageEvent": false, + "MediaKeySession": false, + "MediaKeyStatusMap": false, + "MediaKeySystemAccess": false, + "MediaKeys": false, + "MediaList": false, + "MediaMetadata": false, + "MediaQueryList": false, + "MediaQueryListEvent": false, + "MediaRecorder": false, + "MediaRecorderErrorEvent": false, + "MediaSession": false, + "MediaSource": false, + "MediaSourceHandle": false, + "MediaStream": false, + "MediaStreamAudioDestinationNode": false, + "MediaStreamAudioSourceNode": false, + "MediaStreamEvent": false, + "MediaStreamTrack": false, + "MediaStreamTrackAudioSourceNode": false, + "MediaStreamTrackAudioStats": false, + "MediaStreamTrackEvent": false, + "MediaStreamTrackGenerator": false, + "MediaStreamTrackProcessor": false, + "MediaStreamTrackVideoStats": false, + "MessageChannel": false, + "MessageEvent": false, + "MessagePort": false, + "MimeType": false, + "MimeTypeArray": false, + "ModelGenericSession": false, + "ModelManager": false, + "MouseEvent": false, + "MutationEvent": false, + "MutationObserver": false, + "MutationRecord": false, + "NamedNodeMap": false, + "NavigateEvent": false, + "Navigation": false, + "NavigationActivation": false, + "NavigationCurrentEntryChangeEvent": false, + "NavigationDestination": false, + "NavigationHistoryEntry": false, + "NavigationPreloadManager": false, + "NavigationTransition": false, + "Navigator": false, + "NavigatorLogin": false, + "NavigatorManagedData": false, + "NavigatorUAData": false, + "NetworkInformation": false, + "Node": false, + "NodeFilter": false, + "NodeIterator": false, + "NodeList": false, + "NotRestoredReasonDetails": false, + "NotRestoredReasons": false, + "Notification": false, + "NotifyPaintEvent": false, + "OTPCredential": false, + "OfflineAudioCompletionEvent": false, + "OfflineAudioContext": false, + "OffscreenCanvas": false, + "OffscreenCanvasRenderingContext2D": false, + "Option": false, + "OrientationSensor": false, + "OscillatorNode": false, + "OverconstrainedError": false, + "PERSISTENT": false, + "PageRevealEvent": false, + "PageSwapEvent": false, + "PageTransitionEvent": false, + "PannerNode": false, + "PasswordCredential": false, + "Path2D": false, + "PaymentAddress": false, + "PaymentManager": false, + "PaymentMethodChangeEvent": false, + "PaymentRequest": false, + "PaymentRequestUpdateEvent": false, + "PaymentResponse": false, + "Performance": false, + "PerformanceElementTiming": false, + "PerformanceEntry": false, + "PerformanceEventTiming": false, + "PerformanceLongAnimationFrameTiming": false, + "PerformanceLongTaskTiming": false, + "PerformanceMark": false, + "PerformanceMeasure": false, + "PerformanceNavigation": false, + "PerformanceNavigationTiming": false, + "PerformanceObserver": false, + "PerformanceObserverEntryList": false, + "PerformancePaintTiming": false, + "PerformanceResourceTiming": false, + "PerformanceScriptTiming": false, + "PerformanceServerTiming": false, + "PerformanceTiming": false, + "PeriodicSyncManager": false, + "PeriodicWave": false, + "PermissionStatus": false, + "Permissions": false, + "PictureInPictureEvent": false, + "PictureInPictureWindow": false, + "Plugin": false, + "PluginArray": false, + "PointerEvent": false, + "PopStateEvent": false, + "Presentation": false, + "PresentationAvailability": false, + "PresentationConnection": false, + "PresentationConnectionAvailableEvent": false, + "PresentationConnectionCloseEvent": false, + "PresentationConnectionList": false, + "PresentationReceiver": false, + "PresentationRequest": false, + "PressureObserver": false, + "PressureRecord": false, + "ProcessingInstruction": false, + "Profiler": false, + "ProgressEvent": false, + "PromiseRejectionEvent": false, + "ProtectedAudience": false, + "PublicKeyCredential": false, + "PushManager": false, + "PushSubscription": false, + "PushSubscriptionOptions": false, + "RTCCertificate": false, + "RTCDTMFSender": false, + "RTCDTMFToneChangeEvent": false, + "RTCDataChannel": false, + "RTCDataChannelEvent": false, + "RTCDtlsTransport": false, + "RTCEncodedAudioFrame": false, + "RTCEncodedVideoFrame": false, + "RTCError": false, + "RTCErrorEvent": false, + "RTCIceCandidate": false, + "RTCIceTransport": false, + "RTCPeerConnection": false, + "RTCPeerConnectionIceErrorEvent": false, + "RTCPeerConnectionIceEvent": false, + "RTCRtpReceiver": false, + "RTCRtpScriptTransform": false, + "RTCRtpSender": false, + "RTCRtpTransceiver": false, + "RTCSctpTransport": false, + "RTCSessionDescription": false, + "RTCStatsReport": false, + "RTCTrackEvent": false, + "RadioNodeList": false, + "Range": false, + "ReadableByteStreamController": false, + "ReadableStream": false, + "ReadableStreamBYOBReader": false, + "ReadableStreamBYOBRequest": false, + "ReadableStreamDefaultController": false, + "ReadableStreamDefaultReader": false, + "RelativeOrientationSensor": false, + "RemotePlayback": false, + "ReportingObserver": false, + "Request": false, + "ResizeObserver": false, + "ResizeObserverEntry": false, + "ResizeObserverSize": false, + "Response": false, + "SVGAElement": false, + "SVGAngle": false, + "SVGAnimateElement": false, + "SVGAnimateMotionElement": false, + "SVGAnimateTransformElement": false, + "SVGAnimatedAngle": false, + "SVGAnimatedBoolean": false, + "SVGAnimatedEnumeration": false, + "SVGAnimatedInteger": false, + "SVGAnimatedLength": false, + "SVGAnimatedLengthList": false, + "SVGAnimatedNumber": false, + "SVGAnimatedNumberList": false, + "SVGAnimatedPreserveAspectRatio": false, + "SVGAnimatedRect": false, + "SVGAnimatedString": false, + "SVGAnimatedTransformList": false, + "SVGAnimationElement": false, + "SVGCircleElement": false, + "SVGClipPathElement": false, + "SVGComponentTransferFunctionElement": false, + "SVGDefsElement": false, + "SVGDescElement": false, + "SVGElement": false, + "SVGEllipseElement": false, + "SVGFEBlendElement": false, + "SVGFEColorMatrixElement": false, + "SVGFEComponentTransferElement": false, + "SVGFECompositeElement": false, + "SVGFEConvolveMatrixElement": false, + "SVGFEDiffuseLightingElement": false, + "SVGFEDisplacementMapElement": false, + "SVGFEDistantLightElement": false, + "SVGFEDropShadowElement": false, + "SVGFEFloodElement": false, + "SVGFEFuncAElement": false, + "SVGFEFuncBElement": false, + "SVGFEFuncGElement": false, + "SVGFEFuncRElement": false, + "SVGFEGaussianBlurElement": false, + "SVGFEImageElement": false, + "SVGFEMergeElement": false, + "SVGFEMergeNodeElement": false, + "SVGFEMorphologyElement": false, + "SVGFEOffsetElement": false, + "SVGFEPointLightElement": false, + "SVGFESpecularLightingElement": false, + "SVGFESpotLightElement": false, + "SVGFETileElement": false, + "SVGFETurbulenceElement": false, + "SVGFilterElement": false, + "SVGForeignObjectElement": false, + "SVGGElement": false, + "SVGGeometryElement": false, + "SVGGradientElement": false, + "SVGGraphicsElement": false, + "SVGImageElement": false, + "SVGLength": false, + "SVGLengthList": false, + "SVGLineElement": false, + "SVGLinearGradientElement": false, + "SVGMPathElement": false, + "SVGMarkerElement": false, + "SVGMaskElement": false, + "SVGMatrix": false, + "SVGMetadataElement": false, + "SVGNumber": false, + "SVGNumberList": false, + "SVGPathElement": false, + "SVGPatternElement": false, + "SVGPoint": false, + "SVGPointList": false, + "SVGPolygonElement": false, + "SVGPolylineElement": false, + "SVGPreserveAspectRatio": false, + "SVGRadialGradientElement": false, + "SVGRect": false, + "SVGRectElement": false, + "SVGSVGElement": false, + "SVGScriptElement": false, + "SVGSetElement": false, + "SVGStopElement": false, + "SVGStringList": false, + "SVGStyleElement": false, + "SVGSwitchElement": false, + "SVGSymbolElement": false, + "SVGTSpanElement": false, + "SVGTextContentElement": false, + "SVGTextElement": false, + "SVGTextPathElement": false, + "SVGTextPositioningElement": false, + "SVGTitleElement": false, + "SVGTransform": false, + "SVGTransformList": false, + "SVGUnitTypes": false, + "SVGUseElement": false, + "SVGViewElement": false, + "Scheduler": false, + "Scheduling": false, + "Screen": false, + "ScreenDetailed": false, + "ScreenDetails": false, + "ScreenOrientation": false, + "ScriptProcessorNode": false, + "ScrollTimeline": false, + "SecurityPolicyViolationEvent": false, + "Selection": false, + "Sensor": false, + "SensorErrorEvent": false, + "Serial": false, + "SerialPort": false, + "ServiceWorker": false, + "ServiceWorkerContainer": false, + "ServiceWorkerRegistration": false, + "ShadowRoot": false, + "SharedStorage": false, + "SharedStorageWorklet": false, + "SharedWorker": false, + "SnapEvent": false, + "SourceBuffer": false, + "SourceBufferList": false, + "SpeechSynthesis": false, + "SpeechSynthesisErrorEvent": false, + "SpeechSynthesisEvent": false, + "SpeechSynthesisUtterance": false, + "SpeechSynthesisVoice": false, + "StaticRange": false, + "StereoPannerNode": false, + "Storage": false, + "StorageBucket": false, + "StorageBucketManager": false, + "StorageEvent": false, + "StorageManager": false, + "StylePropertyMap": false, + "StylePropertyMapReadOnly": false, + "StyleSheet": false, + "StyleSheetList": false, + "SubmitEvent": false, + "SubtleCrypto": false, + "SyncManager": false, + "TEMPORARY": false, + "TaskAttributionTiming": false, + "TaskController": false, + "TaskPriorityChangeEvent": false, + "TaskSignal": false, + "Text": false, + "TextDecoder": false, + "TextDecoderStream": false, + "TextEncoder": false, + "TextEncoderStream": false, + "TextEvent": false, + "TextFormat": false, + "TextFormatUpdateEvent": false, + "TextMetrics": false, + "TextTrack": false, + "TextTrackCue": false, + "TextTrackCueList": false, + "TextTrackList": false, + "TextUpdateEvent": false, + "TimeEvent": false, + "TimeRanges": false, + "ToggleEvent": false, + "Touch": false, + "TouchEvent": false, + "TouchList": false, + "TrackEvent": false, + "TransformStream": false, + "TransformStreamDefaultController": false, + "TransitionEvent": false, + "TreeWalker": false, + "TrustedHTML": false, + "TrustedScript": false, + "TrustedScriptURL": false, + "TrustedTypePolicy": false, + "TrustedTypePolicyFactory": false, + "UIEvent": false, + "URL": false, + "URLPattern": false, + "URLSearchParams": false, + "USB": false, + "USBAlternateInterface": false, + "USBConfiguration": false, + "USBConnectionEvent": false, + "USBDevice": false, + "USBEndpoint": false, + "USBInTransferResult": false, + "USBInterface": false, + "USBIsochronousInTransferPacket": false, + "USBIsochronousInTransferResult": false, + "USBIsochronousOutTransferPacket": false, + "USBIsochronousOutTransferResult": false, + "USBOutTransferResult": false, + "UserActivation": false, + "VTTCue": false, + "VTTRegion": false, + "ValidityState": false, + "VideoColorSpace": false, + "VideoDecoder": false, + "VideoEncoder": false, + "VideoFrame": false, + "VideoPlaybackQuality": false, + "ViewTimeline": false, + "ViewTransition": false, + "ViewTransitionTypeSet": false, + "VirtualKeyboard": false, + "VirtualKeyboardGeometryChangeEvent": false, + "VisibilityStateEntry": false, + "VisualViewport": false, + "WGSLLanguageFeatures": false, + "WakeLock": false, + "WakeLockSentinel": false, + "WaveShaperNode": false, + "WebAssembly": false, + "WebGL2RenderingContext": false, + "WebGLActiveInfo": false, + "WebGLBuffer": false, + "WebGLContextEvent": false, + "WebGLFramebuffer": false, + "WebGLObject": false, + "WebGLProgram": false, + "WebGLQuery": false, + "WebGLRenderbuffer": false, + "WebGLRenderingContext": false, + "WebGLSampler": false, + "WebGLShader": false, + "WebGLShaderPrecisionFormat": false, + "WebGLSync": false, + "WebGLTexture": false, + "WebGLTransformFeedback": false, + "WebGLUniformLocation": false, + "WebGLVertexArrayObject": false, + "WebSocket": false, + "WebSocketError": false, + "WebSocketStream": false, + "WebTransport": false, + "WebTransportBidirectionalStream": false, + "WebTransportDatagramDuplexStream": false, + "WebTransportError": false, + "WebTransportReceiveStream": false, + "WebTransportSendStream": false, + "WheelEvent": false, + "Window": false, + "WindowControlsOverlay": false, + "WindowControlsOverlayGeometryChangeEvent": false, + "Worker": false, + "Worklet": false, + "WorkletGlobalScope": false, + "WritableStream": false, + "WritableStreamDefaultController": false, + "WritableStreamDefaultWriter": false, + "XMLDocument": false, + "XMLHttpRequest": false, + "XMLHttpRequestEventTarget": false, + "XMLHttpRequestUpload": false, + "XMLSerializer": false, + "XPathEvaluator": false, + "XPathExpression": false, + "XPathResult": false, + "XRAnchor": false, + "XRAnchorSet": false, + "XRBoundedReferenceSpace": false, + "XRCPUDepthInformation": false, + "XRCamera": false, + "XRDOMOverlayState": false, + "XRDepthInformation": false, + "XRFrame": false, + "XRHitTestResult": false, + "XRHitTestSource": false, + "XRInputSource": false, + "XRInputSourceArray": false, + "XRInputSourceEvent": false, + "XRInputSourcesChangeEvent": false, + "XRLayer": false, + "XRLightEstimate": false, + "XRLightProbe": false, + "XRPose": false, + "XRRay": false, + "XRReferenceSpace": false, + "XRReferenceSpaceEvent": false, + "XRRenderState": false, + "XRRigidTransform": false, + "XRSession": false, + "XRSessionEvent": false, + "XRSpace": false, + "XRSystem": false, + "XRTransientInputHitTestResult": false, + "XRTransientInputHitTestSource": false, + "XRView": false, + "XRViewerPose": false, + "XRViewport": false, + "XRWebGLBinding": false, + "XRWebGLDepthInformation": false, + "XRWebGLLayer": false, + "XSLTProcessor": false, + "__dirname": false, + "__filename": false, + "addEventListener": false, + "ai": false, + "alert": false, + "atob": false, + "blur": false, + "btoa": false, + "caches": false, + "cancelAnimationFrame": false, + "cancelIdleCallback": false, + "clearImmediate": false, + "clearInterval": false, + "clearTimeout": false, + "clientInformation": false, + "close": false, + "closed": false, + "confirm": false, + "console": false, + "cookieStore": false, + "createImageBitmap": false, + "credentialless": false, + "crossOriginIsolated": false, + "crypto": false, + "currentFrame": false, + "currentTime": false, + "customElements": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "documentPictureInPicture": false, + "event": false, + "exports": true, + "external": false, + "fence": false, + "fetch": false, + "fetchLater": false, + "find": false, + "focus": false, + "frameElement": false, + "frames": false, + "getComputedStyle": false, + "getScreenDetails": false, + "getSelection": false, + "global": false, + "history": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "isSecureContext": false, + "launchQueue": false, + "length": false, + "localStorage": false, + "location": true, + "locationbar": false, + "matchMedia": false, + "menubar": false, + "model": false, "module": false, + "moveBy": false, + "moveTo": false, + "name": false, + "navigation": false, "navigator": false, + "offscreenBuffering": false, + "onabort": true, + "onafterprint": true, + "onanimationcancel": true, + "onanimationend": true, + "onanimationiteration": true, + "onanimationstart": true, + "onappinstalled": true, + "onauxclick": true, + "onbeforeinput": true, + "onbeforeinstallprompt": true, + "onbeforematch": true, + "onbeforeprint": true, + "onbeforetoggle": true, + "onbeforeunload": true, + "onbeforexrselect": true, + "onblur": true, + "oncancel": true, + "oncanplay": true, + "oncanplaythrough": true, + "onchange": true, + "onclick": true, + "onclose": true, + "oncontentvisibilityautostatechange": true, + "oncontextlost": true, + "oncontextmenu": true, + "oncontextrestored": true, + "oncopy": true, + "oncuechange": true, + "oncut": true, + "ondblclick": true, + "ondevicemotion": true, + "ondeviceorientation": true, + "ondeviceorientationabsolute": true, + "ondrag": true, + "ondragend": true, + "ondragenter": true, + "ondragleave": true, + "ondragover": true, + "ondragstart": true, + "ondrop": true, + "ondurationchange": true, + "onemptied": true, + "onended": true, + "onerror": true, + "onfocus": true, + "onformdata": true, + "ongamepadconnected": true, + "ongamepaddisconnected": true, + "ongotpointercapture": true, + "onhashchange": true, + "oninput": true, + "oninvalid": true, + "onkeydown": true, + "onkeypress": true, + "onkeyup": true, + "onlanguagechange": true, + "onload": true, + "onloadeddata": true, + "onloadedmetadata": true, + "onloadstart": true, + "onlostpointercapture": true, + "onmessage": true, + "onmessageerror": true, + "onmousedown": true, + "onmouseenter": true, + "onmouseleave": true, + "onmousemove": true, + "onmouseout": true, + "onmouseover": true, + "onmouseup": true, + "onmousewheel": true, + "onoffline": true, + "ononline": true, + "onpagehide": true, + "onpagereveal": true, + "onpageshow": true, + "onpageswap": true, + "onpaste": true, + "onpause": true, + "onplay": true, + "onplaying": true, + "onpointercancel": true, + "onpointerdown": true, + "onpointerenter": true, + "onpointerleave": true, + "onpointermove": true, + "onpointerout": true, + "onpointerover": true, + "onpointerrawupdate": true, + "onpointerup": true, + "onpopstate": true, + "onprogress": true, + "onratechange": true, + "onrejectionhandled": true, + "onreset": true, + "onresize": true, + "onscroll": true, + "onscrollend": true, + "onscrollsnapchange": true, + "onscrollsnapchanging": true, + "onsearch": true, + "onsecuritypolicyviolation": true, + "onseeked": true, + "onseeking": true, + "onselect": true, + "onselectionchange": true, + "onselectstart": true, + "onslotchange": true, + "onstalled": true, + "onstorage": true, + "onsubmit": true, + "onsuspend": true, + "ontimeupdate": true, + "ontoggle": true, + "ontransitioncancel": true, + "ontransitionend": true, + "ontransitionrun": true, + "ontransitionstart": true, + "onunhandledrejection": true, + "onunload": true, + "onvolumechange": true, + "onwaiting": true, + "onwheel": true, + "open": false, + "opener": false, + "origin": false, + "originAgentCluster": false, + "outerHeight": false, + "outerWidth": false, + "pageXOffset": false, + "pageYOffset": false, + "parent": false, "performance": false, + "personalbar": false, + "postMessage": false, + "print": false, "process": false, + "prompt": false, + "queryLocalFonts": false, "queueMicrotask": false, + "registerProcessor": false, + "removeEventListener": false, + "reportError": false, + "requestAnimationFrame": false, + "requestIdleCallback": false, "require": false, + "resizeBy": false, + "resizeTo": false, + "sampleRate": false, + "scheduler": false, + "screen": false, + "screenLeft": false, + "screenTop": false, + "screenX": false, + "screenY": false, + "scroll": false, + "scrollBy": false, + "scrollTo": false, + "scrollX": false, + "scrollY": false, + "scrollbars": false, + "self": false, + "sessionStorage": false, "setImmediate": false, "setInterval": false, "setTimeout": false, + "sharedStorage": false, + "showDirectoryPicker": false, + "showOpenFilePicker": false, + "showSaveFilePicker": false, + "speechSynthesis": false, + "status": false, + "statusbar": false, + "stop": false, "structuredClone": false, + "styleMedia": false, + "toolbar": false, + "top": false, + "trustedTypes": false, + "visualViewport": false, + "window": false, }, - "parser": "astro-eslint-parser@1.0.2", + "parser": "astro-eslint-parser@1.0.3", "parserOptions": { "extraFileExtensions": { "0": ".astro", }, - "parser": "typescript-eslint/parser@8.11.0", - }, - "sourceType": "module", - }, - "linterOptions": { - "reportUnusedDisableDirectives": 1, - }, - "plugins": [ - "@", - "astro:eslint-plugin-astro@1.3.0", - "jsx-a11y:eslint-plugin-jsx-a11y@6.10.1", - ], - "processor": "astro/client-side-ts", - "rules": { - "astro/jsx-a11y/alt-text": [ + "parser": "typescript-eslint-parser-for-extra-files@8.11.0", + "project": true, + "projectService": false, + "tsconfigRootDir": "/home/runner/work/js-config/js-config", + }, + "sourceType": "module", + }, + "linterOptions": { + "reportUnusedDisableDirectives": 1, + }, + "plugins": [ + "@", + "perfectionist:perfectionist", + "@typescript-eslint:@typescript-eslint/eslint-plugin@8.11.0", + "@stylistic/ts", + "astro:eslint-plugin-astro@1.3.0", + "jsx-a11y:eslint-plugin-jsx-a11y@6.10.1", + ], + "processor": "astro/client-side-ts", + "rules": { + "@babel/object-curly-spacing": [ + 0, + ], + "@babel/semi": [ + 0, + ], + "@stylistic/ts/no-extra-semi": [ + 2, + ], + "@typescript-eslint/adjacent-overload-signatures": [ + 0, + ], + "@typescript-eslint/array-type": [ + 2, + { + "default": "array-simple", + }, + ], + "@typescript-eslint/await-thenable": [ + 2, + ], + "@typescript-eslint/ban-ts-comment": [ + 2, + ], + "@typescript-eslint/ban-tslint-comment": [ + 0, + ], + "@typescript-eslint/block-spacing": [ + 0, + ], + "@typescript-eslint/brace-style": [ + 0, + ], + "@typescript-eslint/class-literal-property-style": [ + 0, + ], + "@typescript-eslint/comma-dangle": [ + 0, + ], + "@typescript-eslint/comma-spacing": [ + 0, + ], + "@typescript-eslint/consistent-generic-constructors": [ + 0, + ], + "@typescript-eslint/consistent-indexed-object-style": [ + 0, + ], + "@typescript-eslint/consistent-type-assertions": [ + 2, + ], + "@typescript-eslint/consistent-type-definitions": [ + 0, + ], + "@typescript-eslint/consistent-type-exports": [ + 2, + ], + "@typescript-eslint/consistent-type-imports": [ + 2, + ], + "@typescript-eslint/dot-notation": [ + 2, + ], + "@typescript-eslint/func-call-spacing": [ + 0, + ], + "@typescript-eslint/indent": [ + 0, + ], + "@typescript-eslint/key-spacing": [ + 0, + ], + "@typescript-eslint/keyword-spacing": [ + 0, + ], + "@typescript-eslint/lines-around-comment": [ + 0, + ], + "@typescript-eslint/member-delimiter-style": [ + 0, + ], + "@typescript-eslint/no-array-constructor": [ + 2, + ], + "@typescript-eslint/no-array-delete": [ + 2, + ], + "@typescript-eslint/no-base-to-string": [ + 2, + ], + "@typescript-eslint/no-confusing-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-deprecated": [ + 1, + ], + "@typescript-eslint/no-duplicate-enum-values": [ + 0, + ], + "@typescript-eslint/no-duplicate-type-constituents": [ + 2, + ], + "@typescript-eslint/no-empty-function": [ + 2, + ], + "@typescript-eslint/no-empty-object-type": [ + 2, + ], + "@typescript-eslint/no-explicit-any": [ + 2, + ], + "@typescript-eslint/no-extra-non-null-assertion": [ + 2, + ], + "@typescript-eslint/no-extra-parens": [ + 0, + ], + "@typescript-eslint/no-extra-semi": [ + 0, + ], + "@typescript-eslint/no-floating-promises": [ + 2, + ], + "@typescript-eslint/no-for-in-array": [ + 2, + ], + "@typescript-eslint/no-implied-eval": [ + 2, + ], + "@typescript-eslint/no-import-type-side-effects": [ + 2, + ], + "@typescript-eslint/no-inferrable-types": [ + 2, + ], + "@typescript-eslint/no-misused-new": [ + 2, + ], + "@typescript-eslint/no-misused-promises": [ + 2, + { + "checksVoidReturn": { + "attributes": false, + }, + }, + ], + "@typescript-eslint/no-namespace": [ + 2, + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + 2, + ], + "@typescript-eslint/no-non-null-assertion": [ + 1, + ], + "@typescript-eslint/no-redundant-type-constituents": [ + 2, + ], + "@typescript-eslint/no-require-imports": [ + 2, + ], + "@typescript-eslint/no-this-alias": [ + 2, + ], + "@typescript-eslint/no-unnecessary-type-assertion": [ + 2, + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + 2, + ], + "@typescript-eslint/no-unsafe-argument": [ + 2, + ], + "@typescript-eslint/no-unsafe-assignment": [ + 2, + ], + "@typescript-eslint/no-unsafe-call": [ + 2, + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + 0, + ], + "@typescript-eslint/no-unsafe-enum-comparison": [ + 2, + ], + "@typescript-eslint/no-unsafe-function-type": [ + 2, + ], + "@typescript-eslint/no-unsafe-member-access": [ + 2, + ], + "@typescript-eslint/no-unsafe-return": [ + 2, + ], + "@typescript-eslint/no-unsafe-unary-minus": [ + 2, + ], + "@typescript-eslint/no-unused-expressions": [ + 2, + ], + "@typescript-eslint/no-unused-vars": [ + 2, + ], + "@typescript-eslint/no-wrapper-object-types": [ + 2, + ], + "@typescript-eslint/non-nullable-type-assertion-style": [ + 2, + ], + "@typescript-eslint/object-curly-spacing": [ + 0, + ], + "@typescript-eslint/only-throw-error": [ + 2, + ], + "@typescript-eslint/prefer-as-const": [ + 2, + ], + "@typescript-eslint/prefer-find": [ + 2, + ], + "@typescript-eslint/prefer-for-of": [ + 0, + ], + "@typescript-eslint/prefer-function-type": [ + 0, + ], + "@typescript-eslint/prefer-includes": [ + 2, + ], + "@typescript-eslint/prefer-namespace-keyword": [ + 2, + ], + "@typescript-eslint/prefer-nullish-coalescing": [ + 2, + ], + "@typescript-eslint/prefer-optional-chain": [ + 2, + ], + "@typescript-eslint/prefer-promise-reject-errors": [ + 2, + ], + "@typescript-eslint/prefer-regexp-exec": [ + 2, + ], + "@typescript-eslint/prefer-string-starts-ends-with": [ + 2, + ], + "@typescript-eslint/promise-function-async": [ + 2, + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@typescript-eslint/require-await": [ + 2, + ], + "@typescript-eslint/restrict-plus-operands": [ + 2, + ], + "@typescript-eslint/restrict-template-expressions": [ + 2, + ], + "@typescript-eslint/semi": [ + 0, + ], + "@typescript-eslint/space-before-blocks": [ + 0, + ], + "@typescript-eslint/space-before-function-paren": [ + 0, + ], + "@typescript-eslint/space-infix-ops": [ + 0, + ], + "@typescript-eslint/strict-boolean-expressions": [ + 2, + { + "allowNumber": false, + }, + ], + "@typescript-eslint/triple-slash-reference": [ + 2, + ], + "@typescript-eslint/type-annotation-spacing": [ + 0, + ], + "@typescript-eslint/unbound-method": [ + 2, + ], + "array-bracket-newline": [ + 0, + ], + "array-bracket-spacing": [ + 0, + ], + "array-element-newline": [ + 0, + ], + "arrow-parens": [ + 0, + ], + "arrow-spacing": [ + 0, + ], + "astro/jsx-a11y/alt-text": [ + 2, + ], + "astro/jsx-a11y/anchor-has-content": [ + 2, + ], + "astro/jsx-a11y/anchor-is-valid": [ + 2, + ], + "astro/jsx-a11y/aria-activedescendant-has-tabindex": [ + 2, + ], + "astro/jsx-a11y/aria-props": [ + 2, + ], + "astro/jsx-a11y/aria-proptypes": [ + 2, + ], + "astro/jsx-a11y/aria-role": [ + 2, + ], + "astro/jsx-a11y/aria-unsupported-elements": [ + 2, + ], + "astro/jsx-a11y/autocomplete-valid": [ + 2, + ], + "astro/jsx-a11y/click-events-have-key-events": [ + 2, + ], + "astro/jsx-a11y/control-has-associated-label": [ + 0, + { + "ignoreElements": [ + "audio", + "canvas", + "embed", + "input", + "textarea", + "tr", + "video", + ], + "ignoreRoles": [ + "grid", + "listbox", + "menu", + "menubar", + "radiogroup", + "row", + "tablist", + "toolbar", + "tree", + "treegrid", + ], + "includeRoles": [ + "alert", + "dialog", + ], + }, + ], + "astro/jsx-a11y/heading-has-content": [ + 2, + ], + "astro/jsx-a11y/html-has-lang": [ + 2, + ], + "astro/jsx-a11y/iframe-has-title": [ + 2, + ], + "astro/jsx-a11y/img-redundant-alt": [ + 2, + ], + "astro/jsx-a11y/interactive-supports-focus": [ + 2, + { + "tabbable": [ + "button", + "checkbox", + "link", + "progressbar", + "searchbox", + "slider", + "spinbutton", + "switch", + "textbox", + ], + }, + ], + "astro/jsx-a11y/label-has-associated-control": [ + 2, + ], + "astro/jsx-a11y/label-has-for": [ + 0, + ], + "astro/jsx-a11y/media-has-caption": [ + 2, + ], + "astro/jsx-a11y/mouse-events-have-key-events": [ + 2, + ], + "astro/jsx-a11y/no-access-key": [ + 2, + ], + "astro/jsx-a11y/no-autofocus": [ + 2, + ], + "astro/jsx-a11y/no-distracting-elements": [ + 2, + ], + "astro/jsx-a11y/no-interactive-element-to-noninteractive-role": [ + 2, + ], + "astro/jsx-a11y/no-noninteractive-element-interactions": [ + 2, + { + "body": [ + "onError", + "onLoad", + ], + "iframe": [ + "onError", + "onLoad", + ], + "img": [ + "onError", + "onLoad", + ], + }, + ], + "astro/jsx-a11y/no-noninteractive-element-to-interactive-role": [ + 2, + ], + "astro/jsx-a11y/no-noninteractive-tabindex": [ + 2, + ], + "astro/jsx-a11y/no-redundant-roles": [ + 2, + ], + "astro/jsx-a11y/no-static-element-interactions": [ + 2, + ], + "astro/jsx-a11y/role-has-required-aria-props": [ + 2, + ], + "astro/jsx-a11y/role-supports-aria-props": [ + 2, + ], + "astro/jsx-a11y/scope": [ + 2, + ], + "astro/jsx-a11y/tabindex-no-positive": [ + 2, + ], + "astro/missing-client-only-directive-value": [ + 2, + ], + "astro/no-conflict-set-directives": [ + 2, + ], + "astro/no-deprecated-astro-canonicalurl": [ + 2, + ], + "astro/no-deprecated-astro-fetchcontent": [ + 2, + ], + "astro/no-deprecated-astro-resolve": [ + 2, + ], + "astro/no-deprecated-getentrybyslug": [ + 2, + ], + "astro/no-set-html-directive": [ + 2, + ], + "astro/no-set-text-directive": [ + 2, + ], + "astro/no-unused-css-selector": [ + 2, + ], + "astro/no-unused-define-vars-in-style": [ + 2, + ], + "astro/prefer-class-list-directive": [ + 2, + ], + "astro/prefer-object-class-list": [ + 2, + ], + "astro/prefer-split-class-list": [ + 2, + ], + "astro/sort-attributes": [ + 2, + ], + "astro/valid-compile": [ + 2, + ], + "babel/object-curly-spacing": [ + 0, + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + 0, + ], + "block-spacing": [ + 0, + ], + "brace-style": [ + 0, + ], + "comma-dangle": [ + 0, + ], + "comma-spacing": [ + 0, + ], + "comma-style": [ + 0, + ], + "computed-property-spacing": [ + 0, + ], + "constructor-super": [ + 0, + ], + "curly": [ + 0, + ], + "dot-location": [ + 0, + ], + "dot-notation": [ + 0, + ], + "eol-last": [ + 0, + ], + "flowtype/boolean-style": [ + 0, + ], + "flowtype/delimiter-dangle": [ + 0, + ], + "flowtype/generic-spacing": [ + 0, + ], + "flowtype/object-type-curly-spacing": [ + 0, + ], + "flowtype/object-type-delimiter": [ + 0, + ], + "flowtype/quotes": [ + 0, + ], + "flowtype/semi": [ + 0, + ], + "flowtype/space-after-type-colon": [ + 0, + ], + "flowtype/space-before-generic-bracket": [ + 0, + ], + "flowtype/space-before-type-colon": [ + 0, + ], + "flowtype/union-intersection-spacing": [ + 0, + ], + "for-direction": [ + 2, + ], + "func-call-spacing": [ + 0, + ], + "function-call-argument-newline": [ + 0, + ], + "function-paren-newline": [ + 0, + ], + "generator-star": [ + 0, + ], + "generator-star-spacing": [ + 0, + ], + "getter-return": [ + 0, + ], + "implicit-arrow-linebreak": [ + 0, + ], + "indent": [ + 0, + ], + "indent-legacy": [ + 0, + ], + "jsx-quotes": [ + 0, + ], + "key-spacing": [ + 0, + ], + "keyword-spacing": [ + 0, + ], + "linebreak-style": [ + 0, + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + 0, + ], + "multiline-ternary": [ + 0, + ], + "new-parens": [ + 0, + ], + "newline-per-chained-call": [ + 0, + ], + "no-array-constructor": [ + 0, + ], + "no-arrow-condition": [ + 0, + ], + "no-async-promise-executor": [ + 2, + ], + "no-case-declarations": [ + 2, + ], + "no-class-assign": [ + 2, + ], + "no-comma-dangle": [ + 0, + ], + "no-compare-neg-zero": [ + 2, + ], + "no-cond-assign": [ + 2, + ], + "no-confusing-arrow": [ + 0, + ], + "no-const-assign": [ + 0, + ], + "no-constant-binary-expression": [ + 2, + ], + "no-constant-condition": [ + 2, + ], + "no-control-regex": [ + 2, + ], + "no-debugger": [ + 2, + ], + "no-delete-var": [ + 2, + ], + "no-dupe-args": [ + 0, + ], + "no-dupe-class-members": [ + 0, + ], + "no-dupe-else-if": [ + 2, + ], + "no-dupe-keys": [ + 0, + ], + "no-duplicate-case": [ + 2, + ], + "no-empty": [ + 2, + ], + "no-empty-character-class": [ + 2, + ], + "no-empty-function": [ + 0, + ], + "no-empty-pattern": [ + 2, + ], + "no-empty-static-block": [ + 2, + ], + "no-ex-assign": [ + 2, + ], + "no-extra-boolean-cast": [ + 2, + ], + "no-extra-parens": [ + 0, + ], + "no-extra-semi": [ + 0, + ], + "no-fallthrough": [ + 2, + ], + "no-floating-decimal": [ + 0, + ], + "no-func-assign": [ + 0, + ], + "no-global-assign": [ + 2, + ], + "no-implied-eval": [ + 0, + ], + "no-import-assign": [ + 0, + ], + "no-invalid-regexp": [ + 2, + ], + "no-irregular-whitespace": [ + 2, + ], + "no-loss-of-precision": [ + 2, + ], + "no-misleading-character-class": [ + 2, + ], + "no-mixed-operators": [ + 0, + ], + "no-mixed-spaces-and-tabs": [ + 0, + ], + "no-multi-spaces": [ + 0, + ], + "no-multiple-empty-lines": [ + 0, + ], + "no-new-native-nonconstructor": [ + 0, + ], + "no-new-symbol": [ + 0, + ], + "no-nonoctal-decimal-escape": [ + 2, + ], + "no-obj-calls": [ + 0, + ], + "no-octal": [ + 2, + ], + "no-prototype-builtins": [ + 2, + ], + "no-redeclare": [ + 0, + ], + "no-regex-spaces": [ + 2, + ], + "no-reserved-keys": [ + 0, + ], + "no-self-assign": [ + 2, + ], + "no-setter-return": [ + 0, + ], + "no-shadow-restricted-names": [ + 2, + ], + "no-space-before-semi": [ + 0, + ], + "no-spaced-func": [ + 0, + ], + "no-sparse-arrays": [ + 2, + ], + "no-tabs": [ + 0, + ], + "no-this-before-super": [ + 0, + ], + "no-throw-literal": [ + 0, + ], + "no-trailing-spaces": [ + 0, + ], + "no-undef": [ + 0, + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + 0, + ], + "no-unsafe-finally": [ + 2, + ], + "no-unsafe-negation": [ + 0, + ], + "no-unsafe-optional-chaining": [ + 2, + ], + "no-unused-expressions": [ + 0, + ], + "no-unused-labels": [ + 2, + ], + "no-unused-private-class-members": [ + 2, + ], + "no-unused-vars": [ + 0, + ], + "no-useless-backreference": [ + 2, + ], + "no-useless-catch": [ + 2, + ], + "no-useless-escape": [ + 2, + ], + "no-var": [ + 2, + ], + "no-whitespace-before-property": [ + 0, + ], + "no-with": [ + 2, + ], + "no-wrap-func": [ + 0, + ], + "nonblock-statement-body-position": [ + 0, + ], + "object-curly-newline": [ + 0, + ], + "object-curly-spacing": [ + 0, + ], + "object-property-newline": [ + 0, + ], + "one-var-declaration-per-line": [ + 0, + ], + "operator-linebreak": [ + 0, + ], + "padded-blocks": [ + 0, + ], + "perfectionist/sort-array-includes": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-classes": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-enums": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-exports": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-imports": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-interfaces": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-intersection-types": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-jsx-props": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-maps": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-named-exports": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-named-imports": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-object-types": [ + 2, + { + "ignoreCase": true, + "order": "asc", + "partitionByComment": true, + "partitionByNewLine": true, + "type": "natural", + }, + ], + "perfectionist/sort-objects": [ + 2, + { + "ignoreCase": true, + "order": "asc", + "partitionByComment": true, + "partitionByNewLine": true, + "type": "natural", + }, + ], + "perfectionist/sort-sets": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-switch-case": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-union-types": [ + 2, + { + "groups": [ + "conditional", + "function", + "import", + "intersection", + "keyword", + "literal", + "named", + "object", + "operator", + "tuple", + "union", + "nullish", + ], + "order": "asc", + "type": "natural", + }, + ], + "perfectionist/sort-variable-declarations": [ + 2, + { + "order": "asc", + "type": "natural", + }, + ], + "prefer-const": [ + 2, + ], + "prefer-promise-reject-errors": [ + 0, + ], + "prefer-rest-params": [ + 2, + ], + "prefer-spread": [ + 2, + ], + "prettier/prettier": [ + 0, + ], + "quote-props": [ + 0, + ], + "quotes": [ + 0, + ], + "react/jsx-child-element-spacing": [ + 0, + ], + "react/jsx-closing-bracket-location": [ + 0, + ], + "react/jsx-closing-tag-location": [ + 0, + ], + "react/jsx-curly-newline": [ + 0, + ], + "react/jsx-curly-spacing": [ + 0, + ], + "react/jsx-equals-spacing": [ + 0, + ], + "react/jsx-first-prop-new-line": [ + 0, + ], + "react/jsx-indent": [ + 0, + ], + "react/jsx-indent-props": [ + 0, + ], + "react/jsx-max-props-per-line": [ + 0, + ], + "react/jsx-newline": [ + 0, + ], + "react/jsx-one-expression-per-line": [ + 0, + ], + "react/jsx-props-no-multi-spaces": [ + 0, + ], + "react/jsx-space-before-closing": [ + 0, + ], + "react/jsx-tag-spacing": [ + 0, + ], + "react/jsx-wrap-multilines": [ + 0, + ], + "require-await": [ + 0, + ], + "require-yield": [ 2, ], - "astro/jsx-a11y/anchor-has-content": [ - 2, + "rest-spread-spacing": [ + 0, + ], + "semi": [ + 0, + ], + "semi-spacing": [ + 0, + ], + "semi-style": [ + 0, + ], + "space-after-function-name": [ + 0, + ], + "space-after-keywords": [ + 0, + ], + "space-before-blocks": [ + 0, + ], + "space-before-function-paren": [ + 0, + ], + "space-before-function-parentheses": [ + 0, + ], + "space-before-keywords": [ + 0, + ], + "space-in-brackets": [ + 0, + ], + "space-in-parens": [ + 0, + ], + "space-infix-ops": [ + 0, + ], + "space-return-throw-case": [ + 0, + ], + "space-unary-ops": [ + 0, ], - "astro/jsx-a11y/anchor-is-valid": [ - 2, + "space-unary-word-ops": [ + 0, ], - "astro/jsx-a11y/aria-activedescendant-has-tabindex": [ - 2, + "standard/array-bracket-even-spacing": [ + 0, ], - "astro/jsx-a11y/aria-props": [ - 2, + "standard/computed-property-even-spacing": [ + 0, ], - "astro/jsx-a11y/aria-proptypes": [ - 2, + "standard/object-curly-even-spacing": [ + 0, ], - "astro/jsx-a11y/aria-role": [ - 2, + "switch-colon-spacing": [ + 0, ], - "astro/jsx-a11y/aria-unsupported-elements": [ - 2, + "template-curly-spacing": [ + 0, ], - "astro/jsx-a11y/autocomplete-valid": [ - 2, + "template-tag-spacing": [ + 0, ], - "astro/jsx-a11y/click-events-have-key-events": [ - 2, + "unicorn/empty-brace-spaces": [ + 0, ], - "astro/jsx-a11y/control-has-associated-label": [ + "unicorn/no-nested-ternary": [ 0, - { - "ignoreElements": [ - "audio", - "canvas", - "embed", - "input", - "textarea", - "tr", - "video", - ], - "ignoreRoles": [ - "grid", - "listbox", - "menu", - "menubar", - "radiogroup", - "row", - "tablist", - "toolbar", - "tree", - "treegrid", - ], - "includeRoles": [ - "alert", - "dialog", - ], - }, ], - "astro/jsx-a11y/heading-has-content": [ - 2, + "unicorn/number-literal-case": [ + 0, ], - "astro/jsx-a11y/html-has-lang": [ - 2, + "unicorn/template-indent": [ + 0, ], - "astro/jsx-a11y/iframe-has-title": [ + "use-isnan": [ 2, ], - "astro/jsx-a11y/img-redundant-alt": [ + "valid-typeof": [ 2, ], - "astro/jsx-a11y/interactive-supports-focus": [ - 2, - { - "tabbable": [ - "button", - "checkbox", - "link", - "progressbar", - "searchbox", - "slider", - "spinbutton", - "switch", - "textbox", - ], - }, + "vue/array-bracket-newline": [ + 0, ], - "astro/jsx-a11y/label-has-associated-control": [ - 2, + "vue/array-bracket-spacing": [ + 0, ], - "astro/jsx-a11y/label-has-for": [ + "vue/array-element-newline": [ 0, ], - "astro/jsx-a11y/media-has-caption": [ - 2, + "vue/arrow-spacing": [ + 0, ], - "astro/jsx-a11y/mouse-events-have-key-events": [ - 2, + "vue/block-spacing": [ + 0, ], - "astro/jsx-a11y/no-access-key": [ - 2, + "vue/block-tag-newline": [ + 0, ], - "astro/jsx-a11y/no-autofocus": [ - 2, + "vue/brace-style": [ + 0, ], - "astro/jsx-a11y/no-distracting-elements": [ - 2, + "vue/comma-dangle": [ + 0, ], - "astro/jsx-a11y/no-interactive-element-to-noninteractive-role": [ - 2, + "vue/comma-spacing": [ + 0, ], - "astro/jsx-a11y/no-noninteractive-element-interactions": [ - 2, - { - "body": [ - "onError", - "onLoad", - ], - "iframe": [ - "onError", - "onLoad", - ], - "img": [ - "onError", - "onLoad", - ], - }, + "vue/comma-style": [ + 0, ], - "astro/jsx-a11y/no-noninteractive-element-to-interactive-role": [ - 2, + "vue/dot-location": [ + 0, ], - "astro/jsx-a11y/no-noninteractive-tabindex": [ - 2, + "vue/func-call-spacing": [ + 0, ], - "astro/jsx-a11y/no-redundant-roles": [ - 2, + "vue/html-closing-bracket-newline": [ + 0, ], - "astro/jsx-a11y/no-static-element-interactions": [ - 2, + "vue/html-closing-bracket-spacing": [ + 0, ], - "astro/jsx-a11y/role-has-required-aria-props": [ - 2, + "vue/html-end-tags": [ + 0, ], - "astro/jsx-a11y/role-supports-aria-props": [ - 2, + "vue/html-indent": [ + 0, ], - "astro/jsx-a11y/scope": [ - 2, + "vue/html-quotes": [ + 0, ], - "astro/jsx-a11y/tabindex-no-positive": [ - 2, + "vue/html-self-closing": [ + 0, ], - "astro/missing-client-only-directive-value": [ - 2, + "vue/key-spacing": [ + 0, ], - "astro/no-conflict-set-directives": [ - 2, + "vue/keyword-spacing": [ + 0, ], - "astro/no-deprecated-astro-canonicalurl": [ - 2, + "vue/max-attributes-per-line": [ + 0, ], - "astro/no-deprecated-astro-fetchcontent": [ - 2, + "vue/max-len": [ + 0, ], - "astro/no-deprecated-astro-resolve": [ - 2, + "vue/multiline-html-element-content-newline": [ + 0, ], - "astro/no-deprecated-getentrybyslug": [ - 2, + "vue/multiline-ternary": [ + 0, ], - "astro/no-unused-define-vars-in-style": [ - 2, + "vue/mustache-interpolation-spacing": [ + 0, ], - "astro/valid-compile": [ - 2, + "vue/no-extra-parens": [ + 0, + ], + "vue/no-multi-spaces": [ + 0, + ], + "vue/no-spaces-around-equal-signs-in-attribute": [ + 0, + ], + "vue/object-curly-newline": [ + 0, + ], + "vue/object-curly-spacing": [ + 0, + ], + "vue/object-property-newline": [ + 0, + ], + "vue/operator-linebreak": [ + 0, + ], + "vue/quote-props": [ + 0, + ], + "vue/script-indent": [ + 0, + ], + "vue/singleline-html-element-content-newline": [ + 0, + ], + "vue/space-in-parens": [ + 0, + ], + "vue/space-infix-ops": [ + 0, + ], + "vue/space-unary-ops": [ + 0, + ], + "vue/template-curly-spacing": [ + 0, + ], + "wrap-iife": [ + 0, + ], + "wrap-regex": [ + 0, + ], + "yield-star-spacing": [ + 0, ], }, } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac4991e..af8efe5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -50,6 +50,9 @@ importers: packages/eslint-config: dependencies: + '@astrojs/compiler': + specifier: ^2.10.3 + version: 2.10.3 '@eslint/compat': specifier: ^1.2.1 version: 1.2.1(eslint@9.13.0(jiti@1.21.0)) @@ -65,6 +68,12 @@ importers: '@typescript-eslint/utils': specifier: ^8.11.0 version: 8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) + astro-eslint-parser: + specifier: ^1.0.3 + version: 1.0.3(typescript@5.6.3) + astrojs-compiler-sync: + specifier: ^1.0.1 + version: 1.0.1(@astrojs/compiler@2.10.3) eslint: specifier: ^9.13.0 version: 9.13.0(jiti@1.21.0) @@ -82,7 +91,7 @@ importers: version: 6.10.1(eslint@9.13.0(jiti@1.21.0)) eslint-plugin-perfectionist: specifier: ^3.9.1 - version: 3.9.1(astro-eslint-parser@1.0.2(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) + version: 3.9.1(astro-eslint-parser@1.0.3(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) eslint-plugin-react: specifier: ^7.37.2 version: 7.37.2(eslint@9.13.0(jiti@1.21.0)) @@ -101,6 +110,9 @@ importers: typescript-eslint: specifier: ^8.11.0 version: 8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) + typescript-eslint-parser-for-extra-files: + specifier: ^0.7.0 + version: 0.7.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3))(astrojs-compiler-sync@1.0.1(@astrojs/compiler@2.10.3))(typescript@5.6.3) devDependencies: '@types/eslint': specifier: 9.6.1 @@ -230,6 +242,9 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} + '@astrojs/compiler@2.9.2': resolution: {integrity: sha512-Vpu0Ffsj8SoV+N0DFHlxxOMKHwSC9059Xy/OlG1t6uFYSoJXxkBC2WyF6igO7x10V+8uJrhOxaXr3nA90kJXow==} @@ -1005,10 +1020,6 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.18.0': - resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.11.0': resolution: {integrity: sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1022,10 +1033,6 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.18.0': - resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.11.0': resolution: {integrity: sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1038,15 +1045,6 @@ packages: resolution: {integrity: sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.18.0': - resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@8.11.0': resolution: {integrity: sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1062,10 +1060,6 @@ packages: peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.18.0': - resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} - engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.11.0': resolution: {integrity: sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1213,12 +1207,12 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - astro-eslint-parser@1.0.2: - resolution: {integrity: sha512-8hJaCuqxObShWl2wEsnASqh/DbQ2O+S66m0Q3ctJlzBPEQ4pfGwwama3FCjZO3GDLQsjvn1T0v93Vxyu/+5fGw==} + astro-eslint-parser@1.0.3: + resolution: {integrity: sha512-AGsGgcg7Jg9UpyCDgvl/EkdYpe1oMkFdmC2Zl+KWneoieLCtQIFjmcY8yt41gcNx4mby0w8BBJQcBmPuf8UAoQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - astrojs-compiler-sync@1.0.0: - resolution: {integrity: sha512-IM6FxpMoBxkGGdKppkFHNQIC9Wge7jspG2MIJff8DOhG41USNJLxJfxRm7wnkTKWlYK5Y1YFFNYr2vUUKkI8sw==} + astrojs-compiler-sync@1.0.1: + resolution: {integrity: sha512-EdJILVkc/Iiw9sLMyb2uppp/vG7YL9TgkwaEumNDflI8s0AhR5XuCFkdbA/AcCGvcBfsRH9ngy/iIP8Uybl82g==} engines: {node: ^18.18.0 || >=20.9.0} peerDependencies: '@astrojs/compiler': '>=0.27.0' @@ -3079,6 +3073,25 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typescript-eslint-parser-for-extra-files@0.7.0: + resolution: {integrity: sha512-dNjuJCeGHA2yreEzQC8NRrZylgrJKZJ/kpLNusbRqEUAJfwJo2eOALpr2vsxcoqAzDyi72T8FQypSVhAOAaJrw==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@typescript-eslint/parser': '>=5.41.0' + astrojs-compiler-sync: '>=0.3.1' + svelte2tsx: '>=0.7.9' + typescript: '>=4.8.4' + vue: ^3.2.45 + peerDependenciesMeta: + astrojs-compiler-sync: + optional: true + svelte2tsx: + optional: true + typescript: + optional: true + vue: + optional: true + typescript-eslint@8.11.0: resolution: {integrity: sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3286,6 +3299,8 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 + '@astrojs/compiler@2.10.3': {} + '@astrojs/compiler@2.9.2': {} '@babel/code-frame@7.24.2': @@ -4059,11 +4074,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - '@typescript-eslint/scope-manager@8.11.0': dependencies: '@typescript-eslint/types': 8.11.0 @@ -4081,29 +4091,12 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/types@8.11.0': {} '@typescript-eslint/types@8.8.1': {} '@typescript-eslint/types@8.9.0': {} - '@typescript-eslint/typescript-estree@7.18.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/visitor-keys': 7.18.0 - debug: 4.3.7 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.0 - ts-api-utils: 1.3.0(typescript@5.6.3) - optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@8.11.0(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.11.0 @@ -4130,11 +4123,6 @@ snapshots: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.18.0': - dependencies: - '@typescript-eslint/types': 7.18.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.11.0': dependencies: '@typescript-eslint/types': 8.11.0 @@ -4319,13 +4307,13 @@ snapshots: astral-regex@2.0.0: {} - astro-eslint-parser@1.0.2(typescript@5.6.3): + astro-eslint-parser@1.0.3(typescript@5.6.3): dependencies: - '@astrojs/compiler': 2.9.2 - '@typescript-eslint/scope-manager': 7.18.0 - '@typescript-eslint/types': 7.18.0 - '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.6.3) - astrojs-compiler-sync: 1.0.0(@astrojs/compiler@2.9.2) + '@astrojs/compiler': 2.10.3 + '@typescript-eslint/scope-manager': 8.11.0 + '@typescript-eslint/types': 8.11.0 + '@typescript-eslint/typescript-estree': 8.11.0(typescript@5.6.3) + astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3) debug: 4.3.7 entities: 4.5.0 eslint-scope: 8.1.0 @@ -4338,9 +4326,9 @@ snapshots: - supports-color - typescript - astrojs-compiler-sync@1.0.0(@astrojs/compiler@2.9.2): + astrojs-compiler-sync@1.0.1(@astrojs/compiler@2.10.3): dependencies: - '@astrojs/compiler': 2.9.2 + '@astrojs/compiler': 2.10.3 synckit: 0.9.0 available-typed-arrays@1.0.7: @@ -4773,7 +4761,7 @@ snapshots: '@eslint-community/eslint-utils': 4.4.0(eslint@9.13.0(jiti@1.21.0)) '@jridgewell/sourcemap-codec': 1.4.15 '@typescript-eslint/types': 8.8.1 - astro-eslint-parser: 1.0.2(typescript@5.6.3) + astro-eslint-parser: 1.0.3(typescript@5.6.3) eslint: 9.13.0(jiti@1.21.0) eslint-compat-utils: 0.5.0(eslint@9.13.0(jiti@1.21.0)) globals: 15.11.0 @@ -4803,7 +4791,7 @@ snapshots: safe-regex-test: 1.0.3 string.prototype.includes: 2.0.1 - eslint-plugin-perfectionist@3.9.1(astro-eslint-parser@1.0.2(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3): + eslint-plugin-perfectionist@3.9.1(astro-eslint-parser@1.0.3(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3): dependencies: '@typescript-eslint/types': 8.9.0 '@typescript-eslint/utils': 8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) @@ -4811,7 +4799,7 @@ snapshots: minimatch: 9.0.5 natural-compare-lite: 1.4.0 optionalDependencies: - astro-eslint-parser: 1.0.2(typescript@5.6.3) + astro-eslint-parser: 1.0.3(typescript@5.6.3) transitivePeerDependencies: - supports-color - typescript @@ -6405,6 +6393,15 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typescript-eslint-parser-for-extra-files@0.7.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3))(astrojs-compiler-sync@1.0.1(@astrojs/compiler@2.10.3))(typescript@5.6.3): + dependencies: + '@typescript-eslint/parser': 8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3) + globby: 11.1.0 + is-glob: 4.0.3 + optionalDependencies: + astrojs-compiler-sync: 1.0.1(@astrojs/compiler@2.10.3) + typescript: 5.6.3 + typescript-eslint@8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3): dependencies: '@typescript-eslint/eslint-plugin': 8.11.0(@typescript-eslint/parser@8.11.0(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3))(eslint@9.13.0(jiti@1.21.0))(typescript@5.6.3)