@oxlint/plugins 1.72.0 → 1.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +61 -86
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -388,7 +388,7 @@ interface StrictVisitorObject {
388
388
  TSUnionType?: (node: TSUnionType) => void;
389
389
  "TSUnionType:exit"?: (node: TSUnionType) => void;
390
390
  }
391
- type VisitorObject = { [K in keyof StrictVisitorObject]?: BivarianceHackHandler<Exclude<StrictVisitorObject[K], undefined>> | undefined } & Record<string, BivarianceHackHandler<(node: Node$1) => void> | undefined>;
391
+ type VisitorObject = { [K in keyof StrictVisitorObject]?: BivarianceHackHandler<Exclude<StrictVisitorObject[K], undefined>> | undefined; } & Record<string, BivarianceHackHandler<(node: Node$1) => void> | undefined>;
392
392
  //#endregion
393
393
  //#region src-js/plugins/types.d.ts
394
394
  type BeforeHook = () => boolean | void;
@@ -509,7 +509,7 @@ interface BindingIdentifier extends Span {
509
509
  decorators?: [];
510
510
  name: string;
511
511
  optional?: false;
512
- typeAnnotation?: null;
512
+ typeAnnotation?: TSTypeAnnotation | null;
513
513
  parent: Node$1;
514
514
  }
515
515
  interface LabelIdentifier extends Span {
@@ -922,7 +922,7 @@ interface ObjectPattern extends Span {
922
922
  decorators?: [];
923
923
  properties: Array<BindingProperty | BindingRestElement>;
924
924
  optional?: false;
925
- typeAnnotation?: null;
925
+ typeAnnotation?: TSTypeAnnotation | null;
926
926
  parent: Node$1;
927
927
  }
928
928
  interface BindingProperty extends Span {
@@ -941,7 +941,7 @@ interface ArrayPattern extends Span {
941
941
  decorators?: [];
942
942
  elements: Array<BindingPattern | BindingRestElement | null>;
943
943
  optional?: false;
944
- typeAnnotation?: null;
944
+ typeAnnotation?: TSTypeAnnotation | null;
945
945
  parent: Node$1;
946
946
  }
947
947
  interface BindingRestElement extends Span {
@@ -949,7 +949,7 @@ interface BindingRestElement extends Span {
949
949
  decorators?: [];
950
950
  argument: BindingPattern;
951
951
  optional?: false;
952
- typeAnnotation?: null;
952
+ typeAnnotation?: TSTypeAnnotation | null;
953
953
  value?: null;
954
954
  parent: Node$1;
955
955
  }
@@ -1817,9 +1817,6 @@ interface Definition {
1817
1817
  }
1818
1818
  type DefinitionType = "CatchClause" | "ClassName" | "FunctionName" | "ImplicitGlobalVariable" | "ImportBinding" | "Parameter" | "Variable";
1819
1819
  type Identifier = IdentifierName | IdentifierReference | BindingIdentifier | LabelIdentifier | TSThisParameter | TSIndexSignatureName;
1820
- /**
1821
- * Discard TS-ESLint `ScopeManager`, to free memory.
1822
- */
1823
1820
  declare const SCOPE_MANAGER: Readonly<{
1824
1821
  /**
1825
1822
  * All scopes.
@@ -2254,12 +2251,12 @@ type Envs = Record<string, true>;
2254
2251
  * @see https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.1
2255
2252
  */
2256
2253
  type JSONSchema4TypeName = "string" //
2257
- | "number" | "integer" | "boolean" | "object" | "array" | "null" | "any";
2254
+ | "number" | "integer" | "boolean" | "object" | "array" | "null" | "any";
2258
2255
  /**
2259
2256
  * @see https://tools.ietf.org/html/draft-zyp-json-schema-04#section-3.5
2260
2257
  */
2261
2258
  type JSONSchema4Type = string //
2262
- | number | boolean | JSONSchema4Object | JSONSchema4Array | null;
2259
+ | number | boolean | JSONSchema4Object | JSONSchema4Array | null;
2263
2260
  // Workaround for infinite type recursion
2264
2261
  interface JSONSchema4Object {
2265
2262
  [key: string]: JSONSchema4Type;
@@ -2461,7 +2458,7 @@ type Options = JsonValue[];
2461
2458
  */
2462
2459
  type RuleOptionsSchema = JSONSchema4 | JSONSchema4[] | false;
2463
2460
  //#endregion
2464
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-any.d.ts
2461
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/is-any.d.ts
2465
2462
  /**
2466
2463
  Returns a boolean for whether the given type is `any`.
2467
2464
 
@@ -2492,7 +2489,7 @@ const anyA = get(anyObject, 'a');
2492
2489
  */
2493
2490
  type IsAny<T> = 0 extends 1 & NoInfer<T> ? true : false;
2494
2491
  //#endregion
2495
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-optional-key-of.d.ts
2492
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/is-optional-key-of.d.ts
2496
2493
  /**
2497
2494
  Returns a boolean for whether the given key is an optional key of type.
2498
2495
 
@@ -2535,7 +2532,7 @@ type T5 = IsOptionalKeyOf<User | Admin, 'surname'>;
2535
2532
  */
2536
2533
  type IsOptionalKeyOf<Type extends object, Key extends keyof Type> = IsAny<Type | Key> extends true ? never : Key extends keyof Type ? Type extends Record<Key, Type[Key]> ? false : true : false;
2537
2534
  //#endregion
2538
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/optional-keys-of.d.ts
2535
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/optional-keys-of.d.ts
2539
2536
  /**
2540
2537
  Extract all optional keys from the given type.
2541
2538
 
@@ -2570,10 +2567,10 @@ const update2: UpdateOperation<User> = {
2570
2567
  @category Utilities
2571
2568
  */
2572
2569
  type OptionalKeysOf<Type extends object> = Type extends unknown // For distributing `Type`
2573
- ? (keyof { [Key in keyof Type as IsOptionalKeyOf<Type, Key> extends false ? never : Key]: never }) & keyof Type // Intersect with `keyof Type` to ensure result of `OptionalKeysOf<Type>` is always assignable to `keyof Type`
2574
- : never;
2570
+ ? (keyof { [Key in keyof Type as IsOptionalKeyOf<Type, Key> extends false ? never : Key]: never; }) & keyof Type // Intersect with `keyof Type` to ensure result of `OptionalKeysOf<Type>` is always assignable to `keyof Type`
2571
+ : never; // Should never happen
2575
2572
  //#endregion
2576
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/required-keys-of.d.ts
2573
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/required-keys-of.d.ts
2577
2574
  /**
2578
2575
  Extract all required keys from the given type.
2579
2576
 
@@ -2605,9 +2602,9 @@ const validator3 = createValidation<User>('luckyNumber', value => value > 0);
2605
2602
  @category Utilities
2606
2603
  */
2607
2604
  type RequiredKeysOf<Type extends object> = Type extends unknown // For distributing `Type`
2608
- ? Exclude<keyof Type, OptionalKeysOf<Type>> : never;
2605
+ ? Exclude<keyof Type, OptionalKeysOf<Type>> : never; // Should never happen
2609
2606
  //#endregion
2610
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-never.d.ts
2607
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/is-never.d.ts
2611
2608
  /**
2612
2609
  Returns a boolean for whether the given type is `never`.
2613
2610
 
@@ -2663,7 +2660,7 @@ type B = IsTrueFixed<never>;
2663
2660
  */
2664
2661
  type IsNever<T> = [T] extends [never] ? true : false;
2665
2662
  //#endregion
2666
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/if.d.ts
2663
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/if.d.ts
2667
2664
  /**
2668
2665
  An if-else-like type that resolves depending on whether the given `boolean` type is `true` or `false`.
2669
2666
 
@@ -2758,22 +2755,22 @@ type Works = IncludesWithoutIf<HundredZeroes, '1'>;
2758
2755
  */
2759
2756
  type If<Type extends boolean, IfBranch, ElseBranch> = IsNever<Type> extends true ? ElseBranch : Type extends true ? IfBranch : ElseBranch;
2760
2757
  //#endregion
2761
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/internal/type.d.ts
2758
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/internal/type.d.ts
2762
2759
  /**
2763
2760
  An if-else-like type that resolves depending on whether the given type is `any` or `never`.
2764
2761
 
2765
2762
  @example
2766
2763
  ```
2767
- // When `T` is a NOT `any` or `never` (like `string`) => Returns `IfNotAnyOrNever` branch
2768
- type A = IfNotAnyOrNever<string, 'VALID', 'IS_ANY', 'IS_NEVER'>;
2764
+ // When `T` is neither `any` nor `never` (like `string`) => Returns `IfNot` branch
2765
+ type A = IfNotAnyOrNever<string, {ifNot: 'VALID'; ifAny: 'IS_ANY'; ifNever: 'IS_NEVER'}>;
2769
2766
  //=> 'VALID'
2770
2767
 
2771
2768
  // When `T` is `any` => Returns `IfAny` branch
2772
- type B = IfNotAnyOrNever<any, 'VALID', 'IS_ANY', 'IS_NEVER'>;
2769
+ type B = IfNotAnyOrNever<any, {ifNot: 'VALID'; ifAny: 'IS_ANY'; ifNever: 'IS_NEVER'}>;
2773
2770
  //=> 'IS_ANY'
2774
2771
 
2775
2772
  // When `T` is `never` => Returns `IfNever` branch
2776
- type C = IfNotAnyOrNever<never, 'VALID', 'IS_ANY', 'IS_NEVER'>;
2773
+ type C = IfNotAnyOrNever<never, {ifNot: 'VALID'; ifAny: 'IS_ANY'; ifNever: 'IS_NEVER'}>;
2777
2774
  //=> 'IS_NEVER'
2778
2775
  ```
2779
2776
 
@@ -2786,7 +2783,7 @@ import type {StringRepeat} from 'type-fest';
2786
2783
  type NineHundredNinetyNineSpaces = StringRepeat<' ', 999>;
2787
2784
 
2788
2785
  // The following implementation is not tail recursive
2789
- type TrimLeft<S extends string> = IfNotAnyOrNever<S, S extends ` ${infer R}` ? TrimLeft<R> : S>;
2786
+ type TrimLeft<S extends string> = IfNotAnyOrNever<S, {ifNot: S extends ` ${infer R}` ? TrimLeft<R> : S}>;
2790
2787
 
2791
2788
  // Hence, instantiations with long strings will fail
2792
2789
  // @ts-expect-error
@@ -2795,7 +2792,7 @@ type T1 = TrimLeft<NineHundredNinetyNineSpaces>;
2795
2792
  // Error: Type instantiation is excessively deep and possibly infinite.
2796
2793
 
2797
2794
  // To fix this, move the recursion into a helper type
2798
- type TrimLeftOptimised<S extends string> = IfNotAnyOrNever<S, _TrimLeftOptimised<S>>;
2795
+ type TrimLeftOptimised<S extends string> = IfNotAnyOrNever<S, {ifNot: _TrimLeftOptimised<S>}>;
2799
2796
 
2800
2797
  type _TrimLeftOptimised<S extends string> = S extends ` ${infer R}` ? _TrimLeftOptimised<R> : S;
2801
2798
 
@@ -2803,9 +2800,13 @@ type T2 = TrimLeftOptimised<NineHundredNinetyNineSpaces>;
2803
2800
  //=> ''
2804
2801
  ```
2805
2802
  */
2806
- type IfNotAnyOrNever<T, IfNotAnyOrNever, IfAny = any, IfNever = never> = If<IsAny<T>, IfAny, If<IsNever<T>, IfNever, IfNotAnyOrNever>>;
2803
+ type IfNotAnyOrNever<T, Cases extends {
2804
+ ifNot: unknown;
2805
+ ifAny?: unknown;
2806
+ ifNever?: unknown;
2807
+ }> = IsAny<T> extends true ? 'ifAny' extends keyof Cases ? Cases['ifAny'] : any : IsNever<T> extends true ? 'ifNever' extends keyof Cases ? Cases['ifNever'] : never : Cases['ifNot'];
2807
2808
  //#endregion
2808
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/simplify.d.ts
2809
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/simplify.d.ts
2809
2810
  /**
2810
2811
  Useful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.
2811
2812
 
@@ -2864,9 +2865,9 @@ fn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface`
2864
2865
  @see {@link SimplifyDeep}
2865
2866
  @category Object
2866
2867
  */
2867
- type Simplify<T> = { [KeyType in keyof T]: T[KeyType] } & {};
2868
+ type Simplify<T> = { [KeyType in keyof T]: T[KeyType]; } & {};
2868
2869
  //#endregion
2869
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/is-equal.d.ts
2870
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/is-equal.d.ts
2870
2871
  /**
2871
2872
  Returns a boolean for whether the two given types are equal.
2872
2873
 
@@ -2897,7 +2898,7 @@ type IsEqual<A, B> = [A] extends [B] ? [B] extends [A] ? _IsEqual<A, B> : false
2897
2898
  // This version fails the `equalWrappedTupleIntersectionToBeNeverAndNeverExpanded` test in `test-d/is-equal.ts`.
2898
2899
  type _IsEqual<A, B> = (<G>() => G extends A & G | G ? 1 : 2) extends (<G>() => G extends B & G | G ? 1 : 2) ? true : false;
2899
2900
  //#endregion
2900
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/omit-index-signature.d.ts
2901
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/omit-index-signature.d.ts
2901
2902
  /**
2902
2903
  Omit any index signatures from the given object type, leaving only explicitly defined properties.
2903
2904
 
@@ -2989,9 +2990,9 @@ type ExampleWithoutIndexSignatures = OmitIndexSignature<Example>;
2989
2990
  @see {@link PickIndexSignature}
2990
2991
  @category Object
2991
2992
  */
2992
- type OmitIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType] };
2993
+ type OmitIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? never : KeyType]: ObjectType[KeyType]; };
2993
2994
  //#endregion
2994
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/pick-index-signature.d.ts
2995
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/pick-index-signature.d.ts
2995
2996
  /**
2996
2997
  Pick only index signatures from the given object type, leaving out all explicitly defined properties.
2997
2998
 
@@ -3037,11 +3038,11 @@ type ExampleIndexSignature = PickIndexSignature<Example>;
3037
3038
  @see {@link OmitIndexSignature}
3038
3039
  @category Object
3039
3040
  */
3040
- type PickIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? KeyType : never]: ObjectType[KeyType] };
3041
+ type PickIndexSignature<ObjectType> = { [KeyType in keyof ObjectType as {} extends Record<KeyType, unknown> ? KeyType : never]: ObjectType[KeyType]; };
3041
3042
  //#endregion
3042
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/merge.d.ts
3043
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/merge.d.ts
3043
3044
  // Merges two objects without worrying about index signatures.
3044
- type SimpleMerge<Destination, Source> = Simplify<{ [Key in keyof Destination as Key extends keyof Source ? never : Key]: Destination[Key] } & Source>;
3045
+ type SimpleMerge<Destination, Source> = Simplify<{ [Key in keyof Destination as Key extends keyof Source ? never : Key]: Destination[Key]; } & Source>;
3045
3046
  /**
3046
3047
  Merge two types into a new type. Keys of the second type overrides keys of the first type.
3047
3048
 
@@ -3105,13 +3106,12 @@ Note: If you want a merge type that more accurately reflects the runtime behavio
3105
3106
  @category Object
3106
3107
  */
3107
3108
  type Merge<Destination, Source> = Destination extends unknown // For distributing `Destination`
3108
- ? Source extends unknown // For distributing `Source`
3109
- ? If<IsEqual<Destination, Source>, Destination, _Merge<Destination, Source>> : never // Should never happen
3110
- : never;
3111
- // Should never happen
3109
+ ? Source extends unknown // For distributing `Source`
3110
+ ? If<IsEqual<Destination, Source>, Destination, _Merge<Destination, Source>> : never // Should never happen
3111
+ : never; // Should never happen
3112
3112
  type _Merge<Destination, Source> = Simplify<SimpleMerge<PickIndexSignature<Destination>, PickIndexSignature<Source>> & SimpleMerge<OmitIndexSignature<Destination>, OmitIndexSignature<Source>>>;
3113
3113
  //#endregion
3114
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/internal/object.d.ts
3114
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/internal/object.d.ts
3115
3115
  /**
3116
3116
  Merges user specified options with default options.
3117
3117
 
@@ -3164,38 +3164,11 @@ type Result = ApplyDefaultOptions<PathsOptions, DefaultPathsOptions, SpecifiedOp
3164
3164
  // Types of property 'leavesOnly' are incompatible. Type 'string' is not assignable to type 'boolean'.
3165
3165
  ```
3166
3166
  */
3167
- type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> = _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> extends infer Result extends Required<Options> // `extends Required<Options>` ensures that `ApplyDefaultOptions<SomeOption, ...>` is always assignable to `Required<SomeOption>`
3168
- ? Result : never;
3169
- type _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> = If<IsAny<SpecifiedOptions>, Defaults, If<IsNever<SpecifiedOptions>, Defaults, Merge<Defaults, { [Key in keyof SpecifiedOptions as undefined extends Required<Options>[Key & keyof Options] ? Key : undefined extends SpecifiedOptions[Key] ? never : Key]: SpecifiedOptions[Key] }>>>;
3170
- /**
3171
- Collapses literal types in a union into their corresponding primitive types, when possible. For example, `CollapseLiterals<'foo' | 'bar' | (string & {})>` returns `string`.
3172
-
3173
- Note: This doesn't collapse literals within tagged types. For example, `CollapseLiterals<Tagged<'foo' | (string & {}), 'Tag'>>` returns `("foo" & Tag<"Tag", never>) | (string & Tag<"Tag", never>)` and not `string & Tag<"Tag", never>`.
3174
-
3175
- Use-case: For collapsing unions created using {@link LiteralUnion}.
3176
-
3177
- @example
3178
- ```
3179
- import type {LiteralUnion} from 'type-fest';
3180
-
3181
- type A = CollapseLiterals<'foo' | 'bar' | (string & {})>;
3182
- //=> string
3183
-
3184
- type B = CollapseLiterals<LiteralUnion<1 | 2 | 3, number>>;
3185
- //=> number
3186
-
3187
- type C = CollapseLiterals<LiteralUnion<'onClick' | 'onChange', `on${string}`>>;
3188
- //=> `on${string}`
3189
-
3190
- type D = CollapseLiterals<'click' | 'change' | (`on${string}` & {})>;
3191
- //=> 'click' | 'change' | `on${string}`
3192
-
3193
- type E = CollapseLiterals<LiteralUnion<'foo' | 'bar', string> | null | undefined>;
3194
- //=> string | null | undefined
3195
- ```
3196
- */
3167
+ type ApplyDefaultOptions<Options extends object, Defaults extends Simplify<Omit<Required<Options>, RequiredKeysOf<Options>> & Partial<Record<RequiredKeysOf<Options>, never>>>, SpecifiedOptions extends Options> = _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> extends (infer Result extends Required<Options> // `extends Required<Options>` ensures that `ApplyDefaultOptions<SomeOption, ...>` is always assignable to `Required<SomeOption>`
3168
+ ) ? Result : never;
3169
+ type _ApplyDefaultOptions<Options, Defaults, SpecifiedOptions> = If<IsAny<SpecifiedOptions>, Defaults, If<IsNever<SpecifiedOptions>, Defaults, Merge<Defaults, { [Key in keyof SpecifiedOptions as undefined extends Required<Options>[Key & keyof Options] ? Key : undefined extends SpecifiedOptions[Key] ? never : Key]: SpecifiedOptions[Key]; }>>>;
3197
3170
  //#endregion
3198
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/except.d.ts
3171
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/except.d.ts
3199
3172
  /**
3200
3173
  Filter out keys from an object.
3201
3174
 
@@ -3226,10 +3199,12 @@ type Filtered = Filter<'bar', 'foo'>;
3226
3199
  type Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);
3227
3200
  type ExceptOptions = {
3228
3201
  /**
3229
- Disallow assigning non-specified properties.
3230
- Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
3231
- @default false
3232
- */
3202
+ Disallow assigning non-specified properties.
3203
+
3204
+ Note that any omitted properties in the resulting type will be present in autocomplete as `undefined`.
3205
+
3206
+ @default false
3207
+ */
3233
3208
  requireExactProps?: boolean;
3234
3209
  };
3235
3210
  type DefaultExceptOptions = {
@@ -3291,9 +3266,9 @@ type PostPayloadFixed = Except<UserData, 'email'>;
3291
3266
  @category Object
3292
3267
  */
3293
3268
  type Except<ObjectType, KeysType extends keyof ObjectType, Options extends ExceptOptions = {}> = _Except<ObjectType, KeysType, ApplyDefaultOptions<ExceptOptions, DefaultExceptOptions, Options>>;
3294
- type _Except<ObjectType, KeysType extends keyof ObjectType, Options extends Required<ExceptOptions>> = { [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType] } & (Options['requireExactProps'] extends true ? Partial<Record<KeysType, never>> : {});
3269
+ type _Except<ObjectType, KeysType extends keyof ObjectType, Options extends Required<ExceptOptions>> = { [KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType]; } & (Options['requireExactProps'] extends true ? Partial<Record<KeysType, never>> : {});
3295
3270
  //#endregion
3296
- //#region ../../node_modules/.pnpm/type-fest@5.7.0/node_modules/type-fest/source/require-at-least-one.d.ts
3271
+ //#region ../../node_modules/.pnpm/type-fest@5.8.0/node_modules/type-fest/source/require-at-least-one.d.ts
3297
3272
  /**
3298
3273
  Create a type that requires at least one of the given keys, while keeping the remaining keys as is.
3299
3274
 
@@ -3315,11 +3290,14 @@ const responder: RequireAtLeastOne<Responder, 'text' | 'json'> = {
3315
3290
 
3316
3291
  @category Object
3317
3292
  */
3318
- type RequireAtLeastOne<ObjectType, KeysType extends keyof ObjectType = keyof ObjectType> = IfNotAnyOrNever<ObjectType, If<IsNever<KeysType>, never, _RequireAtLeastOne<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>>;
3319
- type _RequireAtLeastOne<ObjectType, KeysType extends keyof ObjectType> = { // For each `Key` in `KeysType` make a mapped type:
3320
- // 2. Make all other keys in `KeysType` optional
3321
- [Key in KeysType]-?: Required<Pick<ObjectType, Key>> // 1. Make `Key`'s type required
3322
- & Partial<Pick<ObjectType, Exclude<KeysType, Key>>> }[KeysType] & Except<ObjectType, KeysType>; // 3. Add the remaining keys not in `KeysType`
3293
+ type RequireAtLeastOne<ObjectType, KeysType extends keyof ObjectType = keyof ObjectType> = IfNotAnyOrNever<ObjectType, {
3294
+ ifNot: If<IsNever<KeysType>, never, _RequireAtLeastOne<ObjectType, If<IsAny<KeysType>, keyof ObjectType, KeysType>>>;
3295
+ }>;
3296
+ type _RequireAtLeastOne<ObjectType, KeysType extends keyof ObjectType> = { [
3297
+ // For each `Key` in `KeysType` make a mapped type:
3298
+ Key in KeysType]-?: Required<Pick<ObjectType, Key>> // 1. Make `Key`'s type required
3299
+ & Partial<Pick<ObjectType, Exclude<KeysType, Key>>> // 2. Make all other keys in `KeysType` optional
3300
+ ; }[KeysType] & Except<ObjectType, KeysType>; // 3. Add the remaining keys not in `KeysType`
3323
3301
  //#endregion
3324
3302
  //#region src-js/plugins/fix.d.ts
3325
3303
  type FixFn = (fixer: Fixer) => Fix | Array<Fix | null | undefined> | IterableIterator<Fix | null | undefined> | null | undefined;
@@ -3387,9 +3365,6 @@ interface SuggestionBase {
3387
3365
  data?: DiagnosticData | null | undefined;
3388
3366
  fix: FixFn;
3389
3367
  }
3390
- /**
3391
- * Suggested fix in form sent to Rust.
3392
- */
3393
3368
  //#endregion
3394
3369
  //#region src-js/plugins/source_code.d.ts
3395
3370
  declare const SOURCE_CODE: Readonly<{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxlint/plugins",
3
- "version": "1.72.0",
3
+ "version": "1.74.0",
4
4
  "description": "Plugin utilities for Oxlint",
5
5
  "keywords": [
6
6
  "eslint",