@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,4 +1,5 @@
1
1
  import { IProject, Project, Symbol, SymbolIdentifier, SymbolIn, SymbolMeta } from "@hey-api/codegen-core";
2
+ import * as typescript422 from "typescript";
2
3
  import ts from "typescript";
3
4
  import { RangeOptions, SemVer } from "semver";
4
5
  import { HttpClient, HttpErrorResponse, HttpHeaders, HttpRequest, HttpResponse } from "@angular/common/http";
@@ -10823,9 +10824,816 @@ declare abstract class TsDsl<T extends ts.Node = ts.Node> implements ITsDsl<T> {
10823
10824
  type NodeOfMaybe<I> = undefined extends I ? NodeOf<NonNullable<I>> | undefined : NodeOf<I>;
10824
10825
  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;
10825
10826
  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;
10827
+ type TypeOfTsDsl<T> = T extends TsDsl<infer U> ? U : never;
10828
+ declare abstract class TypeTsDsl<T extends ts.TypeNode | ts.TypeElement | ts.LiteralTypeNode | ts.TypeParameterDeclaration = ts.TypeNode> extends TsDsl<T> {}
10826
10829
  type TypeOfMaybe<I> = undefined extends I ? TypeOf<NonNullable<I>> | undefined : TypeOf<I>;
10827
10830
  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;
10828
10831
  //#endregion
10832
+ //#region src/ts-dsl/mixins/layout.d.ts
10833
+ declare class LayoutMixin {
10834
+ private static readonly DEFAULT_THRESHOLD;
10835
+ private layout;
10836
+ /** Sets automatic line output with optional threshold (default: 3). */
10837
+ auto(threshold?: number): this;
10838
+ /** Sets single line output. */
10839
+ inline(): this;
10840
+ /** Sets multi line output. */
10841
+ pretty(): this;
10842
+ /** Computes whether output should be multiline based on layout setting and element count. */
10843
+ protected $multiline(count: number): boolean;
10844
+ }
10845
+ //#endregion
10846
+ //#region src/ts-dsl/array.d.ts
10847
+ declare class ArrayTsDsl extends TsDsl<ts.ArrayLiteralExpression> {
10848
+ private _elements;
10849
+ /** Adds a single array element. */
10850
+ element(expr: string | number | boolean | MaybeTsDsl<ts.Expression>): this;
10851
+ /** Adds multiple array elements. */
10852
+ elements(...exprs: ReadonlyArray<string | number | boolean | MaybeTsDsl<ts.Expression>>): this;
10853
+ /** Adds a spread element (`...expr`). */
10854
+ spread(expr: MaybeTsDsl<ts.Expression>): this;
10855
+ $render(): ts.ArrayLiteralExpression;
10856
+ }
10857
+ interface ArrayTsDsl extends LayoutMixin {}
10858
+ //#endregion
10859
+ //#region src/ts-dsl/await.d.ts
10860
+ declare class AwaitTsDsl extends TsDsl<ts.AwaitExpression> {
10861
+ private _awaitExpr;
10862
+ constructor(expr: MaybeTsDsl<WithString>);
10863
+ $render(): ts.AwaitExpression;
10864
+ }
10865
+ interface AwaitTsDsl extends AccessMixin {}
10866
+ //#endregion
10867
+ //#region src/ts-dsl/mixins/args.d.ts
10868
+ /**
10869
+ * Adds `.arg()` and `.args()` for managing expression arguments in call-like nodes.
10870
+ */
10871
+ declare class ArgsMixin extends TsDsl {
10872
+ private _args?;
10873
+ /** Adds a single expression argument. */
10874
+ arg(arg: MaybeTsDsl<WithString>): this;
10875
+ /** Adds one or more expression arguments. */
10876
+ args(...args: ReadonlyArray<MaybeTsDsl<WithString>>): this;
10877
+ /** Renders the arguments into an array of `Expression`s. */
10878
+ protected $args(): ReadonlyArray<ts.Expression>;
10879
+ $render(): ts.Node;
10880
+ }
10881
+ //#endregion
10882
+ //#region src/ts-dsl/mixins/type-args.d.ts
10883
+ declare class TypeArgsMixin extends TsDsl {
10884
+ protected _generics?: Array<WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>>;
10885
+ /** Adds a single type argument (e.g. `string` in `Foo<string>`). */
10886
+ generic(arg: WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>): this;
10887
+ /** Adds type arguments (e.g. `Map<string, number>`). */
10888
+ generics(...args: ReadonlyArray<WithString<MaybeTsDsl<TypeOfTsDsl<TypeTsDsl>>>>): this;
10889
+ /**
10890
+ * Returns the type arguments as an array of ts.TypeNode nodes.
10891
+ */
10892
+ protected $generics(): ReadonlyArray<ts.TypeNode> | undefined;
10893
+ $render(): ts.Node;
10894
+ }
10895
+ //#endregion
10896
+ //#region src/ts-dsl/call.d.ts
10897
+ declare class CallTsDsl extends TsDsl<ts.CallExpression> {
10898
+ private _callee;
10899
+ constructor(callee: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString> | undefined>);
10900
+ $render(): ts.CallExpression;
10901
+ }
10902
+ interface CallTsDsl extends AccessMixin, ArgsMixin, TypeArgsMixin {}
10903
+ //#endregion
10904
+ //#region src/ts-dsl/return.d.ts
10905
+ declare class ReturnTsDsl extends TsDsl<ts.ReturnStatement> {
10906
+ private _returnExpr?;
10907
+ constructor(expr?: MaybeTsDsl<WithString>);
10908
+ $render(): ts.ReturnStatement;
10909
+ }
10910
+ interface ReturnTsDsl extends AccessMixin {}
10911
+ //#endregion
10912
+ //#region src/ts-dsl/mixins/access.d.ts
10913
+ declare class AccessMixin {
10914
+ /** Accesses a property on the current expression (e.g. `this.foo`). */
10915
+ attr(this: MaybeTsDsl<WithString>, name: WithString<ts.MemberName> | number): AttrTsDsl;
10916
+ /** Awaits the current expression (e.g. `await expr`). */
10917
+ await(this: MaybeTsDsl<WithString>): AwaitTsDsl;
10918
+ /** Calls the current expression (e.g. `fn(arg1, arg2)`). */
10919
+ call(this: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString> | undefined>): CallTsDsl;
10920
+ /** Produces a `return` statement returning the current expression. */
10921
+ return(this: MaybeTsDsl<WithString>): ReturnTsDsl;
10922
+ }
10923
+ //#endregion
10924
+ //#region src/ts-dsl/binary.d.ts
10925
+ type Operator = '!=' | '!==' | '&&' | '*' | '+' | '-' | '/' | '<' | '<=' | '=' | '==' | '===' | '>' | '>=' | '??' | '||';
10926
+ declare class BinaryTsDsl extends TsDsl<ts.BinaryExpression> {
10927
+ private left;
10928
+ private operator;
10929
+ private right;
10930
+ constructor(left: MaybeTsDsl<WithString>, operator: Operator | ts.BinaryOperator, right: MaybeTsDsl<WithString>);
10931
+ $render(): ts.BinaryExpression;
10932
+ private mapOperator;
10933
+ }
10934
+ //#endregion
10935
+ //#region src/ts-dsl/mixins/assignment.d.ts
10936
+ declare class AssignmentMixin {
10937
+ /** Creates an assignment expression (e.g. `this = expr`). */
10938
+ assign(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10939
+ }
10940
+ //#endregion
10941
+ //#region src/ts-dsl/mixins/operator.d.ts
10942
+ declare class OperatorMixin {
10943
+ /** Logical AND — `this && expr` */
10944
+ and(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10945
+ /** Nullish coalescing — `this ?? expr` */
10946
+ coalesce(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10947
+ /** Division — `this / expr` */
10948
+ div(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10949
+ /** Strict equality — `this === expr` */
10950
+ eq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10951
+ /** Greater than — `this > expr` */
10952
+ gt(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10953
+ /** Greater than or equal — `this >= expr` */
10954
+ gte(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10955
+ /** Loose equality — `this == expr` */
10956
+ looseEq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10957
+ /** Loose inequality — `this != expr` */
10958
+ looseNeq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10959
+ /** Less than — `this < expr` */
10960
+ lt(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10961
+ /** Less than or equal — `this <= expr` */
10962
+ lte(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10963
+ /** Subtraction — `this - expr` */
10964
+ minus(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10965
+ /** Strict inequality — `this !== expr` */
10966
+ neq(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10967
+ /** Logical OR — `this || expr` */
10968
+ or(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10969
+ /** Addition — `this + expr` */
10970
+ plus(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10971
+ /** Multiplication — `this * expr` */
10972
+ times(this: MaybeTsDsl<WithString>, expr: MaybeTsDsl<WithString>): BinaryTsDsl;
10973
+ }
10974
+ //#endregion
10975
+ //#region src/ts-dsl/mixins/optional.d.ts
10976
+ declare class OptionalMixin {
10977
+ protected isOptional?: boolean;
10978
+ protected questionToken?: ts.PunctuationToken<ts.SyntaxKind.QuestionToken>;
10979
+ optional<T extends this>(this: T, condition?: boolean): T;
10980
+ }
10981
+ //#endregion
10982
+ //#region src/ts-dsl/attr.d.ts
10983
+ declare class AttrTsDsl extends TsDsl<ts.PropertyAccessExpression | ts.ElementAccessExpression> {
10984
+ private left;
10985
+ private right;
10986
+ constructor(left: MaybeTsDsl<WithString>, right: WithString<ts.MemberName> | number);
10987
+ $render(): ts.PropertyAccessExpression | ts.ElementAccessExpression;
10988
+ }
10989
+ interface AttrTsDsl extends AccessMixin, AssignmentMixin, OperatorMixin, OptionalMixin {}
10990
+ //#endregion
10991
+ //#region src/ts-dsl/mixins/decorator.d.ts
10992
+ declare class DecoratorMixin extends TsDsl {
10993
+ private decorators?;
10994
+ /** Adds a decorator (e.g. `@sealed({ in: 'root' })`). */
10995
+ decorator(name: WithString, ...args: ReadonlyArray<MaybeTsDsl<WithString>>): this;
10996
+ /** Renders the decorators into an array of `ts.Decorator`s. */
10997
+ protected $decorators(): ReadonlyArray<ts.Decorator>;
10998
+ $render(): ts.Node;
10999
+ }
11000
+ //#endregion
11001
+ //#region src/ts-dsl/describe.d.ts
11002
+ declare class DescribeTsDsl extends TsDsl {
11003
+ private _lines;
11004
+ constructor(lines?: MaybeArray$1<string>, fn?: (d: DescribeTsDsl) => void);
11005
+ add(...lines: ReadonlyArray<string>): this;
11006
+ apply<T extends ts.Node>(node: T): T;
11007
+ $render(): ts.Node;
11008
+ }
11009
+ //#endregion
11010
+ //#region src/ts-dsl/mixins/describe.d.ts
11011
+ declare function DescribeMixin<TBase extends new (...args: ReadonlyArray<any>) => ITsDsl>(Base: TBase): {
11012
+ new (...args: ReadonlyArray<any>): {
11013
+ _desc?: DescribeTsDsl;
11014
+ describe(lines?: MaybeArray$1<string>, fn?: (d: DescribeTsDsl) => void): /*elided*/any;
11015
+ $render(): typescript422.Node;
11016
+ };
11017
+ } & TBase;
11018
+ type DescribeMixin = InstanceType<ReturnType<typeof DescribeMixin>>;
11019
+ //#endregion
11020
+ //#region src/ts-dsl/mixins/modifiers.d.ts
11021
+ type Target = object & {
11022
+ _m?(kind: ts.ModifierSyntaxKind, condition?: boolean): unknown;
11023
+ };
11024
+ /**
11025
+ * Mixin that adds an `abstract` modifier to a node.
11026
+ */
11027
+ declare class AbstractMixin {
11028
+ /**
11029
+ * Adds the `abstract` keyword modifier if the condition is true.
11030
+ *
11031
+ * @param condition - Whether to add the modifier (default: true).
11032
+ * @returns The target object for chaining.
11033
+ */
11034
+ abstract<T extends Target>(this: T, condition?: boolean): T;
11035
+ }
11036
+ /**
11037
+ * Mixin that adds an `async` modifier to a node.
11038
+ */
11039
+ declare class AsyncMixin {
11040
+ /**
11041
+ * Adds the `async` keyword modifier if the condition is true.
11042
+ *
11043
+ * @param condition - Whether to add the modifier (default: true).
11044
+ * @returns The target object for chaining.
11045
+ */
11046
+ async<T extends Target>(this: T, condition?: boolean): T;
11047
+ }
11048
+ /**
11049
+ * Mixin that adds a `default` modifier to a node.
11050
+ */
11051
+ declare class DefaultMixin {
11052
+ /**
11053
+ * Adds the `default` keyword modifier if the condition is true.
11054
+ *
11055
+ * @param condition - Whether to add the modifier (default: true).
11056
+ * @returns The target object for chaining.
11057
+ */
11058
+ default<T extends Target>(this: T, condition?: boolean): T;
11059
+ }
11060
+ /**
11061
+ * Mixin that adds an `export` modifier to a node.
11062
+ */
11063
+ declare class ExportMixin {
11064
+ /**
11065
+ * Adds the `export` keyword modifier if the condition is true.
11066
+ *
11067
+ * @param condition - Whether to add the modifier (default: true).
11068
+ * @returns The target object for chaining.
11069
+ */
11070
+ export<T extends Target>(this: T, condition?: boolean): T;
11071
+ }
11072
+ /**
11073
+ * Mixin that adds a `private` modifier to a node.
11074
+ */
11075
+ declare class PrivateMixin {
11076
+ /**
11077
+ * Adds the `private` keyword modifier if the condition is true.
11078
+ *
11079
+ * @param condition - Whether to add the modifier (default: true).
11080
+ * @returns The target object for chaining.
11081
+ */
11082
+ private<T extends Target>(this: T, condition?: boolean): T;
11083
+ }
11084
+ /**
11085
+ * Mixin that adds a `protected` modifier to a node.
11086
+ */
11087
+ declare class ProtectedMixin {
11088
+ /**
11089
+ * Adds the `protected` keyword modifier if the condition is true.
11090
+ *
11091
+ * @param condition - Whether to add the modifier (default: true).
11092
+ * @returns The target object for chaining.
11093
+ */
11094
+ protected<T extends Target>(this: T, condition?: boolean): T;
11095
+ }
11096
+ /**
11097
+ * Mixin that adds a `public` modifier to a node.
11098
+ */
11099
+ declare class PublicMixin {
11100
+ /**
11101
+ * Adds the `public` keyword modifier if the condition is true.
11102
+ *
11103
+ * @param condition - Whether to add the modifier (default: true).
11104
+ * @returns The target object for chaining.
11105
+ */
11106
+ public<T extends Target>(this: T, condition?: boolean): T;
11107
+ }
11108
+ /**
11109
+ * Mixin that adds a `readonly` modifier to a node.
11110
+ */
11111
+ declare class ReadonlyMixin {
11112
+ /**
11113
+ * Adds the `readonly` keyword modifier if the condition is true.
11114
+ *
11115
+ * @param condition - Whether to add the modifier (default: true).
11116
+ * @returns The target object for chaining.
11117
+ */
11118
+ readonly<T extends Target>(this: T, condition?: boolean): T;
11119
+ }
11120
+ /**
11121
+ * Mixin that adds a `static` modifier to a node.
11122
+ */
11123
+ declare class StaticMixin {
11124
+ /**
11125
+ * Adds the `static` keyword modifier if the condition is true.
11126
+ *
11127
+ * @param condition - Whether to add the modifier (default: true).
11128
+ * @returns The target object for chaining.
11129
+ */
11130
+ static<T extends Target>(this: T, condition?: boolean): T;
11131
+ }
11132
+ //#endregion
11133
+ //#region src/ts-dsl/mixins/value.d.ts
11134
+ declare class ValueMixin extends TsDsl {
11135
+ private value?;
11136
+ /** Sets the initializer expression (e.g. `= expr`). */
11137
+ assign<T extends this>(this: T, expr: MaybeTsDsl<WithString>): T;
11138
+ protected $value(): ts.Expression | undefined;
11139
+ $render(): ts.Node;
11140
+ }
11141
+ //#endregion
11142
+ //#region src/ts-dsl/field.d.ts
11143
+ declare class FieldTsDsl extends TsDsl<ts.PropertyDeclaration> {
11144
+ private modifiers;
11145
+ private name;
11146
+ private _type?;
11147
+ constructor(name: string, fn?: (f: FieldTsDsl) => void);
11148
+ /** Sets the field type. */
11149
+ type(type: string | TypeTsDsl): this;
11150
+ /** Builds the `PropertyDeclaration` node. */
11151
+ $render(): ts.PropertyDeclaration;
11152
+ }
11153
+ interface FieldTsDsl extends DecoratorMixin, DescribeMixin, PrivateMixin, ProtectedMixin, PublicMixin, ReadonlyMixin, StaticMixin, ValueMixin {}
11154
+ //#endregion
11155
+ //#region src/ts-dsl/mixins/do.d.ts
11156
+ /**
11157
+ * Adds `.do()` for appending statements or expressions to a body.
11158
+ */
11159
+ declare class DoMixin extends TsDsl {
11160
+ private _do?;
11161
+ /** Adds one or more expressions/statements to the body. */
11162
+ do(...items: ReadonlyArray<MaybeTsDsl<WithStatement>>): this;
11163
+ /** Renders the collected `.do()` calls into an array of `Statement` nodes. */
11164
+ protected $do(): ReadonlyArray<ts.Statement>;
11165
+ $render(): ts.Node;
11166
+ }
11167
+ //#endregion
11168
+ //#region src/ts-dsl/mixins/pattern.d.ts
11169
+ /**
11170
+ * Mixin providing `.array()`, `.object()`, and `.spread()` methods for defining destructuring patterns.
11171
+ */
11172
+ declare class PatternMixin extends TsDsl {
11173
+ private pattern?;
11174
+ /** Defines an array binding pattern. */
11175
+ array(...props: ReadonlyArray<string> | [ReadonlyArray<string>]): this;
11176
+ /** Defines an object binding pattern. */
11177
+ object(...props: ReadonlyArray<MaybeArray$1<string> | Record<string, string>>): this;
11178
+ /** Adds a spread element (e.g. `...args`, `...options`) to the pattern. */
11179
+ spread(name: string): this;
11180
+ /** Renders the pattern into a `BindingName`. */
11181
+ protected $pattern(): ts.BindingName | undefined;
11182
+ $render(): ts.Node;
11183
+ }
11184
+ //#endregion
11185
+ //#region src/ts-dsl/param.d.ts
11186
+ declare class ParamTsDsl extends TsDsl<ts.ParameterDeclaration> {
11187
+ private name?;
11188
+ private _type?;
11189
+ constructor(name: string | ((p: ParamTsDsl) => void), fn?: (p: ParamTsDsl) => void);
11190
+ /** Sets the parameter type. */
11191
+ type(type: string | TypeTsDsl): this;
11192
+ $render(): ts.ParameterDeclaration;
11193
+ }
11194
+ interface ParamTsDsl extends DecoratorMixin, OptionalMixin, PatternMixin, ValueMixin {}
11195
+ //#endregion
11196
+ //#region src/ts-dsl/mixins/param.d.ts
11197
+ declare class ParamMixin extends TsDsl {
11198
+ private _params?;
11199
+ /** Adds a parameter. */
11200
+ param(name: string | ((p: ParamTsDsl) => void), fn?: (p: ParamTsDsl) => void): this;
11201
+ /** Adds multiple parameters. */
11202
+ params(...params: ReadonlyArray<MaybeTsDsl<ts.ParameterDeclaration>>): this;
11203
+ /** Renders the parameters into an array of `ParameterDeclaration`s. */
11204
+ protected $params(): ReadonlyArray<ts.ParameterDeclaration>;
11205
+ $render(): ts.Node;
11206
+ }
11207
+ //#endregion
11208
+ //#region src/ts-dsl/init.d.ts
11209
+ declare class InitTsDsl extends TsDsl<ts.ConstructorDeclaration> {
11210
+ private modifiers;
11211
+ constructor(fn?: (i: InitTsDsl) => void);
11212
+ /** Builds the `ConstructorDeclaration` node. */
11213
+ $render(): ts.ConstructorDeclaration;
11214
+ }
11215
+ interface InitTsDsl extends DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin {}
11216
+ //#endregion
11217
+ //#region src/ts-dsl/type/param.d.ts
11218
+ declare class TypeParamTsDsl extends TypeTsDsl<ts.TypeParameterDeclaration> {
11219
+ protected name?: WithString<ts.Identifier>;
11220
+ protected constraint?: WithString<MaybeTsDsl<TypeTsDsl>> | boolean;
11221
+ protected defaultValue?: WithString<MaybeTsDsl<TypeTsDsl>> | boolean;
11222
+ constructor(name?: WithString<ts.Identifier>, fn?: (name: TypeParamTsDsl) => void);
11223
+ default(value: WithString<MaybeTsDsl<TypeTsDsl>> | boolean): this;
11224
+ extends(constraint: WithString<MaybeTsDsl<TypeTsDsl>> | boolean): this;
11225
+ $render(): ts.TypeParameterDeclaration;
11226
+ }
11227
+ //#endregion
11228
+ //#region src/ts-dsl/mixins/type-params.d.ts
11229
+ declare class TypeParamsMixin extends TsDsl {
11230
+ protected _generics?: Array<string | MaybeTsDsl<TypeOfTsDsl<TypeParamTsDsl>>>;
11231
+ /** Adds a single type parameter (e.g. `T` in `Array<T>`). */
11232
+ generic(...args: ConstructorParameters<typeof TypeParamTsDsl>): this;
11233
+ /** Adds type parameters (e.g. `Map<string, T>`). */
11234
+ generics(...args: ReadonlyArray<string | MaybeTsDsl<TypeOfTsDsl<TypeParamTsDsl>>>): this;
11235
+ /**
11236
+ * Returns the type parameters as an array of ts.TypeParameterDeclaration nodes.
11237
+ */
11238
+ protected $generics(): ReadonlyArray<ts.TypeParameterDeclaration> | undefined;
11239
+ $render(): ts.Node;
11240
+ }
11241
+ //#endregion
11242
+ //#region src/ts-dsl/method.d.ts
11243
+ declare class MethodTsDsl extends TsDsl<ts.MethodDeclaration> {
11244
+ private modifiers;
11245
+ private name;
11246
+ private _returns?;
11247
+ constructor(name: string, fn?: (m: MethodTsDsl) => void);
11248
+ /** Sets the return type. */
11249
+ returns(type: string | TypeTsDsl): this;
11250
+ /** Builds the `MethodDeclaration` node. */
11251
+ $render(): ts.MethodDeclaration;
11252
+ }
11253
+ interface MethodTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, OptionalMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin, TypeParamsMixin {}
11254
+ //#endregion
11255
+ //#region src/ts-dsl/class.d.ts
11256
+ declare class ClassTsDsl extends TsDsl<ts.ClassDeclaration> {
11257
+ private heritageClauses;
11258
+ private body;
11259
+ private modifiers;
11260
+ private name;
11261
+ constructor(name: string);
11262
+ /** Adds one or more class members (fields, methods, etc.). */
11263
+ do(...items: ReadonlyArray<MaybeTsDsl<ts.ClassElement | ts.Node>>): this;
11264
+ /** Adds a base class to extend from. */
11265
+ extends(base?: WithString | false | null): this;
11266
+ /** Adds a class field. */
11267
+ field(name: string, fn?: (f: FieldTsDsl) => void): this;
11268
+ /** Adds a class constructor. */
11269
+ init(fn?: (i: InitTsDsl) => void): this;
11270
+ /** Adds a class method. */
11271
+ method(name: string, fn?: (m: MethodTsDsl) => void): this;
11272
+ /** Inserts an empty line between members for formatting. */
11273
+ newline(): this;
11274
+ /** Builds the `ClassDeclaration` node. */
11275
+ $render(): ts.ClassDeclaration;
11276
+ }
11277
+ interface ClassTsDsl extends AbstractMixin, DecoratorMixin, DescribeMixin, DefaultMixin, ExportMixin, TypeParamsMixin {}
11278
+ //#endregion
11279
+ //#region src/ts-dsl/decorator.d.ts
11280
+ declare class DecoratorTsDsl extends TsDsl<ts.Decorator> {
11281
+ private name;
11282
+ constructor(name: WithString, ...args: ReadonlyArray<MaybeTsDsl<WithString>>);
11283
+ $render(): ts.Decorator;
11284
+ }
11285
+ interface DecoratorTsDsl extends ArgsMixin {}
11286
+ //#endregion
11287
+ //#region src/ts-dsl/type/attr.d.ts
11288
+ declare class TypeAttrTsDsl extends TsDsl<ts.QualifiedName> {
11289
+ private _base?;
11290
+ private right;
11291
+ constructor(base: WithString<MaybeTsDsl<ts.EntityName>>, right: WithString<ts.Identifier>);
11292
+ constructor(right: WithString<ts.Identifier>);
11293
+ base(base?: WithString<MaybeTsDsl<ts.EntityName>>): this;
11294
+ $render(): ts.QualifiedName;
11295
+ }
11296
+ //#endregion
11297
+ //#region src/ts-dsl/type/expr.d.ts
11298
+ declare class TypeExprTsDsl extends TypeTsDsl<ts.TypeReferenceNode> {
11299
+ private _exprInput?;
11300
+ constructor();
11301
+ constructor(fn: (t: TypeExprTsDsl) => void);
11302
+ constructor(name: string);
11303
+ constructor(name: string, fn?: (t: TypeExprTsDsl) => void);
11304
+ /** Accesses a nested type (e.g. `Foo.Bar`). */
11305
+ attr(right: WithString<ts.Identifier> | TypeAttrTsDsl): this;
11306
+ $render(): ts.TypeReferenceNode;
11307
+ }
11308
+ interface TypeExprTsDsl extends TypeArgsMixin {}
11309
+ //#endregion
11310
+ //#region src/ts-dsl/type/query.d.ts
11311
+ declare class TypeQueryTsDsl extends TypeTsDsl<ts.TypeQueryNode> {
11312
+ private expr;
11313
+ constructor(expr: string | MaybeTsDsl<TsDsl>);
11314
+ $render(): ts.TypeQueryNode;
11315
+ }
11316
+ //#endregion
11317
+ //#region src/ts-dsl/expr.d.ts
11318
+ declare class ExprTsDsl extends TsDsl<ts.Expression> {
11319
+ private _exprInput;
11320
+ constructor(id: MaybeTsDsl<WithString>);
11321
+ typeof(): TypeQueryTsDsl;
11322
+ returnType(): TypeExprTsDsl;
11323
+ $render(): ts.Expression;
11324
+ }
11325
+ interface ExprTsDsl extends AccessMixin, OperatorMixin {}
11326
+ //#endregion
11327
+ //#region src/ts-dsl/func.d.ts
11328
+ type FuncMode = 'arrow' | 'decl' | 'expr';
11329
+ declare class ImplFuncTsDsl<M extends FuncMode = 'arrow'> extends TsDsl<M extends 'decl' ? ts.FunctionDeclaration : M extends 'expr' ? ts.FunctionExpression : ts.ArrowFunction> {
11330
+ private mode;
11331
+ private modifiers;
11332
+ private name?;
11333
+ private _returns?;
11334
+ constructor();
11335
+ constructor(fn: (f: ImplFuncTsDsl<'arrow'>) => void);
11336
+ constructor(name: string);
11337
+ constructor(name: string, fn: (f: ImplFuncTsDsl<'decl'>) => void);
11338
+ arrow(): FuncTsDsl<'arrow'>;
11339
+ decl(): FuncTsDsl<'decl'>;
11340
+ expr(): FuncTsDsl<'expr'>;
11341
+ /** Sets the return type. */
11342
+ returns(type: string | TypeTsDsl): this;
11343
+ $render(): M extends 'decl' ? ts.FunctionDeclaration : M extends 'expr' ? ts.FunctionExpression : ts.ArrowFunction;
11344
+ }
11345
+ interface ImplFuncTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, OptionalMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin, TypeParamsMixin {}
11346
+ declare const FuncTsDsl: {
11347
+ new (): FuncTsDsl<"arrow">;
11348
+ new (fn: (f: FuncTsDsl<"arrow">) => void): FuncTsDsl<"arrow">;
11349
+ new (name: string): FuncTsDsl<"decl">;
11350
+ new (name: string, fn: (f: FuncTsDsl<"decl">) => void): FuncTsDsl<"decl">;
11351
+ } & typeof ImplFuncTsDsl;
11352
+ type FuncTsDsl<M extends FuncMode = 'arrow'> = ImplFuncTsDsl<M>;
11353
+ //#endregion
11354
+ //#region src/ts-dsl/getter.d.ts
11355
+ declare class GetterTsDsl extends TsDsl<ts.GetAccessorDeclaration> {
11356
+ private modifiers;
11357
+ private name;
11358
+ constructor(name: string, fn?: (g: GetterTsDsl) => void);
11359
+ $render(): ts.GetAccessorDeclaration;
11360
+ }
11361
+ interface GetterTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin {}
11362
+ //#endregion
11363
+ //#region src/ts-dsl/if.d.ts
11364
+ declare class IfTsDsl extends TsDsl<ts.IfStatement> {
11365
+ private conditionInput?;
11366
+ private elseInput?;
11367
+ constructor(condition?: MaybeTsDsl<WithString>);
11368
+ condition(condition: MaybeTsDsl<WithString>): this;
11369
+ otherwise(...statements: ReadonlyArray<MaybeTsDsl<ts.Statement>>): this;
11370
+ $render(): ts.IfStatement;
11371
+ }
11372
+ interface IfTsDsl extends DoMixin {}
11373
+ //#endregion
11374
+ //#region src/ts-dsl/literal.d.ts
11375
+ declare class LiteralTsDsl extends TsDsl<ts.LiteralTypeNode['literal']> {
11376
+ private value;
11377
+ constructor(value: string | number | boolean);
11378
+ $render(): ts.LiteralTypeNode['literal'];
11379
+ }
11380
+ //#endregion
11381
+ //#region src/ts-dsl/new.d.ts
11382
+ declare class NewTsDsl extends TsDsl<ts.NewExpression> {
11383
+ private classExpr;
11384
+ constructor(classExpr: MaybeTsDsl<WithString>, ...args: ReadonlyArray<MaybeTsDsl<WithString>>);
11385
+ /** Builds the `NewExpression` node. */
11386
+ $render(): ts.NewExpression;
11387
+ }
11388
+ interface NewTsDsl extends AccessMixin, ArgsMixin, TypeArgsMixin {}
11389
+ //#endregion
11390
+ //#region src/ts-dsl/newline.d.ts
11391
+ declare class NewlineTsDsl extends TsDsl<ts.Identifier> {
11392
+ $render(): ts.Identifier;
11393
+ }
11394
+ //#endregion
11395
+ //#region src/ts-dsl/not.d.ts
11396
+ declare class NotTsDsl extends TsDsl<ts.PrefixUnaryExpression> {
11397
+ private _notExpr;
11398
+ constructor(expr: MaybeTsDsl<WithString>);
11399
+ $render(): ts.PrefixUnaryExpression;
11400
+ }
11401
+ //#endregion
11402
+ //#region src/ts-dsl/object.d.ts
11403
+ declare class ObjectTsDsl extends TsDsl<ts.ObjectLiteralExpression> {
11404
+ private props;
11405
+ /** Adds a getter property (e.g. `{ get foo() { ... } }`). */
11406
+ getter(name: string, expr: WithString<MaybeTsDsl<ts.Statement>>): this;
11407
+ /** Returns true if object has at least one property or spread. */
11408
+ hasProps(): boolean;
11409
+ /** Returns true if object has no properties or spreads. */
11410
+ get isEmpty(): boolean;
11411
+ /** Adds a property assignment. */
11412
+ prop(name: string, expr: MaybeTsDsl<WithString>): this;
11413
+ /** Adds a setter property (e.g. `{ set foo(v) { ... } }`). */
11414
+ setter(name: string, expr: WithString<MaybeTsDsl<ts.Statement>>): this;
11415
+ /** Adds a spread property (e.g. `{ ...options }`). */
11416
+ spread(expr: MaybeTsDsl<WithString>): this;
11417
+ /** Builds and returns the object literal expression. */
11418
+ $render(): ts.ObjectLiteralExpression;
11419
+ private safePropertyName;
11420
+ }
11421
+ interface ObjectTsDsl extends LayoutMixin {}
11422
+ //#endregion
11423
+ //#region src/ts-dsl/pattern.d.ts
11424
+ /**
11425
+ * Builds binding patterns (e.g. `{ foo, bar }`, `[a, b, ...rest]`).
11426
+ */
11427
+ declare class PatternTsDsl extends TsDsl<ts.BindingName> {
11428
+ private pattern?;
11429
+ private _spread?;
11430
+ /** Defines an array pattern (e.g. `[a, b, c]`). */
11431
+ array(...props: ReadonlyArray<string> | [ReadonlyArray<string>]): this;
11432
+ /** Defines an object pattern (e.g. `{ a, b: alias }`). */
11433
+ object(...props: ReadonlyArray<MaybeArray$1<string> | Record<string, string>>): this;
11434
+ /** Adds a spread element (e.g. `...rest`, `...options`, `...args`). */
11435
+ spread(name: string): this;
11436
+ /** Builds and returns a BindingName (ObjectBindingPattern, ArrayBindingPattern, or Identifier). */
11437
+ $render(): ts.BindingName;
11438
+ private createSpread;
11439
+ }
11440
+ //#endregion
11441
+ //#region src/ts-dsl/regexp.d.ts
11442
+ type RegexFlag = 'g' | 'i' | 'm' | 's' | 'u' | 'y';
11443
+ type RegexFlags<Avail extends string = RegexFlag> = '' | { [K in Avail]: `${K}${RegexFlags<Exclude<Avail, K>>}` }[Avail];
11444
+ declare class RegExpTsDsl extends TsDsl<ts.RegularExpressionLiteral> {
11445
+ private pattern;
11446
+ private flags?;
11447
+ constructor(pattern: string, flags?: RegexFlags);
11448
+ /** Emits a RegularExpressionLiteral node. */
11449
+ $render(): ts.RegularExpressionLiteral;
11450
+ }
11451
+ //#endregion
11452
+ //#region src/ts-dsl/setter.d.ts
11453
+ declare class SetterTsDsl extends TsDsl<ts.SetAccessorDeclaration> {
11454
+ private modifiers;
11455
+ private name;
11456
+ constructor(name: string, fn?: (s: SetterTsDsl) => void);
11457
+ $render(): ts.SetAccessorDeclaration;
11458
+ }
11459
+ interface SetterTsDsl extends AbstractMixin, AsyncMixin, DecoratorMixin, DescribeMixin, DoMixin, ParamMixin, PrivateMixin, ProtectedMixin, PublicMixin, StaticMixin {}
11460
+ //#endregion
11461
+ //#region src/ts-dsl/template.d.ts
11462
+ declare class TemplateTsDsl extends TsDsl<ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral> {
11463
+ private parts;
11464
+ constructor(value?: MaybeTsDsl<WithString>);
11465
+ add(value: MaybeTsDsl<WithString>): this;
11466
+ $render(): ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral;
11467
+ }
11468
+ //#endregion
11469
+ //#region src/ts-dsl/throw.d.ts
11470
+ declare class ThrowTsDsl extends TsDsl<ts.ThrowStatement> {
11471
+ private error;
11472
+ private msg?;
11473
+ private useNew;
11474
+ constructor(error: MaybeTsDsl<WithString>, useNew?: boolean);
11475
+ message(value: MaybeTsDsl<WithString>): this;
11476
+ $render(): ts.ThrowStatement;
11477
+ }
11478
+ //#endregion
11479
+ //#region src/ts-dsl/type/alias.d.ts
11480
+ declare class TypeAliasTsDsl extends TsDsl<ts.TypeAliasDeclaration> {
11481
+ private value?;
11482
+ private modifiers;
11483
+ private name;
11484
+ constructor(name: string, fn?: (t: TypeAliasTsDsl) => void);
11485
+ /** Sets the type expression on the right-hand side of `= ...`. */
11486
+ type(node: MaybeTsDsl<ts.TypeNode>): this;
11487
+ /** Renders a `TypeAliasDeclaration` node. */
11488
+ $render(): ts.TypeAliasDeclaration;
11489
+ }
11490
+ interface TypeAliasTsDsl extends ExportMixin, TypeParamsMixin {}
11491
+ //#endregion
11492
+ //#region src/ts-dsl/type/literal.d.ts
11493
+ declare class TypeLiteralTsDsl extends TypeTsDsl<ts.LiteralTypeNode> {
11494
+ private value;
11495
+ constructor(value: string | number | boolean);
11496
+ $render(): ts.LiteralTypeNode;
11497
+ }
11498
+ //#endregion
11499
+ //#region src/ts-dsl/type/object.d.ts
11500
+ declare class TypeObjectTsDsl extends TypeTsDsl<ts.TypeNode> {
11501
+ private props;
11502
+ private merges;
11503
+ /** Adds a property signature (returns property builder). */
11504
+ prop(name: string, fn: (p: TypePropTsDsl) => void): this;
11505
+ /** Adds a type to merge (intersect) with the object literal. */
11506
+ merge(type: WithString<ts.Identifier>): this;
11507
+ $render(): ts.TypeNode;
11508
+ }
11509
+ declare class TypePropTsDsl extends TypeTsDsl<ts.TypeElement> {
11510
+ private name;
11511
+ private typeInput?;
11512
+ constructor(name: string, fn: (p: TypePropTsDsl) => void);
11513
+ /** Sets the property type. */
11514
+ type(type: WithString<ts.TypeNode>): this;
11515
+ /** Builds and returns the property signature. */
11516
+ $render(): ts.TypeElement;
11517
+ }
11518
+ interface TypePropTsDsl extends OptionalMixin {}
11519
+ //#endregion
11520
+ //#region src/ts-dsl/var.d.ts
11521
+ declare class VarTsDsl extends TsDsl<ts.VariableStatement> {
11522
+ private kind;
11523
+ private modifiers;
11524
+ private name?;
11525
+ private _type?;
11526
+ constructor(name?: string);
11527
+ const(): this;
11528
+ let(): this;
11529
+ /** Sets the variable type. */
11530
+ type(type: string | TypeTsDsl): this;
11531
+ var(): this;
11532
+ $render(): ts.VariableStatement;
11533
+ }
11534
+ interface VarTsDsl extends DefaultMixin, DescribeMixin, ExportMixin, PatternMixin, ValueMixin {}
11535
+ //#endregion
11536
+ //#region src/ts-dsl/index.d.ts
11537
+ declare const $: ((id: string | typescript422.Expression | TsDsl<typescript422.Expression>) => ExprTsDsl) & {
11538
+ /** Creates an array literal expression (e.g. `[1, 2, 3]`). */
11539
+ array: () => ArrayTsDsl;
11540
+ /** Creates a property access expression (e.g. `obj.foo`). */
11541
+ attr: (left: string | typescript422.Expression | TsDsl<typescript422.Expression>, right: number | WithString<typescript422.MemberName>) => AttrTsDsl;
11542
+ /** Creates an await expression (e.g. `await promise`). */
11543
+ await: (expr: string | typescript422.Expression | TsDsl<typescript422.Expression>) => AwaitTsDsl;
11544
+ /** Creates a binary expression (e.g. `a + b`). */
11545
+ binary: (left: string | typescript422.Expression | TsDsl<typescript422.Expression>, operator: ("!=" | "!==" | "&&" | "*" | "+" | "-" | "/" | "<" | "<=" | "=" | "==" | "===" | ">" | ">=" | "??" | "||") | typescript422.BinaryOperator, right: string | typescript422.Expression | TsDsl<typescript422.Expression>) => BinaryTsDsl;
11546
+ /** Creates a function or method call expression (e.g. `fn(arg)`). */
11547
+ call: (callee: string | typescript422.Expression | TsDsl<typescript422.Expression>, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined)[]) => CallTsDsl;
11548
+ /** Creates a class declaration or expression. */
11549
+ class: (name: string) => ClassTsDsl;
11550
+ /** Creates a constant variable declaration (`const`). */
11551
+ const: (name?: string | undefined) => VarTsDsl;
11552
+ /** Creates a decorator expression (e.g. `@decorator`). */
11553
+ decorator: (name: WithString, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression>)[]) => DecoratorTsDsl;
11554
+ /** Creates a describe block (used for tests or descriptions). */
11555
+ describe: (lines?: MaybeArray$1<string> | undefined, fn?: ((d: DescribeTsDsl) => void) | undefined) => DescribeTsDsl;
11556
+ /** Creates a general expression node. */
11557
+ expr: (id: string | typescript422.Expression | TsDsl<typescript422.Expression>) => ExprTsDsl;
11558
+ /** Creates a field declaration in a class or object. */
11559
+ field: (name: string, fn?: ((f: FieldTsDsl) => void) | undefined) => FieldTsDsl;
11560
+ /** Creates a function expression or declaration. */
11561
+ func: {
11562
+ (): FuncTsDsl<"arrow">;
11563
+ (fn: (f: FuncTsDsl<"arrow">) => void): FuncTsDsl<"arrow">;
11564
+ (name: string): FuncTsDsl<"decl">;
11565
+ (name: string, fn: (f: FuncTsDsl<"decl">) => void): FuncTsDsl<"decl">;
11566
+ };
11567
+ /** Creates a getter method declaration. */
11568
+ getter: (name: string, fn?: ((g: GetterTsDsl) => void) | undefined) => GetterTsDsl;
11569
+ /** Creates an if statement. */
11570
+ if: (condition?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => IfTsDsl;
11571
+ /** Creates an initialization block or statement. */
11572
+ init: (fn?: ((i: InitTsDsl) => void) | undefined) => InitTsDsl;
11573
+ /** Creates a let variable declaration (`let`). */
11574
+ let: (name?: string | undefined) => VarTsDsl;
11575
+ /** Creates a literal value (e.g. string, number, boolean). */
11576
+ literal: (value: string | number | boolean) => LiteralTsDsl;
11577
+ /** Creates a method declaration inside a class or object. */
11578
+ method: (name: string, fn?: ((m: MethodTsDsl) => void) | undefined) => MethodTsDsl;
11579
+ /** Creates a new expression (e.g. `new ClassName()`). */
11580
+ new: (classExpr: string | typescript422.Expression | TsDsl<typescript422.Expression>, ...args: (string | typescript422.Expression | TsDsl<typescript422.Expression>)[]) => NewTsDsl;
11581
+ /** Creates a newline (for formatting purposes). */
11582
+ newline: () => NewlineTsDsl;
11583
+ /** Creates a logical NOT expression (e.g. `!expr`). */
11584
+ not: (expr: string | typescript422.Expression | TsDsl<typescript422.Expression>) => NotTsDsl;
11585
+ /** Creates an object literal expression. */
11586
+ object: () => ObjectTsDsl;
11587
+ /** Creates a parameter declaration for functions or methods. */
11588
+ param: (name: string | ((p: ParamTsDsl) => void), fn?: ((p: ParamTsDsl) => void) | undefined) => ParamTsDsl;
11589
+ /** Creates a pattern for destructuring or matching. */
11590
+ pattern: () => PatternTsDsl;
11591
+ /** Creates a regular expression literal (e.g. `/foo/gi`). */
11592
+ 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;
11593
+ /** Creates a return statement. */
11594
+ return: (expr?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => ReturnTsDsl;
11595
+ /** Creates a setter method declaration. */
11596
+ setter: (name: string, fn?: ((s: SetterTsDsl) => void) | undefined) => SetterTsDsl;
11597
+ /** Creates a template literal expression. */
11598
+ template: (value?: string | typescript422.Expression | TsDsl<typescript422.Expression> | undefined) => TemplateTsDsl;
11599
+ /** Creates a throw statement. */
11600
+ throw: (error: string | typescript422.Expression | TsDsl<typescript422.Expression>, useNew?: boolean | undefined) => ThrowTsDsl;
11601
+ /** Creates a basic type reference or type expression (e.g. Foo or Foo<T>). */
11602
+ type: ((name: string, fn?: ((t: TypeExprTsDsl) => void) | undefined) => TypeExprTsDsl) & {
11603
+ /** Creates a type alias declaration (e.g. `type Foo = Bar`). */
11604
+ alias: (name: string, fn?: ((t: TypeAliasTsDsl) => void) | undefined) => TypeAliasTsDsl;
11605
+ /** Creates a qualified type reference (e.g. Foo.Bar). */
11606
+ attr: (right: WithString<typescript422.Identifier>) => TypeAttrTsDsl;
11607
+ /** Creates a basic type reference or type expression (e.g. Foo or Foo<T>). */
11608
+ expr: (name: string, fn?: ((t: TypeExprTsDsl) => void) | undefined) => TypeExprTsDsl;
11609
+ /** Creates a literal type node (e.g. 'foo', 42, or true). */
11610
+ literal: (value: string | number | boolean) => TypeLiteralTsDsl;
11611
+ /** Creates a type literal node (e.g. { foo: string }). */
11612
+ object: () => TypeObjectTsDsl;
11613
+ };
11614
+ /** Creates a variable declaration (var). */
11615
+ var: (name?: string | undefined) => VarTsDsl;
11616
+ };
11617
+ type DollarTsDsl = {
11618
+ /**
11619
+ * Entry point to the TypeScript DSL.
11620
+ *
11621
+ * `$` creates a general expression node by default, but also exposes
11622
+ * builders for all other constructs such as `.type()`, `.call()`,
11623
+ * `.object()`, `.func()`, etc.
11624
+ *
11625
+ * Example:
11626
+ * ```ts
11627
+ * const node = $('console').attr('log').call($.literal('Hello'));
11628
+ * ```
11629
+ *
11630
+ * Returns:
11631
+ * - A new `ExprTsDsl` instance when called directly.
11632
+ * - The `base` factory object for constructing more specific nodes.
11633
+ */
11634
+ $: typeof $;
11635
+ };
11636
+ //#endregion
10829
11637
  //#region src/plugins/arktype/shared/types.d.ts
10830
11638
  type ValidatorArgs$2 = {
10831
11639
  operation: IR$1.OperationObject;
@@ -12095,7 +12903,7 @@ type IApi$1 = {
12095
12903
  };
12096
12904
  //#endregion
12097
12905
  //#region src/plugins/valibot/types.d.ts
12098
- type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
12906
+ type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & Resolvers$1 & {
12099
12907
  /**
12100
12908
  * The casing convention to use for generated names.
12101
12909
  *
@@ -12253,7 +13061,7 @@ type UserConfig$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
12253
13061
  name?: StringName;
12254
13062
  };
12255
13063
  };
12256
- type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
13064
+ type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & Resolvers$1 & {
12257
13065
  /**
12258
13066
  * The casing convention to use for generated names.
12259
13067
  *
@@ -12389,6 +13197,102 @@ type Config$2 = Plugin.Name<'valibot'> & Plugin.Hooks & {
12389
13197
  name: StringName;
12390
13198
  };
12391
13199
  };
13200
+ type SharedResolverArgs$1 = DollarTsDsl & {
13201
+ /**
13202
+ * The current builder state being processed by this resolver.
13203
+ *
13204
+ * In Valibot, this represents the current list of call expressions ("pipes")
13205
+ * being assembled to form a schema definition.
13206
+ *
13207
+ * Each pipe can be extended, modified, or replaced to customize how the
13208
+ * resulting schema is constructed. Returning `undefined` from a resolver will
13209
+ * use the default generation behavior.
13210
+ */
13211
+ pipes: Array<CallTsDsl>;
13212
+ plugin: ValibotPlugin['Instance'];
13213
+ };
13214
+ type FormatResolverArgs$1 = SharedResolverArgs$1 & {
13215
+ schema: IR$1.SchemaObject;
13216
+ };
13217
+ type ObjectBaseResolverArgs$1 = SharedResolverArgs$1 & {
13218
+ /** Null = never */
13219
+ additional?: ts.Expression | null;
13220
+ schema: IR$1.SchemaObject;
13221
+ shape: ObjectTsDsl;
13222
+ };
13223
+ type ValidatorResolverArgs$1 = SharedResolverArgs$1 & {
13224
+ operation: IR$1.Operation;
13225
+ schema: Symbol;
13226
+ v: Symbol;
13227
+ };
13228
+ type ValidatorResolver$1 = (args: ValidatorResolverArgs$1) => MaybeArray<TsDsl<ts.Statement>> | null | undefined;
13229
+ type Resolvers$1 = Plugin.Resolvers<{
13230
+ /**
13231
+ * Resolvers for object schemas.
13232
+ *
13233
+ * Allows customization of how object types are rendered.
13234
+ *
13235
+ * Example path: `~resolvers.object.base`
13236
+ *
13237
+ * Returning `undefined` from a resolver will apply the default
13238
+ * generation behavior for the object schema.
13239
+ */
13240
+ object?: {
13241
+ /**
13242
+ * Controls how object schemas are constructed.
13243
+ *
13244
+ * Called with the fully assembled shape (properties) and any additional
13245
+ * property schema, allowing the resolver to choose the correct Valibot
13246
+ * base constructor and modify the schema chain if needed.
13247
+ *
13248
+ * Returning `undefined` will execute the default resolver logic.
13249
+ */
13250
+ base?: (args: ObjectBaseResolverArgs$1) => CallTsDsl | undefined;
13251
+ };
13252
+ /**
13253
+ * Resolvers for string schemas.
13254
+ *
13255
+ * Allows customization of how string types are rendered, including
13256
+ * per-format handling.
13257
+ */
13258
+ string?: {
13259
+ /**
13260
+ * Resolvers for string formats (e.g., `uuid`, `email`, `date-time`).
13261
+ *
13262
+ * Each key represents a specific format name with a custom
13263
+ * resolver function that controls how that format is rendered.
13264
+ *
13265
+ * Example path: `~resolvers.string.formats.uuid`
13266
+ *
13267
+ * Returning `undefined` from a resolver will apply the default
13268
+ * generation behavior for that format.
13269
+ */
13270
+ formats?: Record<string, (args: FormatResolverArgs$1) => boolean | number | undefined>;
13271
+ };
13272
+ /**
13273
+ * Resolvers for request and response validators.
13274
+ *
13275
+ * Allow customization of validator function bodies.
13276
+ *
13277
+ * Example path: `~resolvers.validator.request` or `~resolvers.validator.response`
13278
+ *
13279
+ * Returning `undefined` from a resolver will apply the default generation logic.
13280
+ */
13281
+ validator?: ValidatorResolver$1 | {
13282
+ /**
13283
+ * Controls how the request validator function body is generated.
13284
+ *
13285
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
13286
+ */
13287
+ request?: ValidatorResolver$1;
13288
+ /**
13289
+ * Controls how the response validator function body is generated.
13290
+ *
13291
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
13292
+ */
13293
+ response?: ValidatorResolver$1;
13294
+ };
13295
+ }>;
12392
13296
  type ValibotPlugin = DefinePlugin<UserConfig$2, Config$2, IApi$1>;
12393
13297
  //#endregion
12394
13298
  //#region src/plugins/zod/shared/types.d.ts
@@ -12404,7 +13308,7 @@ type IApi = {
12404
13308
  };
12405
13309
  //#endregion
12406
13310
  //#region src/plugins/zod/types.d.ts
12407
- type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
13311
+ type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & Resolvers & {
12408
13312
  /**
12409
13313
  * The casing convention to use for generated names.
12410
13314
  *
@@ -12788,7 +13692,7 @@ type UserConfig$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
12788
13692
  };
12789
13693
  };
12790
13694
  };
12791
- type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
13695
+ type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & Resolvers & {
12792
13696
  /**
12793
13697
  * The casing convention to use for generated names.
12794
13698
  *
@@ -13109,6 +14013,100 @@ type Config$1 = Plugin.Name<'zod'> & Plugin.Hooks & {
13109
14013
  };
13110
14014
  };
13111
14015
  };
14016
+ type SharedResolverArgs = DollarTsDsl & {
14017
+ /**
14018
+ * The current fluent builder chain under construction for this resolver.
14019
+ *
14020
+ * Represents the in-progress call sequence (e.g., a Zod or DSL chain)
14021
+ * that defines the current schema or expression being generated.
14022
+ *
14023
+ * This chain can be extended, transformed, or replaced entirely to customize
14024
+ * the resulting output of the resolver.
14025
+ */
14026
+ chain?: CallTsDsl;
14027
+ plugin: ZodPlugin['Instance'];
14028
+ };
14029
+ type FormatResolverArgs = Required<SharedResolverArgs> & {
14030
+ schema: IR$1.SchemaObject;
14031
+ };
14032
+ type ObjectBaseResolverArgs = SharedResolverArgs & {
14033
+ /** Null = never */
14034
+ additional?: ts.Expression | null;
14035
+ schema: IR$1.SchemaObject;
14036
+ shape: ObjectTsDsl;
14037
+ };
14038
+ type ValidatorResolverArgs = SharedResolverArgs & {
14039
+ operation: IR$1.Operation;
14040
+ schema: Symbol;
14041
+ };
14042
+ type ValidatorResolver = (args: ValidatorResolverArgs) => MaybeArray<TsDsl<ts.Statement>> | null | undefined;
14043
+ type Resolvers = Plugin.Resolvers<{
14044
+ /**
14045
+ * Resolvers for object schemas.
14046
+ *
14047
+ * Allows customization of how object types are rendered.
14048
+ *
14049
+ * Example path: `~resolvers.object.base`
14050
+ *
14051
+ * Returning `undefined` from a resolver will apply the default
14052
+ * generation behavior for the object schema.
14053
+ */
14054
+ object?: {
14055
+ /**
14056
+ * Controls how object schemas are constructed.
14057
+ *
14058
+ * Called with the fully assembled shape (properties) and any additional
14059
+ * property schema, allowing the resolver to choose the correct Zod
14060
+ * base constructor and modify the schema chain if needed.
14061
+ *
14062
+ * Returning `undefined` will execute the default resolver logic.
14063
+ */
14064
+ base?: (args: ObjectBaseResolverArgs) => CallTsDsl | undefined;
14065
+ };
14066
+ /**
14067
+ * Resolvers for string schemas.
14068
+ *
14069
+ * Allows customization of how string types are rendered, including
14070
+ * per-format handling.
14071
+ */
14072
+ string?: {
14073
+ /**
14074
+ * Resolvers for string formats (e.g., `uuid`, `email`, `date-time`).
14075
+ *
14076
+ * Each key represents a specific format name with a custom
14077
+ * resolver function that controls how that format is rendered.
14078
+ *
14079
+ * Example path: `~resolvers.string.formats.uuid`
14080
+ *
14081
+ * Returning `undefined` from a resolver will apply the default
14082
+ * generation logic for that format.
14083
+ */
14084
+ formats?: Record<string, (args: FormatResolverArgs) => CallTsDsl | undefined>;
14085
+ };
14086
+ /**
14087
+ * Resolvers for request and response validators.
14088
+ *
14089
+ * Allow customization of validator function bodies.
14090
+ *
14091
+ * Example path: `~resolvers.validator.request` or `~resolvers.validator.response`
14092
+ *
14093
+ * Returning `undefined` from a resolver will apply the default generation logic.
14094
+ */
14095
+ validator?: ValidatorResolver | {
14096
+ /**
14097
+ * Controls how the request validator function body is generated.
14098
+ *
14099
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
14100
+ */
14101
+ request?: ValidatorResolver;
14102
+ /**
14103
+ * Controls how the response validator function body is generated.
14104
+ *
14105
+ * Returning `undefined` will fall back to the default `.await().return()` logic.
14106
+ */
14107
+ response?: ValidatorResolver;
14108
+ };
14109
+ }>;
13112
14110
  type ZodPlugin = DefinePlugin<UserConfig$1, Config$1, IApi>;
13113
14111
  //#endregion
13114
14112
  //#region src/plugins/config.d.ts
@@ -13656,6 +14654,23 @@ declare namespace Plugin {
13656
14654
  export interface Name<Name extends PluginNames> {
13657
14655
  name: Name;
13658
14656
  }
14657
+
14658
+ /**
14659
+ * Generic wrapper for plugin resolvers.
14660
+ *
14661
+ * Provides a namespaced configuration entry (`~resolvers`)
14662
+ * where plugins can define how specific schema constructs
14663
+ * should be resolved or overridden.
14664
+ */
14665
+ export type Resolvers<T extends Record<string, unknown> = Record<string, unknown>> = {
14666
+ /**
14667
+ * Custom behavior resolvers for a plugin.
14668
+ *
14669
+ * Used to define how specific schema constructs are
14670
+ * resolved into AST or runtime logic.
14671
+ */
14672
+ '~resolvers'?: T;
14673
+ };
13659
14674
  export type Types<Config$22 extends BaseConfig = BaseConfig, ResolvedConfig extends BaseConfig = Config$22, Api extends BaseApi = never> = ([Api] extends [never] ? {
13660
14675
  api?: BaseApi;
13661
14676
  } : {
@@ -14727,5 +15742,5 @@ type Config = Omit<Required<UserConfig>, 'input' | 'logs' | 'output' | 'parser'
14727
15742
  plugins: { [K in PluginNames]?: Plugin.Config<PluginConfigMap[K]> };
14728
15743
  };
14729
15744
  //#endregion
14730
- export { Client$6 as C, LazyOrAsync as D, IR$1 as E, MaybeArray as O, Client$5 as S, StringCase as T, Client as _, Plugin as a, Client$3 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, Client$7 as w, Client$4 as x, Client$2 as y };
14731
- //# sourceMappingURL=config-U5JEpxGS.d.ts.map
15745
+ 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, Client$6 as at, TypeAliasTsDsl as b, OpenApiOperationObject as c, IR$1 as ct, OpenApiResponseObject as d, PluginHandler as et, OpenApiSchemaObject as f, DollarTsDsl as g, $ as h, DefinePlugin as i, Client$5 as it, IfTsDsl as j, NewTsDsl as k, OpenApiParameterObject as l, LazyOrAsync as lt, Logger as m, UserConfig as n, Client$3 as nt, OpenApi as o, Client$7 as ot, Context as p, CallTsDsl as q, Input as r, Client$4 as rt, OpenApiMetaObject as s, StringCase as st, Config as t, Client$2 as tt, OpenApiRequestBodyObject as u, MaybeArray as ut, TypeObjectTsDsl as v, RegExpTsDsl as w, ThrowTsDsl as x, TypeLiteralTsDsl as y, MethodTsDsl as z };
15746
+ //# sourceMappingURL=config-DHUTNwtw.d.ts.map