@skmtc/core 0.0.794 → 0.0.795
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/context/StackTrail.d.ts +293 -0
- package/esm/context/StackTrail.d.ts.map +1 -1
- package/esm/context/StackTrail.js +294 -0
- package/esm/types/Modifiers.d.ts +68 -0
- package/esm/types/Modifiers.d.ts.map +1 -1
- package/esm/types/TypeSystem.d.ts +419 -0
- package/esm/types/TypeSystem.d.ts.map +1 -1
- package/esm/typescript/FunctionParameter.d.ts +313 -0
- package/esm/typescript/FunctionParameter.d.ts.map +1 -1
- package/esm/typescript/FunctionParameter.js +328 -0
- package/package.json +1 -1
- package/script/context/StackTrail.d.ts +293 -0
- package/script/context/StackTrail.d.ts.map +1 -1
- package/script/context/StackTrail.js +294 -0
- package/script/types/Modifiers.d.ts +68 -0
- package/script/types/Modifiers.d.ts.map +1 -1
- package/script/types/TypeSystem.d.ts +419 -0
- package/script/types/TypeSystem.d.ts.map +1 -1
- package/script/typescript/FunctionParameter.d.ts +313 -0
- package/script/typescript/FunctionParameter.d.ts.map +1 -1
- package/script/typescript/FunctionParameter.js +328 -0
package/esm/types/Modifiers.d.ts
CHANGED
|
@@ -1,6 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type modifiers used throughout the SKMTC type system.
|
|
3
|
+
*
|
|
4
|
+
* `Modifiers` represent additional metadata and constraints that can be
|
|
5
|
+
* applied to type system values. These modifiers affect how types are
|
|
6
|
+
* generated and used in the target language output.
|
|
7
|
+
*
|
|
8
|
+
* @example Basic usage
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { Modifiers } from '@skmtc/core';
|
|
11
|
+
*
|
|
12
|
+
* const stringModifiers: Modifiers = {
|
|
13
|
+
* required: true,
|
|
14
|
+
* nullable: false,
|
|
15
|
+
* description: 'User email address'
|
|
16
|
+
* };
|
|
17
|
+
*
|
|
18
|
+
* const optionalModifiers: Modifiers = {
|
|
19
|
+
* required: false,
|
|
20
|
+
* nullable: true,
|
|
21
|
+
* description: 'Optional user profile image URL'
|
|
22
|
+
* };
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example In type system values
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const emailField: TypeSystemString = {
|
|
28
|
+
* type: 'string',
|
|
29
|
+
* format: 'email',
|
|
30
|
+
* enums: undefined,
|
|
31
|
+
* modifiers: {
|
|
32
|
+
* required: true,
|
|
33
|
+
* nullable: false,
|
|
34
|
+
* description: 'Valid email address for account registration'
|
|
35
|
+
* }
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* const optionalNote: TypeSystemString = {
|
|
39
|
+
* type: 'string',
|
|
40
|
+
* format: undefined,
|
|
41
|
+
* enums: undefined,
|
|
42
|
+
* modifiers: {
|
|
43
|
+
* required: false,
|
|
44
|
+
* nullable: true,
|
|
45
|
+
* description: 'Optional user note or comment'
|
|
46
|
+
* }
|
|
47
|
+
* };
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @example TypeScript generation
|
|
51
|
+
* ```typescript
|
|
52
|
+
* function generateTypeScript(type: TypeSystemValue): string {
|
|
53
|
+
* const baseType = generateBaseType(type);
|
|
54
|
+
* const optional = !type.modifiers.required ? '?' : '';
|
|
55
|
+
* const nullable = type.modifiers.nullable ? ' | null' : '';
|
|
56
|
+
*
|
|
57
|
+
* return `${baseType}${nullable}${optional}`;
|
|
58
|
+
* }
|
|
59
|
+
*
|
|
60
|
+
* // Required non-null string: 'string'
|
|
61
|
+
* // Optional non-null string: 'string?'
|
|
62
|
+
* // Required nullable string: 'string | null'
|
|
63
|
+
* // Optional nullable string: 'string | null?'
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
1
66
|
export type Modifiers = {
|
|
67
|
+
/** Whether the field is required (affects optional markers in generated types) */
|
|
2
68
|
required?: boolean;
|
|
69
|
+
/** Human-readable description of the field (used in documentation) */
|
|
3
70
|
description?: string;
|
|
71
|
+
/** Whether the field can be null (affects null union types) */
|
|
4
72
|
nullable?: boolean;
|
|
5
73
|
};
|
|
6
74
|
//# sourceMappingURL=Modifiers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modifiers.d.ts","sourceRoot":"","sources":["../../src/types/Modifiers.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
|
|
1
|
+
{"version":3,"file":"Modifiers.d.ts","sourceRoot":"","sources":["../../src/types/Modifiers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA"}
|
|
@@ -8,84 +8,417 @@ import type { CustomValue } from './CustomValue.js';
|
|
|
8
8
|
import type { OasVoid } from '../oas/void/Void.js';
|
|
9
9
|
import type { GeneratorKey } from './GeneratorKeys.js';
|
|
10
10
|
import type { RefName } from './RefName.js';
|
|
11
|
+
/**
|
|
12
|
+
* Union type representing all possible type system values in the SKMTC code generation system.
|
|
13
|
+
*
|
|
14
|
+
* The `TypeSystemValue` represents the normalized intermediate representation used by SKMTC
|
|
15
|
+
* to convert OpenAPI schemas into target language types. This type system abstracts away
|
|
16
|
+
* OpenAPI-specific details and provides a consistent interface for generating code in
|
|
17
|
+
* different target languages and frameworks.
|
|
18
|
+
*
|
|
19
|
+
* ## Type Categories
|
|
20
|
+
*
|
|
21
|
+
* - **Primitive Types**: `string`, `number`, `integer`, `boolean`, `null`
|
|
22
|
+
* - **Complex Types**: `array`, `object`, `union`
|
|
23
|
+
* - **Special Types**: `void`, `never`, `unknown`, `custom`
|
|
24
|
+
* - **Reference Types**: `ref` for schema references
|
|
25
|
+
*
|
|
26
|
+
* @example Discriminated union usage
|
|
27
|
+
* ```typescript
|
|
28
|
+
* import { TypeSystemValue } from '@skmtc/core';
|
|
29
|
+
*
|
|
30
|
+
* function processType(type: TypeSystemValue): string {
|
|
31
|
+
* switch (type.type) {
|
|
32
|
+
* case 'string':
|
|
33
|
+
* return `string${type.modifiers.optional ? '?' : ''}`;
|
|
34
|
+
* case 'array':
|
|
35
|
+
* return `${processType(type.items)}[]`;
|
|
36
|
+
* case 'object':
|
|
37
|
+
* return 'object';
|
|
38
|
+
* case 'ref':
|
|
39
|
+
* return type.name;
|
|
40
|
+
* default:
|
|
41
|
+
* return type.type;
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example In generator contexts
|
|
47
|
+
* ```typescript
|
|
48
|
+
* class TypeScriptGenerator {
|
|
49
|
+
* generateType(typeValue: TypeSystemValue): string {
|
|
50
|
+
* if (typeValue.type === 'union') {
|
|
51
|
+
* return typeValue.members
|
|
52
|
+
* .map(member => this.generateType(member))
|
|
53
|
+
* .join(' | ');
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* if (typeValue.type === 'array') {
|
|
57
|
+
* return `${this.generateType(typeValue.items)}[]`;
|
|
58
|
+
* }
|
|
59
|
+
*
|
|
60
|
+
* // Handle other types...
|
|
61
|
+
* return typeValue.type;
|
|
62
|
+
* }
|
|
63
|
+
* }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
11
66
|
export type TypeSystemValue = TypeSystemArray | TypeSystemObject | TypeSystemUnion | TypeSystemString | TypeSystemNumber | TypeSystemInteger | TypeSystemBoolean | TypeSystemUnknown | TypeSystemVoid | TypeSystemNever | TypeSystemRef | TypeSystemNull | TypeSystemCustom;
|
|
67
|
+
/**
|
|
68
|
+
* Type system representation of a reference to another schema.
|
|
69
|
+
*
|
|
70
|
+
* `TypeSystemRef` represents references to other schemas, typically used for
|
|
71
|
+
* complex types that are defined elsewhere in the schema and referenced
|
|
72
|
+
* through `$ref` in OpenAPI specifications.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const userRef: TypeSystemRef = {
|
|
77
|
+
* type: 'ref',
|
|
78
|
+
* name: 'User',
|
|
79
|
+
* modifiers: { optional: false, nullable: false },
|
|
80
|
+
* generatorKey: 'model|User'
|
|
81
|
+
* };
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
12
84
|
export type TypeSystemRef = {
|
|
85
|
+
/** Discriminator for the reference type */
|
|
13
86
|
type: 'ref';
|
|
87
|
+
/** The name of the referenced schema */
|
|
14
88
|
name: string;
|
|
89
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
15
90
|
modifiers: Modifiers;
|
|
91
|
+
/** Optional generator-specific key for tracking */
|
|
16
92
|
generatorKey?: GeneratorKey;
|
|
17
93
|
};
|
|
94
|
+
/**
|
|
95
|
+
* Type system representation for custom, generator-specific types.
|
|
96
|
+
*
|
|
97
|
+
* `TypeSystemCustom` allows generators to inject custom type representations
|
|
98
|
+
* that don't fit into standard OpenAPI types. The value is a `Stringable`
|
|
99
|
+
* that will be rendered directly in the generated code.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const customType: TypeSystemCustom = {
|
|
104
|
+
* type: 'custom',
|
|
105
|
+
* value: 'React.ReactNode',
|
|
106
|
+
* generatorKey: 'react-component|Button'
|
|
107
|
+
* };
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
18
110
|
export type TypeSystemCustom = {
|
|
111
|
+
/** Discriminator for the custom type */
|
|
19
112
|
type: 'custom';
|
|
113
|
+
/** The custom type value to be rendered */
|
|
20
114
|
value: Stringable;
|
|
115
|
+
/** Optional generator-specific key for tracking */
|
|
21
116
|
generatorKey?: GeneratorKey;
|
|
22
117
|
};
|
|
118
|
+
/**
|
|
119
|
+
* Type system representation of array types.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* const stringArray: TypeSystemArray = {
|
|
124
|
+
* type: 'array',
|
|
125
|
+
* items: { type: 'string', modifiers: { optional: false, nullable: false } },
|
|
126
|
+
* modifiers: { optional: false, nullable: false }
|
|
127
|
+
* };
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
23
130
|
export type TypeSystemArray = {
|
|
131
|
+
/** Discriminator for the array type */
|
|
24
132
|
type: 'array';
|
|
133
|
+
/** The type of items in the array */
|
|
25
134
|
items: TypeSystemValue;
|
|
135
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
26
136
|
modifiers: Modifiers;
|
|
137
|
+
/** Optional generator-specific key for tracking */
|
|
27
138
|
generatorKey?: GeneratorKey;
|
|
28
139
|
};
|
|
140
|
+
/**
|
|
141
|
+
* Type system representation of floating-point number types.
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* const priceType: TypeSystemNumber = {
|
|
146
|
+
* type: 'number',
|
|
147
|
+
* modifiers: { optional: false, nullable: false }
|
|
148
|
+
* };
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
29
151
|
export type TypeSystemNumber = {
|
|
152
|
+
/** Discriminator for the number type */
|
|
30
153
|
type: 'number';
|
|
154
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
31
155
|
modifiers: Modifiers;
|
|
156
|
+
/** Optional generator-specific key for tracking */
|
|
32
157
|
generatorKey?: GeneratorKey;
|
|
33
158
|
};
|
|
159
|
+
/**
|
|
160
|
+
* Type system representation of void types (no value).
|
|
161
|
+
*
|
|
162
|
+
* @example
|
|
163
|
+
* ```typescript
|
|
164
|
+
* const voidType: TypeSystemVoid = {
|
|
165
|
+
* type: 'void'
|
|
166
|
+
* };
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
34
169
|
export type TypeSystemVoid = {
|
|
170
|
+
/** Discriminator for the void type */
|
|
35
171
|
type: 'void';
|
|
172
|
+
/** Optional generator-specific key for tracking */
|
|
36
173
|
generatorKey?: GeneratorKey;
|
|
37
174
|
};
|
|
175
|
+
/**
|
|
176
|
+
* Type system representation of never types (impossible values).
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* const neverType: TypeSystemNever = {
|
|
181
|
+
* type: 'never'
|
|
182
|
+
* };
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
38
185
|
export type TypeSystemNever = {
|
|
186
|
+
/** Discriminator for the never type */
|
|
39
187
|
type: 'never';
|
|
188
|
+
/** Optional generator-specific key for tracking */
|
|
40
189
|
generatorKey?: GeneratorKey;
|
|
41
190
|
};
|
|
191
|
+
/**
|
|
192
|
+
* Type system representation of integer number types.
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const countType: TypeSystemInteger = {
|
|
197
|
+
* type: 'integer',
|
|
198
|
+
* modifiers: { optional: false, nullable: false }
|
|
199
|
+
* };
|
|
200
|
+
* ```
|
|
201
|
+
*/
|
|
42
202
|
export type TypeSystemInteger = {
|
|
203
|
+
/** Discriminator for the integer type */
|
|
43
204
|
type: 'integer';
|
|
205
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
44
206
|
modifiers: Modifiers;
|
|
207
|
+
/** Optional generator-specific key for tracking */
|
|
45
208
|
generatorKey?: GeneratorKey;
|
|
46
209
|
};
|
|
210
|
+
/**
|
|
211
|
+
* Type system representation of boolean types.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```typescript
|
|
215
|
+
* const flagType: TypeSystemBoolean = {
|
|
216
|
+
* type: 'boolean',
|
|
217
|
+
* modifiers: { optional: false, nullable: false }
|
|
218
|
+
* };
|
|
219
|
+
* ```
|
|
220
|
+
*/
|
|
47
221
|
export type TypeSystemBoolean = {
|
|
222
|
+
/** Discriminator for the boolean type */
|
|
48
223
|
type: 'boolean';
|
|
224
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
49
225
|
modifiers: Modifiers;
|
|
226
|
+
/** Optional generator-specific key for tracking */
|
|
50
227
|
generatorKey?: GeneratorKey;
|
|
51
228
|
};
|
|
229
|
+
/**
|
|
230
|
+
* Type system representation of unknown types.
|
|
231
|
+
*
|
|
232
|
+
* @example
|
|
233
|
+
* ```typescript
|
|
234
|
+
* const unknownType: TypeSystemUnknown = {
|
|
235
|
+
* type: 'unknown'
|
|
236
|
+
* };
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
52
239
|
export type TypeSystemUnknown = {
|
|
240
|
+
/** Discriminator for the unknown type */
|
|
53
241
|
type: 'unknown';
|
|
242
|
+
/** Optional generator-specific key for tracking */
|
|
54
243
|
generatorKey?: GeneratorKey;
|
|
55
244
|
};
|
|
245
|
+
/**
|
|
246
|
+
* Type system representation of null types.
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const nullType: TypeSystemNull = {
|
|
251
|
+
* type: 'null'
|
|
252
|
+
* };
|
|
253
|
+
* ```
|
|
254
|
+
*/
|
|
56
255
|
export type TypeSystemNull = {
|
|
256
|
+
/** Discriminator for the null type */
|
|
57
257
|
type: 'null';
|
|
258
|
+
/** Optional generator-specific key for tracking */
|
|
58
259
|
generatorKey?: GeneratorKey;
|
|
59
260
|
};
|
|
261
|
+
/**
|
|
262
|
+
* Type system representation of record types (key-value mappings).
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```typescript
|
|
266
|
+
* const recordType: TypeSystemRecord = {
|
|
267
|
+
* value: { type: 'string', modifiers: { optional: false, nullable: false } }
|
|
268
|
+
* };
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
60
271
|
export type TypeSystemRecord = {
|
|
272
|
+
/** The type of values in the record, or 'true' for any value */
|
|
61
273
|
value: TypeSystemValue | 'true';
|
|
274
|
+
/** Optional generator-specific key for tracking */
|
|
62
275
|
generatorKey?: GeneratorKey;
|
|
63
276
|
};
|
|
277
|
+
/**
|
|
278
|
+
* Type system representation of object properties.
|
|
279
|
+
*
|
|
280
|
+
* @example
|
|
281
|
+
* ```typescript
|
|
282
|
+
* const objectProps: TypeSystemObjectProperties = {
|
|
283
|
+
* properties: {
|
|
284
|
+
* name: { type: 'string', modifiers: { optional: false, nullable: false } },
|
|
285
|
+
* age: { type: 'integer', modifiers: { optional: true, nullable: false } }
|
|
286
|
+
* }
|
|
287
|
+
* };
|
|
288
|
+
* ```
|
|
289
|
+
*/
|
|
64
290
|
export type TypeSystemObjectProperties = {
|
|
291
|
+
/** Map of property names to their types */
|
|
65
292
|
properties: Record<string, TypeSystemValue>;
|
|
293
|
+
/** Optional generator-specific key for tracking */
|
|
66
294
|
generatorKey?: GeneratorKey;
|
|
67
295
|
};
|
|
296
|
+
/**
|
|
297
|
+
* Type system representation of string types.
|
|
298
|
+
*
|
|
299
|
+
* @example
|
|
300
|
+
* ```typescript
|
|
301
|
+
* const emailString: TypeSystemString = {
|
|
302
|
+
* type: 'string',
|
|
303
|
+
* format: 'email',
|
|
304
|
+
* enums: undefined,
|
|
305
|
+
* modifiers: { optional: false, nullable: false }
|
|
306
|
+
* };
|
|
307
|
+
*
|
|
308
|
+
* const statusEnum: TypeSystemString = {
|
|
309
|
+
* type: 'string',
|
|
310
|
+
* format: undefined,
|
|
311
|
+
* enums: ['active', 'inactive', 'pending'],
|
|
312
|
+
* modifiers: { optional: false, nullable: false }
|
|
313
|
+
* };
|
|
314
|
+
* ```
|
|
315
|
+
*/
|
|
68
316
|
export type TypeSystemString = {
|
|
317
|
+
/** Discriminator for the string type */
|
|
69
318
|
type: 'string';
|
|
319
|
+
/** String format specification (email, uuid, date-time, etc.) */
|
|
70
320
|
format: string | undefined;
|
|
321
|
+
/** Array of allowed enum values */
|
|
71
322
|
enums: string[] | (string | null)[] | undefined;
|
|
323
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
72
324
|
modifiers: Modifiers;
|
|
325
|
+
/** Optional generator-specific key for tracking */
|
|
73
326
|
generatorKey?: GeneratorKey;
|
|
74
327
|
};
|
|
328
|
+
/**
|
|
329
|
+
* Type system representation of union types.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```typescript
|
|
333
|
+
* const stringOrNumber: TypeSystemUnion = {
|
|
334
|
+
* type: 'union',
|
|
335
|
+
* members: [
|
|
336
|
+
* { type: 'string', modifiers: { optional: false, nullable: false } },
|
|
337
|
+
* { type: 'number', modifiers: { optional: false, nullable: false } }
|
|
338
|
+
* ],
|
|
339
|
+
* discriminator: undefined,
|
|
340
|
+
* modifiers: { optional: false, nullable: false }
|
|
341
|
+
* };
|
|
342
|
+
*
|
|
343
|
+
* const discriminatedUnion: TypeSystemUnion = {
|
|
344
|
+
* type: 'union',
|
|
345
|
+
* members: [userType, adminType, guestType],
|
|
346
|
+
* discriminator: 'type',
|
|
347
|
+
* modifiers: { optional: false, nullable: false }
|
|
348
|
+
* };
|
|
349
|
+
* ```
|
|
350
|
+
*/
|
|
75
351
|
export type TypeSystemUnion = {
|
|
352
|
+
/** Discriminator for the union type */
|
|
76
353
|
type: 'union';
|
|
354
|
+
/** Array of types that are part of the union */
|
|
77
355
|
members: TypeSystemValue[];
|
|
356
|
+
/** Optional discriminator property name for tagged unions */
|
|
78
357
|
discriminator: string | undefined;
|
|
358
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
79
359
|
modifiers: Modifiers;
|
|
360
|
+
/** Optional generator-specific key for tracking */
|
|
80
361
|
generatorKey?: GeneratorKey;
|
|
81
362
|
};
|
|
363
|
+
/**
|
|
364
|
+
* Type system representation of object types.
|
|
365
|
+
*
|
|
366
|
+
* Objects can have either fixed properties (objectProperties) or
|
|
367
|
+
* dynamic key-value pairs (recordProperties), or both.
|
|
368
|
+
*
|
|
369
|
+
* @example Fixed properties object
|
|
370
|
+
* ```typescript
|
|
371
|
+
* const userObject: TypeSystemObject = {
|
|
372
|
+
* type: 'object',
|
|
373
|
+
* recordProperties: null,
|
|
374
|
+
* objectProperties: {
|
|
375
|
+
* properties: {
|
|
376
|
+
* id: { type: 'string', modifiers: { optional: false, nullable: false } },
|
|
377
|
+
* name: { type: 'string', modifiers: { optional: false, nullable: false } },
|
|
378
|
+
* email: { type: 'string', modifiers: { optional: true, nullable: false } }
|
|
379
|
+
* }
|
|
380
|
+
* },
|
|
381
|
+
* modifiers: { optional: false, nullable: false }
|
|
382
|
+
* };
|
|
383
|
+
* ```
|
|
384
|
+
*
|
|
385
|
+
* @example Record-like object
|
|
386
|
+
* ```typescript
|
|
387
|
+
* const configObject: TypeSystemObject = {
|
|
388
|
+
* type: 'object',
|
|
389
|
+
* recordProperties: {
|
|
390
|
+
* value: { type: 'string', modifiers: { optional: false, nullable: false } }
|
|
391
|
+
* },
|
|
392
|
+
* objectProperties: null,
|
|
393
|
+
* modifiers: { optional: false, nullable: false }
|
|
394
|
+
* };
|
|
395
|
+
* ```
|
|
396
|
+
*/
|
|
82
397
|
export type TypeSystemObject = {
|
|
398
|
+
/** Discriminator for the object type */
|
|
83
399
|
type: 'object';
|
|
400
|
+
/** Dynamic key-value properties (Record<string, T>) */
|
|
84
401
|
recordProperties: TypeSystemRecord | null;
|
|
402
|
+
/** Fixed object properties with known keys */
|
|
85
403
|
objectProperties: TypeSystemObjectProperties | null;
|
|
404
|
+
/** Type modifiers (optional, nullable, etc.) */
|
|
86
405
|
modifiers: Modifiers;
|
|
406
|
+
/** Optional generator-specific key for tracking */
|
|
87
407
|
generatorKey?: GeneratorKey;
|
|
88
408
|
};
|
|
409
|
+
/**
|
|
410
|
+
* Mapping of schema types to their type system representations.
|
|
411
|
+
*
|
|
412
|
+
* This type maps OpenAPI schema types to their corresponding type system
|
|
413
|
+
* value types, enabling type-safe transformations during code generation.
|
|
414
|
+
*
|
|
415
|
+
* @example
|
|
416
|
+
* ```typescript
|
|
417
|
+
* // Used internally by the type system transformation process
|
|
418
|
+
* type StringOutput = SchemaToTypeSystemMap['string']['output']; // TypeSystemString
|
|
419
|
+
* type RefSource = SchemaToTypeSystemMap['ref']['source']; // OasRef<'schema'>
|
|
420
|
+
* ```
|
|
421
|
+
*/
|
|
89
422
|
export type SchemaToTypeSystemMap = {
|
|
90
423
|
ref: {
|
|
91
424
|
source: OasRef<'schema'>;
|
|
@@ -136,16 +469,102 @@ export type SchemaToTypeSystemMap = {
|
|
|
136
469
|
output: TypeSystemCustom;
|
|
137
470
|
};
|
|
138
471
|
};
|
|
472
|
+
/**
|
|
473
|
+
* Union of all possible schema types that can be transformed.
|
|
474
|
+
*
|
|
475
|
+
* @example
|
|
476
|
+
* ```typescript
|
|
477
|
+
* function transformSchema(schema: SchemaType): TypeSystemValue {
|
|
478
|
+
* // Transform any schema type to its type system representation
|
|
479
|
+
* return toTypeSystemValue(schema);
|
|
480
|
+
* }
|
|
481
|
+
* ```
|
|
482
|
+
*/
|
|
139
483
|
export type SchemaType = OasSchema | OasRef<'schema'> | OasVoid | CustomValue;
|
|
484
|
+
/**
|
|
485
|
+
* Extracts only reference types from a schema type.
|
|
486
|
+
*
|
|
487
|
+
* @template Schema - The schema type to filter
|
|
488
|
+
* @example
|
|
489
|
+
* ```typescript
|
|
490
|
+
* type RefOnly = SchemaToRef<OasRef<'schema'>>; // OasRef<'schema'>
|
|
491
|
+
* type NeverForSchema = SchemaToRef<OasSchema>; // never
|
|
492
|
+
* ```
|
|
493
|
+
*/
|
|
140
494
|
export type SchemaToRef<Schema extends SchemaType> = Schema extends OasRef<'schema'> ? Schema : never;
|
|
495
|
+
/**
|
|
496
|
+
* Extracts only non-reference types from a schema type.
|
|
497
|
+
*
|
|
498
|
+
* @template Schema - The schema type to filter
|
|
499
|
+
* @example
|
|
500
|
+
* ```typescript
|
|
501
|
+
* type SchemaOnly = SchemaToNonRef<OasSchema>; // OasSchema
|
|
502
|
+
* type NeverForRef = SchemaToNonRef<OasRef<'schema'>>; // never
|
|
503
|
+
* ```
|
|
504
|
+
*/
|
|
141
505
|
export type SchemaToNonRef<Schema extends SchemaType> = Schema extends OasRef<'schema'> ? never : Schema;
|
|
506
|
+
/**
|
|
507
|
+
* Gets the output type for a given schema type key.
|
|
508
|
+
*
|
|
509
|
+
* @template T - The schema type key
|
|
510
|
+
* @example
|
|
511
|
+
* ```typescript
|
|
512
|
+
* type StringOutput = TypeSystemOutput<'string'>; // TypeSystemString
|
|
513
|
+
* type ArrayOutput = TypeSystemOutput<'array'>; // TypeSystemArray
|
|
514
|
+
* ```
|
|
515
|
+
*/
|
|
142
516
|
export type TypeSystemOutput<T extends keyof SchemaToTypeSystemMap> = SchemaToTypeSystemMap[T]['output'];
|
|
517
|
+
/**
|
|
518
|
+
* Arguments for type system transformation functions.
|
|
519
|
+
*
|
|
520
|
+
* @template Schema - The specific schema type being transformed
|
|
521
|
+
* @example
|
|
522
|
+
* ```typescript
|
|
523
|
+
* function transformStringSchema(args: TypeSystemArgs<OasSchema>): TypeSystemString {
|
|
524
|
+
* const { context, schema, required } = args;
|
|
525
|
+
* // Transform string schema to type system representation
|
|
526
|
+
* return {
|
|
527
|
+
* type: 'string',
|
|
528
|
+
* format: schema.format,
|
|
529
|
+
* enums: schema.enums,
|
|
530
|
+
* modifiers: { optional: !required, nullable: schema.nullable }
|
|
531
|
+
* };
|
|
532
|
+
* }
|
|
533
|
+
* ```
|
|
534
|
+
*/
|
|
143
535
|
export type TypeSystemArgs<Schema extends SchemaType> = {
|
|
536
|
+
/** The generation context containing utilities and state */
|
|
144
537
|
context: GenerateContext;
|
|
538
|
+
/** The destination path for the generated artifact */
|
|
145
539
|
destinationPath: string;
|
|
540
|
+
/** The schema to transform */
|
|
146
541
|
schema: Schema;
|
|
542
|
+
/** Optional root reference name for schema references */
|
|
147
543
|
rootRef?: RefName;
|
|
544
|
+
/** Whether the schema field is required */
|
|
148
545
|
required: boolean | undefined;
|
|
149
546
|
};
|
|
547
|
+
/**
|
|
548
|
+
* Function type for transforming schemas to type system values.
|
|
549
|
+
*
|
|
550
|
+
* @template Schema - The schema type being transformed
|
|
551
|
+
* @param args - Transformation arguments
|
|
552
|
+
* @returns The corresponding type system value
|
|
553
|
+
*
|
|
554
|
+
* @example
|
|
555
|
+
* ```typescript
|
|
556
|
+
* const transformSchema: SchemaToValueFn = (args) => {
|
|
557
|
+
* switch (args.schema.type) {
|
|
558
|
+
* case 'string':
|
|
559
|
+
* return transformStringSchema(args);
|
|
560
|
+
* case 'object':
|
|
561
|
+
* return transformObjectSchema(args);
|
|
562
|
+
* // ... other cases
|
|
563
|
+
* default:
|
|
564
|
+
* throw new Error(`Unknown schema type: ${args.schema.type}`);
|
|
565
|
+
* }
|
|
566
|
+
* };
|
|
567
|
+
* ```
|
|
568
|
+
*/
|
|
150
569
|
export type SchemaToValueFn = <Schema extends SchemaType>(args: TypeSystemArgs<Schema>) => TypeSystemOutput<Schema['type']>;
|
|
151
570
|
//# sourceMappingURL=TypeSystem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeSystem.d.ts","sourceRoot":"","sources":["../../src/types/TypeSystem.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,aAAa,GACb,cAAc,GACd,gBAAgB,CAAA;AAEpB,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,UAAU,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,eAAe,CAAA;IACtB,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,SAAS,CAAA;IACf,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,eAAe,GAAG,MAAM,CAAA;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IAC/C,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,QAAQ,CAAA;IACd,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACzC,gBAAgB,EAAE,0BAA0B,GAAG,IAAI,CAAA;IACnD,SAAS,EAAE,SAAS,CAAA;IACpB,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,MAAM,EAAE,aAAa,CAAA;KACtB,CAAA;IACD,KAAK,EAAE;QACL,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,eAAe,CAAA;KACxB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,OAAO,CAAA;QACf,MAAM,EAAE,cAAc,CAAA;KACvB,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,cAAc,CAAA;KACvB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,KAAK,EAAE;QACL,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,eAAe,CAAA;KACxB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,WAAW,CAAA;AAE7E,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,UAAU,IAC/C,MAAM,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;AAElD,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,UAAU,IAClD,MAAM,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,MAAM,CAAA;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,qBAAqB,IAChE,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEpC,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,UAAU,IAAI;IACtD,OAAO,EAAE,eAAe,CAAA;IACxB,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,KACzB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"TypeSystem.d.ts","sourceRoot":"","sources":["../../src/types/TypeSystem.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,eAAe,GACf,aAAa,GACb,cAAc,GACd,gBAAgB,CAAA;AAEpB;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,IAAI,EAAE,KAAK,CAAA;IACX,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wCAAwC;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,2CAA2C;IAC3C,KAAK,EAAE,UAAU,CAAA;IACjB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,qCAAqC;IACrC,KAAK,EAAE,eAAe,CAAA;IACtB,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wCAAwC;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAA;IACf,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAA;IACf,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAA;IACf,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,gEAAgE;IAChE,KAAK,EAAE,eAAe,GAAG,MAAM,CAAA;IAC/B,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC3C,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wCAAwC;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,iEAAiE;IACjE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,mCAAmC;IACnC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,SAAS,CAAA;IAC/C,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,uCAAuC;IACvC,IAAI,EAAE,OAAO,CAAA;IACb,gDAAgD;IAChD,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,6DAA6D;IAC7D,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wCAAwC;IACxC,IAAI,EAAE,QAAQ,CAAA;IACd,uDAAuD;IACvD,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAA;IACzC,8CAA8C;IAC9C,gBAAgB,EAAE,0BAA0B,GAAG,IAAI,CAAA;IACnD,gDAAgD;IAChD,SAAS,EAAE,SAAS,CAAA;IACpB,mDAAmD;IACnD,YAAY,CAAC,EAAE,YAAY,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE;QACH,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,MAAM,EAAE,aAAa,CAAA;KACtB,CAAA;IACD,KAAK,EAAE;QACL,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,eAAe,CAAA;KACxB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,OAAO,CAAA;QACf,MAAM,EAAE,cAAc,CAAA;KACvB,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,OAAO,EAAE;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,iBAAiB,CAAA;KAC1B,CAAA;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,cAAc,CAAA;KACvB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;IACD,KAAK,EAAE;QACL,MAAM,EAAE,SAAS,CAAA;QACjB,MAAM,EAAE,eAAe,CAAA;KACxB,CAAA;IACD,MAAM,EAAE;QACN,MAAM,EAAE,WAAW,CAAA;QACnB,MAAM,EAAE,gBAAgB,CAAA;KACzB,CAAA;CACF,CAAA;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,WAAW,CAAA;AAE7E;;;;;;;;;GASG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,UAAU,IAC/C,MAAM,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,KAAK,CAAA;AAElD;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,UAAU,IAClD,MAAM,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,MAAM,CAAA;AAElD;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,qBAAqB,IAChE,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;AAEpC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,UAAU,IAAI;IACtD,4DAA4D;IAC5D,OAAO,EAAE,eAAe,CAAA;IACxB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAA;IACvB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,KACzB,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA"}
|