@oxlint/plugins 1.73.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.
- package/index.d.ts +57 -82
- 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;
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
2768
|
-
type A = IfNotAnyOrNever<string, 'VALID'
|
|
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'
|
|
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'
|
|
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,
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
3230
|
-
|
|
3231
|
-
|
|
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.
|
|
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,
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
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<{
|