From d211bd448692049f54d8f7e148109560b5490a93 Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Fri, 30 Jan 2026 09:47:02 -0500 Subject: [PATCH] chore: migrate to oxlint --- .oxlintrc.json | 1385 ++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 5 +- pnpm-lock.yaml | 158 ++++++ 3 files changed, 1547 insertions(+), 1 deletion(-) create mode 100644 .oxlintrc.json diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 0000000000..a8b73bb8de --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,1385 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": [ + "typescript", + "unicorn" + ], + "categories": { + "correctness": "off" + }, + "env": { + "builtin": true, + "commonjs": true + }, + "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", + { + "checkLoops": false + } + ], + "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", + { + "allowEmptyCatch": true + } + ], + "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-this-before-super": "error", + "no-undef": "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-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error", + "no-array-constructor": "error", + "@typescript-eslint/no-duplicate-enum-values": "error", + "@typescript-eslint/no-empty-object-type": "error", + "@typescript-eslint/no-extra-non-null-assertion": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/no-namespace": "error", + "@typescript-eslint/no-non-null-asserted-optional-chain": "error", + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/no-unnecessary-type-constraint": "error", + "@typescript-eslint/no-unsafe-declaration-merging": "error", + "@typescript-eslint/no-unsafe-function-type": "error", + "no-unused-expressions": "error", + "@typescript-eslint/no-wrapper-object-types": "error", + "@typescript-eslint/prefer-as-const": "error", + "@typescript-eslint/prefer-namespace-keyword": "error", + "@typescript-eslint/triple-slash-reference": "error", + "svelte/comment-directive": "error", + "svelte/infinite-reactive-loop": "error", + "svelte/no-at-debug-tags": "warn", + "svelte/no-at-html-tags": "error", + "svelte/no-dom-manipulating": "error", + "svelte/no-dupe-else-if-blocks": "error", + "svelte/no-dupe-on-directives": "error", + "svelte/no-dupe-style-properties": "error", + "svelte/no-dupe-use-directives": "error", + "svelte/no-export-load-in-svelte-module-in-kit-pages": "error", + "svelte/no-immutable-reactive-statements": "error", + "svelte/no-inspect": "warn", + "svelte/no-not-function-handler": "error", + "svelte/no-object-in-text-mustaches": "error", + "svelte/no-raw-special-elements": "error", + "svelte/no-reactive-functions": "error", + "svelte/no-reactive-literals": "error", + "svelte/no-reactive-reassign": "error", + "svelte/no-shorthand-style-property-overrides": "error", + "svelte/no-store-async": "error", + "svelte/no-svelte-internal": "error", + "svelte/no-unknown-style-directive-property": "error", + "svelte/no-unnecessary-state-wrap": "error", + "svelte/no-unused-props": "error", + "svelte/no-unused-svelte-ignore": "error", + "svelte/no-useless-children-snippet": "error", + "svelte/no-useless-mustaches": "error", + "svelte/prefer-svelte-reactivity": "error", + "svelte/prefer-writable-derived": "error", + "svelte/require-each-key": "error", + "svelte/require-event-dispatcher-types": "error", + "svelte/require-store-reactive-access": "error", + "svelte/system": "error", + "svelte/valid-each-key": "error", + "svelte/valid-prop-names-in-kit-pages": "error", + "@stylistic/quote-props": [ + "error", + "as-needed" + ], + "@typescript-eslint/array-type": [ + "error", + { + "default": "array-simple" + } + ], + "no-duplicate-imports": "error", + "@typescript-eslint/await-thenable": "error", + "@typescript-eslint/require-await": "error", + "no-console": "error", + "lube/svelte-naming-convention": [ + "error", + { + "fixSameNames": true + } + ] + }, + "jsPlugins": [ + "eslint-plugin-svelte", + "@stylistic/eslint-plugin", + "eslint-plugin-lube" + ], + "globals": { + "AbortController": "readonly", + "AbortSignal": "readonly", + "AbsoluteOrientationSensor": "readonly", + "AbstractRange": "readonly", + "Accelerometer": "readonly", + "addEventListener": "readonly", + "ai": "readonly", + "AI": "readonly", + "AITextSession": "readonly", + "alert": "readonly", + "AnalyserNode": "readonly", + "Animation": "readonly", + "AnimationEffect": "readonly", + "AnimationEvent": "readonly", + "AnimationPlaybackEvent": "readonly", + "AnimationTimeline": "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", + "ClipboardEvent": "readonly", + "ClipboardItem": "readonly", + "close": "readonly", + "closed": "readonly", + "CloseEvent": "readonly", + "CloseWatcher": "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", + "Credential": "readonly", + "credentialless": "readonly", + "CredentialsContainer": "readonly", + "CropTarget": "readonly", + "crossOriginIsolated": "readonly", + "crypto": "readonly", + "Crypto": "readonly", + "CryptoKey": "readonly", + "CSS": "readonly", + "CSSAnimation": "readonly", + "CSSConditionRule": "readonly", + "CSSContainerRule": "readonly", + "CSSCounterStyleRule": "readonly", + "CSSFontFaceRule": "readonly", + "CSSFontFeatureValuesRule": "readonly", + "CSSFontPaletteValuesRule": "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", + "dispatchEvent": "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", + "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", + "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", + "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", + "IntersectionObserver": "readonly", + "IntersectionObserverEntry": "readonly", + "isSecureContext": "readonly", + "Keyboard": "readonly", + "KeyboardEvent": "readonly", + "KeyboardLayoutMap": "readonly", + "KeyframeEffect": "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", + "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", + "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", + "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", + "RadioNodeList": "readonly", + "Range": "readonly", + "ReadableByteStreamController": "readonly", + "ReadableStream": "readonly", + "ReadableStreamBYOBReader": "readonly", + "ReadableStreamBYOBRequest": "readonly", + "ReadableStreamDefaultController": "readonly", + "ReadableStreamDefaultReader": "readonly", + "registerProcessor": "readonly", + "RelativeOrientationSensor": "readonly", + "RemotePlayback": "readonly", + "removeEventListener": "readonly", + "reportError": "readonly", + "ReportingObserver": "readonly", + "Request": "readonly", + "requestAnimationFrame": "readonly", + "requestIdleCallback": "readonly", + "resizeBy": "readonly", + "ResizeObserver": "readonly", + "ResizeObserverEntry": "readonly", + "ResizeObserverSize": "readonly", + "resizeTo": "readonly", + "Response": "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", + "SharedStorageWorklet": "readonly", + "SharedWorker": "readonly", + "showDirectoryPicker": "readonly", + "showOpenFilePicker": "readonly", + "showSaveFilePicker": "readonly", + "SnapEvent": "readonly", + "SourceBuffer": "readonly", + "SourceBufferList": "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", + "SubtleCrypto": "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", + "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", + "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", + "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", + "__dirname": "readonly", + "__filename": "readonly", + "Buffer": "readonly", + "clearImmediate": "readonly", + "process": "readonly", + "setImmediate": "readonly" + }, + "ignorePatterns": [ + "**/*.d.ts", + "**/tests", + "packages/svelte/scripts/process-messages/templates/*.js", + "packages/svelte/scripts/_bundle.js", + "packages/svelte/src/compiler/errors.js", + "packages/svelte/src/internal/client/errors.js", + "packages/svelte/src/internal/client/warnings.js", + "packages/svelte/src/internal/shared/warnings.js", + "packages/svelte/src/internal/server/warnings.js", + "packages/svelte/compiler/index.js", + "benchmarking/**", + "coverage/**", + "playgrounds/sandbox/**", + "*.config.js", + "documentation", + "tmp/**" + ], + "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-undef": "off", + "no-unreachable": "off", + "no-unsafe-negation": "off", + "no-var": "error", + "no-with": "off", + "prefer-rest-params": "error", + "prefer-spread": "error" + } + }, + { + "files": [ + "*.svelte", + "**/*.svelte" + ], + "rules": { + "no-self-assign": "off" + }, + "jsPlugins": [ + "eslint-plugin-svelte" + ] + }, + { + "files": [ + "*.svelte", + "**/*.svelte" + ], + "jsPlugins": [ + "eslint-plugin-svelte" + ] + }, + { + "files": [ + "**/*.svelte" + ], + "rules": { + "@typescript-eslint/await-thenable": "off", + "@typescript-eslint/require-await": "off" + } + }, + { + "files": [ + "packages/svelte/src/**/*" + ], + "rules": { + "custom/no_compiler_imports": "error", + "svelte/no-svelte-internal": "off" + }, + "jsPlugins": [ + "eslint-plugin-custom" + ] + } + ] +} \ No newline at end of file diff --git a/package.json b/package.json index e7faf26c13..e795bc799b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "scripts": { "build": "pnpm -r --filter=./packages/* build", "check": "cd packages/svelte && pnpm build && cd ../../ && pnpm -r check", - "lint": "eslint && prettier --check .", + "lint": "oxlint && prettier --check .", "format": "prettier --write .", "test": "vitest run", "changeset:version": "changeset version && pnpm -r generate:version && git add --all", @@ -27,15 +27,18 @@ }, "devDependencies": { "@changesets/cli": "^2.29.8", + "@stylistic/eslint-plugin": "^5.7.1", "@sveltejs/eslint-config": "^8.3.3", "@svitejs/changesets-changelog-github-compact": "^1.1.0", "@types/node": "^20.11.5", "@types/picomatch": "^4.0.2", "@vitest/coverage-v8": "^2.1.9", "eslint": "^9.9.1", + "eslint-plugin-custom": "^0.0.6", "eslint-plugin-lube": "^0.4.3", "eslint-plugin-svelte": "^3.11.0", "jsdom": "25.0.1", + "oxlint": "^1.42.0", "playwright": "^1.58.0", "prettier": "^3.2.4", "prettier-plugin-svelte": "^3.4.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6d3e66825c..4ed27d7fab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@changesets/cli': specifier: ^2.29.8 version: 2.29.8(@types/node@20.19.17) + '@stylistic/eslint-plugin': + specifier: ^5.7.1 + version: 5.7.1(eslint@9.9.1) '@sveltejs/eslint-config': specifier: ^8.3.3 version: 8.3.3(@stylistic/eslint-plugin-js@1.8.0(eslint@9.9.1))(eslint-config-prettier@9.1.0(eslint@9.9.1))(eslint-plugin-n@17.16.1(eslint@9.9.1)(typescript@5.5.4))(eslint-plugin-svelte@3.11.0(eslint@9.9.1)(svelte@packages+svelte))(eslint@9.9.1)(typescript-eslint@8.48.1(eslint@9.9.1)(typescript@5.5.4))(typescript@5.5.4) @@ -29,6 +32,9 @@ importers: eslint: specifier: ^9.9.1 version: 9.9.1 + eslint-plugin-custom: + specifier: ^0.0.6 + version: 0.0.6 eslint-plugin-lube: specifier: ^0.4.3 version: 0.4.3 @@ -38,6 +44,9 @@ importers: jsdom: specifier: 25.0.1 version: 25.0.1 + oxlint: + specifier: ^1.42.0 + version: 1.42.0 playwright: specifier: ^1.58.0 version: 1.58.0 @@ -576,6 +585,12 @@ 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} @@ -663,6 +678,46 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} + '@oxlint/darwin-arm64@1.42.0': + resolution: {integrity: sha512-ui5CdAcDsXPQwZQEXOOSWsilJWhgj9jqHCvYBm2tDE8zfwZZuF9q58+hGKH1x5y0SV4sRlyobB2Quq6uU6EgeA==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@1.42.0': + resolution: {integrity: sha512-wo0M/hcpHRv7vFje99zHHqheOhVEwUOKjOgBKyi0M99xcLizv04kcSm1rTd6HSCeZgOtiJYZRVAlKhQOQw2byQ==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@1.42.0': + resolution: {integrity: sha512-j4QzfCM8ks+OyM+KKYWDiBEQsm5RCW50H1Wz16wUyoFsobJ+X5qqcJxq6HvkE07m8euYmZelyB0WqsiDoz1v8g==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-arm64-musl@1.42.0': + resolution: {integrity: sha512-g5b1Uw7zo6yw4Ymzyd1etKzAY7xAaGA3scwB8tAp3QzuY7CYdfTwlhiLKSAKbd7T/JBgxOXAGNcLDorJyVTXcg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-x64-gnu@1.42.0': + resolution: {integrity: sha512-HnD99GD9qAbpV4q9iQil7mXZUJFpoBdDavfcC2CgGLPlawfcV5COzQPNwOgvPVkr7C0cBx6uNCq3S6r9IIiEIg==} + cpu: [x64] + os: [linux] + + '@oxlint/linux-x64-musl@1.42.0': + resolution: {integrity: sha512-8NTe8A78HHFn+nBi+8qMwIjgv9oIBh+9zqCPNLH56ah4vKOPvbePLI6NIv9qSkmzrBuu8SB+FJ2TH/G05UzbNA==} + cpu: [x64] + os: [linux] + + '@oxlint/win32-arm64@1.42.0': + resolution: {integrity: sha512-lAPS2YAuu+qFqoTNPFcNsxXjwSV0M+dOgAzzVTAN7Yo2ifj+oLOx0GsntWoM78PvQWI7Q827ZxqtU2ImBmDapA==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@1.42.0': + resolution: {integrity: sha512-3/KmyUOHNriL6rLpaFfm9RJxdhpXY2/Ehx9UuorJr2pUA+lrZL15FAEx/DOszYm5r10hfzj40+efAHcCilNvSQ==} + cpu: [x64] + os: [win32] + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -836,6 +891,12 @@ packages: peerDependencies: eslint: '>=8.40.0' + '@stylistic/eslint-plugin@5.7.1': + resolution: {integrity: sha512-zjTUwIsEfT+k9BmXwq1QEFYsb4afBlsI1AXFyWQBgggMzwBFOuu92pGrE5OFx90IOjNl+lUbQoTG7f8S0PkOdg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=9.0.0' + '@sveltejs/acorn-typescript@1.0.5': resolution: {integrity: sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ==} peerDependencies: @@ -940,6 +1001,10 @@ packages: resolution: {integrity: sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/types@8.54.0': + resolution: {integrity: sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript-eslint/typescript-estree@8.48.1': resolution: {integrity: sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1289,6 +1354,10 @@ packages: peerDependencies: eslint: '>=7.0.0' + eslint-plugin-custom@0.0.6: + resolution: {integrity: sha512-777PTnVYEs4ts9R9f211NqNmo6dtjAc1fXzAYhdWMe+rPgRlYCrkwDPYdh97RRMSgoQsFhPshxyByqnwodnKsg==} + engines: {node: '>=0.10.0'} + eslint-plugin-es-x@7.8.0: resolution: {integrity: sha512-7Ds8+wAAoV3T+LAKeu39Y5BzXCrGKrcISfgKEqTS4BDN8SFEDQd0S43jiQ8vIa3wUKD07qitZdfzlenSi8/0qQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -1343,6 +1412,10 @@ packages: resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@10.4.0: + resolution: {integrity: sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + espree@9.6.1: resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -1757,6 +1830,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} @@ -1849,6 +1925,16 @@ packages: outdent@0.5.0: resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==} + oxlint@1.42.0: + resolution: {integrity: sha512-qnspC/lrp8FgKNaONLLn14dm+W5t0SSlus6V5NJpgI2YNT1tkFYZt4fBf14ESxf9AAh98WBASnW5f0gtw462Lg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.11.2' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + p-filter@2.1.0: resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} engines: {node: '>=8'} @@ -2028,6 +2114,10 @@ packages: resolution: {integrity: sha512-RSYAtP31mvYLkAHrOlh25pCNQ5hWnT106VukGaaFfuJrZFkGRX5GhUAdPqpSDXxOhA2c4akmRuplv1mRqnBn6Q==} engines: {node: '>=8'} + requireindex@1.1.0: + resolution: {integrity: sha512-LBnkqsDE7BZKvqylbmn7lTIVdpx4K/QCduRATpO5R+wtPmky/a8pN1bO2D6wXppn1497AJF9mNjqAXr6bdl9jg==} + engines: {node: '>=0.10.5'} + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -2471,6 +2561,7 @@ packages: whatwg-encoding@3.1.1: resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} @@ -2865,6 +2956,11 @@ snapshots: eslint: 9.9.1 eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.9.1)': + dependencies: + eslint: 9.9.1 + eslint-visitor-keys: 3.4.3 + '@eslint-community/regexpp@4.12.2': {} '@eslint/config-array@0.18.0': @@ -2970,6 +3066,30 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.16.0 + '@oxlint/darwin-arm64@1.42.0': + optional: true + + '@oxlint/darwin-x64@1.42.0': + optional: true + + '@oxlint/linux-arm64-gnu@1.42.0': + optional: true + + '@oxlint/linux-arm64-musl@1.42.0': + optional: true + + '@oxlint/linux-x64-gnu@1.42.0': + optional: true + + '@oxlint/linux-x64-musl@1.42.0': + optional: true + + '@oxlint/win32-arm64@1.42.0': + optional: true + + '@oxlint/win32-x64@1.42.0': + optional: true + '@pkgjs/parseargs@0.11.0': optional: true @@ -3096,6 +3216,16 @@ snapshots: eslint-visitor-keys: 3.4.3 espree: 9.6.1 + '@stylistic/eslint-plugin@5.7.1(eslint@9.9.1)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@9.9.1) + '@typescript-eslint/types': 8.54.0 + eslint: 9.9.1 + eslint-visitor-keys: 4.2.1 + espree: 10.4.0 + estraverse: 5.3.0 + picomatch: 4.0.3 + '@sveltejs/acorn-typescript@1.0.5(acorn@8.15.0)': dependencies: acorn: 8.15.0 @@ -3225,6 +3355,8 @@ snapshots: '@typescript-eslint/types@8.48.1': {} + '@typescript-eslint/types@8.54.0': {} + '@typescript-eslint/typescript-estree@8.48.1(typescript@5.5.4)': dependencies: '@typescript-eslint/project-service': 8.48.1(typescript@5.5.4) @@ -3608,6 +3740,11 @@ snapshots: dependencies: eslint: 9.9.1 + eslint-plugin-custom@0.0.6: + dependencies: + lodash: 4.17.23 + requireindex: 1.1.0 + eslint-plugin-es-x@7.8.0(eslint@9.9.1): dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.9.1) @@ -3708,6 +3845,12 @@ snapshots: acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 4.2.1 + espree@10.4.0: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 4.2.1 + espree@9.6.1: dependencies: acorn: 8.15.0 @@ -4106,6 +4249,8 @@ snapshots: lodash.startcase@4.4.0: {} + lodash@4.17.23: {} + loupe@3.2.1: {} lru-cache@10.4.3: {} @@ -4186,6 +4331,17 @@ snapshots: outdent@0.5.0: {} + oxlint@1.42.0: + optionalDependencies: + '@oxlint/darwin-arm64': 1.42.0 + '@oxlint/darwin-x64': 1.42.0 + '@oxlint/linux-arm64-gnu': 1.42.0 + '@oxlint/linux-arm64-musl': 1.42.0 + '@oxlint/linux-x64-gnu': 1.42.0 + '@oxlint/linux-x64-musl': 1.42.0 + '@oxlint/win32-arm64': 1.42.0 + '@oxlint/win32-x64': 1.42.0 + p-filter@2.1.0: dependencies: p-map: 2.1.0 @@ -4327,6 +4483,8 @@ snapshots: regexparam@3.0.0: {} + requireindex@1.1.0: {} + resolve-from@4.0.0: {} resolve-from@5.0.0: {}