@hey-api/openapi-ts 0.87.2 → 0.87.4

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.
@@ -1,5 +1,6 @@
1
1
  import { IProject, Project, Symbol, SymbolIdentifier, SymbolIn, SymbolMeta } from "@hey-api/codegen-core";
2
2
  import { RangeOptions, SemVer } from "semver";
3
+ import * as typescript422 from "typescript";
3
4
  import ts from "typescript";
4
5
 
5
6
  //#region src/plugins/shared/types/refs.d.ts
@@ -9952,9 +9953,816 @@ declare abstract class TsDsl<T extends ts.Node = ts.Node> implements ITsDsl<T> {
9952
9953
  type NodeOfMaybe<I> = undefined extends I ? NodeOf<NonNullable<I>> | undefined : NodeOf<I>;
9953
9954
  type NodeOf<I> = I extends ReadonlyArray<infer U> ? ReadonlyArray<U extends TsDsl<infer N> ? N : U> : I extends string ? ts.Expression : I extends boolean ? ts.Expression : I extends TsDsl<infer N> ? N : I extends ts.Node ? I : never;
9954
9955
  type MaybeTsDsl<T> = string extends T ? Exclude<T, string> extends ts.Node ? string | Exclude<T, string> | TsDsl<Exclude<T, string>> : string : T extends TsDsl<any> ? T : T extends ts.Node ? T | TsDsl<T> : never;
9956
+ type TypeOfTsDsl<T> = T extends TsDsl<infer U> ? U : never;
9957
+ declare abstract class TypeTsDsl<T extends ts.TypeNode | ts.TypeElement | ts.LiteralTypeNode | ts.TypeParameterDeclaration = ts.TypeNode> extends TsDsl<T> {}
9955
9958
  type TypeOfMaybe<I> = undefined extends I ? TypeOf<NonNullable<I>> | undefined : TypeOf<I>;
9956
9959
  type TypeOf<I> = I extends ReadonlyArray<infer U> ? ReadonlyArray<TypeOf<U>> : I extends string ? ts.TypeNode : I extends boolean ? ts.LiteralTypeNode : I extends TsDsl<infer N> ? N : I extends ts.TypeNode ? I : never;
9957
9960
  //#endregion
9961
+ //#region src/ts-dsl/mixins/layout.d.ts
9962
+ declare class LayoutMixin {
9963
+ private static readonly DEFAULT_THRESHOLD;
9964
+ private layout;
9965
+ /** Sets automatic line output with optional threshold (default: 3). */
9966
+ auto(threshold?: number): this;
9967
+ /** Sets single line output. */
9968
+ inline(): this;
9969
+ /** Sets multi line output. */
9970
+ pretty(): this;
9971
+ /** Computes whether output should be multiline based on layout setting and element count. */
9972
+ protected $multiline(count: number): boolean;
9973
+ }
9974
+ //#endregion
9975
+ //#region src/ts-dsl/array.d.ts
9976
+ declare class ArrayTsDsl extends TsDsl<ts.ArrayLiteralExpression> {
9977
+ private _elements;
9978
+ /** Adds a single array element. */
9979
+ element(expr: string | number | boolean | MaybeTsDsl<ts.Expression>): this;
9980
+ /** Adds multiple array elements. */
9981
+ elements(...exprs: ReadonlyArray<string | number | boolean | MaybeTsDsl<ts.Expression>>): this;
9982
+ /** Adds a spread element (`...expr`). */
9983
+ spread(expr: MaybeTsDsl<ts.Expression>): this;
9984
+ $render(): ts.ArrayLiteralExpression;
9985
+ }
9986
+ interface ArrayTsDsl extends LayoutMixin {}
9987
+ //#endregion
9988
+ //#region src/ts-dsl/await.d.ts
9989
+ declare class AwaitTsDsl extends TsDsl<ts.AwaitExpression> {
9990
+ private _awaitExpr;
9991
+ constructor(expr: MaybeTsDsl<WithString>);
9992
+ $render(): ts.AwaitExpression;
9993
+ }
9994
+ interface AwaitTsDsl extends AccessMixin {}
9995
+ //#endregion
9996
+ //#region src/ts-dsl/mixins/args.d.ts
9997
+ /**
9998
+ * Adds `.arg()` and `.args()` for managing expression arguments in call-like nodes.
9999
+ */
10000
+ declare class ArgsMixin extends TsDsl {
10001
+ private _args?;
10002
+ /** Adds a single expression argument. */
10003
+ arg(arg: MaybeTsDsl<WithString>): this;
10004
+ /** Adds one or more expression arguments. */
10005
+ args(...args: ReadonlyArray<MaybeTsDsl<WithString>>): this;
10006
+ /** Renders the arguments into an array of `Expression`s. */
10007
+ protected $args(): ReadonlyArray<ts.Expression>;
10008
+ $render(): ts.Node;
10009
+ }
10010
+ //#endregion
10011
+ //#region src/ts-dsl/mixins/type-args.d.ts
10012
+ declare class TypeArgsMixin extends TsDsl {
10013
+ protected _generics?: Array<WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>>;
10014
+ /** Adds a single type argument (e.g. `string` in `Foo<string>`). */
10015
+ generic(arg: WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>): this;
10016
+ /** Adds type arguments (e.g. `Map<string, number>`). */
10017
+ generics(...args: ReadonlyArray<WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>>): this;
10018
+ /**
10019
+ * Returns the type arguments as an array of ts.TypeNode nodes.
10020
+ */
10021
+ protected $generics(): ReadonlyArray<ts.TypeNode> | undefined;
10022
+ $render(): ts.Node;
10023
+ }
10024
+ //#endregion
10025
+ //#region src/ts-dsl/call.d.ts
10026
+ declare class CallTsDsl extends TsDsl<ts.CallExpression> {
10027
+ private _callee;
10028
+ constructor(callee: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString> | undefined>);
10029
+ $render(): ts.CallExpression;
10030
+ }
10031
+ interface CallTsDsl extends AccessMixin, ArgsMixin, TypeArgsMixin {}
10032
+ //#endregion
10033
+ //#region src/ts-dsl/return.d.ts
10034
+ declare class ReturnTsDsl extends TsDsl<ts.ReturnStatement> {
10035
+ private _returnExpr?;
10036
+ constructor(expr?: MaybeTsDsl<WithString>);
10037
+ $render(): ts.ReturnStatement;
10038
+ }
10039
+ interface ReturnTsDsl extends AccessMixin {}
10040
+ //#endregion
10041
+ //#region src/ts-dsl/mixins/access.d.ts
10042
+ declare class AccessMixin {
10043
+ /** Accesses a property on the current expression (e.g. `this.foo`). */
10044
+ attr(this: MaybeTsDsl<WithString>, name: WithString<ts.MemberName> | number): AttrTsDsl;
10045
+ /** Awaits the current expression (e.g. `await expr`). */
10046
+ await(this: MaybeTsDsl<WithString>): AwaitTsDsl;
10047
+ /** Calls the current expression (e.g. `fn(arg1, arg2)`). */
10048
+ call(this: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString> | undefined>): CallTsDsl;
10049
+ /** Produces a `return` statement returning the current expression. */
10050
+ return(this: MaybeTsDsl<WithString>): ReturnTsDsl;
10051
+ }
10052
+ //#endregion
10053
+ //#region src/ts-dsl/binary.d.ts
10054
+ type Operator = '!=' | '!==' | '&&' | '*' | '+' | '-' | '/' | '<' | '<=' | '=' | '==' | '===' | '>' | '>=' | '??' | '||';
10055
+ declare class BinaryTsDsl extends TsDsl<ts.BinaryExpression> {
10056
+ private left;
10057
+ private operator;
10058
+ private right;
10059
+ constructor(left: MaybeTsDsl<WithString>, operator: Operator | ts.BinaryOperator, right: MaybeTsDsl<WithString>);
10060
+ $render(): ts.BinaryExpression;
10061
+ private mapOperator;
10062
+ }
10063
+ //#endregion
10064
+ //#region src/ts-dsl/mixins/assignment.d.ts
10065
+ declare class AssignmentMixin {
10066
+ /** Creates an assignment expression (e.g. `this = expr`). */
10067
+ assign(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10068
+ }
10069
+ //#endregion
10070
+ //#region src/ts-dsl/mixins/operator.d.ts
10071
+ declare class OperatorMixin {
10072
+ /** Logical AND — `this && expr` */
10073
+ and(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10074
+ /** Nullish coalescing — `this ?? expr` */
10075
+ coalesce(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10076
+ /** Division — `this / expr` */
10077
+ div(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10078
+ /** Strict equality — `this === expr` */
10079
+ eq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10080
+ /** Greater than — `this > expr` */
10081
+ gt(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10082
+ /** Greater than or equal — `this >= expr` */
10083
+ gte(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10084
+ /** Loose equality — `this == expr` */
10085
+ looseEq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10086
+ /** Loose inequality — `this != expr` */
10087
+ looseNeq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10088
+ /** Less than — `this < expr` */
10089
+ lt(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10090
+ /** Less than or equal — `this <= expr` */
10091
+ lte(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10092
+ /** Subtraction — `this - expr` */
10093
+ minus(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10094
+ /** Strict inequality — `this !== expr` */
10095
+ neq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10096
+ /** Logical OR — `this || expr` */
10097
+ or(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10098
+ /** Addition — `this + expr` */
10099
+ plus(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10100
+ /** Multiplication — `this * expr` */
10101
+ times(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10102
+ }
10103
+ //#endregion
10104
+ //#region src/ts-dsl/mixins/optional.d.ts
10105
+ declare class OptionalMixin {
10106
+ protected isOptional?: boolean;
10107
+ protected questionToken?: ts.PunctuationToken<ts.SyntaxKind.QuestionToken>;
10108
+ optional<T extends this>(this: T, condition?: boolean): T;
10109
+ }
10110
+ //#endregion
10111
+ //#region src/ts-dsl/attr.d.ts
10112
+ declare class AttrTsDsl extends TsDsl<ts.PropertyAccessExpression | ts.ElementAccessExpression> {
10113
+ private left;
10114
+ private right;
10115
+ constructor(left: MaybeTsDsl<WithString>, right: WithString<ts.MemberName> | number);
10116
+ $render(): ts.PropertyAccessExpression | ts.ElementAccessExpression;
10117
+ }
10118
+ interface AttrTsDsl extends AccessMixin, AssignmentMixin, OperatorMixin, OptionalMixin {}
10119
+ //#endregion
10120
+ //#region src/ts-dsl/mixins/decorator.d.ts
10121
+ declare class DecoratorMixin extends TsDsl {
10122
+ private decorators?;
10123
+ /** Adds a decorator (e.g. `@sealed({ in: 'root' })`). */
10124
+ decorator(name: WithString, ...args: ReadonlyArray<MaybeTsDsl<WithString>>): this;
10125
+ /** Renders the decorators into an array of `ts.Decorator`s. */
10126
+ protected $decorators(): ReadonlyArray<ts.Decorator>;
10127
+ $render(): ts.Node;
10128
+ }
10129
+ //#endregion
10130
+ //#region src/ts-dsl/describe.d.ts
10131
+ declare class DescribeTsDsl extends TsDsl {
10132
+ private _lines;
10133
+ constructor(lines?: MaybeArray$1<string>, fn?: (d: DescribeTsDsl) => void);
10134
+ add(...lines: ReadonlyArray<string>): this;
10135
+ apply<T extends ts.Node>(node: T): T;
10136
+ $render(): ts.Node;
10137
+ }
10138
+ //#endregion
10139
+ //#region src/ts-dsl/mixins/describe.d.ts
10140
+ declare function DescribeMixin<TBase extends new (...args: ReadonlyArray<any>) => ITsDsl>(Base: TBase): {
10141
+ new (...args: ReadonlyArray<any>): {
10142
+ _desc?: DescribeTsDsl;
10143
+ describe(lines?: MaybeArray$1<string>, fn?: (d: DescribeTsDsl) => void): /*elided*/any;
10144
+ $render(): typescript422.Node;
10145
+ };
10146
+ } & TBase;
10147
+ type DescribeMixin = InstanceType<ReturnType<typeof DescribeMixin>>;
10148
+ //#endregion
10149
+ //#region src/ts-dsl/mixins/modifiers.d.ts
10150
+ type Target = object & {
10151
+ _m?(kind: ts.ModifierSyntaxKind, condition?: boolean): unknown;
10152
+ };
10153
+ /**
10154
+ * Mixin that adds an `abstract` modifier to a node.
10155
+ */
10156
+ declare class AbstractMixin {
10157
+ /**
10158
+ * Adds the `abstract` keyword modifier if the condition is true.
10159
+ *
10160
+ * @param condition - Whether to add the modifier (default: true).
10161
+ * @returns The target object for chaining.
10162
+ */
10163
+ abstract<T extends Target>(this: T, condition?: boolean): T;
10164
+ }
10165
+ /**
10166
+ * Mixin that adds an `async` modifier to a node.
10167
+ */
10168
+ declare class AsyncMixin {
10169
+ /**
10170
+ * Adds the `async` keyword modifier if the condition is true.
10171
+ *
10172
+ * @param condition - Whether to add the modifier (default: true).
10173
+ * @returns The target object for chaining.
10174
+ */
10175
+ async<T extends Target>(this: T, condition?: boolean): T;
10176
+ }
10177
+ /**
10178
+ * Mixin that adds a `default` modifier to a node.
10179
+ */
10180
+ declare class DefaultMixin {
10181
+ /**
10182
+ * Adds the `default` keyword modifier if the condition is true.
10183
+ *
10184
+ * @param condition - Whether to add the modifier (default: true).
10185
+ * @returns The target object for chaining.
10186
+ */
10187
+ default<T extends Target>(this: T, condition?: boolean): T;
10188
+ }
10189
+ /**
10190
+ * Mixin that adds an `export` modifier to a node.
10191
+ */
10192
+ declare class ExportMixin {
10193
+ /**
10194
+ * Adds the `export` keyword modifier if the condition is true.
10195
+ *
10196
+ * @param condition - Whether to add the modifier (default: true).
10197
+ * @returns The target object for chaining.
10198
+ */
10199
+ export<T extends Target>(this: T, condition?: boolean): T;
10200
+ }
10201
+ /**
10202
+ * Mixin that adds a `private` modifier to a node.
10203
+ */
10204
+ declare class PrivateMixin {
10205
+ /**
10206
+ * Adds the `private` keyword modifier if the condition is true.
10207
+ *
10208
+ * @param condition - Whether to add the modifier (default: true).
10209
+ * @returns The target object for chaining.
10210
+ */
10211
+ private<T extends Target>(this: T, condition?: boolean): T;
10212
+ }
10213
+ /**
10214
+ * Mixin that adds a `protected` modifier to a node.
10215
+ */
10216
+ declare class ProtectedMixin {
10217
+ /**
10218
+ * Adds the `protected` keyword modifier if the condition is true.
10219
+ *
10220
+ * @param condition - Whether to add the modifier (default: true).
10221
+ * @returns The target object for chaining.
10222
+ */
10223
+ protected<T extends Target>(this: T, condition?: boolean): T;
10224
+ }
10225
+ /**
10226
+ * Mixin that adds a `public` modifier to a node.
10227
+ */
10228
+ declare class PublicMixin {
10229
+ /**
10230
+ * Adds the `public` keyword modifier if the condition is true.
10231
+ *
10232
+ * @param condition - Whether to add the modifier (default: true).
10233
+ * @returns The target object for chaining.
10234
+ */
10235
+ public<T extends Target>(this: T, condition?: boolean): T;
10236
+ }
10237
+ /**
10238
+ * Mixin that adds a `readonly` modifier to a node.
10239
+ */
10240
+ declare class ReadonlyMixin {
10241
+ /**
10242
+ * Adds the `readonly` keyword modifier if the condition is true.
10243
+ *
10244
+ * @param condition - Whether to add the modifier (default: true).
10245
+ * @returns The target object for chaining.
10246
+ */
10247
+ readonly<T extends Target>(this: T, condition?: boolean): T;
10248
+ }
10249
+ /**
10250
+ * Mixin that adds a `static` modifier to a node.
10251
+ */
10252
+ declare class StaticMixin {
10253
+ /**
10254
+ * Adds the `static` keyword modifier if the condition is true.
10255
+ *
10256
+ * @param condition - Whether to add the modifier (default: true).
10257
+ * @returns The target object for chaining.
10258
+ */
10259
+ static<T extends Target>(this: T, condition?: boolean): T;
10260
+ }
10261
+ //#endregion
10262
+ //#region src/ts-dsl/mixins/value.d.ts
10263
+ declare class ValueMixin extends TsDsl {
10264
+ private value?;
10265
+ /** Sets the initializer expression (e.g. `= expr`). */
10266
+ assign<T extends this>(this: T, expr: MaybeTsDsl<WithString>): T;
10267
+ protected $value(): ts.Expression | undefined;
10268
+ $render(): ts.Node;
10269
+ }
10270
+ //#endregion
10271
+ //#region src/ts-dsl/field.d.ts
10272
+ declare class FieldTsDsl extends TsDsl<ts.PropertyDeclaration> {
10273
+ private modifiers;
10274
+ private name;
10275
+ private _type?;
10276
+ constructor(name: string, fn?: (f: FieldTsDsl) => void);
10277
+ /** Sets the field type. */
10278
+ type(type: string | TypeTsDsl): this;
10279
+ /** Builds the `PropertyDeclaration` node. */
10280
+ $render(): ts.PropertyDeclaration;
10281
+ }
10282
+ interface FieldTsDsl extends DecoratorMixin, DescribeMixin, PrivateMixin, ProtectedMixin, PublicMixin, ReadonlyMixin, StaticMixin, ValueMixin {}
10283
+ //#endregion
10284
+ //#region src/ts-dsl/mixins/do.d.ts
10285
+ /**
10286
+ * Adds `.do()` for appending statements or expressions to a body.
10287
+ */
10288
+ declare class DoMixin extends TsDsl {
10289
+ private _do?;
10290
+ /** Adds one or more expressions/statements to the body. */
10291
+ do(...items: ReadonlyArray<MaybeTsDsl<WithStatement>>): this;
10292
+ /** Renders the collected `.do()` calls into an array of `Statement` nodes. */
10293
+ protected $do(): ReadonlyArray<ts.Statement>;
10294
+ $render(): ts.Node;
10295
+ }
10296
+ //#endregion
10297
+ //#region src/ts-dsl/mixins/pattern.d.ts
10298
+ /**
10299
+ * Mixin providing `.array()`, `.object()`, and `.spread()` methods for defining destructuring patterns.
10300
+ */
10301
+ declare class PatternMixin extends TsDsl {
10302
+ private pattern?;
10303
+ /** Defines an array binding pattern. */
10304
+ array(...props: ReadonlyArray<string> | [ReadonlyArray<string>]): this;
10305
+ /** Defines an object binding pattern. */
10306
+ object(...props: ReadonlyArray<MaybeArray$1<string> | Record<string, string>>): this;
10307
+ /** Adds a spread element (e.g. `...args`, `...options`) to the pattern. */
10308
+ spread(name: string): this;
10309
+ /** Renders the pattern into a `BindingName`. */
10310
+ protected $pattern(): ts.BindingName | undefined;
10311
+ $render(): ts.Node;
10312
+ }
10313
+ //#endregion
10314
+ //#region src/ts-dsl/param.d.ts
10315
+ declare class ParamTsDsl extends TsDsl<ts.ParameterDeclaration> {
10316
+ private name?;
10317
+ private _type?;
10318
+ constructor(name: string | ((p: ParamTsDsl) => void), fn?: (p: ParamTsDsl) => void);
10319
+ /** Sets the parameter type. */
10320
+ type(type: string | TypeTsDsl): this;
10321
+ $render(): ts.ParameterDeclaration;
10322
+ }
10323
+ interface ParamTsDsl extends DecoratorMixin, OptionalMixin, PatternMixin, ValueMixin {}
10324
+ //#endregion
10325
+ //#region src/ts-dsl/mixins/param.d.ts
10326
+ declare class ParamMixin extends TsDsl {
10327
+ private _params?;
10328
+ /** Adds a parameter. */
10329
+ param(name: string | ((p: ParamTsDsl) => void), fn?: (p: ParamTsDsl) => void): this;
10330
+ /** Adds multiple parameters. */
10331
+ params(...params: ReadonlyArray<MaybeTsDsl<ts.ParameterDeclaration>>): this;
10332
+ /** Renders the parameters into an array of `ParameterDeclaration`s. */
10333
+ protected $params(): ReadonlyArray<ts.ParameterDeclaration>;
10334
+ $render(): ts.Node;
10335
+ }
10336
+ //#endregion
10337
+ //#region src/ts-dsl/init.d.ts
10338
+ declare class InitTsDsl extends TsDsl<ts.ConstructorDeclaration> {
10339
+ private modifiers;
10340
+ constructor(fn?: (i: InitTsDsl) => void);
10341
+ /** Builds the `ConstructorDeclaration` node. */
10342
+ $render(): ts.ConstructorDeclaration;
10343
+ }
10344
+ interface InitTsDsl extends DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin {}
10345
+ //#endregion
10346
+ //#region src/ts-dsl/type/param.d.ts
10347
+ declare class TypeParamTsDsl extends TypeTsDsl<ts.TypeParameterDeclaration> {
10348
+ protected name?: WithString<ts.Identifier>;
10349
+ protected constraint?: WithString<MaybeTsDsl<TypeTsDsl>> | boolean;
10350
+ protected defaultValue?: WithString<MaybeTsDsl<TypeTsDsl>> | boolean;
10351
+ constructor(name?: WithString<ts.Identifier>, fn?: (name: TypeParamTsDsl) => void);
10352
+ default(value: WithString<MaybeTsDsl<TypeTsDsl>> | boolean): this;
10353
+ extends(constraint: WithString<MaybeTsDsl<TypeTsDsl>> | boolean): this;
10354
+ $render(): ts.TypeParameterDeclaration;
10355
+ }
10356
+ //#endregion
10357
+ //#region src/ts-dsl/mixins/type-params.d.ts
10358
+ declare class TypeParamsMixin extends TsDsl {
10359
+ protected _generics?: Array<string | MaybeTsDsl<TypeOfTsDsl<TypeParamTsDsl>>>;
10360
+ /** Adds a single type parameter (e.g. `T` in `Array<T>`). */
10361
+ generic(...args: ConstructorParameters<typeof TypeParamTsDsl>): this;
10362
+ /** Adds type parameters (e.g. `Map<string, T>`). */
10363
+ generics(...args: ReadonlyArray<string | MaybeTsDsl<TypeOfTsDsl<TypeParamTsDsl>>>): this;
10364
+ /**
10365
+ * Returns the type parameters as an array of ts.TypeParameterDeclaration nodes.
10366
+ */
10367
+ protected $generics(): ReadonlyArray<ts.TypeParameterDeclaration> | undefined;
10368
+ $render(): ts.Node;
10369
+ }
10370
+ //#endregion
10371
+ //#region src/ts-dsl/method.d.ts
10372
+ declare class MethodTsDsl extends TsDsl<ts.MethodDeclaration> {
10373
+ private modifiers;
10374
+ private name;
10375
+ private _returns?;
10376
+ constructor(name: string, fn?: (m: MethodTsDsl) => void);
10377
+ /** Sets the return type. */
10378
+ returns(type: string | TypeTsDsl): this;
10379
+ /** Builds the `MethodDeclaration` node. */
10380
+ $render(): ts.MethodDeclaration;
10381
+ }
10382
+ interface MethodTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, OptionalMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin, TypeParamsMixin {}
10383
+ //#endregion
10384
+ //#region src/ts-dsl/class.d.ts
10385
+ declare class ClassTsDsl extends TsDsl<ts.ClassDeclaration> {
10386
+ private heritageClauses;
10387
+ private body;
10388
+ private modifiers;
10389
+ private name;
10390
+ constructor(name: string);
10391
+ /** Adds one or more class members (fields, methods, etc.). */
10392
+ do(...items: ReadonlyArray<MaybeTsDsl<ts.ClassElement | ts.Node>>): this;
10393
+ /** Adds a base class to extend from. */
10394
+ extends(base?: WithString | false | null): this;
10395
+ /** Adds a class field. */
10396
+ field(name: string, fn?: (f: FieldTsDsl) => void): this;
10397
+ /** Adds a class constructor. */
10398
+ init(fn?: (i: InitTsDsl) => void): this;
10399
+ /** Adds a class method. */
10400
+ method(name: string, fn?: (m: MethodTsDsl) => void): this;
10401
+ /** Inserts an empty line between members for formatting. */
10402
+ newline(): this;
10403
+ /** Builds the `ClassDeclaration` node. */
10404
+ $render(): ts.ClassDeclaration;
10405
+ }
10406
+ interface ClassTsDsl extends AbstractMixin, DecoratorMixin, DescribeMixin, DefaultMixin, ExportMixin, TypeParamsMixin {}
10407
+ //#endregion
10408
+ //#region src/ts-dsl/decorator.d.ts
10409
+ declare class DecoratorTsDsl extends TsDsl<ts.Decorator> {
10410
+ private name;
10411
+ constructor(name: WithString, ...args: ReadonlyArray<MaybeTsDsl<WithString>>);
10412
+ $render(): ts.Decorator;
10413
+ }
10414
+ interface DecoratorTsDsl extends ArgsMixin {}
10415
+ //#endregion
10416
+ //#region src/ts-dsl/type/attr.d.ts
10417
+ declare class TypeAttrTsDsl extends TsDsl<ts.QualifiedName> {
10418
+ private _base?;
10419
+ private right;
10420
+ constructor(base: WithString<MaybeTsDsl<ts.EntityName>>, right: WithString<ts.Identifier>);
10421
+ constructor(right: WithString<ts.Identifier>);
10422
+ base(base?: WithString<MaybeTsDsl<ts.EntityName>>): this;
10423
+ $render(): ts.QualifiedName;
10424
+ }
10425
+ //#endregion
10426
+ //#region src/ts-dsl/type/expr.d.ts
10427
+ declare class TypeExprTsDsl extends TypeTsDsl<ts.TypeReferenceNode> {
10428
+ private _exprInput?;
10429
+ constructor();
10430
+ constructor(fn: (t: TypeExprTsDsl) => void);
10431
+ constructor(name: string);
10432
+ constructor(name: string, fn?: (t: TypeExprTsDsl) => void);
10433
+ /** Accesses a nested type (e.g. `Foo.Bar`). */
10434
+ attr(right: WithString<ts.Identifier> | TypeAttrTsDsl): this;
10435
+ $render(): ts.TypeReferenceNode;
10436
+ }
10437
+ interface TypeExprTsDsl extends TypeArgsMixin {}
10438
+ //#endregion
10439
+ //#region src/ts-dsl/type/query.d.ts
10440
+ declare class TypeQueryTsDsl extends TypeTsDsl<ts.TypeQueryNode> {
10441
+ private expr;
10442
+ constructor(expr: string | MaybeTsDsl<TsDsl>);
10443
+ $render(): ts.TypeQueryNode;
10444
+ }
10445
+ //#endregion
10446
+ //#region src/ts-dsl/expr.d.ts
10447
+ declare class ExprTsDsl extends TsDsl<ts.Expression> {
10448
+ private _exprInput;
10449
+ constructor(id: MaybeTsDsl<WithString>);
10450
+ typeof(): TypeQueryTsDsl;
10451
+ returnType(): TypeExprTsDsl;
10452
+ $render(): ts.Expression;
10453
+ }
10454
+ interface ExprTsDsl extends AccessMixin, OperatorMixin {}
10455
+ //#endregion
10456
+ //#region src/ts-dsl/func.d.ts
10457
+ type FuncMode = 'arrow' | 'decl' | 'expr';
10458
+ declare class ImplFuncTsDsl<M extends FuncMode = 'arrow'> extends TsDsl<M extends 'decl' ? ts.FunctionDeclaration : M extends 'expr' ? ts.FunctionExpression : ts.ArrowFunction> {
10459
+ private mode;
10460
+ private modifiers;
10461
+ private name?;
10462
+ private _returns?;
10463
+ constructor();
10464
+ constructor(fn: (f: ImplFuncTsDsl<'arrow'>) => void);
10465
+ constructor(name: string);
10466
+ constructor(name: string, fn: (f: ImplFuncTsDsl<'decl'>) => void);
10467
+ arrow(): FuncTsDsl<'arrow'>;
10468
+ decl(): FuncTsDsl<'decl'>;
10469
+ expr(): FuncTsDsl<'expr'>;
10470
+ /** Sets the return type. */
10471
+ returns(type: string | TypeTsDsl): this;
10472
+ $render(): M extends 'decl' ? ts.FunctionDeclaration : M extends 'expr' ? ts.FunctionExpression : ts.ArrowFunction;
10473
+ }
10474
+ interface ImplFuncTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, OptionalMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin, TypeParamsMixin {}
10475
+ declare const FuncTsDsl: {
10476
+ new (): FuncTsDsl<"arrow">;
10477
+ new (fn: (f: FuncTsDsl<"arrow">) => void): FuncTsDsl<"arrow">;
10478
+ new (name: string): FuncTsDsl<"decl">;
10479
+ new (name: string, fn: (f: FuncTsDsl<"decl">) => void): FuncTsDsl<"decl">;
10480
+ } & typeof ImplFuncTsDsl;
10481
+ type FuncTsDsl<M extends FuncMode = 'arrow'> = ImplFuncTsDsl<M>;
10482
+ //#endregion
10483
+ //#region src/ts-dsl/getter.d.ts
10484
+ declare class GetterTsDsl extends TsDsl<ts.GetAccessorDeclaration> {
10485
+ private modifiers;
10486
+ private name;
10487
+ constructor(name: string, fn?: (g: GetterTsDsl) => void);
10488
+ $render(): ts.GetAccessorDeclaration;
10489
+ }
10490
+ interface GetterTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin {}
10491
+ //#endregion
10492
+ //#region src/ts-dsl/if.d.ts
10493
+ declare class IfTsDsl extends TsDsl<ts.IfStatement> {
10494
+ private conditionInput?;
10495
+ private elseInput?;
10496
+ constructor(condition?: MaybeTsDsl<WithString>);
10497
+ condition(condition: MaybeTsDsl<WithString>): this;
10498
+ otherwise(...statements: ReadonlyArray<MaybeTsDsl<ts.Statement>>): this;
10499
+ $render(): ts.IfStatement;
10500
+ }
10501
+ interface IfTsDsl extends DoMixin {}
10502
+ //#endregion
10503
+ //#region src/ts-dsl/literal.d.ts
10504
+ declare class LiteralTsDsl extends TsDsl<ts.LiteralTypeNode['literal']> {
10505
+ private value;
10506
+ constructor(value: string | number | boolean);
10507
+ $render(): ts.LiteralTypeNode['literal'];
10508
+ }
10509
+ //#endregion
10510
+ //#region src/ts-dsl/new.d.ts
10511
+ declare class NewTsDsl extends TsDsl<ts.NewExpression> {
10512
+ private classExpr;
10513
+ constructor(classExpr: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString>>);
10514
+ /** Builds the `NewExpression` node. */
10515
+ $render(): ts.NewExpression;
10516
+ }
10517
+ interface NewTsDsl extends AccessMixin, ArgsMixin, TypeArgsMixin {}
10518
+ //#endregion
10519
+ //#region src/ts-dsl/newline.d.ts
10520
+ declare class NewlineTsDsl extends TsDsl<ts.Identifier> {
10521
+ $render(): ts.Identifier;
10522
+ }
10523
+ //#endregion
10524
+ //#region src/ts-dsl/not.d.ts
10525
+ declare class NotTsDsl extends TsDsl<ts.PrefixUnaryExpression> {
10526
+ private _notExpr;
10527
+ constructor(expr: MaybeTsDsl<WithString>);
10528
+ $render(): ts.PrefixUnaryExpression;
10529
+ }
10530
+ //#endregion
10531
+ //#region src/ts-dsl/object.d.ts
10532
+ declare class ObjectTsDsl extends TsDsl<ts.ObjectLiteralExpression> {
10533
+ private props;
10534
+ /** Adds a getter property (e.g. `{ get foo() { ... } }`). */
10535
+ getter(name: string, expr: WithString<MaybeTsDsl<ts.Statement>>): this;
10536
+ /** Returns true if object has at least one property or spread. */
10537
+ hasProps(): boolean;
10538
+ /** Returns true if object has no properties or spreads. */
10539
+ get isEmpty(): boolean;
10540
+ /** Adds a property assignment. */
10541
+ prop(name: string, expr: MaybeTsDsl<WithString>): this;
10542
+ /** Adds a setter property (e.g. `{ set foo(v) { ... } }`). */
10543
+ setter(name: string, expr: WithString<MaybeTsDsl<ts.Statement>>): this;
10544
+ /** Adds a spread property (e.g. `{ ...options }`). */
10545
+ spread(expr: MaybeTsDsl<WithString>): this;
10546
+ /** Builds and returns the object literal expression. */
10547
+ $render(): ts.ObjectLiteralExpression;
10548
+ private safePropertyName;
10549
+ }
10550
+ interface ObjectTsDsl extends LayoutMixin {}
10551
+ //#endregion
10552
+ //#region src/ts-dsl/pattern.d.ts
10553
+ /**
10554
+ * Builds binding patterns (e.g. `{ foo, bar }`, `[a, b, ...rest]`).
10555
+ */
10556
+ declare class PatternTsDsl extends TsDsl<ts.BindingName> {
10557
+ private pattern?;
10558
+ private _spread?;
10559
+ /** Defines an array pattern (e.g. `[a, b, c]`). */
10560
+ array(...props: ReadonlyArray<string> | [ReadonlyArray<string>]): this;
10561
+ /** Defines an object pattern (e.g. `{ a, b: alias }`). */
10562
+ object(...props: ReadonlyArray<MaybeArray$1<string> | Record<string, string>>): this;
10563
+ /** Adds a spread element (e.g. `...rest`, `...options`, `...args`). */
10564
+ spread(name: string): this;
10565
+ /** Builds and returns a BindingName (ObjectBindingPattern, ArrayBindingPattern, or Identifier). */
10566
+ $render(): ts.BindingName;
10567
+ private createSpread;
10568
+ }
10569
+ //#endregion
10570
+ //#region src/ts-dsl/regexp.d.ts
10571
+ type RegexFlag = 'g' | 'i' | 'm' | 's' | 'u' | 'y';
10572
+ type RegexFlags<Avail extends string = RegexFlag> = '' | { [K in Avail]: `${K}${RegexFlags<Exclude<Avail, K>>}` }[Avail];
10573
+ declare class RegExpTsDsl extends TsDsl<ts.RegularExpressionLiteral> {
10574
+ private pattern;
10575
+ private flags?;
10576
+ constructor(pattern: string, flags?: RegexFlags);
10577
+ /** Emits a RegularExpressionLiteral node. */
10578
+ $render(): ts.RegularExpressionLiteral;
10579
+ }
10580
+ //#endregion
10581
+ //#region src/ts-dsl/setter.d.ts
10582
+ declare class SetterTsDsl extends TsDsl<ts.SetAccessorDeclaration> {
10583
+ private modifiers;
10584
+ private name;
10585
+ constructor(name: string, fn?: (s: SetterTsDsl) => void);
10586
+ $render(): ts.SetAccessorDeclaration;
10587
+ }
10588
+ interface SetterTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin {}
10589
+ //#endregion
10590
+ //#region src/ts-dsl/template.d.ts
10591
+ declare class TemplateTsDsl extends TsDsl<ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral> {
10592
+ private parts;
10593
+ constructor(value?: MaybeTsDsl<WithString>);
10594
+ add(value: MaybeTsDsl<WithString>): this;
10595
+ $render(): ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral;
10596
+ }
10597
+ //#endregion
10598
+ //#region src/ts-dsl/throw.d.ts
10599
+ declare class ThrowTsDsl extends TsDsl<ts.ThrowStatement> {
10600
+ private error;
10601
+ private msg?;
10602
+ private useNew;
10603
+ constructor(error: MaybeTsDsl<WithString>, useNew?: boolean);
10604
+ message(value: MaybeTsDsl<WithString>): this;
10605
+ $render(): ts.ThrowStatement;
10606
+ }
10607
+ //#endregion
10608
+ //#region src/ts-dsl/type/alias.d.ts
10609
+ declare class TypeAliasTsDsl extends TsDsl<ts.TypeAliasDeclaration> {
10610
+ private value?;
10611
+ private modifiers;
10612
+ private name;
10613
+ constructor(name: string, fn?: (t: TypeAliasTsDsl) => void);
10614
+ /** Sets the type expression on the right-hand side of `= ...`. */
10615
+ type(node: MaybeTsDsl<ts.TypeNode>): this;
10616
+ /** Renders a `TypeAliasDeclaration` node. */
10617
+ $render(): ts.TypeAliasDeclaration;
10618
+ }
10619
+ interface TypeAliasTsDsl extends ExportMixin, TypeParamsMixin {}
10620
+ //#endregion
10621
+ //#region src/ts-dsl/type/literal.d.ts
10622
+ declare class TypeLiteralTsDsl extends TypeTsDsl<ts.LiteralTypeNode> {
10623
+ private value;
10624
+ constructor(value: string | number | boolean);
10625
+ $render(): ts.LiteralTypeNode;
10626
+ }
10627
+ //#endregion
10628
+ //#region src/ts-dsl/type/object.d.ts
10629
+ declare class TypeObjectTsDsl extends TypeTsDsl<ts.TypeNode> {
10630
+ private props;
10631
+ private merges;
10632
+ /** Adds a property signature (returns property builder). */
10633
+ prop(name: string, fn: (p: TypePropTsDsl) => void): this;
10634
+ /** Adds a type to merge (intersect) with the object literal. */
10635
+ merge(type: WithString<ts.Identifier>): this;
10636
+ $render(): ts.TypeNode;
10637
+ }
10638
+ declare class TypePropTsDsl extends TypeTsDsl<ts.TypeElement> {
10639
+ private name;
10640
+ private typeInput?;
10641
+ constructor(name: string, fn: (p: TypePropTsDsl) => void);
10642
+ /** Sets the property type. */
10643
+ type(type: WithString<ts.TypeNode>): this;
10644
+ /** Builds and returns the property signature. */
10645
+ $render(): ts.TypeElement;
10646
+ }
10647
+ interface TypePropTsDsl extends OptionalMixin {}
10648
+ //#endregion
10649
+ //#region src/ts-dsl/var.d.ts
10650
+ declare class VarTsDsl extends TsDsl<ts.VariableStatement> {
10651
+ private kind;
10652
+ private modifiers;
10653
+ private name?;
10654
+ private _type?;
10655
+ constructor(name?: string);
10656
+ const(): this;
10657
+ let(): this;
10658
+ /** Sets the variable type. */
10659
+ type(type: string | TypeTsDsl): this;
10660
+ var(): this;
10661
+ $render(): ts.VariableStatement;
10662
+ }
10663
+ interface VarTsDsl extends DefaultMixin, DescribeMixin, ExportMixin, PatternMixin, ValueMixin {}
10664
+ //#endregion
10665
+ //#region src/ts-dsl/index.d.ts
10666
+ declare const $: ((id: string | typescript422.Expression | TsDsl<typescript422.Expression>) => ExprTsDsl) & {
10667
+ /** Creates an array literal expression (e.g. `[1, 2, 3]`). */
10668
+ array: () => ArrayTsDsl;
10669
+ /** Creates a property access expression (e.g. `obj.foo`). */
10670
+ attr: (left: string | typescript422.Expression | TsDsl<typescript422.Expression>, right: number | WithString<typescript422.MemberName>) => AttrTsDsl;
10671
+ /** Creates an await expression (e.g. `await promise`). */
10672
+ await: (expr: string | typescript422.Expression | TsDsl<typescript422.Expression>) => AwaitTsDsl;
10673
+ /** Creates a binary expression (e.g. `a + b`). */
10674
+ binary: (left: string | typescript422.Expression | TsDsl<typescript422.Expression>, operator: ("!=" | "!==" | "&&" | "*" | "+" | "-" | "/" | "<" | "<=" | "=" | "==" | "===" | ">" | ">=" | "??" | "||") | typescript422.BinaryOperator, right: string | typescript422.Expression | TsDsl<typescript422.Expression>) => BinaryTsDsl;
10675
+ /** Creates a function or method call expression (e.g. `fn(arg)`). */
10676
+ call: (callee: string | typescript422.Expression | TsDsl<typescript422.Expression>, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined)[]) => CallTsDsl;
10677
+ /** Creates a class declaration or expression. */
10678
+ class: (name: string) => ClassTsDsl;
10679
+ /** Creates a constant variable declaration (`const`). */
10680
+ const: (name?: string | undefined) => VarTsDsl;
10681
+ /** Creates a decorator expression (e.g. `@decorator`). */
10682
+ decorator: (name: WithString, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression>)[]) => DecoratorTsDsl;
10683
+ /** Creates a describe block (used for tests or descriptions). */
10684
+ describe: (lines?: MaybeArray$1<string> | undefined, fn?: ((d: DescribeTsDsl) => void) | undefined) => DescribeTsDsl;
10685
+ /** Creates a general expression node. */
10686
+ expr: (id: string | typescript422.Expression | TsDsl<typescript422.Expression>) => ExprTsDsl;
10687
+ /** Creates a field declaration in a class or object. */
10688
+ field: (name: string, fn?: ((f: FieldTsDsl) => void) | undefined) => FieldTsDsl;
10689
+ /** Creates a function expression or declaration. */
10690
+ func: {
10691
+ (): FuncTsDsl<"arrow">;
10692
+ (fn: (f: FuncTsDsl<"arrow">) => void): FuncTsDsl<"arrow">;
10693
+ (name: string): FuncTsDsl<"decl">;
10694
+ (name: string, fn: (f: FuncTsDsl<"decl">) => void): FuncTsDsl<"decl">;
10695
+ };
10696
+ /** Creates a getter method declaration. */
10697
+ getter: (name: string, fn?: ((g: GetterTsDsl) => void) | undefined) => GetterTsDsl;
10698
+ /** Creates an if statement. */
10699
+ if: (condition?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => IfTsDsl;
10700
+ /** Creates an initialization block or statement. */
10701
+ init: (fn?: ((i: InitTsDsl) => void) | undefined) => InitTsDsl;
10702
+ /** Creates a let variable declaration (`let`). */
10703
+ let: (name?: string | undefined) => VarTsDsl;
10704
+ /** Creates a literal value (e.g. string, number, boolean). */
10705
+ literal: (value: string | number | boolean) => LiteralTsDsl;
10706
+ /** Creates a method declaration inside a class or object. */
10707
+ method: (name: string, fn?: ((m: MethodTsDsl) => void) | undefined) => MethodTsDsl;
10708
+ /** Creates a new expression (e.g. `new ClassName()`). */
10709
+ new: (classExpr: string | typescript422.Expression | TsDsl<typescript422.Expression>, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression>)[]) => NewTsDsl;
10710
+ /** Creates a newline (for formatting purposes). */
10711
+ newline: () => NewlineTsDsl;
10712
+ /** Creates a logical NOT expression (e.g. `!expr`). */
10713
+ not: (expr: string | typescript422.Expression | TsDsl<typescript422.Expression>) => NotTsDsl;
10714
+ /** Creates an object literal expression. */
10715
+ object: () => ObjectTsDsl;
10716
+ /** Creates a parameter declaration for functions or methods. */
10717
+ param: (name: string | ((p: ParamTsDsl) => void), fn?: ((p: ParamTsDsl) => void) | undefined) => ParamTsDsl;
10718
+ /** Creates a pattern for destructuring or matching. */
10719
+ pattern: () => PatternTsDsl;
10720
+ /** Creates a regular expression literal (e.g. `/foo/gi`). */
10721
+ regexp: (pattern: string, flags?: ("" | "g" | "i" | "m" | "s" | "u" | "y" | "uy" | "yu" | "su" | "sy" | "suy" | "syu" | "ys" | "us" | "usy" | "uys" | "ysu" | "yus" | "ms" | "mu" | "my" | "muy" | "myu" | "msu" | "msy" | "msuy" | "msyu" | "mys" | "mus" | "musy" | "muys" | "mysu" | "myus" | "ym" | "um" | "umy" | "uym" | "ymu" | "yum" | "sm" | "smu" | "smy" | "smuy" | "smyu" | "sym" | "sum" | "sumy" | "suym" | "symu" | "syum" | "yms" | "ysm" | "ums" | "umsy" | "umys" | "usm" | "usmy" | "usym" | "uyms" | "uysm" | "ymsu" | "ymus" | "ysmu" | "ysum" | "yums" | "yusm" | "im" | "is" | "iu" | "iy" | "iuy" | "iyu" | "isu" | "isy" | "isuy" | "isyu" | "iys" | "ius" | "iusy" | "iuys" | "iysu" | "iyus" | "ims" | "imu" | "imy" | "imuy" | "imyu" | "imsu" | "imsy" | "imsuy" | "imsyu" | "imys" | "imus" | "imusy" | "imuys" | "imysu" | "imyus" | "iym" | "ium" | "iumy" | "iuym" | "iymu" | "iyum" | "ism" | "ismu" | "ismy" | "ismuy" | "ismyu" | "isym" | "isum" | "isumy" | "isuym" | "isymu" | "isyum" | "iyms" | "iysm" | "iums" | "iumsy" | "iumys" | "iusm" | "iusmy" | "iusym" | "iuyms" | "iuysm" | "iymsu" | "iymus" | "iysmu" | "iysum" | "iyums" | "iyusm" | "yi" | "ui" | "uiy" | "uyi" | "yiu" | "yui" | "si" | "siu" | "siy" | "siuy" | "siyu" | "syi" | "sui" | "suiy" | "suyi" | "syiu" | "syui" | "yis" | "ysi" | "uis" | "uisy" | "uiys" | "usi" | "usiy" | "usyi" | "uyis" | "uysi" | "yisu" | "yius" | "ysiu" | "ysui" | "yuis" | "yusi" | "mi" | "mis" | "miu" | "miy" | "miuy" | "miyu" | "misu" | "misy" | "misuy" | "misyu" | "miys" | "mius" | "miusy" | "miuys" | "miysu" | "miyus" | "myi" | "mui" | "muiy" | "muyi" | "myiu" | "myui" | "msi" | "msiu" | "msiy" | "msiuy" | "msiyu" | "msyi" | "msui" | "msuiy" | "msuyi" | "msyiu" | "msyui" | "myis" | "mysi" | "muis" | "muisy" | "muiys" | "musi" | "musiy" | "musyi" | "muyis" | "muysi" | "myisu" | "myius" | "mysiu" | "mysui" | "myuis" | "myusi" | "yim" | "ymi" | "uim" | "uimy" | "uiym" | "umi" | "umiy" | "umyi" | "uyim" | "uymi" | "yimu" | "yium" | "ymiu" | "ymui" | "yuim" | "yumi" | "sim" | "simu" | "simy" | "simuy" | "simyu" | "siym" | "sium" | "siumy" | "siuym" | "siymu" | "siyum" | "smi" | "smiu" | "smiy" | "smiuy" | "smiyu" | "smyi" | "smui" | "smuiy" | "smuyi" | "smyiu" | "smyui" | "syim" | "symi" | "suim" | "suimy" | "suiym" | "sumi" | "sumiy" | "sumyi" | "suyim" | "suymi" | "syimu" | "syium" | "symiu" | "symui" | "syuim" | "syumi" | "yims" | "yism" | "ymis" | "ymsi" | "ysim" | "ysmi" | "uims" | "uimsy" | "uimys" | "uism" | "uismy" | "uisym" | "uiyms" | "uiysm" | "umis" | "umisy" | "umiys" | "umsi" | "umsiy" | "umsyi" | "umyis" | "umysi" | "usim" | "usimy" | "usiym" | "usmi" | "usmiy" | "usmyi" | "usyim" | "usymi" | "uyims" | "uyism" | "uymis" | "uymsi" | "uysim" | "uysmi" | "yimsu" | "yimus" | "yismu" | "yisum" | "yiums" | "yiusm" | "ymisu" | "ymius" | "ymsiu" | "ymsui" | "ymuis" | "ymusi" | "ysimu" | "ysium" | "ysmiu" | "ysmui" | "ysuim" | "ysumi" | "yuims" | "yuism" | "yumis" | "yumsi" | "yusim" | "yusmi" | "gi" | "gm" | "gs" | "gu" | "gy" | "guy" | "gyu" | "gsu" | "gsy" | "gsuy" | "gsyu" | "gys" | "gus" | "gusy" | "guys" | "gysu" | "gyus" | "gms" | "gmu" | "gmy" | "gmuy" | "gmyu" | "gmsu" | "gmsy" | "gmsuy" | "gmsyu" | "gmys" | "gmus" | "gmusy" | "gmuys" | "gmysu" | "gmyus" | "gym" | "gum" | "gumy" | "guym" | "gymu" | "gyum" | "gsm" | "gsmu" | "gsmy" | "gsmuy" | "gsmyu" | "gsym" | "gsum" | "gsumy" | "gsuym" | "gsymu" | "gsyum" | "gyms" | "gysm" | "gums" | "gumsy" | "gumys" | "gusm" | "gusmy" | "gusym" | "guyms" | "guysm" | "gymsu" | "gymus" | "gysmu" | "gysum" | "gyums" | "gyusm" | "gim" | "gis" | "giu" | "giy" | "giuy" | "giyu" | "gisu" | "gisy" | "gisuy" | "gisyu" | "giys" | "gius" | "giusy" | "giuys" | "giysu" | "giyus" | "gims" | "gimu" | "gimy" | "gimuy" | "gimyu" | "gimsu" | "gimsy" | "gimsuy" | "gimsyu" | "gimys" | "gimus" | "gimusy" | "gimuys" | "gimysu" | "gimyus" | "giym" | "gium" | "giumy" | "giuym" | "giymu" | "giyum" | "gism" | "gismu" | "gismy" | "gismuy" | "gismyu" | "gisym" | "gisum" | "gisumy" | "gisuym" | "gisymu" | "gisyum" | "giyms" | "giysm" | "giums" | "giumsy" | "giumys" | "giusm" | "giusmy" | "giusym" | "giuyms" | "giuysm" | "giymsu" | "giymus" | "giysmu" | "giysum" | "giyums" | "giyusm" | "gyi" | "gui" | "guiy" | "guyi" | "gyiu" | "gyui" | "gsi" | "gsiu" | "gsiy" | "gsiuy" | "gsiyu" | "gsyi" | "gsui" | "gsuiy" | "gsuyi" | "gsyiu" | "gsyui" | "gyis" | "gysi" | "guis" | "guisy" | "guiys" | "gusi" | "gusiy" | "gusyi" | "guyis" | "guysi" | "gyisu" | "gyius" | "gysiu" | "gysui" | "gyuis" | "gyusi" | "gmi" | "gmis" | "gmiu" | "gmiy" | "gmiuy" | "gmiyu" | "gmisu" | "gmisy" | "gmisuy" | "gmisyu" | "gmiys" | "gmius" | "gmiusy" | "gmiuys" | "gmiysu" | "gmiyus" | "gmyi" | "gmui" | "gmuiy" | "gmuyi" | "gmyiu" | "gmyui" | "gmsi" | "gmsiu" | "gmsiy" | "gmsiuy" | "gmsiyu" | "gmsyi" | "gmsui" | "gmsuiy" | "gmsuyi" | "gmsyiu" | "gmsyui" | "gmyis" | "gmysi" | "gmuis" | "gmuisy" | "gmuiys" | "gmusi" | "gmusiy" | "gmusyi" | "gmuyis" | "gmuysi" | "gmyisu" | "gmyius" | "gmysiu" | "gmysui" | "gmyuis" | "gmyusi" | "gyim" | "gymi" | "guim" | "guimy" | "guiym" | "gumi" | "gumiy" | "gumyi" | "guyim" | "guymi" | "gyimu" | "gyium" | "gymiu" | "gymui" | "gyuim" | "gyumi" | "gsim" | "gsimu" | "gsimy" | "gsimuy" | "gsimyu" | "gsiym" | "gsium" | "gsiumy" | "gsiuym" | "gsiymu" | "gsiyum" | "gsmi" | "gsmiu" | "gsmiy" | "gsmiuy" | "gsmiyu" | "gsmyi" | "gsmui" | "gsmuiy" | "gsmuyi" | "gsmyiu" | "gsmyui" | "gsyim" | "gsymi" | "gsuim" | "gsuimy" | "gsuiym" | "gsumi" | "gsumiy" | "gsumyi" | "gsuyim" | "gsuymi" | "gsyimu" | "gsyium" | "gsymiu" | "gsymui" | "gsyuim" | "gsyumi" | "gyims" | "gyism" | "gymis" | "gymsi" | "gysim" | "gysmi" | "guims" | "guimsy" | "guimys" | "guism" | "guismy" | "guisym" | "guiyms" | "guiysm" | "gumis" | "gumisy" | "gumiys" | "gumsi" | "gumsiy" | "gumsyi" | "gumyis" | "gumysi" | "gusim" | "gusimy" | "gusiym" | "gusmi" | "gusmiy" | "gusmyi" | "gusyim" | "gusymi" | "guyims" | "guyism" | "guymis" | "guymsi" | "guysim" | "guysmi" | "gyimsu" | "gyimus" | "gyismu" | "gyisum" | "gyiums" | "gyiusm" | "gymisu" | "gymius" | "gymsiu" | "gymsui" | "gymuis" | "gymusi" | "gysimu" | "gysium" | "gysmiu" | "gysmui" | "gysuim" | "gysumi" | "gyuims" | "gyuism" | "gyumis" | "gyumsi" | "gyusim" | "gyusmi" | "yg" | "ug" | "ugy" | "uyg" | "ygu" | "yug" | "sg" | "sgu" | "sgy" | "sguy" | "sgyu" | "syg" | "sug" | "sugy" | "suyg" | "sygu" | "syug" | "ygs" | "ysg" | "ugs" | "ugsy" | "ugys" | "usg" | "usgy" | "usyg" | "uygs" | "uysg" | "ygsu" | "ygus" | "ysgu" | "ysug" | "yugs" | "yusg" | "mg" | "mgs" | "mgu" | "mgy" | "mguy" | "mgyu" | "mgsu" | "mgsy" | "mgsuy" | "mgsyu" | "mgys" | "mgus" | "mgusy" | "mguys" | "mgysu" | "mgyus" | "myg" | "mug" | "mugy" | "muyg" | "mygu" | "myug" | "msg" | "msgu" | "msgy" | "msguy" | "msgyu" | "msyg" | "msug" | "msugy" | "msuyg" | "msygu" | "msyug" | "mygs" | "mysg" | "mugs" | "mugsy" | "mugys" | "musg" | "musgy" | "musyg" | "muygs" | "muysg" | "mygsu" | "mygus" | "mysgu" | "mysug" | "myugs" | "myusg" | "ygm" | "ymg" | "ugm" | "ugmy" | "ugym" | "umg" | "umgy" | "umyg" | "uygm" | "uymg" | "ygmu" | "ygum" | "ymgu" | "ymug" | "yugm" | "yumg" | "sgm" | "sgmu" | "sgmy" | "sgmuy" | "sgmyu" | "sgym" | "sgum" | "sgumy" | "sguym" | "sgymu" | "sgyum" | "smg" | "smgu" | "smgy" | "smguy" | "smgyu" | "smyg" | "smug" | "smugy" | "smuyg" | "smygu" | "smyug" | "sygm" | "symg" | "sugm" | "sugmy" | "sugym" | "sumg" | "sumgy" | "sumyg" | "suygm" | "suymg" | "sygmu" | "sygum" | "symgu" | "symug" | "syugm" | "syumg" | "ygms" | "ygsm" | "ymgs" | "ymsg" | "ysgm" | "ysmg" | "ugms" | "ugmsy" | "ugmys" | "ugsm" | "ugsmy" | "ugsym" | "ugyms" | "ugysm" | "umgs" | "umgsy" | "umgys" | "umsg" | "umsgy" | "umsyg" | "umygs" | "umysg" | "usgm" | "usgmy" | "usgym" | "usmg" | "usmgy" | "usmyg" | "usygm" | "usymg" | "uygms" | "uygsm" | "uymgs" | "uymsg" | "uysgm" | "uysmg" | "ygmsu" | "ygmus" | "ygsmu" | "ygsum" | "ygums" | "ygusm" | "ymgsu" | "ymgus" | "ymsgu" | "ymsug" | "ymugs" | "ymusg" | "ysgmu" | "ysgum" | "ysmgu" | "ysmug" | "ysugm" | "ysumg" | "yugms" | "yugsm" | "yumgs" | "yumsg" | "yusgm" | "yusmg" | "ig" | "igm" | "igs" | "igu" | "igy" | "iguy" | "igyu" | "igsu" | "igsy" | "igsuy" | "igsyu" | "igys" | "igus" | "igusy" | "iguys" | "igysu" | "igyus" | "igms" | "igmu" | "igmy" | "igmuy" | "igmyu" | "igmsu" | "igmsy" | "igmsuy" | "igmsyu" | "igmys" | "igmus" | "igmusy" | "igmuys" | "igmysu" | "igmyus" | "igym" | "igum" | "igumy" | "iguym" | "igymu" | "igyum" | "igsm" | "igsmu" | "igsmy" | "igsmuy" | "igsmyu" | "igsym" | "igsum" | "igsumy" | "igsuym" | "igsymu" | "igsyum" | "igyms" | "igysm" | "igums" | "igumsy" | "igumys" | "igusm" | "igusmy" | "igusym" | "iguyms" | "iguysm" | "igymsu" | "igymus" | "igysmu" | "igysum" | "igyums" | "igyusm" | "iyg" | "iug" | "iugy" | "iuyg" | "iygu" | "iyug" | "isg" | "isgu" | "isgy" | "isguy" | "isgyu" | "isyg" | "isug" | "isugy" | "isuyg" | "isygu" | "isyug" | "iygs" | "iysg" | "iugs" | "iugsy" | "iugys" | "iusg" | "iusgy" | "iusyg" | "iuygs" | "iuysg" | "iygsu" | "iygus" | "iysgu" | "iysug" | "iyugs" | "iyusg" | "img" | "imgs" | "imgu" | "imgy" | "imguy" | "imgyu" | "imgsu" | "imgsy" | "imgsuy" | "imgsyu" | "imgys" | "imgus" | "imgusy" | "imguys" | "imgysu" | "imgyus" | "imyg" | "imug" | "imugy" | "imuyg" | "imygu" | "imyug" | "imsg" | "imsgu" | "imsgy" | "imsguy" | "imsgyu" | "imsyg" | "imsug" | "imsugy" | "imsuyg" | "imsygu" | "imsyug" | "imygs" | "imysg" | "imugs" | "imugsy" | "imugys" | "imusg" | "imusgy" | "imusyg" | "imuygs" | "imuysg" | "imygsu" | "imygus" | "imysgu" | "imysug" | "imyugs" | "imyusg" | "iygm" | "iymg" | "iugm" | "iugmy" | "iugym" | "iumg" | "iumgy" | "iumyg" | "iuygm" | "iuymg" | "iygmu" | "iygum" | "iymgu" | "iymug" | "iyugm" | "iyumg" | "isgm" | "isgmu" | "isgmy" | "isgmuy" | "isgmyu" | "isgym" | "isgum" | "isgumy" | "isguym" | "isgymu" | "isgyum" | "ismg" | "ismgu" | "ismgy" | "ismguy" | "ismgyu" | "ismyg" | "ismug" | "ismugy" | "ismuyg" | "ismygu" | "ismyug" | "isygm" | "isymg" | "isugm" | "isugmy" | "isugym" | "isumg" | "isumgy" | "isumyg" | "isuygm" | "isuymg" | "isygmu" | "isygum" | "isymgu" | "isymug" | "isyugm" | "isyumg" | "iygms" | "iygsm" | "iymgs" | "iymsg" | "iysgm" | "iysmg" | "iugms" | "iugmsy" | "iugmys" | "iugsm" | "iugsmy" | "iugsym" | "iugyms" | "iugysm" | "iumgs" | "iumgsy" | "iumgys" | "iumsg" | "iumsgy" | "iumsyg" | "iumygs" | "iumysg" | "iusgm" | "iusgmy" | "iusgym" | "iusmg" | "iusmgy" | "iusmyg" | "iusygm" | "iusymg" | "iuygms" | "iuygsm" | "iuymgs" | "iuymsg" | "iuysgm" | "iuysmg" | "iygmsu" | "iygmus" | "iygsmu" | "iygsum" | "iygums" | "iygusm" | "iymgsu" | "iymgus" | "iymsgu" | "iymsug" | "iymugs" | "iymusg" | "iysgmu" | "iysgum" | "iysmgu" | "iysmug" | "iysugm" | "iysumg" | "iyugms" | "iyugsm" | "iyumgs" | "iyumsg" | "iyusgm" | "iyusmg" | "ygi" | "yig" | "ugi" | "ugiy" | "ugyi" | "uig" | "uigy" | "uiyg" | "uygi" | "uyig" | "ygiu" | "ygui" | "yigu" | "yiug" | "yugi" | "yuig" | "sgi" | "sgiu" | "sgiy" | "sgiuy" | "sgiyu" | "sgyi" | "sgui" | "sguiy" | "sguyi" | "sgyiu" | "sgyui" | "sig" | "sigu" | "sigy" | "siguy" | "sigyu" | "siyg" | "siug" | "siugy" | "siuyg" | "siygu" | "siyug" | "sygi" | "syig" | "sugi" | "sugiy" | "sugyi" | "suig" | "suigy" | "suiyg" | "suygi" | "suyig" | "sygiu" | "sygui" | "syigu" | "syiug" | "syugi" | "syuig" | "ygis" | "ygsi" | "yigs" | "yisg" | "ysgi" | "ysig" | "ugis" | "ugisy" | "ugiys" | "ugsi" | "ugsiy" | "ugsyi" | "ugyis" | "ugysi" | "uigs" | "uigsy" | "uigys" | "uisg" | "uisgy" | "uisyg" | "uiygs" | "uiysg" | "usgi" | "usgiy" | "usgyi" | "usig" | "usigy" | "usiyg" | "usygi" | "usyig" | "uygis" | "uygsi" | "uyigs" | "uyisg" | "uysgi" | "uysig" | "ygisu" | "ygius" | "ygsiu" | "ygsui" | "yguis" | "ygusi" | "yigsu" | "yigus" | "yisgu" | "yisug" | "yiugs" | "yiusg" | "ysgiu" | "ysgui" | "ysigu" | "ysiug" | "ysugi" | "ysuig" | "yugis" | "yugsi" | "yuigs" | "yuisg" | "yusgi" | "yusig" | "mgi" | "mgis" | "mgiu" | "mgiy" | "mgiuy" | "mgiyu" | "mgisu" | "mgisy" | "mgisuy" | "mgisyu" | "mgiys" | "mgius" | "mgiusy" | "mgiuys" | "mgiysu" | "mgiyus" | "mgyi" | "mgui" | "mguiy" | "mguyi" | "mgyiu" | "mgyui" | "mgsi" | "mgsiu" | "mgsiy" | "mgsiuy" | "mgsiyu" | "mgsyi" | "mgsui" | "mgsuiy" | "mgsuyi" | "mgsyiu" | "mgsyui" | "mgyis" | "mgysi" | "mguis" | "mguisy" | "mguiys" | "mgusi" | "mgusiy" | "mgusyi" | "mguyis" | "mguysi" | "mgyisu" | "mgyius" | "mgysiu" | "mgysui" | "mgyuis" | "mgyusi" | "mig" | "migs" | "migu" | "migy" | "miguy" | "migyu" | "migsu" | "migsy" | "migsuy" | "migsyu" | "migys" | "migus" | "migusy" | "miguys" | "migysu" | "migyus" | "miyg" | "miug" | "miugy" | "miuyg" | "miygu" | "miyug" | "misg" | "misgu" | "misgy" | "misguy" | "misgyu" | "misyg" | "misug" | "misugy" | "misuyg" | "misygu" | "misyug" | "miygs" | "miysg" | "miugs" | "miugsy" | "miugys" | "miusg" | "miusgy" | "miusyg" | "miuygs" | "miuysg" | "miygsu" | "miygus" | "miysgu" | "miysug" | "miyugs" | "miyusg" | "mygi" | "myig" | "mugi" | "mugiy" | "mugyi" | "muig" | "muigy" | "muiyg" | "muygi" | "muyig" | "mygiu" | "mygui" | "myigu" | "myiug" | "myugi" | "myuig" | "msgi" | "msgiu" | "msgiy" | "msgiuy" | "msgiyu" | "msgyi" | "msgui" | "msguiy" | "msguyi" | "msgyiu" | "msgyui" | "msig" | "msigu" | "msigy" | "msiguy" | "msigyu" | "msiyg" | "msiug" | "msiugy" | "msiuyg" | "msiygu" | "msiyug" | "msygi" | "msyig" | "msugi" | "msugiy" | "msugyi" | "msuig" | "msuigy" | "msuiyg" | "msuygi" | "msuyig" | "msygiu" | "msygui" | "msyigu" | "msyiug" | "msyugi" | "msyuig" | "mygis" | "mygsi" | "myigs" | "myisg" | "mysgi" | "mysig" | "mugis" | "mugisy" | "mugiys" | "mugsi" | "mugsiy" | "mugsyi" | "mugyis" | "mugysi" | "muigs" | "muigsy" | "muigys" | "muisg" | "muisgy" | "muisyg" | "muiygs" | "muiysg" | "musgi" | "musgiy" | "musgyi" | "musig" | "musigy" | "musiyg" | "musygi" | "musyig" | "muygis" | "muygsi" | "muyigs" | "muyisg" | "muysgi" | "muysig" | "mygisu" | "mygius" | "mygsiu" | "mygsui" | "myguis" | "mygusi" | "myigsu" | "myigus" | "myisgu" | "myisug" | "myiugs" | "myiusg" | "mysgiu" | "mysgui" | "mysigu" | "mysiug" | "mysugi" | "mysuig" | "myugis" | "myugsi" | "myuigs" | "myuisg" | "myusgi" | "myusig" | "ygim" | "ygmi" | "yigm" | "yimg" | "ymgi" | "ymig" | "ugim" | "ugimy" | "ugiym" | "ugmi" | "ugmiy" | "ugmyi" | "ugyim" | "ugymi" | "uigm" | "uigmy" | "uigym" | "uimg" | "uimgy" | "uimyg" | "uiygm" | "uiymg" | "umgi" | "umgiy" | "umgyi" | "umig" | "umigy" | "umiyg" | "umygi" | "umyig" | "uygim" | "uygmi" | "uyigm" | "uyimg" | "uymgi" | "uymig" | "ygimu" | "ygium" | "ygmiu" | "ygmui" | "yguim" | "ygumi" | "yigmu" | "yigum" | "yimgu" | "yimug" | "yiugm" | "yiumg" | "ymgiu" | "ymgui" | "ymigu" | "ymiug" | "ymugi" | "ymuig" | "yugim" | "yugmi" | "yuigm" | "yuimg" | "yumgi" | "yumig" | "sgim" | "sgimu" | "sgimy" | "sgimuy" | "sgimyu" | "sgiym" | "sgium" | "sgiumy" | "sgiuym" | "sgiymu" | "sgiyum" | "sgmi" | "sgmiu" | "sgmiy" | "sgmiuy" | "sgmiyu" | "sgmyi" | "sgmui" | "sgmuiy" | "sgmuyi" | "sgmyiu" | "sgmyui" | "sgyim" | "sgymi" | "sguim" | "sguimy" | "sguiym" | "sgumi" | "sgumiy" | "sgumyi" | "sguyim" | "sguymi" | "sgyimu" | "sgyium" | "sgymiu" | "sgymui" | "sgyuim" | "sgyumi" | "sigm" | "sigmu" | "sigmy" | "sigmuy" | "sigmyu" | "sigym" | "sigum" | "sigumy" | "siguym" | "sigymu" | "sigyum" | "simg" | "simgu" | "simgy" | "simguy" | "simgyu" | "simyg" | "simug" | "simugy" | "simuyg" | "simygu" | "simyug" | "siygm" | "siymg" | "siugm" | "siugmy" | "siugym" | "siumg" | "siumgy" | "siumyg" | "siuygm" | "siuymg" | "siygmu" | "siygum" | "siymgu" | "siymug" | "siyugm" | "siyumg" | "smgi" | "smgiu" | "smgiy" | "smgiuy" | "smgiyu" | "smgyi" | "smgui" | "smguiy" | "smguyi" | "smgyiu" | "smgyui" | "smig" | "smigu" | "smigy" | "smiguy" | "smigyu" | "smiyg" | "smiug" | "smiugy" | "smiuyg" | "smiygu" | "smiyug" | "smygi" | "smyig" | "smugi" | "smugiy" | "smugyi" | "smuig" | "smuigy" | "smuiyg" | "smuygi" | "smuyig" | "smygiu" | "smygui" | "smyigu" | "smyiug" | "smyugi" | "smyuig" | "sygim" | "sygmi" | "syigm" | "syimg" | "symgi" | "symig" | "sugim" | "sugimy" | "sugiym" | "sugmi" | "sugmiy" | "sugmyi" | "sugyim" | "sugymi" | "suigm" | "suigmy" | "suigym" | "suimg" | "suimgy" | "suimyg" | "suiygm" | "suiymg" | "sumgi" | "sumgiy" | "sumgyi" | "sumig" | "sumigy" | "sumiyg" | "sumygi" | "sumyig" | "suygim" | "suygmi" | "suyigm" | "suyimg" | "suymgi" | "suymig" | "sygimu" | "sygium" | "sygmiu" | "sygmui" | "syguim" | "sygumi" | "syigmu" | "syigum" | "syimgu" | "syimug" | "syiugm" | "syiumg" | "symgiu" | "symgui" | "symigu" | "symiug" | "symugi" | "symuig" | "syugim" | "syugmi" | "syuigm" | "syuimg" | "syumgi" | "syumig" | "ygims" | "ygism" | "ygmis" | "ygmsi" | "ygsim" | "ygsmi" | "yigms" | "yigsm" | "yimgs" | "yimsg" | "yisgm" | "yismg" | "ymgis" | "ymgsi" | "ymigs" | "ymisg" | "ymsgi" | "ymsig" | "ysgim" | "ysgmi" | "ysigm" | "ysimg" | "ysmgi" | "ysmig" | "ugims" | "ugimsy" | "ugimys" | "ugism" | "ugismy" | "ugisym" | "ugiyms" | "ugiysm" | "ugmis" | "ugmisy" | "ugmiys" | "ugmsi" | "ugmsiy" | "ugmsyi" | "ugmyis" | "ugmysi" | "ugsim" | "ugsimy" | "ugsiym" | "ugsmi" | "ugsmiy" | "ugsmyi" | "ugsyim" | "ugsymi" | "ugyims" | "ugyism" | "ugymis" | "ugymsi" | "ugysim" | "ugysmi" | "uigms" | "uigmsy" | "uigmys" | "uigsm" | "uigsmy" | "uigsym" | "uigyms" | "uigysm" | "uimgs" | "uimgsy" | "uimgys" | "uimsg" | "uimsgy" | "uimsyg" | "uimygs" | "uimysg" | "uisgm" | "uisgmy" | "uisgym" | "uismg" | "uismgy" | "uismyg" | "uisygm" | "uisymg" | "uiygms" | "uiygsm" | "uiymgs" | "uiymsg" | "uiysgm" | "uiysmg" | "umgis" | "umgisy" | "umgiys" | "umgsi" | "umgsiy" | "umgsyi" | "umgyis" | "umgysi" | "umigs" | "umigsy" | "umigys" | "umisg" | "umisgy" | "umisyg" | "umiygs" | "umiysg" | "umsgi" | "umsgiy" | "umsgyi" | "umsig" | "umsigy" | "umsiyg" | "umsygi" | "umsyig" | "umygis" | "umygsi" | "umyigs" | "umyisg" | "umysgi" | "umysig" | "usgim" | "usgimy" | "usgiym" | "usgmi" | "usgmiy" | "usgmyi" | "usgyim" | "usgymi" | "usigm" | "usigmy" | "usigym" | "usimg" | "usimgy" | "usimyg" | "usiygm" | "usiymg" | "usmgi" | "usmgiy" | "usmgyi" | "usmig" | "usmigy" | "usmiyg" | "usmygi" | "usmyig" | "usygim" | "usygmi" | "usyigm" | "usyimg" | "usymgi" | "usymig" | "uygims" | "uygism" | "uygmis" | "uygmsi" | "uygsim" | "uygsmi" | "uyigms" | "uyigsm" | "uyimgs" | "uyimsg" | "uyisgm" | "uyismg" | "uymgis" | "uymgsi" | "uymigs" | "uymisg" | "uymsgi" | "uymsig" | "uysgim" | "uysgmi" | "uysigm" | "uysimg" | "uysmgi" | "uysmig" | "ygimsu" | "ygimus" | "ygismu" | "ygisum" | "ygiums" | "ygiusm" | "ygmisu" | "ygmius" | "ygmsiu" | "ygmsui" | "ygmuis" | "ygmusi" | "ygsimu" | "ygsium" | "ygsmiu" | "ygsmui" | "ygsuim" | "ygsumi" | "yguims" | "yguism" | "ygumis" | "ygumsi" | "ygusim" | "ygusmi" | "yigmsu" | "yigmus" | "yigsmu" | "yigsum" | "yigums" | "yigusm" | "yimgsu" | "yimgus" | "yimsgu" | "yimsug" | "yimugs" | "yimusg" | "yisgmu" | "yisgum" | "yismgu" | "yismug" | "yisugm" | "yisumg" | "yiugms" | "yiugsm" | "yiumgs" | "yiumsg" | "yiusgm" | "yiusmg" | "ymgisu" | "ymgius" | "ymgsiu" | "ymgsui" | "ymguis" | "ymgusi" | "ymigsu" | "ymigus" | "ymisgu" | "ymisug" | "ymiugs" | "ymiusg" | "ymsgiu" | "ymsgui" | "ymsigu" | "ymsiug" | "ymsugi" | "ymsuig" | "ymugis" | "ymugsi" | "ymuigs" | "ymuisg" | "ymusgi" | "ymusig" | "ysgimu" | "ysgium" | "ysgmiu" | "ysgmui" | "ysguim" | "ysgumi" | "ysigmu" | "ysigum" | "ysimgu" | "ysimug" | "ysiugm" | "ysiumg" | "ysmgiu" | "ysmgui" | "ysmigu" | "ysmiug" | "ysmugi" | "ysmuig" | "ysugim" | "ysugmi" | "ysuigm" | "ysuimg" | "ysumgi" | "ysumig" | "yugims" | "yugism" | "yugmis" | "yugmsi" | "yugsim" | "yugsmi" | "yuigms" | "yuigsm" | "yuimgs" | "yuimsg" | "yuisgm" | "yuismg" | "yumgis" | "yumgsi" | "yumigs" | "yumisg" | "yumsgi" | "yumsig" | "yusgim" | "yusgmi" | "yusigm" | "yusimg" | "yusmgi" | "yusmig") | undefined) => RegExpTsDsl;
10722
+ /** Creates a return statement. */
10723
+ return: (expr?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => ReturnTsDsl;
10724
+ /** Creates a setter method declaration. */
10725
+ setter: (name: string, fn?: ((s: SetterTsDsl) => void) | undefined) => SetterTsDsl;
10726
+ /** Creates a template literal expression. */
10727
+ template: (value?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => TemplateTsDsl;
10728
+ /** Creates a throw statement. */
10729
+ throw: (error: string | typescript422.Expression | TsDsl<typescript422.Expression>, useNew?: boolean | undefined) => ThrowTsDsl;
10730
+ /** Creates a basic type reference or type expression (e.g. Foo or Foo<T>). */
10731
+ type: ((name: string, fn?: ((t: TypeExprTsDsl) => void) | undefined) => TypeExprTsDsl) & {
10732
+ /** Creates a type alias declaration (e.g. `type Foo = Bar`). */
10733
+ alias: (name: string, fn?: ((t: TypeAliasTsDsl) => void) | undefined) => TypeAliasTsDsl;
10734
+ /** Creates a qualified type reference (e.g. Foo.Bar). */
10735
+ attr: (right: WithString<typescript422.Identifier>) => TypeAttrTsDsl;
10736
+ /** Creates a basic type reference or type expression (e.g. Foo or Foo<T>). */
10737
+ expr: (name: string, fn?: ((t: TypeExprTsDsl) => void) | undefined) => TypeExprTsDsl;
10738
+ /** Creates a literal type node (e.g. 'foo', 42, or true). */
10739
+ literal: (value: string | number | boolean) => TypeLiteralTsDsl;
10740
+ /** Creates a type literal node (e.g. { foo: string }). */
10741
+ object: () => TypeObjectTsDsl;
10742
+ };
10743
+ /** Creates a variable declaration (var). */
10744
+ var: (name?: string | undefined) => VarTsDsl;
10745
+ };
10746
+ type DollarTsDsl = {
10747
+ /**
10748
+ * Entry point to the TypeScript DSL.
10749
+ *
10750
+ * `$` creates a general expression node by default, but also exposes
10751
+ * builders for all other constructs such as `.type()`, `.call()`,
10752
+ * `.object()`, `.func()`, etc.
10753
+ *
10754
+ * Example:
10755
+ * ```ts
10756
+ * const node = $('console').attr('log').call($.literal('Hello'));
10757
+ * ```
10758
+ *
10759
+ * Returns:
10760
+ * - A new `ExprTsDsl` instance when called directly.
10761
+ * - The `base` factory object for constructing more specific nodes.
10762
+ */
10763
+ $: typeof $;
10764
+ };
10765
+ //#endregion
9958
10766
  //#region src/plugins/arktype/shared/types.d.ts
9959
10767
  type ValidatorArgs$2 = {
9960
10768
  operation: IR$1.OperationObject;
@@ -11224,7 +12032,7 @@ type IApi$1 = {
11224
12032
  };
11225
12033
  //#endregion
11226
12034
  //#region src/plugins/valibot/types.d.ts
11227
- type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
12035
+ type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & Resolvers$1 & {
11228
12036
  /**
11229
12037
  * The casing convention to use for generated names.
11230
12038
  *
@@ -11382,7 +12190,7 @@ type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
11382
12190
  name?: StringName;
11383
12191
  };
11384
12192
  };
11385
- type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
12193
+ type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & Resolvers$1 & {
11386
12194
  /**
11387
12195
  * The casing convention to use for generated names.
11388
12196
  *
@@ -11518,6 +12326,102 @@ type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
11518
12326
  name: StringName;
11519
12327
  };
11520
12328
  };
12329
+ type SharedResolverArgs$1 = DollarTsDsl & {
12330
+ /**
12331
+ * The current builder state being processed by this resolver.
12332
+ *
12333
+ * In Valibot, this represents the current list of call expressions ("pipes")
12334
+ * being assembled to form a schema definition.
12335
+ *
12336
+ * Each pipe can be extended, modified, or replaced to customize how the
12337
+ * resulting schema is constructed. Returning `undefined` from a resolver will
12338
+ * use the default generation behavior.
12339
+ */
12340
+ pipes: Array<CallTsDsl>;
12341
+ plugin: ValibotPlugin['Instance'];
12342
+ };
12343
+ type FormatResolverArgs$1 = SharedResolverArgs$1 & {
12344
+ schema: IR$1.SchemaObject;
12345
+ };
12346
+ type ObjectBaseResolverArgs$1 = SharedResolverArgs$1 & {
12347
+ /** Null = never */
12348
+ additional?: ts.Expression | null;
12349
+ schema: IR$1.SchemaObject;
12350
+ shape: ObjectTsDsl;
12351
+ };
12352
+ type ValidatorResolverArgs$1 = SharedResolverArgs$1 & {
12353
+ operation: IR$1.Operation;
12354
+ schema: Symbol;
12355
+ v: Symbol;
12356
+ };
12357
+ type ValidatorResolver$1 = (args: ValidatorResolverArgs$1) => MaybeArray<TsDsl<ts.Statement>> | null | undefined;
12358
+ type Resolvers$1 = Plugin.Resolvers<{
12359
+ /**
12360
+ * Resolvers for object schemas.
12361
+ *
12362
+ * Allows customization of how object types are rendered.
12363
+ *
12364
+ * Example path: `~resolvers.object.base`
12365
+ *
12366
+ * Returning `undefined` from a resolver will apply the default
12367
+ * generation behavior for the object schema.
12368
+ */
12369
+ object?: {
12370
+ /**
12371
+ * Controls how object schemas are constructed.
12372
+ *
12373
+ * Called with the fully assembled shape (properties) and any additional
12374
+ * property schema, allowing the resolver to choose the correct Valibot
12375
+ * base constructor and modify the schema chain if needed.
12376
+ *
12377
+ * Returning `undefined` will execute the default resolver logic.
12378
+ */
12379
+ base?: (args: ObjectBaseResolverArgs$1) => CallTsDsl | undefined;
12380
+ };
12381
+ /**
12382
+ * Resolvers for string schemas.
12383
+ *
12384
+ * Allows customization of how string types are rendered, including
12385
+ * per-format handling.
12386
+ */
12387
+ string?: {
12388
+ /**
12389
+ * Resolvers for string formats (e.g., `uuid`, `email`, `date-time`).
12390
+ *
12391
+ * Each key represents a specific format name with a custom
12392
+ * resolver function that controls how that format is rendered.
12393
+ *
12394
+ * Example path: `~resolvers.string.formats.uuid`
12395
+ *
12396
+ * Returning `undefined` from a resolver will apply the default
12397
+ * generation behavior for that format.
12398
+ */
12399
+ formats?: Record<string, (args: FormatResolverArgs$1) => boolean | number | undefined>;
12400
+ };
12401
+ /**
12402
+ * Resolvers for request and response validators.
12403
+ *
12404
+ * Allow customization of validator function bodies.
12405
+ *
12406
+ * Example path: `~resolvers.validator.request` or `~resolvers.validator.response`
12407
+ *
12408
+ * Returning `undefined` from a resolver will apply the default generation logic.
12409
+ */
12410
+ validator?: ValidatorResolver$1 | {
12411
+ /**
12412
+ * Controls how the request validator function body is generated.
12413
+ *
12414
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
12415
+ */
12416
+ request?: ValidatorResolver$1;
12417
+ /**
12418
+ * Controls how the response validator function body is generated.
12419
+ *
12420
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
12421
+ */
12422
+ response?: ValidatorResolver$1;
12423
+ };
12424
+ }>;
11521
12425
  type ValibotPlugin = DefinePlugin<UserConfig$2, Config$2, IApi$1>;
11522
12426
  //#endregion
11523
12427
  //#region src/plugins/zod/shared/types.d.ts
@@ -11533,7 +12437,7 @@ type IApi = {
11533
12437
  };
11534
12438
  //#endregion
11535
12439
  //#region src/plugins/zod/types.d.ts
11536
- type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
12440
+ type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & Resolvers & {
11537
12441
  /**
11538
12442
  * The casing convention to use for generated names.
11539
12443
  *
@@ -11917,7 +12821,7 @@ type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
11917
12821
  };
11918
12822
  };
11919
12823
  };
11920
- type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
12824
+ type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & Resolvers & {
11921
12825
  /**
11922
12826
  * The casing convention to use for generated names.
11923
12827
  *
@@ -12238,6 +13142,100 @@ type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
12238
13142
  };
12239
13143
  };
12240
13144
  };
13145
+ type SharedResolverArgs = DollarTsDsl & {
13146
+ /**
13147
+ * The current fluent builder chain under construction for this resolver.
13148
+ *
13149
+ * Represents the in-progress call sequence (e.g., a Zod or DSL chain)
13150
+ * that defines the current schema or expression being generated.
13151
+ *
13152
+ * This chain can be extended, transformed, or replaced entirely to customize
13153
+ * the resulting output of the resolver.
13154
+ */
13155
+ chain?: CallTsDsl;
13156
+ plugin: ZodPlugin['Instance'];
13157
+ };
13158
+ type FormatResolverArgs = Required<SharedResolverArgs> & {
13159
+ schema: IR$1.SchemaObject;
13160
+ };
13161
+ type ObjectBaseResolverArgs = SharedResolverArgs & {
13162
+ /** Null = never */
13163
+ additional?: ts.Expression | null;
13164
+ schema: IR$1.SchemaObject;
13165
+ shape: ObjectTsDsl;
13166
+ };
13167
+ type ValidatorResolverArgs = SharedResolverArgs & {
13168
+ operation: IR$1.Operation;
13169
+ schema: Symbol;
13170
+ };
13171
+ type ValidatorResolver = (args: ValidatorResolverArgs) => MaybeArray<TsDsl<ts.Statement>> | null | undefined;
13172
+ type Resolvers = Plugin.Resolvers<{
13173
+ /**
13174
+ * Resolvers for object schemas.
13175
+ *
13176
+ * Allows customization of how object types are rendered.
13177
+ *
13178
+ * Example path: `~resolvers.object.base`
13179
+ *
13180
+ * Returning `undefined` from a resolver will apply the default
13181
+ * generation behavior for the object schema.
13182
+ */
13183
+ object?: {
13184
+ /**
13185
+ * Controls how object schemas are constructed.
13186
+ *
13187
+ * Called with the fully assembled shape (properties) and any additional
13188
+ * property schema, allowing the resolver to choose the correct Zod
13189
+ * base constructor and modify the schema chain if needed.
13190
+ *
13191
+ * Returning `undefined` will execute the default resolver logic.
13192
+ */
13193
+ base?: (args: ObjectBaseResolverArgs) => CallTsDsl | undefined;
13194
+ };
13195
+ /**
13196
+ * Resolvers for string schemas.
13197
+ *
13198
+ * Allows customization of how string types are rendered, including
13199
+ * per-format handling.
13200
+ */
13201
+ string?: {
13202
+ /**
13203
+ * Resolvers for string formats (e.g., `uuid`, `email`, `date-time`).
13204
+ *
13205
+ * Each key represents a specific format name with a custom
13206
+ * resolver function that controls how that format is rendered.
13207
+ *
13208
+ * Example path: `~resolvers.string.formats.uuid`
13209
+ *
13210
+ * Returning `undefined` from a resolver will apply the default
13211
+ * generation logic for that format.
13212
+ */
13213
+ formats?: Record<string, (args: FormatResolverArgs) => CallTsDsl | undefined>;
13214
+ };
13215
+ /**
13216
+ * Resolvers for request and response validators.
13217
+ *
13218
+ * Allow customization of validator function bodies.
13219
+ *
13220
+ * Example path: `~resolvers.validator.request` or `~resolvers.validator.response`
13221
+ *
13222
+ * Returning `undefined` from a resolver will apply the default generation logic.
13223
+ */
13224
+ validator?: ValidatorResolver | {
13225
+ /**
13226
+ * Controls how the request validator function body is generated.
13227
+ *
13228
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
13229
+ */
13230
+ request?: ValidatorResolver;
13231
+ /**
13232
+ * Controls how the response validator function body is generated.
13233
+ *
13234
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
13235
+ */
13236
+ response?: ValidatorResolver;
13237
+ };
13238
+ }>;
12241
13239
  type ZodPlugin = DefinePlugin<UserConfig$1, Config$1, IApi>;
12242
13240
  //#endregion
12243
13241
  //#region src/plugins/config.d.ts
@@ -12785,6 +13783,23 @@ declare namespace Plugin {
12785
13783
  export interface Name<Name extends PluginNames> {
12786
13784
  name: Name;
12787
13785
  }
13786
+
13787
+ /**
13788
+ * Generic wrapper for plugin resolvers.
13789
+ *
13790
+ * Provides a namespaced configuration entry (`~resolvers`)
13791
+ * where plugins can define how specific schema constructs
13792
+ * should be resolved or overridden.
13793
+ */
13794
+ export type Resolvers<T extends Record<string, unknown> = Record<string, unknown>> = {
13795
+ /**
13796
+ * Custom behavior resolvers for a plugin.
13797
+ *
13798
+ * Used to define how specific schema constructs are
13799
+ * resolved into AST or runtime logic.
13800
+ */
13801
+ '~resolvers'?: T;
13802
+ };
12788
13803
  export type Types<Config$15 extends BaseConfig = BaseConfig, ResolvedConfig extends BaseConfig = Config$15, Api extends BaseApi = never> = ([Api] extends [never] ? {
12789
13804
  api?: BaseApi;
12790
13805
  } : {
@@ -13856,5 +14871,5 @@ type Config = Omit<Required<UserConfig>, 'input' | 'logs' | 'output' | 'parser'
13856
14871
  plugins: { [K in PluginNames]?: Plugin.Config<PluginConfigMap[K]> };
13857
14872
  };
13858
14873
  //#endregion
13859
- export { MaybeArray as S, Client as _, Plugin as a, IR$1 as b, OpenApiOperationObject as c, OpenApiResponseObject as d, OpenApiSchemaObject as f, ExpressionTransformer as g, TypeTransformer as h, DefinePlugin as i, OpenApiParameterObject as l, Logger as m, UserConfig as n, OpenApi as o, Context as p, Input as r, OpenApiMetaObject as s, Config as t, OpenApiRequestBodyObject as u, PluginHandler as v, LazyOrAsync as x, StringCase as y };
13860
- //# sourceMappingURL=config-CQeoZYf_.d.cts.map
14874
+ export { Client as $, LiteralTsDsl as A, InitTsDsl as B, SetterTsDsl as C, NotTsDsl as D, ObjectTsDsl as E, TypeExprTsDsl as F, BinaryTsDsl as G, FieldTsDsl as H, TypeAttrTsDsl as I, AwaitTsDsl as J, ReturnTsDsl as K, DecoratorTsDsl as L, GetterTsDsl as M, FuncTsDsl as N, NewlineTsDsl as O, ExprTsDsl as P, ExpressionTransformer as Q, ClassTsDsl as R, TemplateTsDsl as S, PatternTsDsl as T, DescribeTsDsl as U, ParamTsDsl as V, AttrTsDsl as W, TsDsl as X, ArrayTsDsl as Y, TypeTransformer as Z, VarTsDsl as _, Plugin as a, TypeAliasTsDsl as b, OpenApiOperationObject as c, OpenApiResponseObject as d, PluginHandler as et, OpenApiSchemaObject as f, DollarTsDsl as g, $ as h, DefinePlugin as i, MaybeArray as it, IfTsDsl as j, NewTsDsl as k, OpenApiParameterObject as l, Logger as m, UserConfig as n, IR$1 as nt, OpenApi as o, Context as p, CallTsDsl as q, Input as r, LazyOrAsync as rt, OpenApiMetaObject as s, Config as t, StringCase as tt, OpenApiRequestBodyObject as u, TypeObjectTsDsl as v, RegExpTsDsl as w, ThrowTsDsl as x, TypeLiteralTsDsl as y, MethodTsDsl as z };
14875
+ //# sourceMappingURL=config-CK1EGY2d.d.cts.map