diff --git a/.changeset/five-masks-flash.md b/.changeset/five-masks-flash.md new file mode 100644 index 00000000..b5b40fdf --- /dev/null +++ b/.changeset/five-masks-flash.md @@ -0,0 +1,9 @@ +--- +"eslint-config-wantedly-typescript": major +"eslint-plugin-use-macros": major +"eslint-config-wantedly": major +"eslint-plugin-wantedly": major +"frolint": major +--- + +Support ESLint v9 diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 7569ae59..00000000 --- a/.eslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": ["wantedly-typescript"], - "settings": { - "react": { - "version": "latest" - } - }, - "rules": { - "no-console": "off", - "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/consistent-type-imports": [ - "error", - { "prefer": "type-imports", "disallowTypeAnnotations": true } - ] - }, - "parserOptions": { - "project": "./tsconfig.json" - } -} diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 04161368..16dae4a7 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -8,7 +8,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x, 20.x] + node-version: [18.x, 20.x] steps: - uses: actions/checkout@v4.1.1 diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..2be1d1ec --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,35 @@ +import { base as eslintConfigWantedly } from "eslint-config-wantedly"; +import { base as eslintConfigWantedlyTs } from "eslint-config-wantedly-typescript"; + +/** @type{import('eslint').Linter.Config[]} */ +export default [ + ...eslintConfigWantedly, + ...eslintConfigWantedlyTs, + { + ignores: ["packages/**/lib/*.js"], + }, + { + files: ["**/*.ts", "**/*.tsx"], + rules: { + "no-console": "off", + "@typescript-eslint/no-require-imports": "off", + "@typescript-eslint/consistent-type-imports": [ + "error", + { + prefer: "type-imports", + disallowTypeAnnotations: true, + }, + ], + "import/order": [ + "error", + { + "newlines-between": "always", + groups: ["builtin", "external", "parent", "sibling", "index"], + alphabetize: { + order: "asc", + }, + }, + ], + }, + }, +]; diff --git a/package.json b/package.json index 5bbc7a81..f6b8de89 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,7 @@ "devDependencies": { "@changesets/changelog-github": "^0.5.0", "@changesets/cli": "^2.27.1", - "@types/eslint": "^8.44.8", - "@types/estree": "^1.0.5", + "@types/estree": "^1.0.6", "@types/graphql": "^14.5.0", "@types/jest": "^27.4.0", "jest": "^29.7.0", diff --git a/packages/eslint-config-wantedly-typescript/README.md b/packages/eslint-config-wantedly-typescript/README.md index 7ba232a8..04cc44b5 100644 --- a/packages/eslint-config-wantedly-typescript/README.md +++ b/packages/eslint-config-wantedly-typescript/README.md @@ -2,6 +2,42 @@ ESLint config for Wantedly. It focuses the TypeScript linting. +## Version Compatibilities + +If you're using ESLint v8 and under, please use eslint-config-wantedly-typescript version 3.x. As of eslint-config-wantedly-typescript version 4.0, it has started exporting ESLint's flat config format. + +### Usage (version 4.0 and above) + +It exports configurations as "Flat config". + +```js +import { base as configWantedlyTS } from "eslint-config-wantedly-typescript"; + +export default [ + ...configWantedlyTS, + { + rules: { + // Your rules go here. + } + } +]; +``` + +### Usage (version 3.x and under) + +It exports configurations as "Legacy" format. + +```json +{ + "extends": ["wantedly-typescript"], + "rules": { + // Your rules go here. + } +} +``` + +## Configuration details + ### Parser Using `@typescript-eslint/parser` diff --git a/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/index.test.js.snap b/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/index.test.js.snap index 9d7123cf..08a33f43 100644 --- a/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/index.test.js.snap +++ b/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/index.test.js.snap @@ -1,1145 +1,4534 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`eslint-config-wantedly-typescript should match snapshot for: env 1`] = ` +exports[`eslint-config-wantedly-typescript base should match snapshot for 1`] = ` { - "browser": true, - "es6": true, - "jest/globals": true, - "node": true, -} -`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: globals 1`] = ` -{ - "flushPromises": true, -} -`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: ignorePatterns 1`] = `[]`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: noInlineConfig 1`] = `undefined`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: parser 1`] = `"/@typescript-eslint/parser/dist/index.js"`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: parserOptions 1`] = ` -{ - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true, + "language": "@/js", + "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, + "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, + "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, + "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, + "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, + "afterAll": false, + "afterEach": false, + "ai": false, + "alert": false, + "atob": false, + "beforeAll": false, + "beforeEach": 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, + "describe": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "documentPictureInPicture": false, + "event": false, + "expect": false, + "exports": true, + "external": false, + "fence": false, + "fetch": false, + "fetchLater": false, + "find": false, + "fit": false, + "flushPromises": true, + "focus": false, + "frameElement": false, + "frames": false, + "getComputedStyle": false, + "getScreenDetails": false, + "getSelection": false, + "global": false, + "history": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "isSecureContext": false, + "it": false, + "jest": 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, + "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, + "test": false, + "toolbar": false, + "top": false, + "trustedTypes": false, + "visualViewport": false, + "window": false, + "xdescribe": false, + "xit": false, + "xtest": false, + }, + "parser": "typescript-eslint/parser@8.6.0", + "parserOptions": { + "projectService": true, + }, + "sourceType": "module", + }, + "linterOptions": { + "reportUnusedDisableDirectives": 1, + }, + "plugins": [ + "@", + "@typescript-eslint:@typescript-eslint/eslint-plugin@8.6.0", + "import", + "jsx-a11y:eslint-plugin-jsx-a11y@6.10.0", + "jest:eslint-plugin-jest@28.8.3", + "use-macros:eslint-plugin-use-macros", + "es-x:eslint-plugin-es-x@8.0.0", + ], + "processor": undefined, + "rules": { + "@babel/object-curly-spacing": [ + 0, + ], + "@babel/semi": [ + 0, + ], + "@typescript-eslint/adjacent-overload-signatures": [ + 2, + ], + "@typescript-eslint/array-type": [ + 0, + ], + "@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": [ + 0, + ], + "@typescript-eslint/consistent-type-definitions": [ + 0, + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/explicit-member-accessibility": [ + 2, + { + "overrides": { + "accessors": "no-public", + "constructors": "no-public", + "parameterProperties": "no-public", + }, + }, + ], + "@typescript-eslint/explicit-module-boundary-types": [ + 0, + ], + "@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-confusing-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-duplicate-enum-values": [ + 2, + ], + "@typescript-eslint/no-empty-function": [ + 2, + ], + "@typescript-eslint/no-empty-object-type": [ + 2, + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@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-inferrable-types": [ + 2, + ], + "@typescript-eslint/no-misused-new": [ + 2, + ], + "@typescript-eslint/no-namespace": [ + 2, + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + 2, + ], + "@typescript-eslint/no-non-null-assertion": [ + 1, + ], + "@typescript-eslint/no-redeclare": [ + 2, + ], + "@typescript-eslint/no-require-imports": [ + 2, + ], + "@typescript-eslint/no-this-alias": [ + 2, + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + 2, + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + 2, + ], + "@typescript-eslint/no-unsafe-function-type": [ + 2, + ], + "@typescript-eslint/no-unused-expressions": [ + 2, + ], + "@typescript-eslint/no-unused-vars": [ + 2, + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "ignoreRestSiblings": true, + "varsIgnorePattern": "^_", + }, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-useless-constructor": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + 2, + ], + "@typescript-eslint/object-curly-spacing": [ + 0, + ], + "@typescript-eslint/prefer-as-const": [ + 2, + ], + "@typescript-eslint/prefer-for-of": [ + 0, + ], + "@typescript-eslint/prefer-function-type": [ + 0, + ], + "@typescript-eslint/prefer-namespace-keyword": [ + 2, + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@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/triple-slash-reference": [ + 2, + ], + "@typescript-eslint/type-annotation-spacing": [ + 0, + ], + "array-bracket-newline": [ + 0, + ], + "array-bracket-spacing": [ + 0, + ], + "array-callback-return": [ + 0, + ], + "array-element-newline": [ + 0, + ], + "arrow-body-style": [ + 0, + ], + "arrow-parens": [ + 1, + "always", + ], + "arrow-spacing": [ + 0, + ], + "babel/object-curly-spacing": [ + 0, + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + 0, + ], + "block-spacing": [ + 0, + ], + "brace-style": [ + 0, + ], + "camelcase": [ + 2, + { + "ignoreDestructuring": true, + "ignoreGlobals": false, + "ignoreImports": false, + "properties": "never", + }, + ], + "class-methods-use-this": [ + 0, + ], + "comma-dangle": [ + 2, + { + "arrays": "always-multiline", + "exports": "always-multiline", + "functions": "never", + "imports": "always-multiline", + "objects": "always-multiline", + }, + ], + "comma-spacing": [ + 0, + ], + "comma-style": [ + 0, + ], + "computed-property-spacing": [ + 0, + ], + "consistent-return": [ + 0, + ], + "constructor-super": [ + 2, + ], + "curly": [ + 0, + ], + "dot-location": [ + 0, + ], + "dot-notation": [ + 1, + ], + "eol-last": [ + 0, + ], + "eqeqeq": [ + 2, + "smart", + ], + "es-x/no-regexp-lookbehind-assertions": [ + 2, + ], + "es-x/no-regexp-named-capture-groups": [ + 2, + ], + "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": [ + 2, + ], + "implicit-arrow-linebreak": [ + 0, + ], + "import/extensions": [ + 0, + ], + "import/first": [ + 1, + ], + "import/no-extraneous-dependencies": [ + 0, + ], + "import/no-unresolved": [ + 0, + ], + "import/prefer-default-export": [ + 0, + ], + "indent": [ + 0, + ], + "indent-legacy": [ + 0, + ], + "jsx-a11y/alt-text": [ + 0, + ], + "jsx-a11y/label-has-for": [ + 0, + ], + "jsx-a11y/no-noninteractive-element-interactions": [ + 0, + ], + "jsx-a11y/no-static-element-interactions": [ + 0, + ], + "jsx-no-target-blank": [ + 0, + ], + "jsx-quotes": [ + 0, + ], + "key-spacing": [ + 0, + ], + "keyword-spacing": [ + 0, + ], + "linebreak-style": [ + 2, + "unix", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + 0, + ], + "multiline-ternary": [ + 0, + ], + "new-cap": [ + 2, + { + "capIsNew": false, + "newIsCap": true, + "properties": true, + }, + ], + "new-parens": [ + 0, + ], + "newline-per-chained-call": [ + 0, + ], + "no-alert": [ + 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": [ + 1, + ], + "no-confusing-arrow": [ + 0, + ], + "no-console": [ + 2, + ], + "no-const-assign": [ + 2, + ], + "no-constant-binary-expression": [ + 2, + ], + "no-constant-condition": [ + 2, + ], + "no-control-regex": [ + 2, + ], + "no-debugger": [ + 2, + ], + "no-delete-var": [ + 2, + ], + "no-dupe-args": [ + 2, + ], + "no-dupe-class-members": [ + 2, + ], + "no-dupe-else-if": [ + 2, + ], + "no-dupe-keys": [ + 2, + ], + "no-duplicate-case": [ + 2, + ], + "no-else-return": [ + 1, + ], + "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": [ + 1, + ], + "no-extra-parens": [ + 0, + ], + "no-extra-semi": [ + 0, + ], + "no-fallthrough": [ + 2, + ], + "no-floating-decimal": [ + 0, + ], + "no-func-assign": [ + 2, + ], + "no-global-assign": [ + 2, + ], + "no-import-assign": [ + 0, + ], + "no-inner-declarations": [ + 2, + ], + "no-invalid-regexp": [ + 2, + ], + "no-irregular-whitespace": [ + 2, + ], + "no-lonely-if": [ + 1, + ], + "no-loss-of-precision": [ + 2, + ], + "no-misleading-character-class": [ + 2, + ], + "no-mixed-operators": [ + 1, + { + "allowSamePrecedence": true, + "groups": [ + [ + "&", + "|", + "^", + "~", + "<<", + ">>", + ">>>", + ], + [ + "&&", + "||", + ], + ], + }, + ], + "no-mixed-spaces-and-tabs": [ + 0, + ], + "no-multi-spaces": [ + 0, + ], + "no-multiple-empty-lines": [ + 0, + ], + "no-nested-ternary": [ + 0, + ], + "no-new-native-nonconstructor": [ + 0, + ], + "no-new-symbol": [ + 2, + ], + "no-nonoctal-decimal-escape": [ + 2, + ], + "no-obj-calls": [ + 2, + ], + "no-octal": [ + 2, + ], + "no-param-reassign": [ + 2, + ], + "no-plusplus": [ + 2, + { + "allowForLoopAfterthoughts": true, + }, + ], + "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": [ + 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": [ + 2, + ], + "no-trailing-spaces": [ + 0, + ], + "no-undef": [ + 2, + ], + "no-underscore-dangle": [ + 0, + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + 2, + ], + "no-unsafe-finally": [ + 2, + ], + "no-unsafe-negation": [ + 2, + ], + "no-unsafe-optional-chaining": [ + 2, + ], + "no-unused-expressions": [ + 0, + ], + "no-unused-labels": [ + 2, + ], + "no-unused-private-class-members": [ + 2, + ], + "no-unused-vars": [ + 0, + ], + "no-use-before-define": [ + 0, + ], + "no-useless-backreference": [ + 2, + ], + "no-useless-catch": [ + 2, + ], + "no-useless-constructor": [ + 0, + ], + "no-useless-escape": [ + 0, + ], + "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, + ], + "object-shorthand": [ + 1, + ], + "one-var-declaration-per-line": [ + 0, + ], + "operator-linebreak": [ + 0, + ], + "padded-blocks": [ + 0, + ], + "prefer-const": [ + 1, + ], + "prefer-rest-params": [ + 2, + ], + "prefer-spread": [ + 2, + ], + "prefer-template": [ + 1, + ], + "quote-props": [ + 1, + "as-needed", + ], + "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-yield": [ + 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": [ + 1, + { + "anonymous": "always", + "asyncArrow": "always", + "named": "never", + }, + ], + "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, + ], + "space-unary-word-ops": [ + 0, + ], + "standard/array-bracket-even-spacing": [ + 0, + ], + "standard/computed-property-even-spacing": [ + 0, + ], + "standard/object-curly-even-spacing": [ + 0, + ], + "switch-colon-spacing": [ + 0, + ], + "template-curly-spacing": [ + 0, + ], + "template-tag-spacing": [ + 0, + ], + "unicorn/empty-brace-spaces": [ + 0, + ], + "unicorn/no-nested-ternary": [ + 0, + ], + "unicorn/number-literal-case": [ + 0, + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + 2, + ], + "use-macros/graphql-tag": [ + 2, + ], + "valid-typeof": [ + 2, + ], + "vue/array-bracket-newline": [ + 0, + ], + "vue/array-bracket-spacing": [ + 0, + ], + "vue/array-element-newline": [ + 0, + ], + "vue/arrow-spacing": [ + 0, + ], + "vue/block-spacing": [ + 0, + ], + "vue/block-tag-newline": [ + 0, + ], + "vue/brace-style": [ + 0, + ], + "vue/comma-dangle": [ + 0, + ], + "vue/comma-spacing": [ + 0, + ], + "vue/comma-style": [ + 0, + ], + "vue/dot-location": [ + 0, + ], + "vue/func-call-spacing": [ + 0, + ], + "vue/html-closing-bracket-newline": [ + 0, + ], + "vue/html-closing-bracket-spacing": [ + 0, + ], + "vue/html-end-tags": [ + 0, + ], + "vue/html-indent": [ + 0, + ], + "vue/html-quotes": [ + 0, + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + 0, + ], + "vue/keyword-spacing": [ + 0, + ], + "vue/max-attributes-per-line": [ + 0, + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + 0, + ], + "vue/multiline-ternary": [ + 0, + ], + "vue/mustache-interpolation-spacing": [ + 0, + ], + "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, + ], }, - "sourceType": "module", } `; -exports[`eslint-config-wantedly-typescript should match snapshot for: plugins 1`] = ` -[ - "wantedly", - "react-hooks", - "react", - "use-macros", - "@typescript-eslint", - "jest", - "jsx-a11y", - "import", -] -`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: reportUnusedDisableDirectives 1`] = `undefined`; - -exports[`eslint-config-wantedly-typescript should match snapshot for: rules 1`] = ` +exports[`eslint-config-wantedly-typescript react should match snapshot for 1`] = ` { - "@babel/object-curly-spacing": [ - "off", - ], - "@babel/semi": [ - "off", - ], - "@typescript-eslint/adjacent-overload-signatures": [ - "error", - ], - "@typescript-eslint/array-type": [ - "off", - ], - "@typescript-eslint/ban-ts-comment": [ - "error", - ], - "@typescript-eslint/ban-tslint-comment": [ - "off", - ], - "@typescript-eslint/ban-types": [ - "error", - ], - "@typescript-eslint/block-spacing": [ - "off", - ], - "@typescript-eslint/brace-style": [ - "off", - ], - "@typescript-eslint/class-literal-property-style": [ - "off", - ], - "@typescript-eslint/comma-dangle": [ - "off", - ], - "@typescript-eslint/comma-spacing": [ - "off", - ], - "@typescript-eslint/consistent-generic-constructors": [ - "off", - ], - "@typescript-eslint/consistent-indexed-object-style": [ - "off", - ], - "@typescript-eslint/consistent-type-assertions": [ - "off", - ], - "@typescript-eslint/consistent-type-definitions": [ - "off", - ], - "@typescript-eslint/explicit-function-return-type": [ - "off", - ], - "@typescript-eslint/explicit-member-accessibility": [ - "error", - { - "overrides": { - "accessors": "no-public", - "constructors": "no-public", - "parameterProperties": "no-public", - }, - }, - ], - "@typescript-eslint/explicit-module-boundary-types": [ - "off", - ], - "@typescript-eslint/func-call-spacing": [ - "error", - "never", - ], - "@typescript-eslint/indent": [ - "off", - ], - "@typescript-eslint/key-spacing": [ - "off", - ], - "@typescript-eslint/keyword-spacing": [ - "off", - ], - "@typescript-eslint/lines-around-comment": [ - 0, - ], - "@typescript-eslint/member-delimiter-style": [ - "off", - ], - "@typescript-eslint/no-array-constructor": [ - "error", - ], - "@typescript-eslint/no-confusing-non-null-assertion": [ - "off", - ], - "@typescript-eslint/no-duplicate-enum-values": [ - "error", - ], - "@typescript-eslint/no-empty-function": [ - "error", - ], - "@typescript-eslint/no-empty-interface": [ - "error", - ], - "@typescript-eslint/no-explicit-any": [ - "off", - ], - "@typescript-eslint/no-extra-non-null-assertion": [ - "error", - ], - "@typescript-eslint/no-extra-parens": [ - "off", - ], - "@typescript-eslint/no-extra-semi": [ - "off", - ], - "@typescript-eslint/no-floating-promises": [ - "error", - ], - "@typescript-eslint/no-inferrable-types": [ - "error", - ], - "@typescript-eslint/no-loss-of-precision": [ - "error", - ], - "@typescript-eslint/no-misused-new": [ - "error", - ], - "@typescript-eslint/no-namespace": [ - "error", - ], - "@typescript-eslint/no-non-null-asserted-optional-chain": [ - "error", - ], - "@typescript-eslint/no-non-null-assertion": [ - "warn", - ], - "@typescript-eslint/no-redeclare": [ - "error", - ], - "@typescript-eslint/no-this-alias": [ - "error", - ], - "@typescript-eslint/no-unnecessary-type-constraint": [ - "error", - ], - "@typescript-eslint/no-unsafe-declaration-merging": [ - "error", - ], - "@typescript-eslint/no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "ignoreRestSiblings": true, - "varsIgnorePattern": "^_", + "language": "@/js", + "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, + "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, + "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, + "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, + "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, + "afterAll": false, + "afterEach": false, + "ai": false, + "alert": false, + "atob": false, + "beforeAll": false, + "beforeEach": 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, + "describe": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "documentPictureInPicture": false, + "event": false, + "expect": false, + "exports": true, + "external": false, + "fence": false, + "fetch": false, + "fetchLater": false, + "find": false, + "fit": false, + "flushPromises": true, + "focus": false, + "frameElement": false, + "frames": false, + "getComputedStyle": false, + "getScreenDetails": false, + "getSelection": false, + "global": false, + "history": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "isSecureContext": false, + "it": false, + "jest": 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, + "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, + "test": false, + "toolbar": false, + "top": false, + "trustedTypes": false, + "visualViewport": false, + "window": false, + "xdescribe": false, + "xit": false, + "xtest": false, }, - ], - "@typescript-eslint/no-use-before-define": [ - "off", - ], - "@typescript-eslint/no-useless-constructor": [ - "off", - ], - "@typescript-eslint/no-var-requires": [ - "error", - ], - "@typescript-eslint/object-curly-spacing": [ - "off", - ], - "@typescript-eslint/prefer-as-const": [ - "error", - ], - "@typescript-eslint/prefer-for-of": [ - "off", - ], - "@typescript-eslint/prefer-function-type": [ - "off", - ], - "@typescript-eslint/prefer-namespace-keyword": [ - "error", - ], - "@typescript-eslint/quotes": [ - 0, - ], - "@typescript-eslint/semi": [ - "error", - "always", - ], - "@typescript-eslint/space-before-blocks": [ - "off", - ], - "@typescript-eslint/space-before-function-paren": [ - "off", - ], - "@typescript-eslint/space-infix-ops": [ - "off", - ], - "@typescript-eslint/triple-slash-reference": [ - "error", - ], - "@typescript-eslint/type-annotation-spacing": [ - "off", - ], - "array-bracket-newline": [ - "off", - ], - "array-bracket-spacing": [ - "off", - ], - "array-callback-return": [ - "off", - ], - "array-element-newline": [ - "off", - ], - "arrow-body-style": [ - "off", - ], - "arrow-parens": [ - "warn", - "always", - ], - "arrow-spacing": [ - "off", - ], - "babel/object-curly-spacing": [ - "off", - ], - "babel/quotes": [ - 0, - ], - "babel/semi": [ - "off", - ], - "block-spacing": [ - "off", - ], - "brace-style": [ - "off", - ], - "camelcase": [ - "error", - { - "ignoreDestructuring": true, - "ignoreGlobals": false, - "ignoreImports": false, - "properties": "never", - }, - ], - "class-methods-use-this": [ - "off", - ], - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "exports": "always-multiline", - "functions": "never", - "imports": "always-multiline", - "objects": "always-multiline", - }, - ], - "comma-spacing": [ - "off", - ], - "comma-style": [ - "off", - ], - "computed-property-spacing": [ - "off", - ], - "consistent-return": [ - "off", - ], - "constructor-super": [ - "error", - ], - "curly": [ - 0, - ], - "dot-location": [ - "off", - ], - "dot-notation": [ - "warn", - ], - "eol-last": [ - "off", - ], - "eqeqeq": [ - "error", - "smart", - ], - "flowtype/boolean-style": [ - "off", - ], - "flowtype/delimiter-dangle": [ - "off", - ], - "flowtype/generic-spacing": [ - "off", - ], - "flowtype/object-type-curly-spacing": [ - "off", - ], - "flowtype/object-type-delimiter": [ - "off", - ], - "flowtype/quotes": [ - "off", - ], - "flowtype/semi": [ - "off", - ], - "flowtype/space-after-type-colon": [ - "off", - ], - "flowtype/space-before-generic-bracket": [ - "off", - ], - "flowtype/space-before-type-colon": [ - "off", - ], - "flowtype/union-intersection-spacing": [ - "off", - ], - "for-direction": [ - "error", - ], - "func-call-spacing": [ - "off", - ], - "function-call-argument-newline": [ - "off", - ], - "function-paren-newline": [ - "off", - ], - "generator-star": [ - "off", - ], - "generator-star-spacing": [ - "off", - ], - "getter-return": [ - "error", - ], - "implicit-arrow-linebreak": [ - "off", - ], - "import/extensions": [ - "off", - ], - "import/first": [ - "warn", - ], - "import/no-extraneous-dependencies": [ - "off", - ], - "import/no-unresolved": [ - "off", - ], - "import/prefer-default-export": [ - "off", - ], - "indent": [ - "off", - ], - "indent-legacy": [ - "off", - ], - "jsx-a11y/alt-text": [ - "off", - ], - "jsx-a11y/label-has-for": [ - "off", - ], - "jsx-a11y/no-noninteractive-element-interactions": [ - "off", - ], - "jsx-a11y/no-static-element-interactions": [ - "off", - ], - "jsx-no-target-blank": [ - "off", - ], - "jsx-quotes": [ - "off", - ], - "key-spacing": [ - "off", - ], - "keyword-spacing": [ - "off", - ], - "linebreak-style": [ - "error", - "unix", - ], - "lines-around-comment": [ - 0, - ], - "max-len": [ - "off", - ], - "max-statements-per-line": [ - "off", - ], - "multiline-ternary": [ - "off", - ], - "new-cap": [ - "error", - { - "capIsNew": false, - "newIsCap": true, - "properties": true, + "parser": "typescript-eslint/parser@8.6.0", + "parserOptions": { + "ecmaFeatures": { + "jsx": true, + }, + "projectService": true, }, - ], - "new-parens": [ - "off", - ], - "newline-per-chained-call": [ - "off", - ], - "no-alert": [ - "off", - ], - "no-array-constructor": [ - "off", - ], - "no-arrow-condition": [ - "off", - ], - "no-case-declarations": [ - "error", - ], - "no-class-assign": [ - "error", - ], - "no-comma-dangle": [ - "off", - ], - "no-compare-neg-zero": [ - "error", - ], - "no-cond-assign": [ - "warn", - ], - "no-confusing-arrow": [ - 0, - ], - "no-console": [ - "error", - ], - "no-const-assign": [ - "error", - ], - "no-constant-condition": [ - "error", - ], - "no-control-regex": [ - "error", - ], - "no-debugger": [ - "error", - ], - "no-delete-var": [ - "error", - ], - "no-dupe-args": [ - "error", - ], - "no-dupe-class-members": [ - "error", - ], - "no-dupe-keys": [ - "error", - ], - "no-duplicate-case": [ - "error", - ], - "no-else-return": [ - "warn", - ], - "no-empty": [ - "error", - ], - "no-empty-character-class": [ - "error", - ], - "no-empty-function": [ - "off", - ], - "no-empty-pattern": [ - "error", - ], - "no-ex-assign": [ - "error", - ], - "no-extra-boolean-cast": [ - "warn", - ], - "no-extra-parens": [ - "off", - ], - "no-extra-semi": [ - "off", - ], - "no-fallthrough": [ - "error", - ], - "no-floating-decimal": [ - "off", - ], - "no-func-assign": [ - "error", - ], - "no-global-assign": [ - "error", - ], - "no-import-assign": [ - "off", - ], - "no-inner-declarations": [ - "error", - ], - "no-invalid-regexp": [ - "error", - ], - "no-irregular-whitespace": [ - "error", - ], - "no-lonely-if": [ - "warn", - ], - "no-loss-of-precision": [ - "off", - ], - "no-mixed-operators": [ - "warn", - { - "allowSamePrecedence": true, - "groups": [ - [ - "&", - "|", - "^", - "~", - "<<", - ">>", - ">>>", + "sourceType": "module", + }, + "linterOptions": { + "reportUnusedDisableDirectives": 1, + }, + "plugins": [ + "@", + "@typescript-eslint:@typescript-eslint/eslint-plugin@8.6.0", + "import", + "jsx-a11y:eslint-plugin-jsx-a11y@6.10.0", + "jest:eslint-plugin-jest@28.8.3", + "use-macros:eslint-plugin-use-macros", + "es-x:eslint-plugin-es-x@8.0.0", + "react", + "react-hooks", + "wantedly:eslint-plugin-wantedly", + ], + "processor": undefined, + "rules": { + "@babel/object-curly-spacing": [ + 0, + ], + "@babel/semi": [ + 0, + ], + "@typescript-eslint/adjacent-overload-signatures": [ + 2, + ], + "@typescript-eslint/array-type": [ + 0, + ], + "@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": [ + 0, + ], + "@typescript-eslint/consistent-type-definitions": [ + 0, + ], + "@typescript-eslint/explicit-function-return-type": [ + 0, + ], + "@typescript-eslint/explicit-member-accessibility": [ + 2, + { + "overrides": { + "accessors": "no-public", + "constructors": "no-public", + "parameterProperties": "no-public", + }, + }, + ], + "@typescript-eslint/explicit-module-boundary-types": [ + 0, + ], + "@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-confusing-non-null-assertion": [ + 0, + ], + "@typescript-eslint/no-duplicate-enum-values": [ + 2, + ], + "@typescript-eslint/no-empty-function": [ + 2, + ], + "@typescript-eslint/no-empty-object-type": [ + 2, + ], + "@typescript-eslint/no-explicit-any": [ + 0, + ], + "@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-inferrable-types": [ + 2, + ], + "@typescript-eslint/no-misused-new": [ + 2, + ], + "@typescript-eslint/no-namespace": [ + 2, + ], + "@typescript-eslint/no-non-null-asserted-optional-chain": [ + 2, + ], + "@typescript-eslint/no-non-null-assertion": [ + 1, + ], + "@typescript-eslint/no-redeclare": [ + 2, + ], + "@typescript-eslint/no-require-imports": [ + 2, + ], + "@typescript-eslint/no-this-alias": [ + 2, + ], + "@typescript-eslint/no-unnecessary-type-constraint": [ + 2, + ], + "@typescript-eslint/no-unsafe-declaration-merging": [ + 2, + ], + "@typescript-eslint/no-unsafe-function-type": [ + 2, + ], + "@typescript-eslint/no-unused-expressions": [ + 2, + ], + "@typescript-eslint/no-unused-vars": [ + 2, + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "ignoreRestSiblings": true, + "varsIgnorePattern": "^_", + }, + ], + "@typescript-eslint/no-use-before-define": [ + 0, + ], + "@typescript-eslint/no-useless-constructor": [ + 0, + ], + "@typescript-eslint/no-wrapper-object-types": [ + 2, + ], + "@typescript-eslint/object-curly-spacing": [ + 0, + ], + "@typescript-eslint/prefer-as-const": [ + 2, + ], + "@typescript-eslint/prefer-for-of": [ + 0, + ], + "@typescript-eslint/prefer-function-type": [ + 0, + ], + "@typescript-eslint/prefer-namespace-keyword": [ + 2, + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@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/triple-slash-reference": [ + 2, + ], + "@typescript-eslint/type-annotation-spacing": [ + 0, + ], + "array-bracket-newline": [ + 0, + ], + "array-bracket-spacing": [ + 0, + ], + "array-callback-return": [ + 0, + ], + "array-element-newline": [ + 0, + ], + "arrow-body-style": [ + 0, + ], + "arrow-parens": [ + 1, + "always", + ], + "arrow-spacing": [ + 0, + ], + "babel/object-curly-spacing": [ + 0, + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + 0, + ], + "block-spacing": [ + 0, + ], + "brace-style": [ + 0, + ], + "camelcase": [ + 2, + { + "ignoreDestructuring": true, + "ignoreGlobals": false, + "ignoreImports": false, + "properties": "never", + }, + ], + "class-methods-use-this": [ + 0, + ], + "comma-dangle": [ + 2, + { + "arrays": "always-multiline", + "exports": "always-multiline", + "functions": "never", + "imports": "always-multiline", + "objects": "always-multiline", + }, + ], + "comma-spacing": [ + 0, + ], + "comma-style": [ + 0, + ], + "computed-property-spacing": [ + 0, + ], + "consistent-return": [ + 0, + ], + "constructor-super": [ + 2, + ], + "curly": [ + 0, + ], + "dot-location": [ + 0, + ], + "dot-notation": [ + 1, + ], + "eol-last": [ + 0, + ], + "eqeqeq": [ + 2, + "smart", + ], + "es-x/no-regexp-lookbehind-assertions": [ + 2, + ], + "es-x/no-regexp-named-capture-groups": [ + 2, + ], + "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": [ + 2, + ], + "implicit-arrow-linebreak": [ + 0, + ], + "import/extensions": [ + 0, + ], + "import/first": [ + 1, + ], + "import/no-extraneous-dependencies": [ + 0, + ], + "import/no-unresolved": [ + 0, + ], + "import/prefer-default-export": [ + 0, + ], + "indent": [ + 0, + ], + "indent-legacy": [ + 0, + ], + "jsx-a11y/alt-text": [ + 0, + ], + "jsx-a11y/label-has-for": [ + 0, + ], + "jsx-a11y/no-noninteractive-element-interactions": [ + 0, + ], + "jsx-a11y/no-static-element-interactions": [ + 0, + ], + "jsx-no-target-blank": [ + 0, + ], + "jsx-quotes": [ + 0, + ], + "key-spacing": [ + 0, + ], + "keyword-spacing": [ + 0, + ], + "linebreak-style": [ + 2, + "unix", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + 0, + ], + "multiline-ternary": [ + 0, + ], + "new-cap": [ + 2, + { + "capIsNew": false, + "newIsCap": true, + "properties": true, + }, + ], + "new-parens": [ + 0, + ], + "newline-per-chained-call": [ + 0, + ], + "no-alert": [ + 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": [ + 1, + ], + "no-confusing-arrow": [ + 0, + ], + "no-console": [ + 2, + ], + "no-const-assign": [ + 2, + ], + "no-constant-binary-expression": [ + 2, + ], + "no-constant-condition": [ + 2, + ], + "no-control-regex": [ + 2, + ], + "no-debugger": [ + 2, + ], + "no-delete-var": [ + 2, + ], + "no-dupe-args": [ + 2, + ], + "no-dupe-class-members": [ + 2, + ], + "no-dupe-else-if": [ + 2, + ], + "no-dupe-keys": [ + 2, + ], + "no-duplicate-case": [ + 2, + ], + "no-else-return": [ + 1, + ], + "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": [ + 1, + ], + "no-extra-parens": [ + 0, + ], + "no-extra-semi": [ + 0, + ], + "no-fallthrough": [ + 2, + ], + "no-floating-decimal": [ + 0, + ], + "no-func-assign": [ + 2, + ], + "no-global-assign": [ + 2, + ], + "no-import-assign": [ + 0, + ], + "no-inner-declarations": [ + 2, + ], + "no-invalid-regexp": [ + 2, + ], + "no-irregular-whitespace": [ + 2, + ], + "no-lonely-if": [ + 1, + ], + "no-loss-of-precision": [ + 2, + ], + "no-misleading-character-class": [ + 2, + ], + "no-mixed-operators": [ + 1, + { + "allowSamePrecedence": true, + "groups": [ + [ + "&", + "|", + "^", + "~", + "<<", + ">>", + ">>>", + ], + [ + "&&", + "||", + ], ], - [ - "&&", - "||", + }, + ], + "no-mixed-spaces-and-tabs": [ + 0, + ], + "no-multi-spaces": [ + 0, + ], + "no-multiple-empty-lines": [ + 0, + ], + "no-nested-ternary": [ + 0, + ], + "no-new-native-nonconstructor": [ + 0, + ], + "no-new-symbol": [ + 2, + ], + "no-nonoctal-decimal-escape": [ + 2, + ], + "no-obj-calls": [ + 2, + ], + "no-octal": [ + 2, + ], + "no-param-reassign": [ + 2, + ], + "no-plusplus": [ + 2, + { + "allowForLoopAfterthoughts": true, + }, + ], + "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": [ + 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": [ + 2, + ], + "no-trailing-spaces": [ + 0, + ], + "no-undef": [ + 2, + ], + "no-underscore-dangle": [ + 0, + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + 2, + ], + "no-unsafe-finally": [ + 2, + ], + "no-unsafe-negation": [ + 2, + ], + "no-unsafe-optional-chaining": [ + 2, + ], + "no-unused-expressions": [ + 0, + ], + "no-unused-labels": [ + 2, + ], + "no-unused-private-class-members": [ + 2, + ], + "no-unused-vars": [ + 0, + ], + "no-use-before-define": [ + 0, + ], + "no-useless-backreference": [ + 2, + ], + "no-useless-catch": [ + 2, + ], + "no-useless-constructor": [ + 0, + ], + "no-useless-escape": [ + 0, + ], + "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, + ], + "object-shorthand": [ + 1, + ], + "one-var-declaration-per-line": [ + 0, + ], + "operator-linebreak": [ + 0, + ], + "padded-blocks": [ + 0, + ], + "prefer-const": [ + 1, + ], + "prefer-rest-params": [ + 2, + ], + "prefer-spread": [ + 2, + ], + "prefer-template": [ + 1, + ], + "quote-props": [ + 1, + "as-needed", + ], + "quotes": [ + 0, + ], + "react-hooks/exhaustive-deps": [ + 1, + ], + "react-hooks/rules-of-hooks": [ + 2, + ], + "react/display-name": [ + 2, + ], + "react/forbid-prop-types": [ + 0, + ], + "react/jsx-child-element-spacing": [ + 0, + ], + "react/jsx-closing-bracket-location": [ + 1, + ], + "react/jsx-closing-tag-location": [ + 0, + ], + "react/jsx-curly-newline": [ + 0, + ], + "react/jsx-curly-spacing": [ + 0, + ], + "react/jsx-equals-spacing": [ + 0, + ], + "react/jsx-filename-extension": [ + 1, + { + "extensions": [ + ".jsx", + ".tsx", ], - ], - }, - ], - "no-mixed-spaces-and-tabs": [ - "off", - ], - "no-multi-spaces": [ - "off", - ], - "no-multiple-empty-lines": [ - "off", - ], - "no-nested-ternary": [ - "off", - ], - "no-new-symbol": [ - "error", - ], - "no-obj-calls": [ - "error", - ], - "no-octal": [ - "error", - ], - "no-param-reassign": [ - "error", - ], - "no-plusplus": [ - "error", - { - "allowForLoopAfterthoughts": true, - }, - ], - "no-redeclare": [ - "off", - ], - "no-regex-spaces": [ - "error", - ], - "no-reserved-keys": [ - "off", - ], - "no-self-assign": [ - "error", - ], - "no-setter-return": [ - "off", - ], - "no-shadow": [ - "off", - ], - "no-space-before-semi": [ - "off", - ], - "no-spaced-func": [ - "off", - ], - "no-sparse-arrays": [ - "error", - ], - "no-tabs": [ - 0, - ], - "no-this-before-super": [ - "error", - ], - "no-trailing-spaces": [ - "off", - ], - "no-undef": [ - "error", - ], - "no-underscore-dangle": [ - "off", - ], - "no-unexpected-multiline": [ - 0, - ], - "no-unreachable": [ - "error", - ], - "no-unsafe-finally": [ - "error", - ], - "no-unsafe-negation": [ - "error", - ], - "no-unused-labels": [ - "error", - ], - "no-unused-vars": [ - "off", - ], - "no-use-before-define": [ - "off", - ], - "no-useless-constructor": [ - "off", - ], - "no-useless-escape": [ - "off", - ], - "no-var": [ - "error", - ], - "no-whitespace-before-property": [ - "off", - ], - "no-wrap-func": [ - "off", - ], - "nonblock-statement-body-position": [ - "off", - ], - "object-curly-newline": [ - "off", - ], - "object-curly-spacing": [ - "off", - ], - "object-property-newline": [ - "off", - ], - "object-shorthand": [ - "warn", - ], - "one-var-declaration-per-line": [ - "off", - ], - "operator-linebreak": [ - "off", - ], - "padded-blocks": [ - "off", - ], - "prefer-const": [ - "warn", - ], - "prefer-rest-params": [ - "error", - ], - "prefer-spread": [ - "error", - ], - "prefer-template": [ - "warn", - ], - "quote-props": [ - "warn", - "as-needed", - ], - "quotes": [ - "off", - ], - "react-hooks/exhaustive-deps": [ - "warn", - ], - "react-hooks/rules-of-hooks": [ - "error", - ], - "react/display-name": [ - 2, - ], - "react/forbid-prop-types": [ - "off", - ], - "react/jsx-child-element-spacing": [ - "off", - ], - "react/jsx-closing-bracket-location": [ - "warn", - ], - "react/jsx-closing-tag-location": [ - "off", - ], - "react/jsx-curly-newline": [ - "off", - ], - "react/jsx-curly-spacing": [ - "off", - ], - "react/jsx-equals-spacing": [ - "off", - ], - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".jsx", - ".tsx", - ], - }, - ], - "react/jsx-first-prop-new-line": [ - "off", - ], - "react/jsx-indent": [ - "warn", - 2, - ], - "react/jsx-indent-props": [ - "warn", - 2, - ], - "react/jsx-key": [ - 2, - ], - "react/jsx-max-props-per-line": [ - "off", - ], - "react/jsx-newline": [ - "off", - ], - "react/jsx-no-bind": [ - "warn", - { - "allowArrowFunctions": true, - "allowBind": false, - "allowFunctions": false, - "ignoreDOMComponents": false, - "ignoreRefs": false, - }, - ], - "react/jsx-no-comment-textnodes": [ - 2, - ], - "react/jsx-no-duplicate-props": [ - "error", - ], - "react/jsx-no-target-blank": [ - "warn", - ], - "react/jsx-no-undef": [ - 2, - ], - "react/jsx-one-expression-per-line": [ - "off", - ], - "react/jsx-props-no-multi-spaces": [ - "off", - ], - "react/jsx-space-before-closing": [ - "off", - ], - "react/jsx-tag-spacing": [ - "off", - ], - "react/jsx-uses-react": [ - "off", - ], - "react/jsx-uses-vars": [ - "error", - ], - "react/jsx-wrap-multilines": [ - "warn", - ], - "react/no-array-index-key": [ - "error", - ], - "react/no-children-prop": [ - 2, - ], - "react/no-danger-with-children": [ - 2, - ], - "react/no-deprecated": [ - 2, - ], - "react/no-did-update-set-state": [ - "error", - ], - "react/no-direct-mutation-state": [ - 2, - ], - "react/no-find-dom-node": [ - "error", - ], - "react/no-is-mounted": [ - 2, - ], - "react/no-multi-comp": [ - "off", - ], - "react/no-render-return-value": [ - 2, - ], - "react/no-string-refs": [ - "error", - ], - "react/no-unescaped-entities": [ - 2, - ], - "react/no-unknown-property": [ - 2, - ], - "react/no-unsafe": [ - 0, - ], - "react/no-unused-prop-types": [ - "off", - ], - "react/prop-types": [ - "off", - ], - "react/react-in-jsx-scope": [ - "off", - ], - "react/require-default-props": [ - "off", - ], - "react/require-render-return": [ - 2, - ], - "require-yield": [ - "error", - ], - "rest-spread-spacing": [ - "off", - ], - "semi": [ - "off", - ], - "semi-spacing": [ - "off", - ], - "semi-style": [ - "off", - ], - "space-after-function-name": [ - "off", - ], - "space-after-keywords": [ - "off", - ], - "space-before-blocks": [ - "off", - ], - "space-before-function-paren": [ - "warn", - { - "anonymous": "always", - "asyncArrow": "always", - "named": "never", - }, - ], - "space-before-function-parentheses": [ - "off", - ], - "space-before-keywords": [ - "off", - ], - "space-in-brackets": [ - "off", - ], - "space-in-parens": [ - "off", - ], - "space-infix-ops": [ - "off", - ], - "space-return-throw-case": [ - "off", - ], - "space-unary-ops": [ - "off", - ], - "space-unary-word-ops": [ - "off", - ], - "standard/array-bracket-even-spacing": [ - "off", - ], - "standard/computed-property-even-spacing": [ - "off", - ], - "standard/object-curly-even-spacing": [ - "off", - ], - "switch-colon-spacing": [ - "off", - ], - "template-curly-spacing": [ - "off", - ], - "template-tag-spacing": [ - "off", - ], - "unicode-bom": [ - "off", - ], - "unicorn/empty-brace-spaces": [ - "off", - ], - "unicorn/no-nested-ternary": [ - "off", - ], - "unicorn/number-literal-case": [ - "off", - ], - "use-isnan": [ - "error", - ], - "use-macros/graphql-tag": [ - "error", - ], - "use-macros/styled-components": [ - "error", - ], - "valid-typeof": [ - "error", - ], - "vue/array-bracket-newline": [ - "off", - ], - "vue/array-bracket-spacing": [ - "off", - ], - "vue/array-element-newline": [ - "off", - ], - "vue/arrow-spacing": [ - "off", - ], - "vue/block-spacing": [ - "off", - ], - "vue/block-tag-newline": [ - "off", - ], - "vue/brace-style": [ - "off", - ], - "vue/comma-dangle": [ - "off", - ], - "vue/comma-spacing": [ - "off", - ], - "vue/comma-style": [ - "off", - ], - "vue/dot-location": [ - "off", - ], - "vue/func-call-spacing": [ - "off", - ], - "vue/html-closing-bracket-newline": [ - "off", - ], - "vue/html-closing-bracket-spacing": [ - "off", - ], - "vue/html-end-tags": [ - "off", - ], - "vue/html-indent": [ - "off", - ], - "vue/html-quotes": [ - "off", - ], - "vue/html-self-closing": [ - 0, - ], - "vue/key-spacing": [ - "off", - ], - "vue/keyword-spacing": [ - "off", - ], - "vue/max-attributes-per-line": [ - "off", - ], - "vue/max-len": [ - 0, - ], - "vue/multiline-html-element-content-newline": [ - "off", - ], - "vue/multiline-ternary": [ - "off", - ], - "vue/mustache-interpolation-spacing": [ - "off", - ], - "vue/no-extra-parens": [ - "off", - ], - "vue/no-multi-spaces": [ - "off", - ], - "vue/no-spaces-around-equal-signs-in-attribute": [ - "off", - ], - "vue/object-curly-newline": [ - "off", - ], - "vue/object-curly-spacing": [ - "off", - ], - "vue/object-property-newline": [ - "off", - ], - "vue/operator-linebreak": [ - "off", - ], - "vue/quote-props": [ - "off", - ], - "vue/script-indent": [ - "off", - ], - "vue/singleline-html-element-content-newline": [ - "off", - ], - "vue/space-in-parens": [ - "off", - ], - "vue/space-infix-ops": [ - "off", - ], - "vue/space-unary-ops": [ - "off", - ], - "vue/template-curly-spacing": [ - "off", - ], - "wantedly/graphql-operation-name": [ - "warn", - ], - "wrap-iife": [ - "off", - ], - "wrap-regex": [ - "off", - ], - "yield-star-spacing": [ - "off", - ], + }, + ], + "react/jsx-first-prop-new-line": [ + 0, + ], + "react/jsx-indent": [ + 1, + 2, + ], + "react/jsx-indent-props": [ + 1, + 2, + ], + "react/jsx-key": [ + 2, + ], + "react/jsx-max-props-per-line": [ + 0, + ], + "react/jsx-newline": [ + 0, + ], + "react/jsx-no-bind": [ + 1, + { + "allowArrowFunctions": true, + "allowBind": false, + "allowFunctions": false, + "ignoreDOMComponents": false, + "ignoreRefs": false, + }, + ], + "react/jsx-no-comment-textnodes": [ + 2, + ], + "react/jsx-no-duplicate-props": [ + 2, + ], + "react/jsx-no-target-blank": [ + 1, + ], + "react/jsx-no-undef": [ + 2, + ], + "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-uses-react": [ + 0, + ], + "react/jsx-uses-vars": [ + 2, + ], + "react/jsx-wrap-multilines": [ + 1, + ], + "react/no-array-index-key": [ + 2, + ], + "react/no-children-prop": [ + 2, + ], + "react/no-danger-with-children": [ + 2, + ], + "react/no-deprecated": [ + 2, + ], + "react/no-did-update-set-state": [ + 2, + ], + "react/no-direct-mutation-state": [ + 2, + ], + "react/no-find-dom-node": [ + 2, + ], + "react/no-is-mounted": [ + 2, + ], + "react/no-multi-comp": [ + 0, + ], + "react/no-render-return-value": [ + 2, + ], + "react/no-string-refs": [ + 2, + ], + "react/no-unescaped-entities": [ + 2, + ], + "react/no-unknown-property": [ + 2, + ], + "react/no-unsafe": [ + 0, + ], + "react/no-unused-prop-types": [ + 0, + ], + "react/prop-types": [ + 0, + ], + "react/react-in-jsx-scope": [ + 0, + ], + "react/require-default-props": [ + 0, + ], + "react/require-render-return": [ + 2, + ], + "require-yield": [ + 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": [ + 1, + { + "anonymous": "always", + "asyncArrow": "always", + "named": "never", + }, + ], + "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, + ], + "space-unary-word-ops": [ + 0, + ], + "standard/array-bracket-even-spacing": [ + 0, + ], + "standard/computed-property-even-spacing": [ + 0, + ], + "standard/object-curly-even-spacing": [ + 0, + ], + "switch-colon-spacing": [ + 0, + ], + "template-curly-spacing": [ + 0, + ], + "template-tag-spacing": [ + 0, + ], + "unicorn/empty-brace-spaces": [ + 0, + ], + "unicorn/no-nested-ternary": [ + 0, + ], + "unicorn/number-literal-case": [ + 0, + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + 2, + ], + "use-macros/graphql-tag": [ + 2, + ], + "use-macros/styled-components": [ + 2, + ], + "valid-typeof": [ + 2, + ], + "vue/array-bracket-newline": [ + 0, + ], + "vue/array-bracket-spacing": [ + 0, + ], + "vue/array-element-newline": [ + 0, + ], + "vue/arrow-spacing": [ + 0, + ], + "vue/block-spacing": [ + 0, + ], + "vue/block-tag-newline": [ + 0, + ], + "vue/brace-style": [ + 0, + ], + "vue/comma-dangle": [ + 0, + ], + "vue/comma-spacing": [ + 0, + ], + "vue/comma-style": [ + 0, + ], + "vue/dot-location": [ + 0, + ], + "vue/func-call-spacing": [ + 0, + ], + "vue/html-closing-bracket-newline": [ + 0, + ], + "vue/html-closing-bracket-spacing": [ + 0, + ], + "vue/html-end-tags": [ + 0, + ], + "vue/html-indent": [ + 0, + ], + "vue/html-quotes": [ + 0, + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + 0, + ], + "vue/keyword-spacing": [ + 0, + ], + "vue/max-attributes-per-line": [ + 0, + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + 0, + ], + "vue/multiline-ternary": [ + 0, + ], + "vue/mustache-interpolation-spacing": [ + 0, + ], + "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, + ], + "wantedly/graphql-operation-name": [ + 1, + ], + "wrap-iife": [ + 0, + ], + "wrap-regex": [ + 0, + ], + "yield-star-spacing": [ + 0, + ], + }, } `; - -exports[`eslint-config-wantedly-typescript should match snapshot for: settings 1`] = `{}`; diff --git a/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/without-react.test.js.snap b/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/without-react.test.js.snap deleted file mode 100644 index 9a422250..00000000 --- a/packages/eslint-config-wantedly-typescript/__tests__/__snapshots__/without-react.test.js.snap +++ /dev/null @@ -1,1025 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: env 1`] = ` -{ - "browser": true, - "es6": true, - "jest/globals": true, - "node": true, -} -`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: globals 1`] = ` -{ - "flushPromises": true, -} -`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: ignorePatterns 1`] = `[]`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: noInlineConfig 1`] = `undefined`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: parser 1`] = `"/@typescript-eslint/parser/dist/index.js"`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: parserOptions 1`] = ` -{ - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true, - }, - "sourceType": "module", -} -`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: plugins 1`] = ` -[ - "use-macros", - "@typescript-eslint", - "jest", - "jsx-a11y", - "import", -] -`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: reportUnusedDisableDirectives 1`] = `undefined`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: rules 1`] = ` -{ - "@babel/object-curly-spacing": [ - "off", - ], - "@babel/semi": [ - "off", - ], - "@typescript-eslint/adjacent-overload-signatures": [ - "error", - ], - "@typescript-eslint/array-type": [ - "off", - ], - "@typescript-eslint/ban-ts-comment": [ - "error", - ], - "@typescript-eslint/ban-tslint-comment": [ - "off", - ], - "@typescript-eslint/ban-types": [ - "error", - ], - "@typescript-eslint/block-spacing": [ - "off", - ], - "@typescript-eslint/brace-style": [ - "off", - ], - "@typescript-eslint/class-literal-property-style": [ - "off", - ], - "@typescript-eslint/comma-dangle": [ - "off", - ], - "@typescript-eslint/comma-spacing": [ - "off", - ], - "@typescript-eslint/consistent-generic-constructors": [ - "off", - ], - "@typescript-eslint/consistent-indexed-object-style": [ - "off", - ], - "@typescript-eslint/consistent-type-assertions": [ - "off", - ], - "@typescript-eslint/consistent-type-definitions": [ - "off", - ], - "@typescript-eslint/explicit-function-return-type": [ - "off", - ], - "@typescript-eslint/explicit-member-accessibility": [ - "error", - { - "overrides": { - "accessors": "no-public", - "constructors": "no-public", - "parameterProperties": "no-public", - }, - }, - ], - "@typescript-eslint/explicit-module-boundary-types": [ - "off", - ], - "@typescript-eslint/func-call-spacing": [ - "error", - "never", - ], - "@typescript-eslint/indent": [ - "off", - ], - "@typescript-eslint/key-spacing": [ - "off", - ], - "@typescript-eslint/keyword-spacing": [ - "off", - ], - "@typescript-eslint/lines-around-comment": [ - 0, - ], - "@typescript-eslint/member-delimiter-style": [ - "off", - ], - "@typescript-eslint/no-array-constructor": [ - "error", - ], - "@typescript-eslint/no-confusing-non-null-assertion": [ - "off", - ], - "@typescript-eslint/no-duplicate-enum-values": [ - "error", - ], - "@typescript-eslint/no-empty-function": [ - "error", - ], - "@typescript-eslint/no-empty-interface": [ - "error", - ], - "@typescript-eslint/no-explicit-any": [ - "off", - ], - "@typescript-eslint/no-extra-non-null-assertion": [ - "error", - ], - "@typescript-eslint/no-extra-parens": [ - "off", - ], - "@typescript-eslint/no-extra-semi": [ - "off", - ], - "@typescript-eslint/no-floating-promises": [ - "error", - ], - "@typescript-eslint/no-inferrable-types": [ - "error", - ], - "@typescript-eslint/no-loss-of-precision": [ - "error", - ], - "@typescript-eslint/no-misused-new": [ - "error", - ], - "@typescript-eslint/no-namespace": [ - "error", - ], - "@typescript-eslint/no-non-null-asserted-optional-chain": [ - "error", - ], - "@typescript-eslint/no-non-null-assertion": [ - "warn", - ], - "@typescript-eslint/no-redeclare": [ - "error", - ], - "@typescript-eslint/no-this-alias": [ - "error", - ], - "@typescript-eslint/no-unnecessary-type-constraint": [ - "error", - ], - "@typescript-eslint/no-unsafe-declaration-merging": [ - "error", - ], - "@typescript-eslint/no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "ignoreRestSiblings": true, - "varsIgnorePattern": "^_", - }, - ], - "@typescript-eslint/no-use-before-define": [ - "off", - ], - "@typescript-eslint/no-useless-constructor": [ - "off", - ], - "@typescript-eslint/no-var-requires": [ - "error", - ], - "@typescript-eslint/object-curly-spacing": [ - "off", - ], - "@typescript-eslint/prefer-as-const": [ - "error", - ], - "@typescript-eslint/prefer-for-of": [ - "off", - ], - "@typescript-eslint/prefer-function-type": [ - "off", - ], - "@typescript-eslint/prefer-namespace-keyword": [ - "error", - ], - "@typescript-eslint/quotes": [ - 0, - ], - "@typescript-eslint/semi": [ - "error", - "always", - ], - "@typescript-eslint/space-before-blocks": [ - "off", - ], - "@typescript-eslint/space-before-function-paren": [ - "off", - ], - "@typescript-eslint/space-infix-ops": [ - "off", - ], - "@typescript-eslint/triple-slash-reference": [ - "error", - ], - "@typescript-eslint/type-annotation-spacing": [ - "off", - ], - "array-bracket-newline": [ - "off", - ], - "array-bracket-spacing": [ - "off", - ], - "array-callback-return": [ - "off", - ], - "array-element-newline": [ - "off", - ], - "arrow-body-style": [ - "off", - ], - "arrow-parens": [ - "warn", - "always", - ], - "arrow-spacing": [ - "off", - ], - "babel/object-curly-spacing": [ - "off", - ], - "babel/quotes": [ - 0, - ], - "babel/semi": [ - "off", - ], - "block-spacing": [ - "off", - ], - "brace-style": [ - "off", - ], - "camelcase": [ - "error", - { - "ignoreDestructuring": true, - "ignoreGlobals": false, - "ignoreImports": false, - "properties": "never", - }, - ], - "class-methods-use-this": [ - "off", - ], - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "exports": "always-multiline", - "functions": "never", - "imports": "always-multiline", - "objects": "always-multiline", - }, - ], - "comma-spacing": [ - "off", - ], - "comma-style": [ - "off", - ], - "computed-property-spacing": [ - "off", - ], - "consistent-return": [ - "off", - ], - "constructor-super": [ - "error", - ], - "curly": [ - 0, - ], - "dot-location": [ - "off", - ], - "dot-notation": [ - "warn", - ], - "eol-last": [ - "off", - ], - "eqeqeq": [ - "error", - "smart", - ], - "flowtype/boolean-style": [ - "off", - ], - "flowtype/delimiter-dangle": [ - "off", - ], - "flowtype/generic-spacing": [ - "off", - ], - "flowtype/object-type-curly-spacing": [ - "off", - ], - "flowtype/object-type-delimiter": [ - "off", - ], - "flowtype/quotes": [ - "off", - ], - "flowtype/semi": [ - "off", - ], - "flowtype/space-after-type-colon": [ - "off", - ], - "flowtype/space-before-generic-bracket": [ - "off", - ], - "flowtype/space-before-type-colon": [ - "off", - ], - "flowtype/union-intersection-spacing": [ - "off", - ], - "for-direction": [ - "error", - ], - "func-call-spacing": [ - "off", - ], - "function-call-argument-newline": [ - "off", - ], - "function-paren-newline": [ - "off", - ], - "generator-star": [ - "off", - ], - "generator-star-spacing": [ - "off", - ], - "getter-return": [ - "error", - ], - "implicit-arrow-linebreak": [ - "off", - ], - "import/extensions": [ - "off", - ], - "import/first": [ - "warn", - ], - "import/no-extraneous-dependencies": [ - "off", - ], - "import/no-unresolved": [ - "off", - ], - "import/prefer-default-export": [ - "off", - ], - "indent": [ - "off", - ], - "indent-legacy": [ - "off", - ], - "jsx-a11y/alt-text": [ - "off", - ], - "jsx-a11y/label-has-for": [ - "off", - ], - "jsx-a11y/no-noninteractive-element-interactions": [ - "off", - ], - "jsx-a11y/no-static-element-interactions": [ - "off", - ], - "jsx-no-target-blank": [ - "off", - ], - "jsx-quotes": [ - "off", - ], - "key-spacing": [ - "off", - ], - "keyword-spacing": [ - "off", - ], - "linebreak-style": [ - "error", - "unix", - ], - "lines-around-comment": [ - 0, - ], - "max-len": [ - "off", - ], - "max-statements-per-line": [ - "off", - ], - "multiline-ternary": [ - "off", - ], - "new-cap": [ - "error", - { - "capIsNew": false, - "newIsCap": true, - "properties": true, - }, - ], - "new-parens": [ - "off", - ], - "newline-per-chained-call": [ - "off", - ], - "no-alert": [ - "off", - ], - "no-array-constructor": [ - "off", - ], - "no-arrow-condition": [ - "off", - ], - "no-case-declarations": [ - "error", - ], - "no-class-assign": [ - "error", - ], - "no-comma-dangle": [ - "off", - ], - "no-compare-neg-zero": [ - "error", - ], - "no-cond-assign": [ - "warn", - ], - "no-confusing-arrow": [ - 0, - ], - "no-console": [ - "error", - ], - "no-const-assign": [ - "error", - ], - "no-constant-condition": [ - "error", - ], - "no-control-regex": [ - "error", - ], - "no-debugger": [ - "error", - ], - "no-delete-var": [ - "error", - ], - "no-dupe-args": [ - "error", - ], - "no-dupe-class-members": [ - "error", - ], - "no-dupe-keys": [ - "error", - ], - "no-duplicate-case": [ - "error", - ], - "no-else-return": [ - "warn", - ], - "no-empty": [ - "error", - ], - "no-empty-character-class": [ - "error", - ], - "no-empty-function": [ - "off", - ], - "no-empty-pattern": [ - "error", - ], - "no-ex-assign": [ - "error", - ], - "no-extra-boolean-cast": [ - "warn", - ], - "no-extra-parens": [ - "off", - ], - "no-extra-semi": [ - "off", - ], - "no-fallthrough": [ - "error", - ], - "no-floating-decimal": [ - "off", - ], - "no-func-assign": [ - "error", - ], - "no-global-assign": [ - "error", - ], - "no-import-assign": [ - "off", - ], - "no-inner-declarations": [ - "error", - ], - "no-invalid-regexp": [ - "error", - ], - "no-irregular-whitespace": [ - "error", - ], - "no-lonely-if": [ - "warn", - ], - "no-loss-of-precision": [ - "off", - ], - "no-mixed-operators": [ - "warn", - { - "allowSamePrecedence": true, - "groups": [ - [ - "&", - "|", - "^", - "~", - "<<", - ">>", - ">>>", - ], - [ - "&&", - "||", - ], - ], - }, - ], - "no-mixed-spaces-and-tabs": [ - "off", - ], - "no-multi-spaces": [ - "off", - ], - "no-multiple-empty-lines": [ - "off", - ], - "no-nested-ternary": [ - "off", - ], - "no-new-symbol": [ - "error", - ], - "no-obj-calls": [ - "error", - ], - "no-octal": [ - "error", - ], - "no-param-reassign": [ - "error", - ], - "no-plusplus": [ - "error", - { - "allowForLoopAfterthoughts": true, - }, - ], - "no-redeclare": [ - "off", - ], - "no-regex-spaces": [ - "error", - ], - "no-reserved-keys": [ - "off", - ], - "no-self-assign": [ - "error", - ], - "no-setter-return": [ - "off", - ], - "no-shadow": [ - "off", - ], - "no-space-before-semi": [ - "off", - ], - "no-spaced-func": [ - "off", - ], - "no-sparse-arrays": [ - "error", - ], - "no-tabs": [ - 0, - ], - "no-this-before-super": [ - "error", - ], - "no-trailing-spaces": [ - "off", - ], - "no-undef": [ - "error", - ], - "no-underscore-dangle": [ - "off", - ], - "no-unexpected-multiline": [ - 0, - ], - "no-unreachable": [ - "error", - ], - "no-unsafe-finally": [ - "error", - ], - "no-unsafe-negation": [ - "error", - ], - "no-unused-labels": [ - "error", - ], - "no-unused-vars": [ - "off", - ], - "no-use-before-define": [ - "off", - ], - "no-useless-constructor": [ - "off", - ], - "no-useless-escape": [ - "off", - ], - "no-var": [ - "error", - ], - "no-whitespace-before-property": [ - "off", - ], - "no-wrap-func": [ - "off", - ], - "nonblock-statement-body-position": [ - "off", - ], - "object-curly-newline": [ - "off", - ], - "object-curly-spacing": [ - "off", - ], - "object-property-newline": [ - "off", - ], - "object-shorthand": [ - "warn", - ], - "one-var-declaration-per-line": [ - "off", - ], - "operator-linebreak": [ - "off", - ], - "padded-blocks": [ - "off", - ], - "prefer-const": [ - "warn", - ], - "prefer-rest-params": [ - "error", - ], - "prefer-spread": [ - "error", - ], - "prefer-template": [ - "warn", - ], - "quote-props": [ - "warn", - "as-needed", - ], - "quotes": [ - "off", - ], - "react/jsx-child-element-spacing": [ - "off", - ], - "react/jsx-closing-bracket-location": [ - "off", - ], - "react/jsx-closing-tag-location": [ - "off", - ], - "react/jsx-curly-newline": [ - "off", - ], - "react/jsx-curly-spacing": [ - "off", - ], - "react/jsx-equals-spacing": [ - "off", - ], - "react/jsx-first-prop-new-line": [ - "off", - ], - "react/jsx-indent": [ - "off", - ], - "react/jsx-indent-props": [ - "off", - ], - "react/jsx-max-props-per-line": [ - "off", - ], - "react/jsx-newline": [ - "off", - ], - "react/jsx-one-expression-per-line": [ - "off", - ], - "react/jsx-props-no-multi-spaces": [ - "off", - ], - "react/jsx-space-before-closing": [ - "off", - ], - "react/jsx-tag-spacing": [ - "off", - ], - "react/jsx-wrap-multilines": [ - "off", - ], - "require-yield": [ - "error", - ], - "rest-spread-spacing": [ - "off", - ], - "semi": [ - "off", - ], - "semi-spacing": [ - "off", - ], - "semi-style": [ - "off", - ], - "space-after-function-name": [ - "off", - ], - "space-after-keywords": [ - "off", - ], - "space-before-blocks": [ - "off", - ], - "space-before-function-paren": [ - "warn", - { - "anonymous": "always", - "asyncArrow": "always", - "named": "never", - }, - ], - "space-before-function-parentheses": [ - "off", - ], - "space-before-keywords": [ - "off", - ], - "space-in-brackets": [ - "off", - ], - "space-in-parens": [ - "off", - ], - "space-infix-ops": [ - "off", - ], - "space-return-throw-case": [ - "off", - ], - "space-unary-ops": [ - "off", - ], - "space-unary-word-ops": [ - "off", - ], - "standard/array-bracket-even-spacing": [ - "off", - ], - "standard/computed-property-even-spacing": [ - "off", - ], - "standard/object-curly-even-spacing": [ - "off", - ], - "switch-colon-spacing": [ - "off", - ], - "template-curly-spacing": [ - "off", - ], - "template-tag-spacing": [ - "off", - ], - "unicode-bom": [ - "off", - ], - "unicorn/empty-brace-spaces": [ - "off", - ], - "unicorn/no-nested-ternary": [ - "off", - ], - "unicorn/number-literal-case": [ - "off", - ], - "use-isnan": [ - "error", - ], - "use-macros/graphql-tag": [ - "error", - ], - "valid-typeof": [ - "error", - ], - "vue/array-bracket-newline": [ - "off", - ], - "vue/array-bracket-spacing": [ - "off", - ], - "vue/array-element-newline": [ - "off", - ], - "vue/arrow-spacing": [ - "off", - ], - "vue/block-spacing": [ - "off", - ], - "vue/block-tag-newline": [ - "off", - ], - "vue/brace-style": [ - "off", - ], - "vue/comma-dangle": [ - "off", - ], - "vue/comma-spacing": [ - "off", - ], - "vue/comma-style": [ - "off", - ], - "vue/dot-location": [ - "off", - ], - "vue/func-call-spacing": [ - "off", - ], - "vue/html-closing-bracket-newline": [ - "off", - ], - "vue/html-closing-bracket-spacing": [ - "off", - ], - "vue/html-end-tags": [ - "off", - ], - "vue/html-indent": [ - "off", - ], - "vue/html-quotes": [ - "off", - ], - "vue/html-self-closing": [ - 0, - ], - "vue/key-spacing": [ - "off", - ], - "vue/keyword-spacing": [ - "off", - ], - "vue/max-attributes-per-line": [ - "off", - ], - "vue/max-len": [ - 0, - ], - "vue/multiline-html-element-content-newline": [ - "off", - ], - "vue/multiline-ternary": [ - "off", - ], - "vue/mustache-interpolation-spacing": [ - "off", - ], - "vue/no-extra-parens": [ - "off", - ], - "vue/no-multi-spaces": [ - "off", - ], - "vue/no-spaces-around-equal-signs-in-attribute": [ - "off", - ], - "vue/object-curly-newline": [ - "off", - ], - "vue/object-curly-spacing": [ - "off", - ], - "vue/object-property-newline": [ - "off", - ], - "vue/operator-linebreak": [ - "off", - ], - "vue/quote-props": [ - "off", - ], - "vue/script-indent": [ - "off", - ], - "vue/singleline-html-element-content-newline": [ - "off", - ], - "vue/space-in-parens": [ - "off", - ], - "vue/space-infix-ops": [ - "off", - ], - "vue/space-unary-ops": [ - "off", - ], - "vue/template-curly-spacing": [ - "off", - ], - "wrap-iife": [ - "off", - ], - "wrap-regex": [ - "off", - ], - "yield-star-spacing": [ - "off", - ], -} -`; - -exports[`eslint-config-wantedly-typescript/without-react should match snapshot for: settings 1`] = `{}`; diff --git a/packages/eslint-config-wantedly-typescript/__tests__/index.test.js b/packages/eslint-config-wantedly-typescript/__tests__/index.test.js index 22518232..188aad06 100644 --- a/packages/eslint-config-wantedly-typescript/__tests__/index.test.js +++ b/packages/eslint-config-wantedly-typescript/__tests__/index.test.js @@ -1,31 +1,25 @@ const ESLint = require("eslint").ESLint; -const baseConfig = require("../index"); -const normalizePath = (path) => { - return /node_modules/.test(path) ? path.split("node_modules")[1] : path; -}; +const { base, react } = require("../index"); describe("eslint-config-wantedly-typescript", () => { - test("should match snapshot for", async () => { - const config = await new ESLint({ - baseConfig, - useEslintrc: false, - }).calculateConfigForFile("test.ts"); - const keys = Object.keys(config); - - const normalizeRequiredKeys = ["extends", "parser"]; - normalizeRequiredKeys.forEach((key) => { - const newConfig = config[key]; - - if (Array.isArray(newConfig)) { - config[key] = newConfig.map(normalizePath); - } else { - config[key] = normalizePath(newConfig); - } + describe("base", () => { + test("should match snapshot for", async () => { + const config = await new ESLint({ + baseConfig: base, + overrideConfigFile: true, + }).calculateConfigForFile("test.ts"); + expect(config).toMatchSnapshot(); }); + }); - keys.forEach((key) => { - expect(config[key]).toMatchSnapshot(key); + describe("react", () => { + test("should match snapshot for", async () => { + const config = await new ESLint({ + baseConfig: react, + overrideConfigFile: true, + }).calculateConfigForFile("test.tsx"); + expect(config).toMatchSnapshot(); }); }); }); diff --git a/packages/eslint-config-wantedly-typescript/__tests__/without-react.test.js b/packages/eslint-config-wantedly-typescript/__tests__/without-react.test.js deleted file mode 100644 index b24b9143..00000000 --- a/packages/eslint-config-wantedly-typescript/__tests__/without-react.test.js +++ /dev/null @@ -1,31 +0,0 @@ -const ESLint = require("eslint").ESLint; -const baseConfig = require("../without-react"); - -const normalizePath = (path) => { - return /node_modules/.test(path) ? path.split("node_modules")[1] : path; -}; - -describe("eslint-config-wantedly-typescript/without-react", () => { - test("should match snapshot for", async () => { - const config = await new ESLint({ - baseConfig, - useEslintrc: false, - }).calculateConfigForFile("test.ts"); - const keys = Object.keys(config); - - const normalizeRequiredKeys = ["extends", "parser"]; - normalizeRequiredKeys.forEach((key) => { - const newConfig = config[key]; - - if (Array.isArray(newConfig)) { - config[key] = newConfig.map(normalizePath); - } else { - config[key] = normalizePath(newConfig); - } - }); - - keys.forEach((key) => { - expect(config[key]).toMatchSnapshot(key); - }); - }); -}); diff --git a/packages/eslint-config-wantedly-typescript/without-react.js b/packages/eslint-config-wantedly-typescript/base.js similarity index 68% rename from packages/eslint-config-wantedly-typescript/without-react.js rename to packages/eslint-config-wantedly-typescript/base.js index 892e2346..7c2911ad 100644 --- a/packages/eslint-config-wantedly-typescript/without-react.js +++ b/packages/eslint-config-wantedly-typescript/base.js @@ -1,28 +1,48 @@ -module.exports = { - env: { - browser: true, - es6: true, - "jest/globals": true, - node: true, - }, - globals: { - flushPromises: true, +const { fixupPluginRules } = require("@eslint/compat"); +const eslintJs = require("@eslint/js"); +const configPrettier = require("eslint-config-prettier"); +const pluginESx = require("eslint-plugin-es-x"); +const pluginImport = require("eslint-plugin-import"); +const pluginJest = require("eslint-plugin-jest"); +const pluginJsxA11y = require("eslint-plugin-jsx-a11y"); +const pluginUseMacros = require("eslint-plugin-use-macros"); +const globals = require("globals"); +const eslintTs = require("typescript-eslint"); + +module.exports = eslintTs.config({ + name: "wantedly/typescript/base", + files: ["**/*.ts", "**/*.tsx"], + extends: [ + eslintJs.configs.recommended, + ...eslintTs.configs.recommended, + ...eslintTs.configs.stylistic, + configPrettier, + ], + plugins: { + import: fixupPluginRules(pluginImport), + "jsx-a11y": pluginJsxA11y, + jest: pluginJest, + "@typescript-eslint": eslintTs.plugin, + "use-macros": pluginUseMacros, + "es-x": pluginESx, }, - extends: ["plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/stylistic", "prettier"], - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaFeatures: { - experimentalObjectRestSpread: true, - jsx: true, + languageOptions: { + globals: { + ...globals.browser, + ...pluginJest.environments.globals.globals, + ...globals.node, + flushPromises: true, + }, + parserOptions: { + projectService: true, }, - sourceType: "module", }, - plugins: ["import", "jsx-a11y", "jest", "@typescript-eslint", "use-macros"], rules: { "array-callback-return": "off", "arrow-body-style": ["off"], "arrow-parens": ["warn", "always"], "class-methods-use-this": "off", + "comma-dangle": [ "error", { @@ -33,6 +53,7 @@ module.exports = { functions: "never", }, ], + "consistent-return": "off", "constructor-super": "error", "dot-notation": "warn", @@ -43,7 +64,14 @@ module.exports = { "jsx-quotes": ["off"], "linebreak-style": ["error", "unix"], "max-len": ["off"], - "new-cap": ["error", { capIsNew: false }], + + "new-cap": [ + "error", + { + capIsNew: false, + }, + ], + "no-alert": "off", "no-array-constructor": "off", "no-case-declarations": "error", @@ -73,6 +101,7 @@ module.exports = { "no-invalid-regexp": "error", "no-irregular-whitespace": "error", "no-lonely-if": "warn", + "no-mixed-operators": [ "warn", { @@ -83,13 +112,20 @@ module.exports = { allowSamePrecedence: true, }, ], + "no-nested-ternary": "off", "no-new-symbol": "error", "no-obj-calls": "error", "no-octal": "error", "no-param-reassign": "error", - "no-plusplus": ["error", { allowForLoopAfterthoughts: true }], - // See @typescript-eslint/no-redeclare + + "no-plusplus": [ + "error", + { + allowForLoopAfterthoughts: true, + }, + ], + "no-redeclare": "off", "no-regex-spaces": "error", "no-self-assign": "error", @@ -111,35 +147,66 @@ module.exports = { "prefer-template": "warn", "quote-props": ["warn", "as-needed"], "require-yield": "error", - "space-before-function-paren": ["warn", { anonymous: "always", asyncArrow: "always", named: "never" }], + + "space-before-function-paren": [ + "warn", + { + anonymous: "always", + asyncArrow: "always", + named: "never", + }, + ], + "use-isnan": "error", "valid-typeof": "error", - camelcase: ["error", { ignoreDestructuring: true, properties: "never" }], + + camelcase: [ + "error", + { + ignoreDestructuring: true, + properties: "never", + }, + ], + eqeqeq: ["error", "smart"], indent: "off", quotes: ["off"], semi: "off", - - // @typescript-eslint/eslint-plugin rules "@typescript-eslint/explicit-function-return-type": ["off"], + "@typescript-eslint/explicit-member-accessibility": [ "error", - { overrides: { constructors: "no-public", parameterProperties: "no-public", accessors: "no-public" } }, + { + overrides: { + constructors: "no-public", + parameterProperties: "no-public", + accessors: "no-public", + }, + }, ], + "@typescript-eslint/explicit-module-boundary-types": ["off"], - "@typescript-eslint/func-call-spacing": ["error", "never"], "@typescript-eslint/indent": "off", "@typescript-eslint/no-array-constructor": "error", "@typescript-eslint/no-explicit-any": ["off"], "@typescript-eslint/no-floating-promises": ["error"], "@typescript-eslint/no-redeclare": "error", + "@typescript-eslint/no-unused-vars": [ "error", - { varsIgnorePattern: "^_", argsIgnorePattern: "^_", ignoreRestSiblings: true }, + { + args: "all", + argsIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + varsIgnorePattern: "^_", + ignoreRestSiblings: true, + }, ], + "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/no-useless-constructor": "off", - "@typescript-eslint/semi": ["error", "always"], "no-extra-semi": "off", "@typescript-eslint/no-extra-semi": "off", "@typescript-eslint/no-non-null-assertion": "warn", @@ -155,21 +222,17 @@ module.exports = { "@typescript-eslint/no-confusing-non-null-assertion": "off", "@typescript-eslint/prefer-for-of": "off", "@typescript-eslint/prefer-function-type": "off", - - // eslint-plugin-import rules "import/extensions": "off", "import/first": "warn", "import/no-extraneous-dependencies": ["off"], "import/no-unresolved": ["off"], "import/prefer-default-export": "off", - - // eslint-plugin-jsx-a11y rules "jsx-a11y/alt-text": "off", "jsx-a11y/label-has-for": "off", "jsx-a11y/no-noninteractive-element-interactions": "off", "jsx-a11y/no-static-element-interactions": "off", - - // eslint-plugin-use-macros rules "use-macros/graphql-tag": "error", + "es-x/no-regexp-lookbehind-assertions": "error", + "es-x/no-regexp-named-capture-groups": "error", }, -}; +}); diff --git a/packages/eslint-config-wantedly-typescript/index.js b/packages/eslint-config-wantedly-typescript/index.js index 2961687d..174a5de5 100644 --- a/packages/eslint-config-wantedly-typescript/index.js +++ b/packages/eslint-config-wantedly-typescript/index.js @@ -1,45 +1,7 @@ -const { env, globals, extends: extendOptions, parser, parserOptions, plugins, rules } = require("./without-react"); +const base = require("./base"); +const react = require("./react"); module.exports = { - env, - globals, - extends: [...extendOptions, "plugin:react/recommended"], - parser, - parserOptions, - plugins: [...plugins, "react", "react-hooks", "wantedly"], - rules: { - ...rules, - - // eslint-plugin-react rules - "react/forbid-prop-types": "off", - "react/jsx-closing-bracket-location": "warn", - "react/jsx-filename-extension": ["warn", { extensions: [".jsx", ".tsx"] }], - "react/jsx-indent-props": ["warn", 2], - "react/jsx-indent": ["warn", 2], - "react/jsx-no-bind": ["warn", { allowArrowFunctions: true }], - "react/jsx-no-duplicate-props": "error", - "react/jsx-no-target-blank": "warn", - "react/jsx-uses-react": ["off"], - "react/jsx-uses-vars": "error", - "react/jsx-wrap-multilines": "warn", - "react/no-array-index-key": "error", - "react/no-did-update-set-state": "error", - "react/no-find-dom-node": "error", - "react/no-multi-comp": "off", - "react/no-string-refs": "error", - "react/no-unused-prop-types": "off", - "react/prop-types": "off", - "react/react-in-jsx-scope": ["off"], - "react/require-default-props": "off", - - // eslint-plugin-react-hooks rules - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn", - - // eslint-plugin-use-macros rules - "use-macros/styled-components": "error", - - // eslint-plugin-wantedly rules - "wantedly/graphql-operation-name": ["warn"], - }, + base, + react, }; diff --git a/packages/eslint-config-wantedly-typescript/package.json b/packages/eslint-config-wantedly-typescript/package.json index b192bcd0..9faa29f4 100644 --- a/packages/eslint-config-wantedly-typescript/package.json +++ b/packages/eslint-config-wantedly-typescript/package.json @@ -4,17 +4,21 @@ "version": "3.2.3", "author": "Yuki Yamada ", "dependencies": { - "@typescript-eslint/eslint-plugin": "^6.13.1", - "@typescript-eslint/parser": "^6.13.1", - "eslint": "^8.54.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^25.7.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.28.0", + "@eslint/compat": "^1.1.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.10.0", + "eslint": "^9.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-es-x": "^8.0.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.36.0", "eslint-plugin-react-hooks": "^4.3.0", "eslint-plugin-use-macros": "^3.2.2", - "eslint-plugin-wantedly": "^3.2.2" + "eslint-plugin-wantedly": "^3.2.2", + "globals": "^15.9.0", + "typescript-eslint": "^8.6.0" }, "peerDependencies": { "typescript": ">=3.3.1" diff --git a/packages/eslint-config-wantedly-typescript/react.js b/packages/eslint-config-wantedly-typescript/react.js new file mode 100644 index 00000000..106c81e2 --- /dev/null +++ b/packages/eslint-config-wantedly-typescript/react.js @@ -0,0 +1,52 @@ +const { fixupPluginRules } = require("@eslint/compat"); +const pluginReact = require("eslint-plugin-react"); +const pluginReactHooks = require("eslint-plugin-react-hooks"); +const pluginWantedly = require("eslint-plugin-wantedly"); +const eslintTs = require("typescript-eslint"); + +const baseConfig = require("./base"); + +/** @type{import('eslint').Linter.Config[]} */ +module.exports = eslintTs.config({ + name: "wantedly/typescript/react", + files: ["**/*.ts", "**/*.tsx"], + extends: [...baseConfig, pluginReact.configs.flat.recommended], + plugins: { + react: pluginReact, + "react-hooks": fixupPluginRules(pluginReactHooks), + wantedly: pluginWantedly, + }, + rules: { + // eslint-plugin-react rules + "react/forbid-prop-types": "off", + "react/jsx-closing-bracket-location": "warn", + "react/jsx-filename-extension": ["warn", { extensions: [".jsx", ".tsx"] }], + "react/jsx-indent-props": ["warn", 2], + "react/jsx-indent": ["warn", 2], + "react/jsx-no-bind": ["warn", { allowArrowFunctions: true }], + "react/jsx-no-duplicate-props": "error", + "react/jsx-no-target-blank": "warn", + "react/jsx-uses-react": ["off"], + "react/jsx-uses-vars": "error", + "react/jsx-wrap-multilines": "warn", + "react/no-array-index-key": "error", + "react/no-did-update-set-state": "error", + "react/no-find-dom-node": "error", + "react/no-multi-comp": "off", + "react/no-string-refs": "error", + "react/no-unused-prop-types": "off", + "react/prop-types": "off", + "react/react-in-jsx-scope": ["off"], + "react/require-default-props": "off", + + // eslint-plugin-react-hooks rules + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "warn", + + // eslint-plugin-use-macros rules + "use-macros/styled-components": "error", + + // eslint-plugin-wantedly rules + "wantedly/graphql-operation-name": ["warn"], + }, +}); diff --git a/packages/eslint-config-wantedly/README.md b/packages/eslint-config-wantedly/README.md index d40b57f3..fb669aec 100644 --- a/packages/eslint-config-wantedly/README.md +++ b/packages/eslint-config-wantedly/README.md @@ -2,9 +2,45 @@ ESLint config for Wantedly. It focuses the JavaScript linting. +## Version Compatibilities + +If you're using ESLint v8 and under, please use eslint-config-wantedly version 3.x. As of eslint-config-wantedly version 4.0, it has started exporting ESLint's flat config format. + +### Usage (version 4.0 and above) + +It exports configurations as "Flat config". + +```js +import { base as configWantedly } from "eslint-config-wantedly"; + +export default [ + ...configWantedly, + { + rules: { + // Your rules go here. + } + } +]; +``` + +### Usage (version 3.x and under) + +It exports configurations as "Legacy" format. + +```json +{ + "extends": ["wantedly"], + "rules": { + // Your rules go here. + } +} +``` + +## Configuration details + ### Parser -Using `babel-eslint` +Using `@babel/eslint-parser` ### Extends diff --git a/packages/eslint-config-wantedly/__tests__/__snapshots__/index.test.js.snap b/packages/eslint-config-wantedly/__tests__/__snapshots__/index.test.js.snap index 218c8558..014097ff 100644 --- a/packages/eslint-config-wantedly/__tests__/__snapshots__/index.test.js.snap +++ b/packages/eslint-config-wantedly/__tests__/__snapshots__/index.test.js.snap @@ -1,1036 +1,4255 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`eslint-config-wantedly should match snapshot for: env 1`] = ` +exports[`eslint-config-wantedly base should match snapshot for 1`] = ` { - "browser": true, - "es6": true, - "jest/globals": true, - "node": true, -} -`; - -exports[`eslint-config-wantedly should match snapshot for: globals 1`] = ` -{ - "flushPromises": true, -} -`; - -exports[`eslint-config-wantedly should match snapshot for: ignorePatterns 1`] = `[]`; - -exports[`eslint-config-wantedly should match snapshot for: noInlineConfig 1`] = `undefined`; - -exports[`eslint-config-wantedly should match snapshot for: parser 1`] = `"/babel-eslint/lib/index.js"`; - -exports[`eslint-config-wantedly should match snapshot for: parserOptions 1`] = ` -{ - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true, + "language": "@/js", + "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, + "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, + "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, + "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, + "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, + "afterAll": false, + "afterEach": false, + "ai": false, + "alert": false, + "atob": false, + "beforeAll": false, + "beforeEach": 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, + "describe": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "documentPictureInPicture": false, + "event": false, + "expect": false, + "exports": true, + "external": false, + "fence": false, + "fetch": false, + "fetchLater": false, + "find": false, + "fit": false, + "flushPromises": true, + "focus": false, + "frameElement": false, + "frames": false, + "getComputedStyle": false, + "getScreenDetails": false, + "getSelection": false, + "global": false, + "history": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "isSecureContext": false, + "it": false, + "jest": 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, + "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, + "test": false, + "toolbar": false, + "top": false, + "trustedTypes": false, + "visualViewport": false, + "window": false, + "xdescribe": false, + "xit": false, + "xtest": false, + }, + "parser": "@babel/eslint-parser@7.25.1", + "parserOptions": { + "babelOptions": { + "babelrc": false, + "configFile": false, + }, + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": true, + }, + "ecmaVersion": "latest", + "requireConfigFile": false, + }, + "sourceType": "module", + }, + "linterOptions": { + "reportUnusedDisableDirectives": 1, + }, + "plugins": [ + "@", + "import", + "jsx-a11y:eslint-plugin-jsx-a11y@6.10.0", + "jest:eslint-plugin-jest@28.8.3", + "use-macros:eslint-plugin-use-macros", + "es-x:eslint-plugin-es-x@8.0.0", + ], + "processor": undefined, + "rules": { + "@babel/object-curly-spacing": [ + 0, + ], + "@babel/semi": [ + 0, + ], + "@typescript-eslint/block-spacing": [ + 0, + ], + "@typescript-eslint/brace-style": [ + 0, + ], + "@typescript-eslint/comma-dangle": [ + 0, + ], + "@typescript-eslint/comma-spacing": [ + 0, + ], + "@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-extra-parens": [ + 0, + ], + "@typescript-eslint/no-extra-semi": [ + 0, + ], + "@typescript-eslint/object-curly-spacing": [ + 0, + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@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/type-annotation-spacing": [ + 0, + ], + "array-bracket-newline": [ + 0, + ], + "array-bracket-spacing": [ + 0, + ], + "array-callback-return": [ + 0, + ], + "array-element-newline": [ + 0, + ], + "arrow-body-style": [ + 0, + ], + "arrow-parens": [ + 1, + "always", + ], + "arrow-spacing": [ + 0, + ], + "babel/object-curly-spacing": [ + 0, + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + 0, + ], + "block-spacing": [ + 0, + ], + "brace-style": [ + 0, + ], + "camelcase": [ + 2, + { + "ignoreDestructuring": false, + "ignoreGlobals": false, + "ignoreImports": false, + "properties": "never", + }, + ], + "class-methods-use-this": [ + 0, + ], + "comma-dangle": [ + 2, + { + "arrays": "always-multiline", + "exports": "always-multiline", + "functions": "never", + "imports": "always-multiline", + "objects": "always-multiline", + }, + ], + "comma-spacing": [ + 0, + ], + "comma-style": [ + 0, + ], + "computed-property-spacing": [ + 0, + ], + "consistent-return": [ + 0, + ], + "constructor-super": [ + 2, + ], + "curly": [ + 0, + ], + "dot-location": [ + 0, + ], + "dot-notation": [ + 1, + ], + "eol-last": [ + 0, + ], + "eqeqeq": [ + 2, + "smart", + ], + "es-x/no-regexp-lookbehind-assertions": [ + 2, + ], + "es-x/no-regexp-named-capture-groups": [ + 2, + ], + "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": [ + 2, + ], + "implicit-arrow-linebreak": [ + 0, + ], + "import/extensions": [ + 0, + ], + "import/first": [ + 1, + ], + "import/no-extraneous-dependencies": [ + 0, + ], + "import/no-unresolved": [ + 0, + ], + "import/prefer-default-export": [ + 0, + ], + "indent": [ + 0, + ], + "indent-legacy": [ + 0, + ], + "jsx-a11y/alt-text": [ + 0, + ], + "jsx-a11y/label-has-for": [ + 0, + ], + "jsx-a11y/no-noninteractive-element-interactions": [ + 0, + ], + "jsx-a11y/no-static-element-interactions": [ + 0, + ], + "jsx-no-target-blank": [ + 0, + ], + "jsx-quotes": [ + 0, + ], + "key-spacing": [ + 0, + ], + "keyword-spacing": [ + 0, + ], + "linebreak-style": [ + 2, + "unix", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + 0, + ], + "multiline-ternary": [ + 0, + ], + "new-cap": [ + 2, + { + "capIsNew": false, + "newIsCap": true, + "properties": true, + }, + ], + "new-parens": [ + 0, + ], + "newline-per-chained-call": [ + 0, + ], + "no-alert": [ + 0, + ], + "no-array-constructor": [ + 2, + ], + "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": [ + 1, + ], + "no-confusing-arrow": [ + 0, + ], + "no-console": [ + 2, + ], + "no-const-assign": [ + 2, + ], + "no-constant-binary-expression": [ + 2, + ], + "no-constant-condition": [ + 2, + ], + "no-control-regex": [ + 2, + ], + "no-debugger": [ + 2, + ], + "no-delete-var": [ + 2, + ], + "no-dupe-args": [ + 2, + ], + "no-dupe-class-members": [ + 2, + ], + "no-dupe-else-if": [ + 2, + ], + "no-dupe-keys": [ + 2, + ], + "no-duplicate-case": [ + 2, + ], + "no-else-return": [ + 1, + ], + "no-empty": [ + 2, + ], + "no-empty-character-class": [ + 2, + ], + "no-empty-pattern": [ + 2, + ], + "no-empty-static-block": [ + 2, + ], + "no-ex-assign": [ + 2, + ], + "no-extra-boolean-cast": [ + 1, + ], + "no-extra-parens": [ + 0, + ], + "no-extra-semi": [ + 0, + ], + "no-fallthrough": [ + 2, + ], + "no-floating-decimal": [ + 0, + ], + "no-func-assign": [ + 2, + ], + "no-global-assign": [ + 2, + ], + "no-import-assign": [ + 2, + ], + "no-inner-declarations": [ + 2, + ], + "no-invalid-regexp": [ + 2, + ], + "no-irregular-whitespace": [ + 2, + ], + "no-lonely-if": [ + 1, + ], + "no-loss-of-precision": [ + 2, + ], + "no-misleading-character-class": [ + 2, + ], + "no-mixed-operators": [ + 1, + { + "allowSamePrecedence": true, + "groups": [ + [ + "&", + "|", + "^", + "~", + "<<", + ">>", + ">>>", + ], + [ + "&&", + "||", + ], + ], + }, + ], + "no-mixed-spaces-and-tabs": [ + 0, + ], + "no-multi-spaces": [ + 0, + ], + "no-multiple-empty-lines": [ + 0, + ], + "no-nested-ternary": [ + 0, + ], + "no-new-native-nonconstructor": [ + 2, + ], + "no-new-symbol": [ + 2, + ], + "no-nonoctal-decimal-escape": [ + 2, + ], + "no-obj-calls": [ + 2, + ], + "no-octal": [ + 2, + ], + "no-param-reassign": [ + 2, + ], + "no-plusplus": [ + 2, + { + "allowForLoopAfterthoughts": true, + }, + ], + "no-prototype-builtins": [ + 2, + ], + "no-redeclare": [ + 2, + ], + "no-regex-spaces": [ + 2, + ], + "no-reserved-keys": [ + 0, + ], + "no-self-assign": [ + 2, + ], + "no-setter-return": [ + 2, + ], + "no-shadow": [ + 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": [ + 2, + ], + "no-trailing-spaces": [ + 0, + ], + "no-undef": [ + 2, + ], + "no-underscore-dangle": [ + 0, + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + 2, + ], + "no-unsafe-finally": [ + 2, + ], + "no-unsafe-negation": [ + 2, + ], + "no-unsafe-optional-chaining": [ + 2, + ], + "no-unused-labels": [ + 2, + ], + "no-unused-private-class-members": [ + 2, + ], + "no-unused-vars": [ + 2, + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "ignoreRestSiblings": true, + "varsIgnorePattern": "^_", + }, + ], + "no-use-before-define": [ + 0, + ], + "no-useless-backreference": [ + 2, + ], + "no-useless-catch": [ + 2, + ], + "no-useless-constructor": [ + 0, + ], + "no-useless-escape": [ + 0, + ], + "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, + ], + "object-shorthand": [ + 1, + ], + "one-var-declaration-per-line": [ + 0, + ], + "operator-linebreak": [ + 0, + ], + "padded-blocks": [ + 0, + ], + "prefer-const": [ + 1, + ], + "prefer-template": [ + 1, + ], + "quote-props": [ + 1, + "as-needed", + ], + "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-yield": [ + 2, + ], + "rest-spread-spacing": [ + 0, + ], + "semi": [ + 2, + "always", + ], + "semi-spacing": [ + 0, + ], + "semi-style": [ + 0, + ], + "space-after-function-name": [ + 0, + ], + "space-after-keywords": [ + 0, + ], + "space-before-blocks": [ + 0, + ], + "space-before-function-paren": [ + 1, + { + "anonymous": "always", + "asyncArrow": "always", + "named": "never", + }, + ], + "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, + ], + "space-unary-word-ops": [ + 0, + ], + "standard/array-bracket-even-spacing": [ + 0, + ], + "standard/computed-property-even-spacing": [ + 0, + ], + "standard/object-curly-even-spacing": [ + 0, + ], + "switch-colon-spacing": [ + 0, + ], + "template-curly-spacing": [ + 0, + ], + "template-tag-spacing": [ + 0, + ], + "unicorn/empty-brace-spaces": [ + 0, + ], + "unicorn/no-nested-ternary": [ + 0, + ], + "unicorn/number-literal-case": [ + 0, + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + 2, + ], + "use-macros/graphql-tag": [ + 2, + ], + "valid-typeof": [ + 2, + ], + "vue/array-bracket-newline": [ + 0, + ], + "vue/array-bracket-spacing": [ + 0, + ], + "vue/array-element-newline": [ + 0, + ], + "vue/arrow-spacing": [ + 0, + ], + "vue/block-spacing": [ + 0, + ], + "vue/block-tag-newline": [ + 0, + ], + "vue/brace-style": [ + 0, + ], + "vue/comma-dangle": [ + 0, + ], + "vue/comma-spacing": [ + 0, + ], + "vue/comma-style": [ + 0, + ], + "vue/dot-location": [ + 0, + ], + "vue/func-call-spacing": [ + 0, + ], + "vue/html-closing-bracket-newline": [ + 0, + ], + "vue/html-closing-bracket-spacing": [ + 0, + ], + "vue/html-end-tags": [ + 0, + ], + "vue/html-indent": [ + 0, + ], + "vue/html-quotes": [ + 0, + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + 0, + ], + "vue/keyword-spacing": [ + 0, + ], + "vue/max-attributes-per-line": [ + 0, + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + 0, + ], + "vue/multiline-ternary": [ + 0, + ], + "vue/mustache-interpolation-spacing": [ + 0, + ], + "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, + ], }, - "sourceType": "module", } `; -exports[`eslint-config-wantedly should match snapshot for: plugins 1`] = ` -[ - "react-hooks", - "react", - "es", - "use-macros", - "jest", - "jsx-a11y", - "import", -] -`; - -exports[`eslint-config-wantedly should match snapshot for: reportUnusedDisableDirectives 1`] = `undefined`; - -exports[`eslint-config-wantedly should match snapshot for: rules 1`] = ` +exports[`eslint-config-wantedly react should match snapshot for 1`] = ` { - "@babel/object-curly-spacing": [ - "off", - ], - "@babel/semi": [ - "off", - ], - "@typescript-eslint/block-spacing": [ - "off", - ], - "@typescript-eslint/brace-style": [ - "off", - ], - "@typescript-eslint/comma-dangle": [ - "off", - ], - "@typescript-eslint/comma-spacing": [ - "off", - ], - "@typescript-eslint/func-call-spacing": [ - "off", - ], - "@typescript-eslint/indent": [ - "off", - ], - "@typescript-eslint/key-spacing": [ - "off", - ], - "@typescript-eslint/keyword-spacing": [ - "off", - ], - "@typescript-eslint/lines-around-comment": [ - 0, - ], - "@typescript-eslint/member-delimiter-style": [ - "off", - ], - "@typescript-eslint/no-extra-parens": [ - "off", - ], - "@typescript-eslint/no-extra-semi": [ - "off", - ], - "@typescript-eslint/object-curly-spacing": [ - "off", - ], - "@typescript-eslint/quotes": [ - 0, - ], - "@typescript-eslint/semi": [ - "off", - ], - "@typescript-eslint/space-before-blocks": [ - "off", - ], - "@typescript-eslint/space-before-function-paren": [ - "off", - ], - "@typescript-eslint/space-infix-ops": [ - "off", - ], - "@typescript-eslint/type-annotation-spacing": [ - "off", - ], - "array-bracket-newline": [ - "off", - ], - "array-bracket-spacing": [ - "off", - ], - "array-callback-return": [ - "off", - ], - "array-element-newline": [ - "off", - ], - "arrow-body-style": [ - "off", - ], - "arrow-parens": [ - "warn", - "always", - ], - "arrow-spacing": [ - "off", - ], - "babel/object-curly-spacing": [ - "off", - ], - "babel/quotes": [ - 0, - ], - "babel/semi": [ - "off", - ], - "block-spacing": [ - "off", - ], - "brace-style": [ - "off", - ], - "camelcase": [ - "error", - { - "ignoreDestructuring": false, - "ignoreGlobals": false, - "ignoreImports": false, - "properties": "never", + "language": "@/js", + "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, + "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, + "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, + "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, + "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, + "afterAll": false, + "afterEach": false, + "ai": false, + "alert": false, + "atob": false, + "beforeAll": false, + "beforeEach": 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, + "describe": false, + "devicePixelRatio": false, + "dispatchEvent": false, + "document": false, + "documentPictureInPicture": false, + "event": false, + "expect": false, + "exports": true, + "external": false, + "fence": false, + "fetch": false, + "fetchLater": false, + "find": false, + "fit": false, + "flushPromises": true, + "focus": false, + "frameElement": false, + "frames": false, + "getComputedStyle": false, + "getScreenDetails": false, + "getSelection": false, + "global": false, + "history": false, + "indexedDB": false, + "innerHeight": false, + "innerWidth": false, + "isSecureContext": false, + "it": false, + "jest": 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, + "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, + "test": false, + "toolbar": false, + "top": false, + "trustedTypes": false, + "visualViewport": false, + "window": false, + "xdescribe": false, + "xit": false, + "xtest": false, }, - ], - "class-methods-use-this": [ - "off", - ], - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "exports": "always-multiline", - "functions": "never", - "imports": "always-multiline", - "objects": "always-multiline", - }, - ], - "comma-spacing": [ - "off", - ], - "comma-style": [ - "off", - ], - "computed-property-spacing": [ - "off", - ], - "consistent-return": [ - "off", - ], - "constructor-super": [ - "error", - ], - "curly": [ - 0, - ], - "dot-location": [ - "off", - ], - "dot-notation": [ - "warn", - ], - "eol-last": [ - "off", - ], - "eqeqeq": [ - "error", - "smart", - ], - "es/no-regexp-lookbehind-assertions": [ - "error", - ], - "es/no-regexp-named-capture-groups": [ - "error", - ], - "flowtype/boolean-style": [ - "off", - ], - "flowtype/delimiter-dangle": [ - "off", - ], - "flowtype/generic-spacing": [ - "off", - ], - "flowtype/object-type-curly-spacing": [ - "off", - ], - "flowtype/object-type-delimiter": [ - "off", - ], - "flowtype/quotes": [ - "off", - ], - "flowtype/semi": [ - "off", - ], - "flowtype/space-after-type-colon": [ - "off", - ], - "flowtype/space-before-generic-bracket": [ - "off", - ], - "flowtype/space-before-type-colon": [ - "off", - ], - "flowtype/union-intersection-spacing": [ - "off", - ], - "for-direction": [ - "error", - ], - "func-call-spacing": [ - "off", - ], - "function-call-argument-newline": [ - "off", - ], - "function-paren-newline": [ - "off", - ], - "generator-star": [ - "off", - ], - "generator-star-spacing": [ - "off", - ], - "getter-return": [ - "error", - ], - "implicit-arrow-linebreak": [ - "off", - ], - "import/extensions": [ - "off", - ], - "import/first": [ - "warn", - ], - "import/no-extraneous-dependencies": [ - "off", - ], - "import/no-unresolved": [ - "off", - ], - "import/prefer-default-export": [ - "off", - ], - "indent": [ - "off", - ], - "indent-legacy": [ - "off", - ], - "jsx-a11y/alt-text": [ - "off", - ], - "jsx-a11y/label-has-for": [ - "off", - ], - "jsx-a11y/no-noninteractive-element-interactions": [ - "off", - ], - "jsx-a11y/no-static-element-interactions": [ - "off", - ], - "jsx-no-target-blank": [ - "off", - ], - "jsx-quotes": [ - "off", - ], - "key-spacing": [ - "off", - ], - "keyword-spacing": [ - "off", - ], - "linebreak-style": [ - "error", - "unix", - ], - "lines-around-comment": [ - 0, - ], - "max-len": [ - "off", - ], - "max-statements-per-line": [ - "off", - ], - "multiline-ternary": [ - "off", - ], - "new-cap": [ - "error", - { - "capIsNew": false, - "newIsCap": true, - "properties": true, + "parser": "@babel/eslint-parser@7.25.1", + "parserOptions": { + "babelOptions": { + "babelrc": false, + "configFile": false, + }, + "ecmaFeatures": { + "experimentalObjectRestSpread": true, + "jsx": true, + }, + "ecmaVersion": "latest", + "requireConfigFile": false, }, - ], - "new-parens": [ - "off", - ], - "newline-per-chained-call": [ - "off", - ], - "no-alert": [ - "off", - ], - "no-array-constructor": [ - "error", - ], - "no-arrow-condition": [ - "off", - ], - "no-async-promise-executor": [ - "error", - ], - "no-case-declarations": [ - "error", - ], - "no-class-assign": [ - "error", - ], - "no-comma-dangle": [ - "off", - ], - "no-compare-neg-zero": [ - "error", - ], - "no-cond-assign": [ - "warn", - ], - "no-confusing-arrow": [ - 0, - ], - "no-console": [ - "error", - ], - "no-const-assign": [ - "error", - ], - "no-constant-condition": [ - "error", - ], - "no-control-regex": [ - "error", - ], - "no-debugger": [ - "error", - ], - "no-delete-var": [ - "error", - ], - "no-dupe-args": [ - "error", - ], - "no-dupe-class-members": [ - "error", - ], - "no-dupe-else-if": [ - "error", - ], - "no-dupe-keys": [ - "error", - ], - "no-duplicate-case": [ - "error", - ], - "no-else-return": [ - "warn", - ], - "no-empty": [ - "error", - ], - "no-empty-character-class": [ - "error", - ], - "no-empty-pattern": [ - "error", - ], - "no-ex-assign": [ - "error", - ], - "no-extra-boolean-cast": [ - "warn", - ], - "no-extra-parens": [ - "off", - ], - "no-extra-semi": [ - "off", - ], - "no-fallthrough": [ - "error", - ], - "no-floating-decimal": [ - "off", - ], - "no-func-assign": [ - "error", - ], - "no-global-assign": [ - "error", - ], - "no-import-assign": [ - "error", - ], - "no-inner-declarations": [ - "error", - ], - "no-invalid-regexp": [ - "error", - ], - "no-irregular-whitespace": [ - "error", - ], - "no-lonely-if": [ - "warn", - ], - "no-loss-of-precision": [ - "error", - ], - "no-misleading-character-class": [ - "error", - ], - "no-mixed-operators": [ - "warn", - { - "allowSamePrecedence": true, - "groups": [ - [ - "&", - "|", - "^", - "~", - "<<", - ">>", - ">>>", + "sourceType": "module", + }, + "linterOptions": { + "reportUnusedDisableDirectives": 1, + }, + "plugins": [ + "@", + "import", + "jsx-a11y:eslint-plugin-jsx-a11y@6.10.0", + "jest:eslint-plugin-jest@28.8.3", + "use-macros:eslint-plugin-use-macros", + "es-x:eslint-plugin-es-x@8.0.0", + "react", + "react-hooks", + ], + "processor": undefined, + "rules": { + "@babel/object-curly-spacing": [ + 0, + ], + "@babel/semi": [ + 0, + ], + "@typescript-eslint/block-spacing": [ + 0, + ], + "@typescript-eslint/brace-style": [ + 0, + ], + "@typescript-eslint/comma-dangle": [ + 0, + ], + "@typescript-eslint/comma-spacing": [ + 0, + ], + "@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-extra-parens": [ + 0, + ], + "@typescript-eslint/no-extra-semi": [ + 0, + ], + "@typescript-eslint/object-curly-spacing": [ + 0, + ], + "@typescript-eslint/quotes": [ + 0, + ], + "@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/type-annotation-spacing": [ + 0, + ], + "array-bracket-newline": [ + 0, + ], + "array-bracket-spacing": [ + 0, + ], + "array-callback-return": [ + 0, + ], + "array-element-newline": [ + 0, + ], + "arrow-body-style": [ + 0, + ], + "arrow-parens": [ + 1, + "always", + ], + "arrow-spacing": [ + 0, + ], + "babel/object-curly-spacing": [ + 0, + ], + "babel/quotes": [ + 0, + ], + "babel/semi": [ + 0, + ], + "block-spacing": [ + 0, + ], + "brace-style": [ + 0, + ], + "camelcase": [ + 2, + { + "ignoreDestructuring": false, + "ignoreGlobals": false, + "ignoreImports": false, + "properties": "never", + }, + ], + "class-methods-use-this": [ + 0, + ], + "comma-dangle": [ + 2, + { + "arrays": "always-multiline", + "exports": "always-multiline", + "functions": "never", + "imports": "always-multiline", + "objects": "always-multiline", + }, + ], + "comma-spacing": [ + 0, + ], + "comma-style": [ + 0, + ], + "computed-property-spacing": [ + 0, + ], + "consistent-return": [ + 0, + ], + "constructor-super": [ + 2, + ], + "curly": [ + 0, + ], + "dot-location": [ + 0, + ], + "dot-notation": [ + 1, + ], + "eol-last": [ + 0, + ], + "eqeqeq": [ + 2, + "smart", + ], + "es-x/no-regexp-lookbehind-assertions": [ + 2, + ], + "es-x/no-regexp-named-capture-groups": [ + 2, + ], + "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": [ + 2, + ], + "implicit-arrow-linebreak": [ + 0, + ], + "import/extensions": [ + 0, + ], + "import/first": [ + 1, + ], + "import/no-extraneous-dependencies": [ + 0, + ], + "import/no-unresolved": [ + 0, + ], + "import/prefer-default-export": [ + 0, + ], + "indent": [ + 0, + ], + "indent-legacy": [ + 0, + ], + "jsx-a11y/alt-text": [ + 0, + ], + "jsx-a11y/label-has-for": [ + 0, + ], + "jsx-a11y/no-noninteractive-element-interactions": [ + 0, + ], + "jsx-a11y/no-static-element-interactions": [ + 0, + ], + "jsx-no-target-blank": [ + 0, + ], + "jsx-quotes": [ + 0, + ], + "key-spacing": [ + 0, + ], + "keyword-spacing": [ + 0, + ], + "linebreak-style": [ + 2, + "unix", + ], + "lines-around-comment": [ + 0, + ], + "max-len": [ + 0, + ], + "max-statements-per-line": [ + 0, + ], + "multiline-ternary": [ + 0, + ], + "new-cap": [ + 2, + { + "capIsNew": false, + "newIsCap": true, + "properties": true, + }, + ], + "new-parens": [ + 0, + ], + "newline-per-chained-call": [ + 0, + ], + "no-alert": [ + 0, + ], + "no-array-constructor": [ + 2, + ], + "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": [ + 1, + ], + "no-confusing-arrow": [ + 0, + ], + "no-console": [ + 2, + ], + "no-const-assign": [ + 2, + ], + "no-constant-binary-expression": [ + 2, + ], + "no-constant-condition": [ + 2, + ], + "no-control-regex": [ + 2, + ], + "no-debugger": [ + 2, + ], + "no-delete-var": [ + 2, + ], + "no-dupe-args": [ + 2, + ], + "no-dupe-class-members": [ + 2, + ], + "no-dupe-else-if": [ + 2, + ], + "no-dupe-keys": [ + 2, + ], + "no-duplicate-case": [ + 2, + ], + "no-else-return": [ + 1, + ], + "no-empty": [ + 2, + ], + "no-empty-character-class": [ + 2, + ], + "no-empty-pattern": [ + 2, + ], + "no-empty-static-block": [ + 2, + ], + "no-ex-assign": [ + 2, + ], + "no-extra-boolean-cast": [ + 1, + ], + "no-extra-parens": [ + 0, + ], + "no-extra-semi": [ + 0, + ], + "no-fallthrough": [ + 2, + ], + "no-floating-decimal": [ + 0, + ], + "no-func-assign": [ + 2, + ], + "no-global-assign": [ + 2, + ], + "no-import-assign": [ + 2, + ], + "no-inner-declarations": [ + 2, + ], + "no-invalid-regexp": [ + 2, + ], + "no-irregular-whitespace": [ + 2, + ], + "no-lonely-if": [ + 1, + ], + "no-loss-of-precision": [ + 2, + ], + "no-misleading-character-class": [ + 2, + ], + "no-mixed-operators": [ + 1, + { + "allowSamePrecedence": true, + "groups": [ + [ + "&", + "|", + "^", + "~", + "<<", + ">>", + ">>>", + ], + [ + "&&", + "||", + ], ], - [ - "&&", - "||", + }, + ], + "no-mixed-spaces-and-tabs": [ + 0, + ], + "no-multi-spaces": [ + 0, + ], + "no-multiple-empty-lines": [ + 0, + ], + "no-nested-ternary": [ + 0, + ], + "no-new-native-nonconstructor": [ + 2, + ], + "no-new-symbol": [ + 2, + ], + "no-nonoctal-decimal-escape": [ + 2, + ], + "no-obj-calls": [ + 2, + ], + "no-octal": [ + 2, + ], + "no-param-reassign": [ + 2, + ], + "no-plusplus": [ + 2, + { + "allowForLoopAfterthoughts": true, + }, + ], + "no-prototype-builtins": [ + 2, + ], + "no-redeclare": [ + 2, + ], + "no-regex-spaces": [ + 2, + ], + "no-reserved-keys": [ + 0, + ], + "no-self-assign": [ + 2, + ], + "no-setter-return": [ + 2, + ], + "no-shadow": [ + 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": [ + 2, + ], + "no-trailing-spaces": [ + 0, + ], + "no-undef": [ + 2, + ], + "no-underscore-dangle": [ + 0, + ], + "no-unexpected-multiline": [ + 0, + ], + "no-unreachable": [ + 2, + ], + "no-unsafe-finally": [ + 2, + ], + "no-unsafe-negation": [ + 2, + ], + "no-unsafe-optional-chaining": [ + 2, + ], + "no-unused-labels": [ + 2, + ], + "no-unused-private-class-members": [ + 2, + ], + "no-unused-vars": [ + 2, + { + "args": "all", + "argsIgnorePattern": "^_", + "caughtErrors": "all", + "caughtErrorsIgnorePattern": "^_", + "destructuredArrayIgnorePattern": "^_", + "ignoreRestSiblings": true, + "varsIgnorePattern": "^_", + }, + ], + "no-use-before-define": [ + 0, + ], + "no-useless-backreference": [ + 2, + ], + "no-useless-catch": [ + 2, + ], + "no-useless-constructor": [ + 0, + ], + "no-useless-escape": [ + 0, + ], + "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, + ], + "object-shorthand": [ + 1, + ], + "one-var-declaration-per-line": [ + 0, + ], + "operator-linebreak": [ + 0, + ], + "padded-blocks": [ + 0, + ], + "prefer-const": [ + 1, + ], + "prefer-template": [ + 1, + ], + "quote-props": [ + 1, + "as-needed", + ], + "quotes": [ + 0, + ], + "react-hooks/exhaustive-deps": [ + 1, + ], + "react-hooks/rules-of-hooks": [ + 2, + ], + "react/display-name": [ + 2, + ], + "react/forbid-prop-types": [ + 0, + ], + "react/jsx-child-element-spacing": [ + 0, + ], + "react/jsx-closing-bracket-location": [ + 1, + ], + "react/jsx-closing-tag-location": [ + 0, + ], + "react/jsx-curly-newline": [ + 0, + ], + "react/jsx-curly-spacing": [ + 0, + ], + "react/jsx-equals-spacing": [ + 0, + ], + "react/jsx-filename-extension": [ + 1, + { + "extensions": [ + ".jsx", + ".tsx", ], - ], - }, - ], - "no-mixed-spaces-and-tabs": [ - "off", - ], - "no-multi-spaces": [ - "off", - ], - "no-multiple-empty-lines": [ - "off", - ], - "no-nested-ternary": [ - "off", - ], - "no-new-symbol": [ - "error", - ], - "no-nonoctal-decimal-escape": [ - "error", - ], - "no-obj-calls": [ - "error", - ], - "no-octal": [ - "error", - ], - "no-param-reassign": [ - "error", - ], - "no-plusplus": [ - "error", - { - "allowForLoopAfterthoughts": true, - }, - ], - "no-prototype-builtins": [ - "error", - ], - "no-redeclare": [ - "error", - ], - "no-regex-spaces": [ - "error", - ], - "no-reserved-keys": [ - "off", - ], - "no-self-assign": [ - "error", - ], - "no-setter-return": [ - "error", - ], - "no-shadow": [ - "off", - ], - "no-shadow-restricted-names": [ - "error", - ], - "no-space-before-semi": [ - "off", - ], - "no-spaced-func": [ - "off", - ], - "no-sparse-arrays": [ - "error", - ], - "no-tabs": [ - 0, - ], - "no-this-before-super": [ - "error", - ], - "no-trailing-spaces": [ - "off", - ], - "no-undef": [ - "error", - ], - "no-underscore-dangle": [ - "off", - ], - "no-unexpected-multiline": [ - 0, - ], - "no-unreachable": [ - "error", - ], - "no-unsafe-finally": [ - "error", - ], - "no-unsafe-negation": [ - "error", - ], - "no-unsafe-optional-chaining": [ - "error", - ], - "no-unused-labels": [ - "error", - ], - "no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - }, - ], - "no-use-before-define": [ - "off", - ], - "no-useless-backreference": [ - "error", - ], - "no-useless-catch": [ - "error", - ], - "no-useless-constructor": [ - "off", - ], - "no-useless-escape": [ - "off", - ], - "no-whitespace-before-property": [ - "off", - ], - "no-with": [ - "error", - ], - "no-wrap-func": [ - "off", - ], - "nonblock-statement-body-position": [ - "off", - ], - "object-curly-newline": [ - "off", - ], - "object-curly-spacing": [ - "off", - ], - "object-property-newline": [ - "off", - ], - "object-shorthand": [ - "warn", - ], - "one-var-declaration-per-line": [ - "off", - ], - "operator-linebreak": [ - "off", - ], - "padded-blocks": [ - "off", - ], - "prefer-const": [ - "warn", - ], - "prefer-template": [ - "warn", - ], - "quote-props": [ - "warn", - "as-needed", - ], - "quotes": [ - "off", - ], - "react-hooks/exhaustive-deps": [ - "warn", - ], - "react-hooks/rules-of-hooks": [ - "error", - ], - "react/display-name": [ - 2, - ], - "react/forbid-prop-types": [ - "off", - ], - "react/jsx-child-element-spacing": [ - "off", - ], - "react/jsx-closing-bracket-location": [ - "warn", - ], - "react/jsx-closing-tag-location": [ - "off", - ], - "react/jsx-curly-newline": [ - "off", - ], - "react/jsx-curly-spacing": [ - "off", - ], - "react/jsx-equals-spacing": [ - "off", - ], - "react/jsx-filename-extension": [ - "warn", - { - "extensions": [ - ".jsx", - ".tsx", - ], - }, - ], - "react/jsx-first-prop-new-line": [ - "off", - ], - "react/jsx-indent": [ - "warn", - 2, - ], - "react/jsx-indent-props": [ - "warn", - 2, - ], - "react/jsx-key": [ - 2, - ], - "react/jsx-max-props-per-line": [ - "off", - ], - "react/jsx-newline": [ - "off", - ], - "react/jsx-no-bind": [ - "warn", - { - "allowArrowFunctions": true, - "allowBind": false, - "allowFunctions": false, - "ignoreDOMComponents": false, - "ignoreRefs": false, - }, - ], - "react/jsx-no-comment-textnodes": [ - 2, - ], - "react/jsx-no-duplicate-props": [ - "error", - ], - "react/jsx-no-target-blank": [ - "warn", - ], - "react/jsx-no-undef": [ - 2, - ], - "react/jsx-one-expression-per-line": [ - "off", - ], - "react/jsx-props-no-multi-spaces": [ - "off", - ], - "react/jsx-space-before-closing": [ - "off", - ], - "react/jsx-tag-spacing": [ - "off", - ], - "react/jsx-uses-react": [ - "off", - ], - "react/jsx-uses-vars": [ - "error", - ], - "react/jsx-wrap-multilines": [ - "warn", - ], - "react/no-array-index-key": [ - "error", - ], - "react/no-children-prop": [ - 2, - ], - "react/no-danger-with-children": [ - 2, - ], - "react/no-deprecated": [ - 2, - ], - "react/no-did-update-set-state": [ - "error", - ], - "react/no-direct-mutation-state": [ - 2, - ], - "react/no-find-dom-node": [ - "error", - ], - "react/no-is-mounted": [ - 2, - ], - "react/no-multi-comp": [ - "off", - ], - "react/no-render-return-value": [ - 2, - ], - "react/no-string-refs": [ - "error", - ], - "react/no-unescaped-entities": [ - 2, - ], - "react/no-unknown-property": [ - 2, - ], - "react/no-unsafe": [ - 0, - ], - "react/no-unused-prop-types": [ - "off", - ], - "react/prop-types": [ - "off", - ], - "react/react-in-jsx-scope": [ - "off", - ], - "react/require-default-props": [ - "off", - ], - "react/require-render-return": [ - 2, - ], - "require-yield": [ - "error", - ], - "rest-spread-spacing": [ - "off", - ], - "semi": [ - "error", - "always", - ], - "semi-spacing": [ - "off", - ], - "semi-style": [ - "off", - ], - "space-after-function-name": [ - "off", - ], - "space-after-keywords": [ - "off", - ], - "space-before-blocks": [ - "off", - ], - "space-before-function-paren": [ - "warn", - { - "anonymous": "always", - "asyncArrow": "always", - "named": "never", - }, - ], - "space-before-function-parentheses": [ - "off", - ], - "space-before-keywords": [ - "off", - ], - "space-in-brackets": [ - "off", - ], - "space-in-parens": [ - "off", - ], - "space-infix-ops": [ - "off", - ], - "space-return-throw-case": [ - "off", - ], - "space-unary-ops": [ - "off", - ], - "space-unary-word-ops": [ - "off", - ], - "standard/array-bracket-even-spacing": [ - "off", - ], - "standard/computed-property-even-spacing": [ - "off", - ], - "standard/object-curly-even-spacing": [ - "off", - ], - "switch-colon-spacing": [ - "off", - ], - "template-curly-spacing": [ - "off", - ], - "template-tag-spacing": [ - "off", - ], - "unicode-bom": [ - "off", - ], - "unicorn/empty-brace-spaces": [ - "off", - ], - "unicorn/no-nested-ternary": [ - "off", - ], - "unicorn/number-literal-case": [ - "off", - ], - "use-isnan": [ - "error", - ], - "use-macros/graphql-tag": [ - "error", - ], - "use-macros/styled-components": [ - "error", - ], - "valid-typeof": [ - "error", - ], - "vue/array-bracket-newline": [ - "off", - ], - "vue/array-bracket-spacing": [ - "off", - ], - "vue/array-element-newline": [ - "off", - ], - "vue/arrow-spacing": [ - "off", - ], - "vue/block-spacing": [ - "off", - ], - "vue/block-tag-newline": [ - "off", - ], - "vue/brace-style": [ - "off", - ], - "vue/comma-dangle": [ - "off", - ], - "vue/comma-spacing": [ - "off", - ], - "vue/comma-style": [ - "off", - ], - "vue/dot-location": [ - "off", - ], - "vue/func-call-spacing": [ - "off", - ], - "vue/html-closing-bracket-newline": [ - "off", - ], - "vue/html-closing-bracket-spacing": [ - "off", - ], - "vue/html-end-tags": [ - "off", - ], - "vue/html-indent": [ - "off", - ], - "vue/html-quotes": [ - "off", - ], - "vue/html-self-closing": [ - 0, - ], - "vue/key-spacing": [ - "off", - ], - "vue/keyword-spacing": [ - "off", - ], - "vue/max-attributes-per-line": [ - "off", - ], - "vue/max-len": [ - 0, - ], - "vue/multiline-html-element-content-newline": [ - "off", - ], - "vue/multiline-ternary": [ - "off", - ], - "vue/mustache-interpolation-spacing": [ - "off", - ], - "vue/no-extra-parens": [ - "off", - ], - "vue/no-multi-spaces": [ - "off", - ], - "vue/no-spaces-around-equal-signs-in-attribute": [ - "off", - ], - "vue/object-curly-newline": [ - "off", - ], - "vue/object-curly-spacing": [ - "off", - ], - "vue/object-property-newline": [ - "off", - ], - "vue/operator-linebreak": [ - "off", - ], - "vue/quote-props": [ - "off", - ], - "vue/script-indent": [ - "off", - ], - "vue/singleline-html-element-content-newline": [ - "off", - ], - "vue/space-in-parens": [ - "off", - ], - "vue/space-infix-ops": [ - "off", - ], - "vue/space-unary-ops": [ - "off", - ], - "vue/template-curly-spacing": [ - "off", - ], - "wrap-iife": [ - "off", - ], - "wrap-regex": [ - "off", - ], - "yield-star-spacing": [ - "off", - ], + }, + ], + "react/jsx-first-prop-new-line": [ + 0, + ], + "react/jsx-indent": [ + 1, + 2, + ], + "react/jsx-indent-props": [ + 1, + 2, + ], + "react/jsx-key": [ + 2, + ], + "react/jsx-max-props-per-line": [ + 0, + ], + "react/jsx-newline": [ + 0, + ], + "react/jsx-no-bind": [ + 1, + { + "allowArrowFunctions": true, + "allowBind": false, + "allowFunctions": false, + "ignoreDOMComponents": false, + "ignoreRefs": false, + }, + ], + "react/jsx-no-comment-textnodes": [ + 2, + ], + "react/jsx-no-duplicate-props": [ + 2, + ], + "react/jsx-no-target-blank": [ + 1, + ], + "react/jsx-no-undef": [ + 2, + ], + "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-uses-react": [ + 0, + ], + "react/jsx-uses-vars": [ + 2, + ], + "react/jsx-wrap-multilines": [ + 1, + ], + "react/no-array-index-key": [ + 2, + ], + "react/no-children-prop": [ + 2, + ], + "react/no-danger-with-children": [ + 2, + ], + "react/no-deprecated": [ + 2, + ], + "react/no-did-update-set-state": [ + 2, + ], + "react/no-direct-mutation-state": [ + 2, + ], + "react/no-find-dom-node": [ + 2, + ], + "react/no-is-mounted": [ + 2, + ], + "react/no-multi-comp": [ + 0, + ], + "react/no-render-return-value": [ + 2, + ], + "react/no-string-refs": [ + 2, + ], + "react/no-unescaped-entities": [ + 2, + ], + "react/no-unknown-property": [ + 2, + ], + "react/no-unsafe": [ + 0, + ], + "react/no-unused-prop-types": [ + 0, + ], + "react/prop-types": [ + 0, + ], + "react/react-in-jsx-scope": [ + 0, + ], + "react/require-default-props": [ + 0, + ], + "react/require-render-return": [ + 2, + ], + "require-yield": [ + 2, + ], + "rest-spread-spacing": [ + 0, + ], + "semi": [ + 2, + "always", + ], + "semi-spacing": [ + 0, + ], + "semi-style": [ + 0, + ], + "space-after-function-name": [ + 0, + ], + "space-after-keywords": [ + 0, + ], + "space-before-blocks": [ + 0, + ], + "space-before-function-paren": [ + 1, + { + "anonymous": "always", + "asyncArrow": "always", + "named": "never", + }, + ], + "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, + ], + "space-unary-word-ops": [ + 0, + ], + "standard/array-bracket-even-spacing": [ + 0, + ], + "standard/computed-property-even-spacing": [ + 0, + ], + "standard/object-curly-even-spacing": [ + 0, + ], + "switch-colon-spacing": [ + 0, + ], + "template-curly-spacing": [ + 0, + ], + "template-tag-spacing": [ + 0, + ], + "unicorn/empty-brace-spaces": [ + 0, + ], + "unicorn/no-nested-ternary": [ + 0, + ], + "unicorn/number-literal-case": [ + 0, + ], + "unicorn/template-indent": [ + 0, + ], + "use-isnan": [ + 2, + ], + "use-macros/graphql-tag": [ + 2, + ], + "use-macros/styled-components": [ + 2, + ], + "valid-typeof": [ + 2, + ], + "vue/array-bracket-newline": [ + 0, + ], + "vue/array-bracket-spacing": [ + 0, + ], + "vue/array-element-newline": [ + 0, + ], + "vue/arrow-spacing": [ + 0, + ], + "vue/block-spacing": [ + 0, + ], + "vue/block-tag-newline": [ + 0, + ], + "vue/brace-style": [ + 0, + ], + "vue/comma-dangle": [ + 0, + ], + "vue/comma-spacing": [ + 0, + ], + "vue/comma-style": [ + 0, + ], + "vue/dot-location": [ + 0, + ], + "vue/func-call-spacing": [ + 0, + ], + "vue/html-closing-bracket-newline": [ + 0, + ], + "vue/html-closing-bracket-spacing": [ + 0, + ], + "vue/html-end-tags": [ + 0, + ], + "vue/html-indent": [ + 0, + ], + "vue/html-quotes": [ + 0, + ], + "vue/html-self-closing": [ + 0, + ], + "vue/key-spacing": [ + 0, + ], + "vue/keyword-spacing": [ + 0, + ], + "vue/max-attributes-per-line": [ + 0, + ], + "vue/max-len": [ + 0, + ], + "vue/multiline-html-element-content-newline": [ + 0, + ], + "vue/multiline-ternary": [ + 0, + ], + "vue/mustache-interpolation-spacing": [ + 0, + ], + "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, + ], + }, } `; - -exports[`eslint-config-wantedly should match snapshot for: settings 1`] = `{}`; diff --git a/packages/eslint-config-wantedly/__tests__/__snapshots__/without-react.test.js.snap b/packages/eslint-config-wantedly/__tests__/__snapshots__/without-react.test.js.snap deleted file mode 100644 index 142f467a..00000000 --- a/packages/eslint-config-wantedly/__tests__/__snapshots__/without-react.test.js.snap +++ /dev/null @@ -1,920 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`eslint-config-wantedly/without-react should match snapshot for: env 1`] = ` -{ - "browser": true, - "es6": true, - "jest/globals": true, - "node": true, -} -`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: globals 1`] = ` -{ - "flushPromises": true, -} -`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: ignorePatterns 1`] = `[]`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: noInlineConfig 1`] = `undefined`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: parser 1`] = `"/babel-eslint/lib/index.js"`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: parserOptions 1`] = ` -{ - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "jsx": true, - }, - "sourceType": "module", -} -`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: plugins 1`] = ` -[ - "es", - "use-macros", - "jest", - "jsx-a11y", - "import", -] -`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: reportUnusedDisableDirectives 1`] = `undefined`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: rules 1`] = ` -{ - "@babel/object-curly-spacing": [ - "off", - ], - "@babel/semi": [ - "off", - ], - "@typescript-eslint/block-spacing": [ - "off", - ], - "@typescript-eslint/brace-style": [ - "off", - ], - "@typescript-eslint/comma-dangle": [ - "off", - ], - "@typescript-eslint/comma-spacing": [ - "off", - ], - "@typescript-eslint/func-call-spacing": [ - "off", - ], - "@typescript-eslint/indent": [ - "off", - ], - "@typescript-eslint/key-spacing": [ - "off", - ], - "@typescript-eslint/keyword-spacing": [ - "off", - ], - "@typescript-eslint/lines-around-comment": [ - 0, - ], - "@typescript-eslint/member-delimiter-style": [ - "off", - ], - "@typescript-eslint/no-extra-parens": [ - "off", - ], - "@typescript-eslint/no-extra-semi": [ - "off", - ], - "@typescript-eslint/object-curly-spacing": [ - "off", - ], - "@typescript-eslint/quotes": [ - 0, - ], - "@typescript-eslint/semi": [ - "off", - ], - "@typescript-eslint/space-before-blocks": [ - "off", - ], - "@typescript-eslint/space-before-function-paren": [ - "off", - ], - "@typescript-eslint/space-infix-ops": [ - "off", - ], - "@typescript-eslint/type-annotation-spacing": [ - "off", - ], - "array-bracket-newline": [ - "off", - ], - "array-bracket-spacing": [ - "off", - ], - "array-callback-return": [ - "off", - ], - "array-element-newline": [ - "off", - ], - "arrow-body-style": [ - "off", - ], - "arrow-parens": [ - "warn", - "always", - ], - "arrow-spacing": [ - "off", - ], - "babel/object-curly-spacing": [ - "off", - ], - "babel/quotes": [ - 0, - ], - "babel/semi": [ - "off", - ], - "block-spacing": [ - "off", - ], - "brace-style": [ - "off", - ], - "camelcase": [ - "error", - { - "ignoreDestructuring": false, - "ignoreGlobals": false, - "ignoreImports": false, - "properties": "never", - }, - ], - "class-methods-use-this": [ - "off", - ], - "comma-dangle": [ - "error", - { - "arrays": "always-multiline", - "exports": "always-multiline", - "functions": "never", - "imports": "always-multiline", - "objects": "always-multiline", - }, - ], - "comma-spacing": [ - "off", - ], - "comma-style": [ - "off", - ], - "computed-property-spacing": [ - "off", - ], - "consistent-return": [ - "off", - ], - "constructor-super": [ - "error", - ], - "curly": [ - 0, - ], - "dot-location": [ - "off", - ], - "dot-notation": [ - "warn", - ], - "eol-last": [ - "off", - ], - "eqeqeq": [ - "error", - "smart", - ], - "es/no-regexp-lookbehind-assertions": [ - "error", - ], - "es/no-regexp-named-capture-groups": [ - "error", - ], - "flowtype/boolean-style": [ - "off", - ], - "flowtype/delimiter-dangle": [ - "off", - ], - "flowtype/generic-spacing": [ - "off", - ], - "flowtype/object-type-curly-spacing": [ - "off", - ], - "flowtype/object-type-delimiter": [ - "off", - ], - "flowtype/quotes": [ - "off", - ], - "flowtype/semi": [ - "off", - ], - "flowtype/space-after-type-colon": [ - "off", - ], - "flowtype/space-before-generic-bracket": [ - "off", - ], - "flowtype/space-before-type-colon": [ - "off", - ], - "flowtype/union-intersection-spacing": [ - "off", - ], - "for-direction": [ - "error", - ], - "func-call-spacing": [ - "off", - ], - "function-call-argument-newline": [ - "off", - ], - "function-paren-newline": [ - "off", - ], - "generator-star": [ - "off", - ], - "generator-star-spacing": [ - "off", - ], - "getter-return": [ - "error", - ], - "implicit-arrow-linebreak": [ - "off", - ], - "import/extensions": [ - "off", - ], - "import/first": [ - "warn", - ], - "import/no-extraneous-dependencies": [ - "off", - ], - "import/no-unresolved": [ - "off", - ], - "import/prefer-default-export": [ - "off", - ], - "indent": [ - "off", - ], - "indent-legacy": [ - "off", - ], - "jsx-a11y/alt-text": [ - "off", - ], - "jsx-a11y/label-has-for": [ - "off", - ], - "jsx-a11y/no-noninteractive-element-interactions": [ - "off", - ], - "jsx-a11y/no-static-element-interactions": [ - "off", - ], - "jsx-no-target-blank": [ - "off", - ], - "jsx-quotes": [ - "off", - ], - "key-spacing": [ - "off", - ], - "keyword-spacing": [ - "off", - ], - "linebreak-style": [ - "error", - "unix", - ], - "lines-around-comment": [ - 0, - ], - "max-len": [ - "off", - ], - "max-statements-per-line": [ - "off", - ], - "multiline-ternary": [ - "off", - ], - "new-cap": [ - "error", - { - "capIsNew": false, - "newIsCap": true, - "properties": true, - }, - ], - "new-parens": [ - "off", - ], - "newline-per-chained-call": [ - "off", - ], - "no-alert": [ - "off", - ], - "no-array-constructor": [ - "error", - ], - "no-arrow-condition": [ - "off", - ], - "no-async-promise-executor": [ - "error", - ], - "no-case-declarations": [ - "error", - ], - "no-class-assign": [ - "error", - ], - "no-comma-dangle": [ - "off", - ], - "no-compare-neg-zero": [ - "error", - ], - "no-cond-assign": [ - "warn", - ], - "no-confusing-arrow": [ - 0, - ], - "no-console": [ - "error", - ], - "no-const-assign": [ - "error", - ], - "no-constant-condition": [ - "error", - ], - "no-control-regex": [ - "error", - ], - "no-debugger": [ - "error", - ], - "no-delete-var": [ - "error", - ], - "no-dupe-args": [ - "error", - ], - "no-dupe-class-members": [ - "error", - ], - "no-dupe-else-if": [ - "error", - ], - "no-dupe-keys": [ - "error", - ], - "no-duplicate-case": [ - "error", - ], - "no-else-return": [ - "warn", - ], - "no-empty": [ - "error", - ], - "no-empty-character-class": [ - "error", - ], - "no-empty-pattern": [ - "error", - ], - "no-ex-assign": [ - "error", - ], - "no-extra-boolean-cast": [ - "warn", - ], - "no-extra-parens": [ - "off", - ], - "no-extra-semi": [ - "off", - ], - "no-fallthrough": [ - "error", - ], - "no-floating-decimal": [ - "off", - ], - "no-func-assign": [ - "error", - ], - "no-global-assign": [ - "error", - ], - "no-import-assign": [ - "error", - ], - "no-inner-declarations": [ - "error", - ], - "no-invalid-regexp": [ - "error", - ], - "no-irregular-whitespace": [ - "error", - ], - "no-lonely-if": [ - "warn", - ], - "no-loss-of-precision": [ - "error", - ], - "no-misleading-character-class": [ - "error", - ], - "no-mixed-operators": [ - "warn", - { - "allowSamePrecedence": true, - "groups": [ - [ - "&", - "|", - "^", - "~", - "<<", - ">>", - ">>>", - ], - [ - "&&", - "||", - ], - ], - }, - ], - "no-mixed-spaces-and-tabs": [ - "off", - ], - "no-multi-spaces": [ - "off", - ], - "no-multiple-empty-lines": [ - "off", - ], - "no-nested-ternary": [ - "off", - ], - "no-new-symbol": [ - "error", - ], - "no-nonoctal-decimal-escape": [ - "error", - ], - "no-obj-calls": [ - "error", - ], - "no-octal": [ - "error", - ], - "no-param-reassign": [ - "error", - ], - "no-plusplus": [ - "error", - { - "allowForLoopAfterthoughts": true, - }, - ], - "no-prototype-builtins": [ - "error", - ], - "no-redeclare": [ - "error", - ], - "no-regex-spaces": [ - "error", - ], - "no-reserved-keys": [ - "off", - ], - "no-self-assign": [ - "error", - ], - "no-setter-return": [ - "error", - ], - "no-shadow": [ - "off", - ], - "no-shadow-restricted-names": [ - "error", - ], - "no-space-before-semi": [ - "off", - ], - "no-spaced-func": [ - "off", - ], - "no-sparse-arrays": [ - "error", - ], - "no-tabs": [ - 0, - ], - "no-this-before-super": [ - "error", - ], - "no-trailing-spaces": [ - "off", - ], - "no-undef": [ - "error", - ], - "no-underscore-dangle": [ - "off", - ], - "no-unexpected-multiline": [ - 0, - ], - "no-unreachable": [ - "error", - ], - "no-unsafe-finally": [ - "error", - ], - "no-unsafe-negation": [ - "error", - ], - "no-unsafe-optional-chaining": [ - "error", - ], - "no-unused-labels": [ - "error", - ], - "no-unused-vars": [ - "error", - { - "argsIgnorePattern": "^_", - "varsIgnorePattern": "^_", - }, - ], - "no-use-before-define": [ - "off", - ], - "no-useless-backreference": [ - "error", - ], - "no-useless-catch": [ - "error", - ], - "no-useless-constructor": [ - "off", - ], - "no-useless-escape": [ - "off", - ], - "no-whitespace-before-property": [ - "off", - ], - "no-with": [ - "error", - ], - "no-wrap-func": [ - "off", - ], - "nonblock-statement-body-position": [ - "off", - ], - "object-curly-newline": [ - "off", - ], - "object-curly-spacing": [ - "off", - ], - "object-property-newline": [ - "off", - ], - "object-shorthand": [ - "warn", - ], - "one-var-declaration-per-line": [ - "off", - ], - "operator-linebreak": [ - "off", - ], - "padded-blocks": [ - "off", - ], - "prefer-const": [ - "warn", - ], - "prefer-template": [ - "warn", - ], - "quote-props": [ - "warn", - "as-needed", - ], - "quotes": [ - "off", - ], - "react/jsx-child-element-spacing": [ - "off", - ], - "react/jsx-closing-bracket-location": [ - "off", - ], - "react/jsx-closing-tag-location": [ - "off", - ], - "react/jsx-curly-newline": [ - "off", - ], - "react/jsx-curly-spacing": [ - "off", - ], - "react/jsx-equals-spacing": [ - "off", - ], - "react/jsx-first-prop-new-line": [ - "off", - ], - "react/jsx-indent": [ - "off", - ], - "react/jsx-indent-props": [ - "off", - ], - "react/jsx-max-props-per-line": [ - "off", - ], - "react/jsx-newline": [ - "off", - ], - "react/jsx-one-expression-per-line": [ - "off", - ], - "react/jsx-props-no-multi-spaces": [ - "off", - ], - "react/jsx-space-before-closing": [ - "off", - ], - "react/jsx-tag-spacing": [ - "off", - ], - "react/jsx-wrap-multilines": [ - "off", - ], - "require-yield": [ - "error", - ], - "rest-spread-spacing": [ - "off", - ], - "semi": [ - "error", - "always", - ], - "semi-spacing": [ - "off", - ], - "semi-style": [ - "off", - ], - "space-after-function-name": [ - "off", - ], - "space-after-keywords": [ - "off", - ], - "space-before-blocks": [ - "off", - ], - "space-before-function-paren": [ - "warn", - { - "anonymous": "always", - "asyncArrow": "always", - "named": "never", - }, - ], - "space-before-function-parentheses": [ - "off", - ], - "space-before-keywords": [ - "off", - ], - "space-in-brackets": [ - "off", - ], - "space-in-parens": [ - "off", - ], - "space-infix-ops": [ - "off", - ], - "space-return-throw-case": [ - "off", - ], - "space-unary-ops": [ - "off", - ], - "space-unary-word-ops": [ - "off", - ], - "standard/array-bracket-even-spacing": [ - "off", - ], - "standard/computed-property-even-spacing": [ - "off", - ], - "standard/object-curly-even-spacing": [ - "off", - ], - "switch-colon-spacing": [ - "off", - ], - "template-curly-spacing": [ - "off", - ], - "template-tag-spacing": [ - "off", - ], - "unicode-bom": [ - "off", - ], - "unicorn/empty-brace-spaces": [ - "off", - ], - "unicorn/no-nested-ternary": [ - "off", - ], - "unicorn/number-literal-case": [ - "off", - ], - "use-isnan": [ - "error", - ], - "use-macros/graphql-tag": [ - "error", - ], - "valid-typeof": [ - "error", - ], - "vue/array-bracket-newline": [ - "off", - ], - "vue/array-bracket-spacing": [ - "off", - ], - "vue/array-element-newline": [ - "off", - ], - "vue/arrow-spacing": [ - "off", - ], - "vue/block-spacing": [ - "off", - ], - "vue/block-tag-newline": [ - "off", - ], - "vue/brace-style": [ - "off", - ], - "vue/comma-dangle": [ - "off", - ], - "vue/comma-spacing": [ - "off", - ], - "vue/comma-style": [ - "off", - ], - "vue/dot-location": [ - "off", - ], - "vue/func-call-spacing": [ - "off", - ], - "vue/html-closing-bracket-newline": [ - "off", - ], - "vue/html-closing-bracket-spacing": [ - "off", - ], - "vue/html-end-tags": [ - "off", - ], - "vue/html-indent": [ - "off", - ], - "vue/html-quotes": [ - "off", - ], - "vue/html-self-closing": [ - 0, - ], - "vue/key-spacing": [ - "off", - ], - "vue/keyword-spacing": [ - "off", - ], - "vue/max-attributes-per-line": [ - "off", - ], - "vue/max-len": [ - 0, - ], - "vue/multiline-html-element-content-newline": [ - "off", - ], - "vue/multiline-ternary": [ - "off", - ], - "vue/mustache-interpolation-spacing": [ - "off", - ], - "vue/no-extra-parens": [ - "off", - ], - "vue/no-multi-spaces": [ - "off", - ], - "vue/no-spaces-around-equal-signs-in-attribute": [ - "off", - ], - "vue/object-curly-newline": [ - "off", - ], - "vue/object-curly-spacing": [ - "off", - ], - "vue/object-property-newline": [ - "off", - ], - "vue/operator-linebreak": [ - "off", - ], - "vue/quote-props": [ - "off", - ], - "vue/script-indent": [ - "off", - ], - "vue/singleline-html-element-content-newline": [ - "off", - ], - "vue/space-in-parens": [ - "off", - ], - "vue/space-infix-ops": [ - "off", - ], - "vue/space-unary-ops": [ - "off", - ], - "vue/template-curly-spacing": [ - "off", - ], - "wrap-iife": [ - "off", - ], - "wrap-regex": [ - "off", - ], - "yield-star-spacing": [ - "off", - ], -} -`; - -exports[`eslint-config-wantedly/without-react should match snapshot for: settings 1`] = `{}`; diff --git a/packages/eslint-config-wantedly/__tests__/index.test.js b/packages/eslint-config-wantedly/__tests__/index.test.js index cb8329da..46688bf4 100644 --- a/packages/eslint-config-wantedly/__tests__/index.test.js +++ b/packages/eslint-config-wantedly/__tests__/index.test.js @@ -1,31 +1,25 @@ const ESLint = require("eslint").ESLint; -const baseConfig = require("../index"); -const normalizePath = (path) => { - return /node_modules/.test(path) ? path.split("node_modules")[1] : path; -}; +const { base, react } = require("../index"); describe("eslint-config-wantedly", () => { - test("should match snapshot for", async () => { - const config = await new ESLint({ - baseConfig, - useEslintrc: false, - }).calculateConfigForFile("test.js"); - const keys = Object.keys(config); - - const normalizeRequiredKeys = ["extends", "parser"]; - normalizeRequiredKeys.forEach((key) => { - const newConfig = config[key]; - - if (Array.isArray(newConfig)) { - config[key] = newConfig.map(normalizePath); - } else { - config[key] = normalizePath(newConfig); - } + describe("base", () => { + test("should match snapshot for", async () => { + const config = await new ESLint({ + baseConfig: base, + overrideConfigFile: true, + }).calculateConfigForFile("test.js"); + expect(config).toMatchSnapshot(); }); + }); - keys.forEach((key) => { - expect(config[key]).toMatchSnapshot(key); + describe("react", () => { + test("should match snapshot for", async () => { + const config = await new ESLint({ + baseConfig: react, + overrideConfigFile: true, + }).calculateConfigForFile("test.jsx"); + expect(config).toMatchSnapshot(); }); }); }); diff --git a/packages/eslint-config-wantedly/__tests__/without-react.test.js b/packages/eslint-config-wantedly/__tests__/without-react.test.js deleted file mode 100644 index 51b48698..00000000 --- a/packages/eslint-config-wantedly/__tests__/without-react.test.js +++ /dev/null @@ -1,31 +0,0 @@ -const ESLint = require("eslint").ESLint; -const baseConfig = require("../without-react"); - -const normalizePath = (path) => { - return /node_modules/.test(path) ? path.split("node_modules")[1] : path; -}; - -describe("eslint-config-wantedly/without-react", () => { - test("should match snapshot for", async () => { - const config = await new ESLint({ - baseConfig, - useEslintrc: false, - }).calculateConfigForFile("test.js"); - const keys = Object.keys(config); - - const normalizeRequiredKeys = ["extends", "parser"]; - normalizeRequiredKeys.forEach((key) => { - const newConfig = config[key]; - - if (Array.isArray(newConfig)) { - config[key] = newConfig.map(normalizePath); - } else { - config[key] = normalizePath(newConfig); - } - }); - - keys.forEach((key) => { - expect(config[key]).toMatchSnapshot(key); - }); - }); -}); diff --git a/packages/eslint-config-wantedly/base.js b/packages/eslint-config-wantedly/base.js new file mode 100644 index 00000000..d1f0bba6 --- /dev/null +++ b/packages/eslint-config-wantedly/base.js @@ -0,0 +1,214 @@ +const babelEslintParser = require("@babel/eslint-parser"); +const { fixupPluginRules } = require("@eslint/compat"); +const js = require("@eslint/js"); +const configPrettier = require("eslint-config-prettier"); +const pluginESx = require("eslint-plugin-es-x"); +const pluginImport = require("eslint-plugin-import"); +const pluginJest = require("eslint-plugin-jest"); +const pluginJsxA11Y = require("eslint-plugin-jsx-a11y"); +const pluginUseMacros = require("eslint-plugin-use-macros"); +const globals = require("globals"); + +/** @type{import('eslint').Linter.Config[]} */ +module.exports = [ + js.configs.recommended, + configPrettier, + { + name: "wantedly/base", + plugins: { + import: fixupPluginRules(pluginImport), + "jsx-a11y": pluginJsxA11Y, + jest: pluginJest, + "use-macros": pluginUseMacros, + "es-x": pluginESx, + }, + languageOptions: { + globals: { + ...globals.browser, + ...pluginJest.environments.globals.globals, + ...globals.node, + flushPromises: true, + }, + + parser: babelEslintParser, + ecmaVersion: "latest", + sourceType: "module", + + parserOptions: { + requireConfigFile: false, + ecmaVersion: "latest", + ecmaFeatures: { + experimentalObjectRestSpread: true, + jsx: true, + }, + babelOptions: { + babelrc: false, + configFile: false, + // your babel options + // presets: ["@babel/preset-env"], + }, + }, + }, + rules: { + "array-callback-return": "off", + "arrow-body-style": ["off"], + "arrow-parens": ["warn", "always"], + "class-methods-use-this": "off", + + "comma-dangle": [ + "error", + { + arrays: "always-multiline", + objects: "always-multiline", + imports: "always-multiline", + exports: "always-multiline", + functions: "never", + }, + ], + + "consistent-return": "off", + "constructor-super": "error", + "dot-notation": "warn", + "for-direction": "error", + "generator-star-spacing": ["off"], + "getter-return": "error", + "jsx-no-target-blank": "off", + "jsx-quotes": ["off"], + "linebreak-style": ["error", "unix"], + "max-len": ["off"], + + "new-cap": [ + "error", + { + capIsNew: false, + }, + ], + + "no-alert": "off", + "no-array-constructor": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "warn", + "no-console": "error", + "no-const-assign": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-args": "error", + "no-dupe-class-members": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-else-return": "warn", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "warn", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-inner-declarations": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-lonely-if": "warn", + + "no-mixed-operators": [ + "warn", + { + groups: [ + ["&", "|", "^", "~", "<<", ">>", ">>>"], + ["&&", "||"], + ], + allowSamePrecedence: true, + }, + ], + + "no-nested-ternary": "off", + "no-new-symbol": "error", + "no-obj-calls": "error", + "no-octal": "error", + "no-param-reassign": "error", + + "no-plusplus": [ + "error", + { + allowForLoopAfterthoughts: true, + }, + ], + + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-shadow": "off", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-undef": "error", + "no-underscore-dangle": ["off"], + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unused-labels": "error", + + "no-unused-vars": [ + "error", + { + args: "all", + argsIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + varsIgnorePattern: "^_", + ignoreRestSiblings: true, + }, + ], + + "no-use-before-define": "off", + "no-useless-constructor": "off", + "no-useless-escape": "off", + "object-shorthand": "warn", + "prefer-const": "warn", + "prefer-template": "warn", + "quote-props": ["warn", "as-needed"], + "require-yield": "error", + + "space-before-function-paren": [ + "warn", + { + anonymous: "always", + asyncArrow: "always", + named: "never", + }, + ], + + "use-isnan": "error", + "valid-typeof": "error", + + camelcase: [ + "error", + { + ignoreDestructuring: false, + properties: "never", + }, + ], + + eqeqeq: ["error", "smart"], + indent: "off", + quotes: ["off"], + semi: ["error", "always"], + "import/extensions": "off", + "import/first": "warn", + "import/no-extraneous-dependencies": ["off"], + "import/no-unresolved": ["off"], + "import/prefer-default-export": "off", + "jsx-a11y/alt-text": "off", + "jsx-a11y/label-has-for": "off", + "jsx-a11y/no-noninteractive-element-interactions": "off", + "jsx-a11y/no-static-element-interactions": "off", + "use-macros/graphql-tag": "error", + "es-x/no-regexp-lookbehind-assertions": "error", + "es-x/no-regexp-named-capture-groups": "error", + }, + }, +]; diff --git a/packages/eslint-config-wantedly/index.js b/packages/eslint-config-wantedly/index.js index 796d4820..174a5de5 100644 --- a/packages/eslint-config-wantedly/index.js +++ b/packages/eslint-config-wantedly/index.js @@ -1,42 +1,7 @@ -const { env, globals, extends: extendOptions, parser, parserOptions, plugins, rules } = require("./without-react"); +const base = require("./base"); +const react = require("./react"); module.exports = { - env, - globals, - extends: [...extendOptions, "plugin:react/recommended"], - parser, - parserOptions, - plugins: [...plugins, "react", "react-hooks"], - rules: { - ...rules, - - // eslint-plugin-react rules - "react/forbid-prop-types": "off", - "react/jsx-closing-bracket-location": "warn", - "react/jsx-filename-extension": ["warn", { extensions: [".jsx", ".tsx"] }], - "react/jsx-indent-props": ["warn", 2], - "react/jsx-indent": ["warn", 2], - "react/jsx-no-bind": ["warn", { allowArrowFunctions: true }], - "react/jsx-no-duplicate-props": "error", - "react/jsx-no-target-blank": "warn", - "react/jsx-uses-react": ["off"], - "react/jsx-uses-vars": "error", - "react/jsx-wrap-multilines": "warn", - "react/no-array-index-key": "error", - "react/no-did-update-set-state": "error", - "react/no-find-dom-node": "error", - "react/no-multi-comp": "off", - "react/no-string-refs": "error", - "react/no-unused-prop-types": "off", - "react/prop-types": "off", - "react/react-in-jsx-scope": ["off"], - "react/require-default-props": "off", - - // eslint-plugin-react-hooks rules - "react-hooks/rules-of-hooks": "error", - "react-hooks/exhaustive-deps": "warn", - - // eslint-plugin-use-macros rules - "use-macros/styled-components": "error", - }, + base, + react, }; diff --git a/packages/eslint-config-wantedly/package.json b/packages/eslint-config-wantedly/package.json index 5f9d68aa..708902b4 100644 --- a/packages/eslint-config-wantedly/package.json +++ b/packages/eslint-config-wantedly/package.json @@ -4,16 +4,20 @@ "version": "3.2.2", "author": "Yuki Yamada ", "dependencies": { - "babel-eslint": "^10.1.0", - "eslint": "^8.54.0", - "eslint-config-prettier": "^8.3.0", - "eslint-plugin-es": "^4.1.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^25.7.0", - "eslint-plugin-jsx-a11y": "^6.5.1", - "eslint-plugin-react": "^7.28.0", + "@babel/eslint-parser": "^7.25.1", + "@eslint/compat": "^1.1.1", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.10.0", + "eslint": "^9.0.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-es-x": "^8.0.0", + "eslint-plugin-import": "^2.30.0", + "eslint-plugin-jest": "^28.8.3", + "eslint-plugin-jsx-a11y": "^6.10.0", + "eslint-plugin-react": "^7.36.0", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-use-macros": "^3.2.2" + "eslint-plugin-use-macros": "^3.2.2", + "globals": "^15.9.0" }, "homepage": "https://github.com/wantedly/frolint", "keywords": [ diff --git a/packages/eslint-config-wantedly/react.js b/packages/eslint-config-wantedly/react.js new file mode 100644 index 00000000..3312ef75 --- /dev/null +++ b/packages/eslint-config-wantedly/react.js @@ -0,0 +1,57 @@ +const { fixupPluginRules } = require("@eslint/compat"); +const { FlatCompat } = require("@eslint/eslintrc"); +const js = require("@eslint/js"); +const pluginReact = require("eslint-plugin-react"); +const pluginReactHooks = require("eslint-plugin-react-hooks"); + +const baseConfig = require("./base"); + +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +/** @type{import('eslint').Linter.Config[]} */ +module.exports = [ + ...baseConfig, + ...compat.extends("plugin:react/recommended"), + { + name: "wantedly/react", + plugins: { + react: pluginReact, + "react-hooks": fixupPluginRules(pluginReactHooks), + }, + files: ["**/*.js", "**/*.jsx"], + rules: { + // eslint-plugin-react rules + "react/forbid-prop-types": "off", + "react/jsx-closing-bracket-location": "warn", + "react/jsx-filename-extension": ["warn", { extensions: [".jsx", ".tsx"] }], + "react/jsx-indent-props": ["warn", 2], + "react/jsx-indent": ["warn", 2], + "react/jsx-no-bind": ["warn", { allowArrowFunctions: true }], + "react/jsx-no-duplicate-props": "error", + "react/jsx-no-target-blank": "warn", + "react/jsx-uses-react": ["off"], + "react/jsx-uses-vars": "error", + "react/jsx-wrap-multilines": "warn", + "react/no-array-index-key": "error", + "react/no-did-update-set-state": "error", + "react/no-find-dom-node": "error", + "react/no-multi-comp": "off", + "react/no-string-refs": "error", + "react/no-unused-prop-types": "off", + "react/prop-types": "off", + "react/react-in-jsx-scope": ["off"], + "react/require-default-props": "off", + + // eslint-plugin-react-hooks rules + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "warn", + + // eslint-plugin-use-macros rules + "use-macros/styled-components": ["error"], + }, + }, +]; diff --git a/packages/eslint-config-wantedly/without-react.js b/packages/eslint-config-wantedly/without-react.js deleted file mode 100644 index 4416f128..00000000 --- a/packages/eslint-config-wantedly/without-react.js +++ /dev/null @@ -1,149 +0,0 @@ -module.exports = { - env: { - browser: true, - es6: true, - "jest/globals": true, - node: true, - }, - globals: { - flushPromises: true, - }, - extends: ["eslint:recommended", "prettier"], - parser: "babel-eslint", - parserOptions: { - ecmaFeatures: { - experimentalObjectRestSpread: true, - jsx: true, - }, - sourceType: "module", - }, - plugins: ["import", "jsx-a11y", "jest", "use-macros", "es"], - rules: { - "array-callback-return": "off", - "arrow-body-style": ["off"], - "arrow-parens": ["warn", "always"], - "class-methods-use-this": "off", - "comma-dangle": [ - "error", - { - arrays: "always-multiline", - objects: "always-multiline", - imports: "always-multiline", - exports: "always-multiline", - functions: "never", - }, - ], - "consistent-return": "off", - "constructor-super": "error", - "dot-notation": "warn", - "for-direction": "error", - "generator-star-spacing": ["off"], - "getter-return": "error", - "jsx-no-target-blank": "off", - "jsx-quotes": ["off"], - "linebreak-style": ["error", "unix"], - "max-len": ["off"], - "new-cap": ["error", { capIsNew: false }], - "no-alert": "off", - "no-array-constructor": "error", - "no-case-declarations": "error", - "no-class-assign": "error", - "no-compare-neg-zero": "error", - "no-cond-assign": "warn", - "no-console": "error", - "no-const-assign": "error", - "no-constant-condition": "error", - "no-control-regex": "error", - "no-debugger": "error", - "no-delete-var": "error", - "no-dupe-args": "error", - "no-dupe-class-members": "error", - "no-dupe-keys": "error", - "no-duplicate-case": "error", - "no-else-return": "warn", - "no-empty-character-class": "error", - "no-empty-pattern": "error", - "no-empty": "error", - "no-ex-assign": "error", - "no-extra-boolean-cast": "warn", - "no-fallthrough": "error", - "no-func-assign": "error", - "no-global-assign": "error", - "no-inner-declarations": "error", - "no-invalid-regexp": "error", - "no-irregular-whitespace": "error", - "no-lonely-if": "warn", - "no-mixed-operators": [ - "warn", - { - groups: [ - ["&", "|", "^", "~", "<<", ">>", ">>>"], - ["&&", "||"], - ], - allowSamePrecedence: true, - }, - ], - "no-nested-ternary": "off", - "no-new-symbol": "error", - "no-obj-calls": "error", - "no-octal": "error", - "no-param-reassign": "error", - "no-plusplus": ["error", { allowForLoopAfterthoughts: true }], - "no-redeclare": "error", - "no-regex-spaces": "error", - "no-self-assign": "error", - "no-shadow": "off", - "no-sparse-arrays": "error", - "no-this-before-super": "error", - "no-undef": "error", - "no-underscore-dangle": ["off"], - "no-unreachable": "error", - "no-unsafe-finally": "error", - "no-unsafe-negation": "error", - "no-unused-labels": "error", - "no-unused-vars": [ - "error", - { - varsIgnorePattern: "^_", - argsIgnorePattern: "^_", - }, - ], - - "no-use-before-define": "off", - "no-useless-constructor": "off", - "no-useless-escape": "off", - "object-shorthand": "warn", - "prefer-const": "warn", - "prefer-template": "warn", - "quote-props": ["warn", "as-needed"], - "require-yield": "error", - "space-before-function-paren": ["warn", { anonymous: "always", asyncArrow: "always", named: "never" }], - "use-isnan": "error", - "valid-typeof": "error", - camelcase: ["error", { ignoreDestructuring: false, properties: "never" }], - eqeqeq: ["error", "smart"], - indent: "off", - quotes: ["off"], - semi: ["error", "always"], - - // eslint-plugin-import rules - "import/extensions": "off", - "import/first": "warn", - "import/no-extraneous-dependencies": ["off"], - "import/no-unresolved": ["off"], - "import/prefer-default-export": "off", - - // eslint-plugin-jsx-a11y rules - "jsx-a11y/alt-text": "off", - "jsx-a11y/label-has-for": "off", - "jsx-a11y/no-noninteractive-element-interactions": "off", - "jsx-a11y/no-static-element-interactions": "off", - - // eslint-plugin-use-macros rules - "use-macros/graphql-tag": "error", - - // eslint-plugin-es rules - "es/no-regexp-lookbehind-assertions": "error", - "es/no-regexp-named-capture-groups": "error", - }, -}; diff --git a/packages/eslint-plugin-use-macros/README.md b/packages/eslint-plugin-use-macros/README.md index 06020266..3b80d862 100644 --- a/packages/eslint-plugin-use-macros/README.md +++ b/packages/eslint-plugin-use-macros/README.md @@ -1,12 +1,6 @@ # eslint-plugin-use-macros [![npm version](https://badge.fury.io/js/eslint-plugin-use-macros.svg)](https://badge.fury.io/js/eslint-plugin-use-macros) -## Installation - -```sh -npm install --save eslint-plugin-use-macros -# or -yarn add eslint-plugin-use-macros -``` +## Rule details This plugin provides the rules to use the babel macros for specific libraries (such as styled-components and graphql-tag.) @@ -44,3 +38,41 @@ const QUERY = gql` } `; ``` + +## Installation + +```sh +npm install --save eslint-plugin-use-macros +# or +yarn add eslint-plugin-use-macros +``` + +## Usage + +### With "Flat Config" + +```js +import pluginUseMacros from "eslint-plugin-use-macros"; + +export default [ + { + plugins: { + "use-macros": pluginUseMacros, + }, + rules: { + "use-macros/styled-components": "error", + }, + }, +]; +``` + +### With "Legacy Config" + +```json +{ + "plugins": ["use-macros"], + "rules": { + "use-macros/styled-components": "error" + } +} +``` diff --git a/packages/eslint-plugin-use-macros/__tests__/GraphQLTag.test.js b/packages/eslint-plugin-use-macros/__tests__/GraphQLTag.test.js index 16098557..8e0f27d1 100644 --- a/packages/eslint-plugin-use-macros/__tests__/GraphQLTag.test.js +++ b/packages/eslint-plugin-use-macros/__tests__/GraphQLTag.test.js @@ -1,17 +1,17 @@ const RuleTester = require("eslint").RuleTester; -const ESLintConfigWantedly = require("eslint-config-wantedly-typescript"); + const GraphQLTagRule = require("../rules/GraphQLTag"); -RuleTester.setDefaultConfig({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, +const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: "latest", + }, }); - -const ruleTester = new RuleTester(); ruleTester.run("use-macros/graphql-tag", GraphQLTagRule, { valid: [ { code: `import { gql } from "graphql.macro";`, + options: ["error"], }, ], invalid: [ @@ -19,6 +19,7 @@ ruleTester.run("use-macros/graphql-tag", GraphQLTagRule, { code: `import gql from "graphql-tag";`, output: `import { gql } from "graphql.macro";`, errors: ['Please import from "graphql.macro" instead of "graphql-tag"'], + options: ["error"], }, ], }); diff --git a/packages/eslint-plugin-use-macros/__tests__/StyledComponents.test.js b/packages/eslint-plugin-use-macros/__tests__/StyledComponents.test.js index 088c4e4a..15cac2f0 100644 --- a/packages/eslint-plugin-use-macros/__tests__/StyledComponents.test.js +++ b/packages/eslint-plugin-use-macros/__tests__/StyledComponents.test.js @@ -1,17 +1,17 @@ const RuleTester = require("eslint").RuleTester; -const ESLintConfigWantedly = require("eslint-config-wantedly-typescript"); + const StyledComponentsRule = require("../rules/StyledComponents"); -RuleTester.setDefaultConfig({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, +const ruleTester = new RuleTester({ + languageOptions: { + ecmaVersion: "latest", + }, }); - -const ruleTester = new RuleTester(); ruleTester.run("use-macros/styled-components", StyledComponentsRule, { valid: [ { code: `import styled from "styled-components/macro";`, + options: ["error"], }, ], invalid: [ @@ -19,6 +19,7 @@ ruleTester.run("use-macros/styled-components", StyledComponentsRule, { code: `import styled from "styled-components";`, output: `import styled from "styled-components/macro";`, errors: ['Please import from "styled-components/macro" instead of "styled-components"'], + options: ["error"], }, ], }); diff --git a/packages/eslint-plugin-use-macros/index.js b/packages/eslint-plugin-use-macros/index.js index 40d92a7a..f081bafb 100644 --- a/packages/eslint-plugin-use-macros/index.js +++ b/packages/eslint-plugin-use-macros/index.js @@ -1,7 +1,11 @@ const GraphQLTag = require("./rules/GraphQLTag"); const StyledComponents = require("./rules/StyledComponents"); +/** @type {import('eslint').ESLint.Plugin } */ module.exports = { + meta: { + name: "eslint-plugin-use-macros", + }, rules: { "graphql-tag": GraphQLTag, "styled-components": StyledComponents, diff --git a/packages/eslint-plugin-use-macros/package.json b/packages/eslint-plugin-use-macros/package.json index 7febe15e..f820b4b4 100644 --- a/packages/eslint-plugin-use-macros/package.json +++ b/packages/eslint-plugin-use-macros/package.json @@ -20,7 +20,7 @@ }, "devDependencies": { "babel-plugin-macros": "^3.1.0", - "eslint": "^8.54.0", + "eslint": "^9.0.0", "graphql-tag": "^2.12.5", "graphql.macro": "^1.4.2", "styled-components": "^5.3.0" diff --git a/packages/eslint-plugin-use-macros/rules/GraphQLTag.js b/packages/eslint-plugin-use-macros/rules/GraphQLTag.js index d1c0441b..737124eb 100644 --- a/packages/eslint-plugin-use-macros/rules/GraphQLTag.js +++ b/packages/eslint-plugin-use-macros/rules/GraphQLTag.js @@ -18,10 +18,16 @@ try { GRAPHQL_MACRO_INSTALLED = false; } +/** @type {import('eslint').Rule.RuleModule } */ module.exports = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + ], }, create(context) { return { diff --git a/packages/eslint-plugin-use-macros/rules/StyledComponents.js b/packages/eslint-plugin-use-macros/rules/StyledComponents.js index 00977f34..e222bb6b 100644 --- a/packages/eslint-plugin-use-macros/rules/StyledComponents.js +++ b/packages/eslint-plugin-use-macros/rules/StyledComponents.js @@ -1,9 +1,15 @@ const createUseMacro = require("../createUseMacro"); +/** @type {import('eslint').Rule.RuleModule } */ module.exports = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + ], }, create(context) { return { diff --git a/packages/eslint-plugin-wantedly/README.md b/packages/eslint-plugin-wantedly/README.md index d043a5be..35c7029e 100644 --- a/packages/eslint-plugin-wantedly/README.md +++ b/packages/eslint-plugin-wantedly/README.md @@ -1,12 +1,6 @@ # eslint-plugin-wantedly [![npm version](https://badge.fury.io/js/eslint-plugin-wantedly.svg)](https://badge.fury.io/js/eslint-plugin-wantedly) -## Installation - -```sh -npm install --save eslint-plugin-wantedly -# or -yarn add eslint-plugin-wantedly -``` +## Rule details This plugin provides the opinionated rules in Wantedly. @@ -24,3 +18,41 @@ This plugin provides the opinionated rules in Wantedly. - Check the enum members are UPPER_CASE if the code using `nexus` - [`wantedly/nexus-type-description`](./docs/rules/nexus-type-description.md) - Validate that the types have descriptions if the code using `nexus` + +## Installation + +```sh +npm install --save eslint-plugin-wantedly +# or +yarn add eslint-plugin-wantedly +``` + +## Usage + +### With "Flat Config" + +```js +import pluginWantedly from "eslint-plugin-wantedly"; + +export default [ + { + plugins: { + wantedly: pluginWantedly, + }, + rules: { + "wantedly/graphql-pascal-case-type-name": ["error", { autofix: true }], + }, + }, +]; +``` + +### With "Legacy Config" + +```json +{ + "plugins": ["wantedly"], + "rules": { + "wantedly/graphql-pascal-case-type-name": ["error", { "autofix": true }] + } +} +``` diff --git a/packages/eslint-plugin-wantedly/package.json b/packages/eslint-plugin-wantedly/package.json index 126e5709..9f357f6a 100644 --- a/packages/eslint-plugin-wantedly/package.json +++ b/packages/eslint-plugin-wantedly/package.json @@ -26,11 +26,11 @@ "snake-case": "^3.0.4" }, "devDependencies": { - "eslint": "^8.54.0", + "eslint": "^9.0.0", "graphql": "^15.6.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^9.0.0", "graphql": "^14.6.0 || ^15.0.0" }, "jest": { diff --git a/packages/eslint-plugin-wantedly/src/__tests__/__snapshots__/index.test.ts.snap b/packages/eslint-plugin-wantedly/src/__tests__/__snapshots__/index.test.ts.snap index 6897aba6..99cde6d8 100644 --- a/packages/eslint-plugin-wantedly/src/__tests__/__snapshots__/index.test.ts.snap +++ b/packages/eslint-plugin-wantedly/src/__tests__/__snapshots__/index.test.ts.snap @@ -2,6 +2,212 @@ exports[`should match snapshot 1`] = ` { + "default": { + "meta": { + "name": "eslint-plugin-wantedly", + }, + "rules": { + "graphql-operation-name": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/graphql-operation-name.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], + "type": "suggestion", + }, + }, + "graphql-pascal-case-type-name": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/graphql-pascal-case-type-name.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], + "type": "suggestion", + }, + }, + "nexus-camel-case-field-name": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-camel-case-field-name.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], + "type": "suggestion", + }, + }, + "nexus-enum-values-description": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-enum-values-description.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], + "type": "suggestion", + }, + }, + "nexus-field-description": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-field-description.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], + "type": "suggestion", + }, + }, + "nexus-pascal-case-type-name": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-pascal-case-type-name.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], + "type": "suggestion", + }, + }, + "nexus-type-description": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-type-description.md", + }, + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], + "type": "suggestion", + }, + }, + "nexus-upper-case-enum-members": { + "create": [Function], + "meta": { + "docs": { + "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-upper-case-enum-members.md", + }, + "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], + "type": "suggestion", + }, + }, + }, + }, + "meta": { + "name": "eslint-plugin-wantedly", + }, "rules": { "graphql-operation-name": { "create": [Function], @@ -10,6 +216,24 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/graphql-operation-name.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], "type": "suggestion", }, }, @@ -20,6 +244,24 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/graphql-pascal-case-type-name.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], "type": "suggestion", }, }, @@ -30,6 +272,24 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-camel-case-field-name.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], "type": "suggestion", }, }, @@ -40,6 +300,15 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-enum-values-description.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], "type": "suggestion", }, }, @@ -50,6 +319,15 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-field-description.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], "type": "suggestion", }, }, @@ -60,6 +338,24 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-pascal-case-type-name.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], "type": "suggestion", }, }, @@ -69,6 +365,15 @@ exports[`should match snapshot 1`] = ` "docs": { "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-type-description.md", }, + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + ], "type": "suggestion", }, }, @@ -79,6 +384,24 @@ exports[`should match snapshot 1`] = ` "url": "https://github.com/wantedly/frolint/tree/master/packages/eslint-plugin-wantedly/docs/rules/nexus-upper-case-enum-members.md", }, "fixable": "code", + "schema": [ + { + "enum": [ + "error", + "warn", + "off", + ], + }, + { + "additionalProperties": false, + "properties": { + "autofix": { + "type": "boolean", + }, + }, + "type": "object", + }, + ], "type": "suggestion", }, }, diff --git a/packages/eslint-plugin-wantedly/src/index.ts b/packages/eslint-plugin-wantedly/src/index.ts index e2fffa01..1e3f0fba 100644 --- a/packages/eslint-plugin-wantedly/src/index.ts +++ b/packages/eslint-plugin-wantedly/src/index.ts @@ -1,3 +1,5 @@ +import type { ESLint } from "eslint"; + import * as GRAPHQL_OPERATION_NAME from "./rules/graphql-operation-name"; import * as GRAPHQL_PASCAL_CASE_TYPE_NAME from "./rules/graphql-pascal-case-type-name"; import * as NEXUS_CAMEL_CASE_FIELD_NAME from "./rules/nexus-camel-case-field-name"; @@ -7,13 +9,20 @@ import * as NEXUS_PASCAL_CASE_TYPE_NAME from "./rules/nexus-pascal-case-type-nam import * as NEXUS_TYPE_DESCRIPTION from "./rules/nexus-type-description"; import * as NEXUS_UPPER_CASE_ENUM_MEMBERS from "./rules/nexus-upper-case-enum-members"; -export const rules = { - [GRAPHQL_OPERATION_NAME.RULE_NAME]: GRAPHQL_OPERATION_NAME.RULE, - [GRAPHQL_PASCAL_CASE_TYPE_NAME.RULE_NAME]: GRAPHQL_PASCAL_CASE_TYPE_NAME.RULE, - [NEXUS_CAMEL_CASE_FIELD_NAME.RULE_NAME]: NEXUS_CAMEL_CASE_FIELD_NAME.RULE, - [NEXUS_ENUM_VALUES_DESCRIPTION.RULE_NAME]: NEXUS_ENUM_VALUES_DESCRIPTION.RULE, - [NEXUS_FIELD_DESCRIPTION.RULE_NAME]: NEXUS_FIELD_DESCRIPTION.RULE, - [NEXUS_PASCAL_CASE_TYPE_NAME.RULE_NAME]: NEXUS_PASCAL_CASE_TYPE_NAME.RULE, - [NEXUS_TYPE_DESCRIPTION.RULE_NAME]: NEXUS_TYPE_DESCRIPTION.RULE, - [NEXUS_UPPER_CASE_ENUM_MEMBERS.RULE_NAME]: NEXUS_UPPER_CASE_ENUM_MEMBERS.RULE, +const plugins: ESLint.Plugin = { + meta: { + name: "eslint-plugin-wantedly", + }, + rules: { + [GRAPHQL_OPERATION_NAME.RULE_NAME]: GRAPHQL_OPERATION_NAME.RULE, + [GRAPHQL_PASCAL_CASE_TYPE_NAME.RULE_NAME]: GRAPHQL_PASCAL_CASE_TYPE_NAME.RULE, + [NEXUS_CAMEL_CASE_FIELD_NAME.RULE_NAME]: NEXUS_CAMEL_CASE_FIELD_NAME.RULE, + [NEXUS_ENUM_VALUES_DESCRIPTION.RULE_NAME]: NEXUS_ENUM_VALUES_DESCRIPTION.RULE, + [NEXUS_FIELD_DESCRIPTION.RULE_NAME]: NEXUS_FIELD_DESCRIPTION.RULE, + [NEXUS_PASCAL_CASE_TYPE_NAME.RULE_NAME]: NEXUS_PASCAL_CASE_TYPE_NAME.RULE, + [NEXUS_TYPE_DESCRIPTION.RULE_NAME]: NEXUS_TYPE_DESCRIPTION.RULE, + [NEXUS_UPPER_CASE_ENUM_MEMBERS.RULE_NAME]: NEXUS_UPPER_CASE_ENUM_MEMBERS.RULE, + }, }; + +export = plugins; diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-operation-name.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-operation-name.test.ts index 8ebf54a8..8ad62d12 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-operation-name.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-operation-name.test.ts @@ -1,16 +1,21 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../graphql-operation-name"; const ruleTester = new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }); ruleTester.run(RULE_NAME, RULE, { valid: [ { + name: "Operation name is Pascal case", code: ` gql\` query GetProject { @@ -20,6 +25,7 @@ gql\` `, }, { + name: "With fragment", code: ` gql\` query GetProject { @@ -32,6 +38,7 @@ gql\` ], invalid: [ { + name: "Operation name is camelCase", code: ` gql\` query getProject { @@ -42,6 +49,7 @@ gql\` errors: ["The operation name getProject should be PascalCase"], }, { + name: "autofix option is enabled", code: `gql\` query getProject { id @@ -53,9 +61,10 @@ gql\` } \`;`, errors: ["The operation name getProject should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "No operation name is specified for a query", code: ` gql\` query { @@ -66,6 +75,7 @@ gql\` errors: ["Specify the operation name for query"], }, { + name: "No operation name is specified for a mutation", code: ` gql\` mutation { @@ -76,6 +86,7 @@ gql\` errors: ["Specify the operation name for mutation"], }, { + name: "Fragment definition is not appropriate", code: ` gql\` query GetProject { diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-pascal-case-type-name.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-pascal-case-type-name.test.ts index b99efaf7..d41590b8 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-pascal-case-type-name.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/graphql-pascal-case-type-name.test.ts @@ -1,16 +1,21 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../graphql-pascal-case-type-name"; const ruleTester = new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }); ruleTester.run(RULE_NAME, RULE, { valid: [ { + name: "Type name is PascalCase", code: `gql\` type Foo { id: ID! @@ -19,6 +24,7 @@ ruleTester.run(RULE_NAME, RULE, { \`;`, }, { + name: "Interface type name is PascalCase", code: `gql\` interface Node { id: ID! @@ -26,6 +32,7 @@ ruleTester.run(RULE_NAME, RULE, { \`;`, }, { + name: "Fragment name is PascalCase", code: `gql\` fragment FooFragment on Foo { id @@ -35,6 +42,7 @@ ruleTester.run(RULE_NAME, RULE, { ], invalid: [ { + name: "Interface type name is camelCase", code: `gql\` interface node { id: ID! @@ -43,6 +51,7 @@ ruleTester.run(RULE_NAME, RULE, { errors: ["The interface type node should be PascalCase"], }, { + name: "Type name is camelCase", code: `gql\` type foo implements Node { id: ID! @@ -52,6 +61,7 @@ ruleTester.run(RULE_NAME, RULE, { errors: ["The object type foo should be PascalCase"], }, { + name: "Fragment name is camelCase", code: `gql\` fragment fooFragment on Foo { id @@ -61,6 +71,7 @@ ruleTester.run(RULE_NAME, RULE, { }, { + name: "Interface type name is fixed by plugin", code: `gql\` interface node { id: ID! @@ -72,9 +83,10 @@ ruleTester.run(RULE_NAME, RULE, { } \`;`, errors: ["The interface type node should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Type name is fixed by plugin", code: `gql\` type foo implements Node { id: ID! @@ -88,9 +100,10 @@ ruleTester.run(RULE_NAME, RULE, { } \`;`, errors: ["The object type foo should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Fragment name is fixed by plugin", code: `gql\` fragment fooFragment on Foo { id @@ -102,9 +115,10 @@ ruleTester.run(RULE_NAME, RULE, { } \`;`, errors: ["The fragment fooFragment should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Nested fragment name is fixed by plugin", code: `gql\` fragment fooFragment on Foo { id @@ -118,9 +132,10 @@ ruleTester.run(RULE_NAME, RULE, { \$\{BarFragment\} \`;`, errors: ["The fragment fooFragment should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Nested fragment name is fixed by plugin 2", code: `gql\` \$\{BarFragment\} fragment fooFragment on Foo { @@ -134,7 +149,7 @@ ruleTester.run(RULE_NAME, RULE, { } \`;`, errors: ["The fragment fooFragment should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, ], }); diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-camel-case-field-name.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-camel-case-field-name.test.ts index 6aa3ad2a..8858167a 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-camel-case-field-name.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-camel-case-field-name.test.ts @@ -1,17 +1,22 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-camel-case-field-name"; const ruleTester = new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }); ruleTester.run(RULE_NAME, RULE, { valid: [], invalid: [ { + name: "All fields are Pascal case", code: `import { objectType } from "@nexus/schema"; const User = objectType({ name: "User", @@ -34,8 +39,10 @@ const User = objectType({ "The field Profile should be camelCase", "The field Posts should be camelCase", ], + options: ["error"], }, { + name: "Auto fix enabled", code: `import { objectType } from "@nexus/schema"; const User = objectType({ name: "User", @@ -71,7 +78,7 @@ const User = objectType({ "The field Profile should be camelCase", "The field Posts should be camelCase", ], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, ], }); diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-enum-values-description.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-enum-values-description.test.ts index 51628ae7..846af621 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-enum-values-description.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-enum-values-description.test.ts @@ -1,17 +1,22 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-enum-values-description"; const ruleTester = new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }); ruleTester.run(RULE_NAME, RULE, { valid: [], invalid: [ { + name: "Some members has no description", code: `import { enumType } from "@nexus/schema"; export const CountryCode = enumType({ name: "CountryCode", @@ -31,6 +36,7 @@ export const CountryCode = enumType({ ], }, { + name: "Bad enum definition", code: `import { enumType } from "@nexus/schema"; export const CountryCode = enumType({ name: "CountryCode", @@ -45,6 +51,7 @@ export const CountryCode = enumType({ }, { + name: "Some members has no description(member array is defined before enumType)", code: `import { enumType } from "@nexus/schema"; const members = [ { name: "JP", description: "This represents Japan" }, @@ -65,6 +72,7 @@ export const CountryCode = enumType({ ], }, { + name: "Bad member definition(member array is defined before enumType)", code: `import { enumType } from "@nexus/schema"; const members = { JP: 1, US: 2 }; export const CountryCode = enumType({ diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-field-description.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-field-description.test.ts index 903e35c6..9df7ac84 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-field-description.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-field-description.test.ts @@ -1,16 +1,21 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-field-description"; new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }).run(RULE_NAME, RULE, { valid: [], invalid: [ { + name: "All fields have no description", code: `import { objectType } from "@nexus/schema"; const User = objectType({ name: "User", diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-pascal-case-type-name.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-pascal-case-type-name.test.ts index 31023f68..4941bc7f 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-pascal-case-type-name.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-pascal-case-type-name.test.ts @@ -1,16 +1,21 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-pascal-case-type-name"; new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }).run(RULE_NAME, RULE, { valid: [], invalid: [ { + name: "Object type name is not PascalCase", code: `import { objectType } from "@nexus/schema"; const Foo = objectType({ name: "foo", @@ -26,9 +31,10 @@ const Foo = objectType({ }, });`, errors: ["The object type name foo should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Union type name is not PascalCase", code: `import { unionType } from "@nexus/schema"; const MediaType = unionType({ name: "mediaType", @@ -48,9 +54,10 @@ const MediaType = unionType({ }, });`, errors: ["The union type name mediaType should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Scalar type name is not PascalCase", code: `import { scalarType } from "@nexus/schema"; const DateScalar = scalarType({ name: "date", @@ -80,9 +87,10 @@ const DateScalar = scalarType({ }, });`, errors: ["The scalar type name date should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Interface type name is not PascalCase", code: `import { interfaceType } from "@nexus/schema"; const Node = interfaceType({ name: "node", @@ -98,9 +106,10 @@ const Node = interfaceType({ }, });`, errors: ["The interface type name node should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Input type name is not PascalCase", code: `import { inputObjectType } from "@nexus/schema"; export const InputType = inputObjectType({ name: "inputType", @@ -118,9 +127,10 @@ export const InputType = inputObjectType({ }, });`, errors: ["The input object type name inputType should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Enum type is not Pascal case", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "episode", @@ -134,7 +144,7 @@ const Episode = enumType({ description: "The first Star Wars episodes released", });`, errors: ["The enum type name episode should be PascalCase"], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, ], }); diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-type-description.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-type-description.test.ts index e9e22328..ffcc1ebc 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-type-description.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-type-description.test.ts @@ -1,15 +1,20 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-type-description"; new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }).run(RULE_NAME, RULE, { valid: [ { + name: "Object type def has description", code: `import { objectType } from "@nexus/schema"; const Foo = objectType({ name: "Foo", @@ -22,6 +27,7 @@ const Foo = objectType({ ], invalid: [ { + name: "Object type def has no description(empty string)", code: `import { objectType } from "@nexus/schema"; const Foo = objectType({ name: "Foo", @@ -33,6 +39,7 @@ const Foo = objectType({ errors: ["The object type Foo should have a description"], }, { + name: "Object type def has no description(field missing)", code: `import { objectType } from "@nexus/schema"; const Foo = objectType({ name: "Foo", @@ -43,6 +50,7 @@ const Foo = objectType({ errors: ["The object type Foo should have a description"], }, { + name: "Object type def has no description(field missing)", code: `import { objectType } from "@nexus/schema"; const Foo = objectType({ name: "Foo", @@ -52,6 +60,7 @@ const Foo = objectType({ }, { + name: "Union type def has no description", code: `import { unionType } from "@nexus/schema"; const Foo = unionType({ name: "Foo", @@ -61,6 +70,7 @@ const Foo = unionType({ }, { + name: "Scalar type def has no description", code: `import { scalarType } from "@nexus/schema"; const Foo = scalarType({ name: "Foo", @@ -70,6 +80,7 @@ const Foo = scalarType({ }, { + name: "Interface type def has no description", code: `import { interfaceType } from "@nexus/schema"; const Foo = interfaceType({ name: "Foo", @@ -79,6 +90,7 @@ const Foo = interfaceType({ }, { + name: "Input object type def has no description", code: `import { inputObjectType } from "@nexus/schema"; const Foo = inputObjectType({ name: "Foo", @@ -88,6 +100,7 @@ const Foo = inputObjectType({ }, { + name: "Enum type def has no description", code: `import { enumType } from "@nexus/schema"; const Foo = enumType({ name: "Foo", diff --git a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-upper-case-enum-members.test.ts b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-upper-case-enum-members.test.ts index 375f6347..154bd3cf 100644 --- a/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-upper-case-enum-members.test.ts +++ b/packages/eslint-plugin-wantedly/src/rules/__tests__/nexus-upper-case-enum-members.test.ts @@ -1,16 +1,21 @@ import { RuleTester } from "eslint"; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; +// import ESLintConfigWantedly from "eslint-config-wantedly-typescript"; import { RULE, RULE_NAME } from "../nexus-upper-case-enum-members"; new RuleTester({ - parser: require.resolve(ESLintConfigWantedly.parser), - parserOptions: ESLintConfigWantedly.parserOptions, + languageOptions: { + ecmaVersion: "latest", + // parser: require.resolve(ESLintConfigWantedly.parser), + // parserOptions: ESLintConfigWantedly.parserOptions, + }, }).run(RULE_NAME, RULE, { valid: [], invalid: [ { + name: "Enum member is no UPPER_CASE (string array def)", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -23,6 +28,7 @@ const Episode = enumType({ ], }, { + name: "Enum member is fixed to UPPER_CASE by plugin", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -38,10 +44,11 @@ const Episode = enumType({ "The enum member `Episode.empire` should be UPPER_CASE", "The enum member `Episode.jedi` should be UPPER_CASE", ], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Enum member is not UPPER_CASE (object array def)", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -58,6 +65,7 @@ const Episode = enumType({ ], }, { + name: "Enum member is fixed to UPPER_CASE by the plugin (object array def)", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -81,10 +89,11 @@ const Episode = enumType({ "The enum member `Episode.empire` should be UPPER_CASE", "The enum member `Episode.jedi` should be UPPER_CASE", ], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Enum member is not UPPER_CASE (object def)", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -97,6 +106,7 @@ const Episode = enumType({ ], }, { + name: "Enum member is fixed to UPPER_CASE by the plugin (object def)", code: `import { enumType } from "@nexus/schema"; const Episode = enumType({ name: "Episode", @@ -112,10 +122,11 @@ const Episode = enumType({ "The enum member `Episode.empire` should be UPPER_CASE", "The enum member `Episode.jedi` should be UPPER_CASE", ], - options: [{ autofix: true }], + options: ["error", { autofix: true }], }, { + name: "Enum member is not UPPER_CASE (array def is outside of enumType)", code: `import { enumType } from "@nexus/schema"; const members = ["newhope", "empire", "jedi"]; const Episode = enumType({ @@ -130,6 +141,7 @@ const Episode = enumType({ }, { + name: "Enum member is not UPPER_CASE (object def is outside of enumType)", code: `import { enumType } from "@nexus/schema"; const members = { newhope: 1, empire: 2, jedi: 3 }; const Episode = enumType({ diff --git a/packages/eslint-plugin-wantedly/src/rules/graphql-operation-name.ts b/packages/eslint-plugin-wantedly/src/rules/graphql-operation-name.ts index d1a7d864..8c8cd790 100644 --- a/packages/eslint-plugin-wantedly/src/rules/graphql-operation-name.ts +++ b/packages/eslint-plugin-wantedly/src/rules/graphql-operation-name.ts @@ -1,10 +1,9 @@ import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type * as GraphQL from "graphql"; import { pascalCase } from "pascal-case"; + import { docsUrl, getOptionWithDefault } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "graphql-operation-name"; let GRAPHQL_INSTALLED = false; @@ -21,10 +20,24 @@ const DEFAULT_OPTION = { autofix: false, }; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + { + type: "object", + properties: { + autofix: { + type: "boolean", + }, + }, + additionalProperties: false, + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -138,6 +151,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/graphql-pascal-case-type-name.ts b/packages/eslint-plugin-wantedly/src/rules/graphql-pascal-case-type-name.ts index 727ee71b..2a80a4ad 100644 --- a/packages/eslint-plugin-wantedly/src/rules/graphql-pascal-case-type-name.ts +++ b/packages/eslint-plugin-wantedly/src/rules/graphql-pascal-case-type-name.ts @@ -1,5 +1,4 @@ import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type { TaggedTemplateExpression } from "estree"; import type * as GraphQL from "graphql"; import type { @@ -11,9 +10,9 @@ import type { } from "graphql"; import type { EnterLeave } from "graphql/language/visitor"; import { pascalCase } from "pascal-case"; + import { docsUrl, getOptionWithDefault } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "graphql-pascal-case-type-name"; let GRAPHQL_INSTALLED = false; @@ -74,10 +73,24 @@ function createGraphQLCapitalizeTypeRule< }; } -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + { + type: "object", + properties: { + autofix: { + type: "boolean", + }, + }, + additionalProperties: false, + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -161,6 +174,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-camel-case-field-name.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-camel-case-field-name.ts index 43941a06..8f3f2a2c 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-camel-case-field-name.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-camel-case-field-name.ts @@ -1,10 +1,9 @@ import { camelCase } from "camel-case"; import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type { Property } from "estree"; + import { docsUrl, getOptionWithDefault, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-camel-case-field-name"; const WHITELIST_FOR_TYPE_DEFINITION = ["objectType", "interfaceType", "inputObjectType"]; @@ -15,10 +14,24 @@ const DEFAULT_OPTION = { autofix: false, }; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + { + type: "object", + properties: { + autofix: { + type: "boolean", + }, + }, + additionalProperties: false, + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -105,6 +118,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-enum-values-description.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-enum-values-description.ts index d5dfed67..89a4f1a1 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-enum-values-description.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-enum-values-description.ts @@ -1,15 +1,19 @@ import type { AST, Rule } from "eslint"; -import { Linter } from "eslint"; import type { ObjectExpression, Property, VariableDeclarator } from "estree"; + import { docsUrl, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-enum-values-description"; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -228,6 +232,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-field-description.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-field-description.ts index b39e0c9c..e34769f1 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-field-description.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-field-description.ts @@ -1,18 +1,22 @@ import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type { Property } from "estree"; + import { docsUrl, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-field-description"; const WHITELIST_FOR_TYPE_DEFINITION = ["objectType", "interfaceType", "inputObjectType"]; const FIELD_DEFINITION_METHODS = ["string", "int", "boolean", "id", "float", "field"]; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -111,6 +115,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-pascal-case-type-name.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-pascal-case-type-name.ts index 3dbf50a7..f3031fe0 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-pascal-case-type-name.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-pascal-case-type-name.ts @@ -1,11 +1,10 @@ import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type { Property } from "estree"; import { pascalCase } from "pascal-case"; import { snakeCase } from "snake-case"; + import { docsUrl, getOptionWithDefault, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-pascal-case-type-name"; const FUNCTION_WHITELIST = ["objectType", "unionType", "scalarType", "interfaceType", "inputObjectType", "enumType"]; @@ -15,10 +14,24 @@ const DEFAULT_OPTION = { autofix: false, }; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + { + type: "object", + properties: { + autofix: { + type: "boolean", + }, + }, + additionalProperties: false, + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -78,6 +91,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-type-description.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-type-description.ts index 7c564b5d..202dc4fe 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-type-description.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-type-description.ts @@ -1,17 +1,21 @@ import type { Rule } from "eslint"; -import { Linter } from "eslint"; import type { Property } from "estree"; import { snakeCase } from "snake-case"; + import { docsUrl, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-type-description"; const FUNCTION_WHITELIST = ["objectType", "unionType", "scalarType", "interfaceType", "inputObjectType", "enumType"]; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", + schema: [ + { + enum: ["error", "warn", "off"], + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -95,6 +99,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/eslint-plugin-wantedly/src/rules/nexus-upper-case-enum-members.ts b/packages/eslint-plugin-wantedly/src/rules/nexus-upper-case-enum-members.ts index 56b05745..7d945d3b 100644 --- a/packages/eslint-plugin-wantedly/src/rules/nexus-upper-case-enum-members.ts +++ b/packages/eslint-plugin-wantedly/src/rules/nexus-upper-case-enum-members.ts @@ -1,10 +1,9 @@ import type { AST, Rule } from "eslint"; -import { Linter } from "eslint"; import type { Node, ObjectExpression, Property } from "estree"; import { snakeCase } from "snake-case"; + import { docsUrl, getOptionWithDefault, isNexusSchemaImported } from "./utils"; -const linter = new Linter(); export const RULE_NAME = "nexus-upper-case-enum-members"; // Represents the default option and schema for nexus-upper-case-enum-members option @@ -12,10 +11,24 @@ const DEFAULT_OPTION = { autofix: false, }; -linter.defineRule(RULE_NAME, { +export const RULE: Rule.RuleModule = { meta: { type: "suggestion", fixable: "code", + schema: [ + { + enum: ["error", "warn", "off"], + }, + { + type: "object", + properties: { + autofix: { + type: "boolean", + }, + }, + additionalProperties: false, + }, + ], docs: { url: docsUrl(RULE_NAME), }, @@ -287,6 +300,4 @@ linter.defineRule(RULE_NAME, { }, }; }, -}); - -export const RULE = linter.getRules().get(RULE_NAME) as Rule.RuleModule; +}; diff --git a/packages/frolint/README.md b/packages/frolint/README.md index 7ee37283..1a68520c 100644 --- a/packages/frolint/README.md +++ b/packages/frolint/README.md @@ -1,11 +1,41 @@ # frolint [![npm version](https://badge.fury.io/js/frolint.svg)](https://badge.fury.io/js/frolint) +**IMPORTANT NOTICE: We plan to stop maintaining this package. As of v4, the frolint script supports ESLint v9, but we will not support v10 and later versions. We strongly recommend using husky and lint-staged to lint and format git-staged files during the pre-commit phase and/or in CI.** + +## Breaking changes in v4 + +`frolint` v4 supports ESLint v9, so it uses flat config format. +`frolint` v3 and earlier, it implicitly loads `eslint-config-wantedly` or `eslint-config-wantedly-typescript` as a base rule set, whereas v4 does not. +If you want use `eslint-config-wantedly` or `eslint-config-wantedly-typescript` as a base rule set, you explicitly load them and put them into your root `eslint.config.js` like sample below. + +```javascript +import configWantedlyTs from "eslint-config-wantedly-typescript"; +// Or if you use JavaScript only +// import configWantedly from "eslint-config-wantedly"; + +export default [ + ...configWantedlyTs, + // ...configWantedly, + { + name: "Your rule name", + plugins: { + // Plugins you want to use... + }, + rules: { + // Overrides. + }, + }, +]; +``` + ## Overview Install depending on your package manager: + ```sh yarn add -D frolint ``` + ```sh npm install -D frolint ``` @@ -22,7 +52,7 @@ You can use this package as a standalone dependency, it will use the default con If you want to amend the ESLint configuration, you must add a `.eslintrc` at the root directory of your project. Then to still make use of our curated defaults, start by extending our configs. For example in a typescript project: -``` javascript +```javascript { "extends": "wantedly-typescript", // your config.. @@ -36,7 +66,8 @@ When you intend to commit some files including JS / TS files, the `frolint` repo ```sh git commit ``` -``` + +``` Detected 2 errors, 0 warnings ./foo.js: 2 errors, 0 warnings found. ./foo.js:1:7 'foo' is assigned a value but never used. Allowed unused vars must match /^_/. (no-unused-vars) @@ -46,7 +77,7 @@ commit canceled with exit status 1. You have to fix ESLint errors. To setup this commit hook, run the `install command`: -``` sh +```sh yarn exec frolint install ``` @@ -68,6 +99,7 @@ Despite its name of linter, `frolint` also formats the code with the famous `pre ``` ### Help + If you want to know the options, `frolint --help` is helpful. ``` @@ -97,7 +129,7 @@ Around .git/hooks/pre-commit: frolint uninstall uninstall git pre-commit hook for frolint -You can also print more details about any of these commands by calling them +You can also print more details about any of these commands by calling them after adding the `-h,--help` flag right after the command name. Apply ESLint and Prettier @@ -107,7 +139,7 @@ $ frolint [--typescript] [-b,--branch #0] [--expect-no-diff] [--expect-no-errors Details: -Apply ESLint and Prettier. It infers the affected files which are changed from +Apply ESLint and Prettier. It infers the affected files which are changed from base branch using git. Options: @@ -118,12 +150,12 @@ Options: --expect-no-diff: Fail when the changed files exist ---expect-no-errors: Fail out on the error instead of tolerating it (previously +--expect-no-errors: Fail out on the error instead of tolerating it (previously --bail option) -f,--formatter : Print the report with specified format ---no-stage: Do not stage the files which have the changes made by ESLint and +--no-stage: Do not stage the files which have the changes made by ESLint and Prettier auto fix functionality Examples: @@ -166,6 +198,7 @@ If you want to check all files in the repository, you can use the `frolint` as a ```sh yarn exec frolint ``` + ``` No errors and warnings! ✨ Done in 2.36s. diff --git a/packages/frolint/package.json b/packages/frolint/package.json index 4992710f..7823374b 100644 --- a/packages/frolint/package.json +++ b/packages/frolint/package.json @@ -10,7 +10,7 @@ "command-exists": "^1.2.9", "cosmiconfig": "^7.0.0", "debug": "^4.3.2", - "eslint": "^8.54.0", + "eslint": "^9.0.0", "eslint-config-wantedly": "^3.2.2", "eslint-config-wantedly-typescript": "^3.2.2", "prettier": "^2.4.1", @@ -38,7 +38,6 @@ "@types/command-exists": "^1.2.0", "@types/cosmiconfig": "^6.0.0", "@types/debug": "^4.1.7", - "@types/eslint": "^8.44.8", "@types/mock-fs": "^4.13.0", "@types/prettier": "^2.4.0", "@types/resolve": "^1.20.0" diff --git a/packages/frolint/src/Context.ts b/packages/frolint/src/Context.ts index 4977dd89..b95b5175 100644 --- a/packages/frolint/src/Context.ts +++ b/packages/frolint/src/Context.ts @@ -4,9 +4,6 @@ import type { Debugger } from "debug"; export type FrolintConfig = { typescript: boolean; formatter?: string; - eslint: { - ignorePath?: string; - }; prettier: { config?: string; ignorePath?: string; diff --git a/packages/frolint/src/commands/DefaultCommand.ts b/packages/frolint/src/commands/DefaultCommand.ts index fb08b599..4bea26be 100644 --- a/packages/frolint/src/commands/DefaultCommand.ts +++ b/packages/frolint/src/commands/DefaultCommand.ts @@ -1,7 +1,9 @@ -import chalk from "chalk"; -import { Command } from "clipanion"; import { writeFileSync } from "fs"; import { relative, resolve } from "path"; + +import chalk from "chalk"; +import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; import { applyEslint } from "../utils/eslint"; import { @@ -132,7 +134,7 @@ export class DefaultCommand extends Command { /** * Apply ESLint step */ - const results = await applyEslint(rootDir, files, eslintConfigPackage, this.context.config.eslint); + const results = await applyEslint(rootDir, files); results.forEach((result) => { const { filePath, output } = result; if (output) { @@ -152,10 +154,14 @@ export class DefaultCommand extends Command { */ const prettierResults = applyPrettier(rootDir, files, this.context.config.prettier); prettierResults - .filter((result: { filePath: string; output: string } | null): result is Required<{ - filePath: string; - output: string; - }> => Boolean(result)) + .filter( + ( + result: { filePath: string; output: string } | null + ): result is Required<{ + filePath: string; + output: string; + }> => Boolean(result) + ) .forEach(({ filePath, output }) => { if (output) { log("File (%s) has changed. Overwriting..", filePath); diff --git a/packages/frolint/src/commands/ExportCommand.ts b/packages/frolint/src/commands/ExportCommand.ts index f4c59e19..94c4b220 100644 --- a/packages/frolint/src/commands/ExportCommand.ts +++ b/packages/frolint/src/commands/ExportCommand.ts @@ -1,8 +1,10 @@ /* global NodeJS */ -import { Command } from "clipanion"; import { accessSync, constants, writeFileSync } from "fs"; import { resolve } from "path"; + +import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; import { getGitRootDir } from "../utils/git"; diff --git a/packages/frolint/src/commands/HelpCommand.ts b/packages/frolint/src/commands/HelpCommand.ts index 7199fccc..c3b710f3 100644 --- a/packages/frolint/src/commands/HelpCommand.ts +++ b/packages/frolint/src/commands/HelpCommand.ts @@ -1,5 +1,7 @@ import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; + import { DefaultCommand } from "./DefaultCommand"; export class HelpCommand extends Command { diff --git a/packages/frolint/src/commands/InstallCommand.ts b/packages/frolint/src/commands/InstallCommand.ts index ffb00076..4c10e29f 100644 --- a/packages/frolint/src/commands/InstallCommand.ts +++ b/packages/frolint/src/commands/InstallCommand.ts @@ -1,5 +1,7 @@ -import { Command } from "clipanion"; import { accessSync, constants, writeFileSync } from "fs"; + +import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; import { END_COMMENT, HOOKS_CATEGORY, START_COMMENT } from "../utils/constants"; import { getPreCommitHookPath, isGitExist, isInsideGitRepository, isPreCommitHookInstalled } from "../utils/git"; diff --git a/packages/frolint/src/commands/PreCommitCommand.ts b/packages/frolint/src/commands/PreCommitCommand.ts index 7a4958a5..ab47d883 100644 --- a/packages/frolint/src/commands/PreCommitCommand.ts +++ b/packages/frolint/src/commands/PreCommitCommand.ts @@ -1,4 +1,5 @@ import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; export class PreCommitCommand extends Command { diff --git a/packages/frolint/src/commands/PrintConfigCommand.ts b/packages/frolint/src/commands/PrintConfigCommand.ts index 2aa0af17..f4a123f3 100644 --- a/packages/frolint/src/commands/PrintConfigCommand.ts +++ b/packages/frolint/src/commands/PrintConfigCommand.ts @@ -1,4 +1,5 @@ import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; import { getCLI } from "../utils/eslint"; @@ -17,13 +18,10 @@ export class PrintConfigCommand extends Command { log("Start to execute"); log("Print config context: %o", { cwd: this.context.cwd, - eslintConfig: this.context.config.eslint, filepath: this.filepath, }); - const config = await getCLI(this.context.cwd, undefined, this.context.config.eslint).calculateConfigForFile( - this.filepath - ); + const config = await getCLI(this.context.cwd).calculateConfigForFile(this.filepath); console.log(JSON.stringify(config, null, " ")); log("Exection finished"); diff --git a/packages/frolint/src/commands/UninstallCommand.ts b/packages/frolint/src/commands/UninstallCommand.ts index eb7dd6fb..d8c76906 100644 --- a/packages/frolint/src/commands/UninstallCommand.ts +++ b/packages/frolint/src/commands/UninstallCommand.ts @@ -1,5 +1,7 @@ -import { Command } from "clipanion"; import { accessSync, constants, readFileSync, writeFileSync } from "fs"; + +import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; import { END_COMMENT, HOOKS_CATEGORY, START_COMMENT } from "../utils/constants"; import { getPreCommitHookPath, isGitExist, isInsideGitRepository, isPreCommitHookInstalled } from "../utils/git"; diff --git a/packages/frolint/src/commands/VersionCommand.ts b/packages/frolint/src/commands/VersionCommand.ts index 79bef3d2..51fbb29d 100644 --- a/packages/frolint/src/commands/VersionCommand.ts +++ b/packages/frolint/src/commands/VersionCommand.ts @@ -1,4 +1,5 @@ import { Command } from "clipanion"; + import type { FrolintContext } from "../Context"; export class VersionCommand extends Command { diff --git a/packages/frolint/src/index.ts b/packages/frolint/src/index.ts index 4d4f2694..d05368f0 100644 --- a/packages/frolint/src/index.ts +++ b/packages/frolint/src/index.ts @@ -1,5 +1,7 @@ import { Cli } from "clipanion"; import { cosmiconfigSync } from "cosmiconfig"; + +import type { FrolintConfig, FrolintContext } from "./Context"; import { DefaultCommand } from "./commands/DefaultCommand"; import { ExportCommand } from "./commands/ExportCommand"; import { HelpCommand } from "./commands/HelpCommand"; @@ -8,7 +10,6 @@ import { PreCommitCommand } from "./commands/PreCommitCommand"; import { PrintConfigCommand } from "./commands/PrintConfigCommand"; import { UninstallCommand } from "./commands/UninstallCommand"; import { VersionCommand } from "./commands/VersionCommand"; -import type { FrolintConfig, FrolintContext } from "./Context"; import { frolintDebug } from "./utils/debug"; const log = frolintDebug.extend("main"); @@ -42,7 +43,6 @@ const result = cosmiconfigSync(binaryName).search(); let config: FrolintConfig = { typescript: true, - eslint: {}, prettier: {}, }; diff --git a/packages/frolint/src/utils/__tests__/git.test.ts b/packages/frolint/src/utils/__tests__/git.test.ts index b5c5108a..c9dc0bc4 100644 --- a/packages/frolint/src/utils/__tests__/git.test.ts +++ b/packages/frolint/src/utils/__tests__/git.test.ts @@ -1,4 +1,5 @@ import { execSync } from "child_process"; + import { getPreCommitHookPath, isInsideGitRepository } from "../git"; jest.mock("child_process"); diff --git a/packages/frolint/src/utils/eslint.ts b/packages/frolint/src/utils/eslint.ts index d3d5499b..192b15cc 100644 --- a/packages/frolint/src/utils/eslint.ts +++ b/packages/frolint/src/utils/eslint.ts @@ -1,7 +1,8 @@ -import { ESLint } from "eslint"; import { resolve } from "path"; + +import { ESLint } from "eslint"; import { sync } from "resolve"; -import type { FrolintConfig } from "../Context"; + import { frolintDebug } from "./debug"; const log = frolintDebug.extend("eslint"); @@ -20,7 +21,7 @@ function detectReactVersion(basedir: string) { log("Resolved react package version: %s", react.version); return react.version; - } catch (e) { + } catch (_e) { log("Cannot resolve react"); return null; } @@ -28,11 +29,7 @@ function detectReactVersion(basedir: string) { let cliInstance: ESLint | null = null; -export function getCLI( - rootDir: string, - eslintConfigPackage = "eslint-config-wantedly-typescript", - eslintConfig: FrolintConfig["eslint"] = {} -) { +export function getCLI(rootDir: string) { log("Retrieve ESLint CLI instance"); if (cliInstance) { @@ -46,14 +43,8 @@ export function getCLI( log("This project has react version %o", { reactVersion }); - const isReact = !!reactVersion; - log("Resolve proper ESLint config"); - const netEslintConfigPackage = eslintConfigPackage.replace("eslint-config-", "") + (isReact ? "" : "/without-react"); - - log("Proper ESLint config %o", { netEslintConfigPackage }); - const reactSettings = reactVersion ? { react: { @@ -62,11 +53,16 @@ export function getCLI( } : {}; const cacheLocation = resolve(rootDir, "node_modules", ".frolintcache"); + const options: ESLint.Options = { - baseConfig: { extends: [netEslintConfigPackage], settings: { ...reactSettings } }, + baseConfig: { + name: "frolint", + settings: { + ...reactSettings, + }, + }, fix: true, cwd: rootDir, - ignorePath: eslintConfig.ignorePath, cache: true, cacheLocation, }; @@ -82,13 +78,8 @@ function isSupportedExtension(file: string) { return /(jsx?|tsx?)$/.test(file); } -export async function applyEslint( - rootDir: string, - files: string[], - eslintConfigPackage: string, - eslintConfig: FrolintConfig["eslint"] -) { - const cli = getCLI(rootDir, eslintConfigPackage, eslintConfig); +export async function applyEslint(rootDir: string, files: string[]) { + const cli = getCLI(rootDir); const targetFiles = files.filter(isSupportedExtension).filter(async (file) => !(await cli.isPathIgnored(file))); log("Applying ESLint linter and fixer. target files: %O", targetFiles); diff --git a/packages/frolint/src/utils/git.ts b/packages/frolint/src/utils/git.ts index 1e082a32..6d6957ca 100644 --- a/packages/frolint/src/utils/git.ts +++ b/packages/frolint/src/utils/git.ts @@ -1,14 +1,16 @@ import { execSync } from "child_process"; -import { sync as commandExistsSync } from "command-exists"; import { readFileSync } from "fs"; import { resolve } from "path"; + +import { sync as commandExistsSync } from "command-exists"; + import { END_COMMENT, START_COMMENT } from "./constants"; export function isInsideGitRepository(cwd?: string) { try { const res = execSync("git rev-parse --is-inside-work-tree", { cwd }).toString().trim(); return res === "true"; - } catch (err) { + } catch (_err) { return false; } } @@ -37,7 +39,7 @@ export function getGitRootDir(cwd: string) { try { return resolve(cwd, execSync("git rev-parse --show-cdup").toString().trimRight()); - } catch (err) { + } catch (_err) { return cwd; } } diff --git a/packages/frolint/src/utils/prettier.ts b/packages/frolint/src/utils/prettier.ts index 57bff066..198f0846 100644 --- a/packages/frolint/src/utils/prettier.ts +++ b/packages/frolint/src/utils/prettier.ts @@ -1,9 +1,12 @@ import { readFileSync } from "fs"; import { extname, resolve } from "path"; + import type { BuiltInParserName, ResolveConfigOptions } from "prettier"; import prettier from "prettier"; import prettierConfigWantedly from "prettier-config-wantedly"; + import type { FrolintConfig } from "../Context"; + import { frolintDebug } from "./debug"; const log = frolintDebug.extend("prettier"); diff --git a/packages/frolint/src/utils/report.ts b/packages/frolint/src/utils/report.ts index 062c7f50..d0461349 100644 --- a/packages/frolint/src/utils/report.ts +++ b/packages/frolint/src/utils/report.ts @@ -1,6 +1,8 @@ +import { relative } from "path"; + import chalk from "chalk"; import type { ESLint } from "eslint"; -import { relative } from "path"; + import { frolintDebug } from "./debug"; import { getCLI } from "./eslint"; diff --git a/script/hard-update-packages-version.js b/script/hard-update-packages-version.js index 5ddbc258..9994277f 100644 --- a/script/hard-update-packages-version.js +++ b/script/hard-update-packages-version.js @@ -1,9 +1,10 @@ // @ts-check const { execSync } = require("child_process"); -const { manifest } = require("pacote"); -const { join } = require("path"); const { promises } = require("fs"); +const { join } = require("path"); + +const { manifest } = require("pacote"); function getPackageJsonFiles() { return execSync("git ls-files | grep package.json") @@ -61,6 +62,7 @@ function main() { try { main(); } catch (err) { + // eslint-disable-next-line no-console console.error(err); process.exit(1); diff --git a/yarn.lock b/yarn.lock index 87e60c0d..26b6c053 100644 --- a/yarn.lock +++ b/yarn.lock @@ -49,6 +49,15 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/eslint-parser@^7.25.1": + version "7.25.1" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz#469cee4bd18a88ff3edbdfbd227bd20e82aa9b82" + integrity sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg== + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" + "@babel/generator@^7.23.5", "@babel/generator@^7.7.2": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" @@ -167,7 +176,7 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5", "@babel/parser@^7.7.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== @@ -270,7 +279,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/runtime@^7.12.5", "@babel/runtime@^7.20.1", "@babel/runtime@^7.23.2", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2": +"@babel/runtime@^7.12.5", "@babel/runtime@^7.20.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.5.tgz#11edb98f8aeec529b82b211028177679144242db" integrity sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w== @@ -286,7 +295,7 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.1.6", "@babel/traverse@^7.23.5", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.0": +"@babel/traverse@^7.1.6", "@babel/traverse@^7.23.5", "@babel/traverse@^7.4.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== @@ -302,7 +311,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.1.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.3.3", "@babel/types@^7.7.0": +"@babel/types@^7.0.0", "@babel/types@^7.1.6", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.3.3": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== @@ -554,61 +563,88 @@ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed" integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg== -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": +"@eslint-community/eslint-utils@^4.1.2", "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae" + integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/compat@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.1.1.tgz#5736523f5105c94dfae5f35e31debc38443722cd" + integrity sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA== + +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.6.0.tgz#9930b5ba24c406d67a1760e94cdbac616a6eb674" + integrity sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg== + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.1.0.tgz#dbd3482bfd91efa663cbe7aa1f506839868207b6" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.54.0": - version "8.54.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.54.0.tgz#4fab9a2ff7860082c304f750e94acd644cf984cf" - integrity sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ== +"@eslint/js@9.11.1": + version "9.11.1" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.11.1.tgz#8bcb37436f9854b3d9a561440daf916acd940986" + integrity sha512-/qu+TWz8WwPWc7/HcIJKi+c+MOm46GdVaSlTTQcaqaL53+GsoA6MxWp5PtTx48qbSP7ylM1Kn7nhvkugfJvRSA== + +"@eslint/js@^9.10.0": + version "9.10.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.10.0.tgz#eaa3cb0baec497970bb29e43a153d0d5650143c6" + integrity sha512-fuXtbiP5GWIn8Fz+LWoOMVf/Jxm+aajZYkhi6CuEm4SxymFM+eUWzbO9qXT+L0iCkL5+KGYMCSGxo686H19S1g== + +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.4.tgz#9e69f8bb4031e11df79e03db09f9dbbae1740843" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== + +"@eslint/plugin-kit@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz#8712dccae365d24e9eeecb7b346f85e750ba343d" + integrity sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig== + dependencies: + levn "^0.4.1" "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/retry@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.0.tgz#6d86b8cb322660f03d3f0aa94b99bdd8e172d570" + integrity sha512-d2CGZR2o7fS6sWB7DG/3a95bGKQyHMACZ5aW8qGkkqQpUoZV6C0X7Pc7l4ZNMZkfNBf4VWNe9E1jRsf0G146Ew== "@hutson/parse-repository-url@^3.0.0": version "3.0.2" @@ -1548,6 +1584,13 @@ globby "^11.0.0" read-yaml-file "^1.1.0" +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1740,6 +1783,11 @@ dependencies: "@octokit/openapi-types" "^12.11.0" +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== + "@scaffdog/config@1.5.0": version "1.5.0" resolved "https://registry.yarnpkg.com/@scaffdog/config/-/config-1.5.0.tgz#339cc01bb2923840c1813fb1f804e16c67cc19f3" @@ -1874,18 +1922,10 @@ dependencies: "@types/ms" "*" -"@types/eslint@^8.44.8": - version "8.44.8" - resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.44.8.tgz#f4fe1dab9b3d3dd98082d4b9f80e59ab40f1261c" - integrity sha512-4K8GavROwhrYl2QXDXm0Rv9epkA8GBFu0EI+XrrnnuCl7u8CWBRusX7fXJfanhZTDWSAL24gDI/UqXyUM0Injw== - dependencies: - "@types/estree" "*" - "@types/json-schema" "*" - -"@types/estree@*", "@types/estree@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/graceful-fs@^4.1.3": version "4.1.9" @@ -1928,7 +1968,7 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.15": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -1999,7 +2039,7 @@ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.6.tgz#e6e60dad29c2c8c206c026e6dd8d6d1bdda850b8" integrity sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ== -"@types/semver@^7.3.12", "@types/semver@^7.5.0": +"@types/semver@^7.5.0": version "7.5.6" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== @@ -2026,150 +2066,131 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.1.tgz#f98bd887bf95551203c917e734d113bf8d527a0c" - integrity sha512-5bQDGkXaxD46bPvQt08BUz9YSaO4S0fB1LB5JHQuXTfkGPI3+UUeS387C/e9jRie5GqT8u5kFTrMvAjtX4O5kA== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/type-utils" "6.13.1" - "@typescript-eslint/utils" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" - debug "^4.3.4" +"@typescript-eslint/eslint-plugin@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.6.0.tgz#20049754ff9f6d3a09bf240297f029ce04290999" + integrity sha512-UOaz/wFowmoh2G6Mr9gw60B1mm0MzUtm6Ic8G2yM1Le6gyj5Loi/N+O5mocugRGY+8OeeKmkMmbxNqUCq3B4Sg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.6.0" + "@typescript-eslint/type-utils" "8.6.0" + "@typescript-eslint/utils" "8.6.0" + "@typescript-eslint/visitor-keys" "8.6.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^5.3.1" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/experimental-utils@^5.0.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz#14559bf73383a308026b427a4a6129bae2146741" - integrity sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw== - dependencies: - "@typescript-eslint/utils" "5.62.0" - -"@typescript-eslint/parser@^6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.1.tgz#29d6d4e5fab4669e58bc15f6904b67da65567487" - integrity sha512-fs2XOhWCzRhqMmQf0eicLa/CWSaYss2feXsy7xBD/pLyWke/jCIVc2s1ikEAtSW7ina1HNhv7kONoEfVNEcdDQ== +"@typescript-eslint/parser@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.6.0.tgz#02e092b9dc8b4e319172af620d0d39b337d948f6" + integrity sha512-eQcbCuA2Vmw45iGfcyG4y6rS7BhWfz9MQuk409WD47qMM+bKCGQWXxvoOs1DUp+T7UBMTtRTVT+kXr7Sh4O9Ow== dependencies: - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/typescript-estree" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/scope-manager" "8.6.0" + "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/typescript-estree" "8.6.0" + "@typescript-eslint/visitor-keys" "8.6.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== +"@typescript-eslint/scope-manager@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.6.0.tgz#28cc2fc26a84b75addf45091a2c6283e29e2c982" + integrity sha512-ZuoutoS5y9UOxKvpc/GkvF4cuEmpokda4wRg64JEia27wX+PysIE9q+lzDtlHHgblwUWwo5/Qn+/WyTUvDwBHw== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/visitor-keys" "8.6.0" -"@typescript-eslint/scope-manager@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz#58c7c37c6a957d3d9f59bc4f64c2888e0cac1d70" - integrity sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ== +"@typescript-eslint/scope-manager@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.7.0.tgz#90ee7bf9bc982b9260b93347c01a8bc2b595e0b8" + integrity sha512-87rC0k3ZlDOuz82zzXRtQ7Akv3GKhHs0ti4YcbAJtaomllXoSO8hi7Ix3ccEvCd824dy9aIX+j3d2UMAfCtVpg== dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" -"@typescript-eslint/type-utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6" - integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ== +"@typescript-eslint/type-utils@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.6.0.tgz#d4347e637478bef88cee1db691fcfa20ade9b8a0" + integrity sha512-dtePl4gsuenXVwC7dVNlb4mGDcKjDT/Ropsk4za/ouMBPplCLyznIaR+W65mvCvsyS97dymoBRrioEXI7k0XIg== dependencies: - "@typescript-eslint/typescript-estree" "6.13.1" - "@typescript-eslint/utils" "6.13.1" + "@typescript-eslint/typescript-estree" "8.6.0" + "@typescript-eslint/utils" "8.6.0" debug "^4.3.4" - ts-api-utils "^1.0.1" + ts-api-utils "^1.3.0" -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.6.0.tgz#cdc3a16f83f2f0663d6723e9fd032331cdd9f51c" + integrity sha512-rojqFZGd4MQxw33SrOy09qIDS8WEldM8JWtKQLAjf/X5mGSeEFh5ixQlxssMNyPslVIk9yzWqXCsV2eFhYrYUw== -"@typescript-eslint/types@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c" - integrity sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg== +"@typescript-eslint/types@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.7.0.tgz#21d987201c07b69ce7ddc03451d7196e5445ad19" + integrity sha512-LLt4BLHFwSfASHSF2K29SZ+ZCsbQOM+LuarPjRUuHm+Qd09hSe3GCeaQbcCr+Mik+0QFRmep/FyZBO6fJ64U3w== -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== +"@typescript-eslint/typescript-estree@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.6.0.tgz#f945506de42871f04868371cb5bf21e8f7266e01" + integrity sha512-MOVAzsKJIPIlLK239l5s06YXjNqpKTVhBVDnqUumQJja5+Y94V3+4VUFRA0G60y2jNnTVwRCkhyGQpavfsbq/g== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/visitor-keys" "8.6.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/typescript-estree@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz#d01dda78d2487434d1c503853fa00291c566efa4" - integrity sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ== +"@typescript-eslint/typescript-estree@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.7.0.tgz#6c7db6baa4380b937fa81466c546d052f362d0e8" + integrity sha512-MC8nmcGHsmfAKxwnluTQpNqceniT8SteVwd2voYlmiSWGOtjvGXdPl17dYu2797GVscK30Z04WRM28CrKS9WOg== dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/visitor-keys" "8.7.0" debug "^4.3.4" - globby "^11.1.0" + fast-glob "^3.3.2" is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/utils@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f" - integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw== +"@typescript-eslint/utils@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.6.0.tgz#175fe893f32804bed1e72b3364ea6bbe1044181c" + integrity sha512-eNp9cWnYf36NaOVjkEUznf6fEgVy1TWpE0o52e4wtojjBx7D1UV2WAWGzR+8Y5lVFtpMLPwNbC67T83DWSph4A== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/typescript-estree" "6.13.1" - semver "^7.5.4" + "@typescript-eslint/scope-manager" "8.6.0" + "@typescript-eslint/types" "8.6.0" + "@typescript-eslint/typescript-estree" "8.6.0" -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== +"@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.7.0.tgz#cef3f70708b5b5fd7ed8672fc14714472bd8a011" + integrity sha512-ZbdUdwsl2X/s3CiyAu3gOlfQzpbuG3nTWKPoIvAu1pu5r8viiJvv2NPN2AqArL35NCYtw/lrPPfM4gxrMLNLPw== dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.7.0" + "@typescript-eslint/types" "8.7.0" + "@typescript-eslint/typescript-estree" "8.7.0" -"@typescript-eslint/visitor-keys@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540" - integrity sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ== +"@typescript-eslint/visitor-keys@8.6.0": + version "8.6.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.6.0.tgz#5432af4a1753f376f35ab5b891fc9db237aaf76f" + integrity sha512-wapVFfZg9H0qOYh4grNVQiMklJGluQrOUiOhYRrQWhx7BY/+I1IYb8BczWNbbUpO+pqy0rDciv3lQH5E1bCLrg== dependencies: - "@typescript-eslint/types" "6.13.1" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "8.6.0" + eslint-visitor-keys "^3.4.3" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@typescript-eslint/visitor-keys@8.7.0": + version "8.7.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.7.0.tgz#5e46f1777f9d69360a883c1a56ac3c511c9659a8" + integrity sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ== + dependencies: + "@typescript-eslint/types" "8.7.0" + eslint-visitor-keys "^3.4.3" JSONStream@^1.0.4: version "1.3.5" @@ -2189,10 +2210,10 @@ acorn-jsx@^5.3.2: resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.12.0: + version "8.12.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248" + integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg== add-stream@^1.0.0: version "1.0.0" @@ -2317,12 +2338,12 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -aria-query@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" - integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== +aria-query@~5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e" + integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ== dependencies: - dequal "^2.0.3" + deep-equal "^2.0.5" array-buffer-byte-length@^1.0.0: version "1.0.0" @@ -2332,6 +2353,14 @@ array-buffer-byte-length@^1.0.0: call-bind "^1.0.2" is-array-buffer "^3.0.1" +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz#1e5583ec16763540a27ae52eed99ff899223568f" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -2342,7 +2371,7 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.6, array-includes@^3.1.7: +array-includes@^3.1.6: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -2353,21 +2382,46 @@ array-includes@^3.1.6, array-includes@^3.1.7: get-intrinsic "^1.2.1" is-string "^1.0.7" +array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.findlastindex@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" array.prototype.flat@^1.2.3, array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: version "1.3.2" @@ -2379,7 +2433,7 @@ array.prototype.flat@^1.2.3, array.prototype.flat@^1.3.1, array.prototype.flat@^ es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: +array.prototype.flatmap@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -2400,16 +2454,16 @@ array.prototype.reduce@^1.0.6: es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" -array.prototype.tosorted@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" - integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" arraybuffer.prototype.slice@^1.0.2: version "1.0.2" @@ -2424,6 +2478,20 @@ arraybuffer.prototype.slice@^1.0.2: is-array-buffer "^3.0.2" is-shared-array-buffer "^1.0.2" +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz#097972f4255e41bc3425e37dc3f6421cf9aefde6" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -2461,13 +2529,6 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== -asynciterator.prototype@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" - integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== - dependencies: - has-symbols "^1.0.3" - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -2483,6 +2544,13 @@ available-typed-arrays@^1.0.5: resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" @@ -2493,29 +2561,15 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axe-core@=4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" - integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== - -axobject-query@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" - integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== - dependencies: - dequal "^2.0.3" +axe-core@^4.10.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59" + integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g== -babel-eslint@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" - integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - eslint-visitor-keys "^1.0.0" - resolve "^1.12.0" +axobject-query@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== babel-jest@^29.7.0: version "29.7.0" @@ -2680,6 +2734,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -2792,6 +2853,17 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" +call-bind@^1.0.6, call-bind@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" + integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + set-function-length "^1.2.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3370,6 +3442,33 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + dataloader@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-1.4.0.tgz#bca11d867f5d3f1b9ed9f737bd15970c65dff5c8" @@ -3399,6 +3498,13 @@ debug@^3.2.7: dependencies: ms "^2.1.1" +debug@^4.3.1: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" @@ -3439,6 +3545,30 @@ dedent@^1.0.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +deep-equal@^2.0.5: + version "2.2.3" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.3.tgz#af89dafb23a396c7da3e862abc0be27cf51d56e1" + integrity sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.5" + es-get-iterator "^1.1.3" + get-intrinsic "^1.2.2" + is-arguments "^1.1.1" + is-array-buffer "^3.0.2" + is-date-object "^1.0.5" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.13" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -3475,6 +3605,15 @@ define-data-property@^1.0.1, define-data-property@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +define-data-property@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== + dependencies: + es-define-property "^1.0.0" + es-errors "^1.3.0" + gopd "^1.0.1" + define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" @@ -3499,11 +3638,6 @@ deprecation@^2.0.0, deprecation@^2.3.1: resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -dequal@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" - integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== - detect-indent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" @@ -3551,13 +3685,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dot-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" @@ -3675,6 +3802,58 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.17.5, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + es-abstract@^1.22.1: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" @@ -3725,25 +3904,59 @@ es-array-method-boxes-properly@^1.0.0: resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== -es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: - version "1.0.15" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" - integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== +es-define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845" + integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== + dependencies: + get-intrinsic "^1.2.4" + +es-errors@^1.2.1, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-get-iterator@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6" + integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw== dependencies: - asynciterator.prototype "^1.0.0" call-bind "^1.0.2" + get-intrinsic "^1.1.3" + has-symbols "^1.0.3" + is-arguments "^1.1.1" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.7" + isarray "^2.0.5" + stop-iteration-iterator "^1.0.0" + +es-iterator-helpers@^1.0.19: + version "1.0.19" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz#117003d0e5fec237b4b5c08aded722e0c6d50ca8" + integrity sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw== + dependencies: + call-bind "^1.0.7" define-properties "^1.2.1" - es-abstract "^1.22.1" - es-set-tostringtag "^2.0.1" - function-bind "^1.1.1" - get-intrinsic "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" globalthis "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" has-symbols "^1.0.3" - internal-slot "^1.0.5" + internal-slot "^1.0.7" iterator.prototype "^1.1.2" - safe-array-concat "^1.0.1" + safe-array-concat "^1.1.2" + +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" es-set-tostringtag@^2.0.1: version "2.0.2" @@ -3754,7 +3967,16 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== @@ -3795,10 +4017,17 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^8.3.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11" - integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg== +eslint-compat-utils@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/eslint-compat-utils/-/eslint-compat-utils-0.5.1.tgz#7fc92b776d185a70c4070d03fd26fde3d59652e4" + integrity sha512-3z3vFexKIEnjHE3zCMRo6fn/e44U7T1khUjg+Hp0ZQMCigh28rALD0nPFBcGZuiLC5rLZa2ubQHDRln09JfU2Q== + dependencies: + semver "^7.5.4" + +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-import-resolver-node@^0.3.9: version "0.3.9" @@ -3809,101 +4038,105 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +eslint-module-utils@^2.9.0: + version "2.11.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.1.tgz#6d5a05f09af98f4d238a819ae4c23626a75fa65b" + integrity sha512-EwcbfLOhwVMAfatfqLecR2yv3dE5+kQ8kx+Rrt0DvDXEVwW86KQ/xbMDQhtp5l42VXukD5SOF8mQQHbaNtO0CQ== dependencies: debug "^3.2.7" -eslint-plugin-es@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" - integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ== +eslint-plugin-es-x@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es-x/-/eslint-plugin-es-x-8.0.0.tgz#66835093aae1cdf7e1639a17036ca179369ac456" + integrity sha512-kPIagK5FxZBDwVxZXCsxmZUjU2aYGeTs4/wfAauI2FAThsbeLgred5b+6S0x7Hhx04GPzrB4j0h60bnsyLpzEA== dependencies: - eslint-utils "^2.0.0" - regexpp "^3.0.0" + "@eslint-community/eslint-utils" "^4.1.2" + "@eslint-community/regexpp" "^4.11.0" + eslint-compat-utils "^0.5.1" -eslint-plugin-import@^2.25.4: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== +eslint-plugin-import@^2.30.0: + version "2.30.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449" + integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw== dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.8" + array.prototype.findlastindex "^1.2.5" array.prototype.flat "^1.3.2" array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.9.0" + hasown "^2.0.2" + is-core-module "^2.15.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.0" semver "^6.3.1" - tsconfig-paths "^3.14.2" + tsconfig-paths "^3.15.0" -eslint-plugin-jest@^25.7.0: - version "25.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz#ff4ac97520b53a96187bad9c9814e7d00de09a6a" - integrity sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ== +eslint-plugin-jest@^28.8.3: + version "28.8.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz#c5699bba0ad06090ad613535e4f1572f4c2567c0" + integrity sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ== dependencies: - "@typescript-eslint/experimental-utils" "^5.0.0" + "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" -eslint-plugin-jsx-a11y@^6.5.1: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" - integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== +eslint-plugin-jsx-a11y@^6.10.0: + version "6.10.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz#36fb9dead91cafd085ddbe3829602fb10ef28339" + integrity sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg== dependencies: - "@babel/runtime" "^7.23.2" - aria-query "^5.3.0" - array-includes "^3.1.7" + aria-query "~5.1.3" + array-includes "^3.1.8" array.prototype.flatmap "^1.3.2" ast-types-flow "^0.0.8" - axe-core "=4.7.0" - axobject-query "^3.2.1" + axe-core "^4.10.0" + axobject-query "^4.1.0" damerau-levenshtein "^1.0.8" emoji-regex "^9.2.2" - es-iterator-helpers "^1.0.15" - hasown "^2.0.0" + es-iterator-helpers "^1.0.19" + hasown "^2.0.2" jsx-ast-utils "^3.3.5" language-tags "^1.0.9" minimatch "^3.1.2" - object.entries "^1.1.7" - object.fromentries "^2.0.7" + object.fromentries "^2.0.8" + safe-regex-test "^1.0.3" + string.prototype.includes "^2.0.0" eslint-plugin-react-hooks@^4.3.0: version "4.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.28.0: - version "7.33.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" - integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== +eslint-plugin-react@^7.36.0: + version "7.36.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz#f1dabbb11f3d4ebe8b0cf4e54aff4aee81144ee5" + integrity sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA== dependencies: - array-includes "^3.1.6" - array.prototype.flatmap "^1.3.1" - array.prototype.tosorted "^1.1.1" + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" doctrine "^2.1.0" - es-iterator-helpers "^1.0.12" + es-iterator-helpers "^1.0.19" estraverse "^5.3.0" + hasown "^2.0.2" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.6" - object.fromentries "^2.0.6" - object.hasown "^1.1.2" - object.values "^1.1.6" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" prop-types "^15.8.1" - resolve "^2.0.0-next.4" + resolve "^2.0.0-next.5" semver "^6.3.1" - string.prototype.matchall "^4.0.8" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" -eslint-scope@^5.1.1: +eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -3911,68 +4144,65 @@ eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94" + integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^2.0.0: +eslint-visitor-keys@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" - integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== - dependencies: - eslint-visitor-keys "^1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.54.0: - version "8.54.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.54.0.tgz#588e0dd4388af91a2e8fa37ea64924074c783537" - integrity sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA== +eslint-visitor-keys@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb" + integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw== + +eslint@^9.0.0: + version "9.11.1" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.11.1.tgz#701e5fc528990153f9cef696d8427003b5206567" + integrity sha512-MobhYKIoAO1s1e4VUrgx1l1Sk2JBR/Gqjjgw8+mfgoLE2xwsHur4gdfTxyTgShrhvdVFTaJSgMiQBl1jv/AWxg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.54.0" - "@humanwhocodes/config-array" "^0.11.13" + "@eslint-community/regexpp" "^4.11.0" + "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.6.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.11.1" + "@eslint/plugin-kit" "^0.2.0" "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.3.0" "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.0.2" + eslint-visitor-keys "^4.0.0" + espree "^10.1.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" @@ -3980,24 +4210,24 @@ eslint@^8.54.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.1.0.tgz#8788dae611574c0f070691f522e4116c5a11fc56" + integrity sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA== dependencies: - acorn "^8.9.0" + acorn "^8.12.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.0.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== dependencies: estraverse "^5.1.0" @@ -4093,7 +4323,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.9: +fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -4135,12 +4365,12 @@ figures@^3.0.0, figures@^3.2.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" filename-reserved-regex@^2.0.0: version "2.0.0" @@ -4190,14 +4420,13 @@ find-yarn-workspace-root2@1.2.16: micromatch "^4.0.2" pkg-dir "^4.2.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flatted@^3.2.9: version "3.2.9" @@ -4284,7 +4513,7 @@ fsevents@^2.3.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -4343,6 +4572,17 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd" + integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-package-type@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" @@ -4390,6 +4630,15 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -4484,12 +4733,15 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.19.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^15.9.0: + version "15.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.9.0.tgz#e9de01771091ffbc37db5714dab484f9f69ff399" + integrity sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA== globalthis@^1.0.3: version "1.0.3" @@ -4498,7 +4750,7 @@ globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.0, globby@^11.0.2, globby@^11.0.3, globby@^11.1.0: +globby@^11.0.0, globby@^11.0.2, globby@^11.0.3: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -4628,11 +4880,23 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.2.2" +has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== + dependencies: + es-define-property "^1.0.0" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd" + integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== + has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" @@ -4645,6 +4909,13 @@ has-tostringtag@^1.0.0: dependencies: has-symbols "^1.0.2" +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + has-unicode@^2.0.0, has-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -4662,6 +4933,13 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hasown@^2.0.1, hasown@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== + dependencies: + function-bind "^1.1.2" + header-case@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" @@ -4768,11 +5046,16 @@ ignore-walk@^3.0.3: dependencies: minimatch "^3.0.4" -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== +ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" @@ -4896,6 +5179,15 @@ inquirer@^8.2.0: through "^2.3.6" wrap-ansi "^6.0.1" +internal-slot@^1.0.4, internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.7.tgz#c06dcca3ed874249881007b0a5523b172a190802" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" @@ -4928,6 +5220,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" @@ -4937,6 +5237,14 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: get-intrinsic "^1.2.0" is-typed-array "^1.1.10" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.4.tgz#7a1f92b3d61edd2bc65d24f130530ea93d7fae98" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" @@ -4981,13 +5289,27 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0: +is-core-module@^2.13.0, is-core-module@^2.5.0: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-core-module@^2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37" + integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ== + dependencies: + hasown "^2.0.2" + +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1, is-date-object@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -5071,11 +5393,21 @@ is-map@^2.0.1: resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== +is-map@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + is-negative-zero@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" @@ -5138,6 +5470,11 @@ is-set@^2.0.1: resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== +is-set@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + is-shared-array-buffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" @@ -5145,6 +5482,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz#1237f1cba059cdb62431d378dcc37d9680181688" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + is-ssh@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" @@ -5192,6 +5536,13 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: dependencies: which-typed-array "^1.1.11" +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -5834,7 +6185,7 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -6279,13 +6630,20 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist-options@4.1.0, minimist-options@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -6423,7 +6781,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@^2.0.0, ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -6699,6 +7057,14 @@ object-inspect@^1.13.1, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-is@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.6.tgz#1a6a53aed2dd8f7e6775ff870bea58545956ab07" + integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -6714,23 +7080,34 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.6, object.entries@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== +object.assign@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" -object.fromentries@^2.0.6, object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== +object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" object.getownpropertydescriptors@^2.0.3: version "2.1.7" @@ -6743,25 +7120,16 @@ object.getownpropertydescriptors@^2.0.3: es-abstract "^1.22.1" safe-array-concat "^1.0.0" -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.hasown@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" - integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" -object.values@^1.1.6, object.values@^1.1.7: +object.values@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -6770,6 +7138,15 @@ object.values@^1.1.6, object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" +object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -7159,6 +7536,11 @@ plur@^4.0.0: dependencies: irregular-plurals "^3.2.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + postcss-value-parser@^4.0.2: version "4.2.0" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" @@ -7523,7 +7905,7 @@ regenerator-runtime@^0.14.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: +regexp.prototype.flags@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== @@ -7532,10 +7914,15 @@ regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" -regexpp@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== +regexp.prototype.flags@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz#138f644a3350f981a858c44f6bb1a61ff59be334" + integrity sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw== + dependencies: + call-bind "^1.0.6" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.1" registry-auth-token@^4.0.0: version "4.2.2" @@ -7625,7 +8012,7 @@ resolve@^1.10.0, resolve@^1.12.0, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.2 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resolve@^2.0.0-next.4: +resolve@^2.0.0-next.5: version "2.0.0-next.5" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== @@ -7709,6 +8096,16 @@ safe-array-concat@^1.0.0, safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.0.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -7733,6 +8130,15 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.3.tgz#a5b4c0f06e0ab50ea2c395c14d8371232924c377" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -7788,13 +8194,18 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: +semver@^7.1.1, semver@^7.1.3, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" +semver@^7.6.0: + version "7.6.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143" + integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A== + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -7819,6 +8230,18 @@ set-function-length@^1.1.1: gopd "^1.0.1" has-property-descriptors "^1.0.0" +set-function-length@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + set-function-name@^2.0.0, set-function-name@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" @@ -7828,6 +8251,16 @@ set-function-name@^2.0.0, set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -7873,6 +8306,16 @@ side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" +side-channel@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" + integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + object-inspect "^1.13.1" + signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" @@ -8067,6 +8510,13 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" +stop-iteration-iterator@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4" + integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ== + dependencies: + internal-slot "^1.0.4" + stream-transform@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/stream-transform/-/stream-transform-2.1.3.tgz#a1c3ecd72ddbf500aa8d342b0b9df38f5aa598e3" @@ -8105,20 +8555,39 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== +string.prototype.includes@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f" + integrity sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.matchall@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz#1092a72c59268d2abaad76582dccc687c0297e0a" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" string.prototype.trim@^1.2.8: version "1.2.8" @@ -8129,6 +8598,16 @@ string.prototype.trim@^1.2.8: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + string.prototype.trimend@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" @@ -8138,6 +8617,15 @@ string.prototype.trimend@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + string.prototype.trimstart@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" @@ -8147,6 +8635,15 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -8407,10 +8904,10 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== +ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@^29.1.1: version "29.1.1" @@ -8426,17 +8923,17 @@ ts-jest@^29.1.1: semver "^7.5.3" yargs-parser "^21.0.1" -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1, tslib@^1.9.0: +tslib@^1.9.0: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== @@ -8446,13 +8943,6 @@ tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - tty-table@^4.1.5: version "4.2.3" resolved "https://registry.yarnpkg.com/tty-table/-/tty-table-4.2.3.tgz#e33eb4007a0a9c976c97c37fa13ba66329a5c515" @@ -8534,6 +9024,15 @@ typed-array-buffer@^1.0.0: get-intrinsic "^1.2.1" is-typed-array "^1.1.10" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz#1867c5d83b20fcb5ccf32649e5e2fc7424474ff3" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + typed-array-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" @@ -8544,6 +9043,17 @@ typed-array-byte-length@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz#d92972d3cff99a3fa2e765a28fcdc0f1d89dec67" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-byte-offset@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" @@ -8555,6 +9065,18 @@ typed-array-byte-offset@^1.0.0: has-proto "^1.0.1" is-typed-array "^1.1.10" +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz#f9ec1acb9259f395093e4567eb3c28a580d02063" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + typed-array-length@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" @@ -8564,6 +9086,18 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -8576,6 +9110,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== +typescript-eslint@^8.6.0: + version "8.6.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.6.0.tgz#5f0b5e23b34385ef146e447616c1a0d6bd14bedb" + integrity sha512-eEhhlxCEpCd4helh3AO1hk0UP2MvbRi9CtIAJTVPQjuSXOOO2jsEacNi4UdcJzZJbeuVg1gMhtZ8UYb+NFYPrA== + dependencies: + "@typescript-eslint/eslint-plugin" "8.6.0" + "@typescript-eslint/parser" "8.6.0" + "@typescript-eslint/utils" "8.6.0" + typescript@^5: version "5.3.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43" @@ -8919,6 +9462,17 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^1.2.9, which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"