@skmtc/core 0.0.785 → 0.0.786

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/esm/dsl/Identifier.d.ts +152 -0
  2. package/esm/dsl/Identifier.d.ts.map +1 -1
  3. package/esm/dsl/Identifier.js +152 -0
  4. package/esm/dsl/Import.d.ts +221 -0
  5. package/esm/dsl/Import.d.ts.map +1 -1
  6. package/esm/dsl/Import.js +202 -0
  7. package/esm/dsl/operation/OperationBase.d.ts +181 -1
  8. package/esm/dsl/operation/OperationBase.d.ts.map +1 -1
  9. package/esm/dsl/operation/OperationBase.js +181 -1
  10. package/esm/oas/document/Document.d.ts +155 -1
  11. package/esm/oas/document/Document.d.ts.map +1 -1
  12. package/esm/oas/document/Document.js +141 -2
  13. package/esm/oas/object/Object.d.ts +255 -10
  14. package/esm/oas/object/Object.d.ts.map +1 -1
  15. package/esm/oas/object/Object.js +229 -10
  16. package/esm/types/GeneratorKeys.d.ts +336 -0
  17. package/esm/types/GeneratorKeys.d.ts.map +1 -1
  18. package/esm/types/GeneratorKeys.js +243 -0
  19. package/esm/types/GeneratorType.d.ts +119 -0
  20. package/esm/types/GeneratorType.d.ts.map +1 -1
  21. package/esm/types/Method.d.ts +109 -0
  22. package/esm/types/Method.d.ts.map +1 -1
  23. package/esm/types/Method.js +84 -0
  24. package/package.json +1 -1
  25. package/script/dsl/Identifier.d.ts +152 -0
  26. package/script/dsl/Identifier.d.ts.map +1 -1
  27. package/script/dsl/Identifier.js +152 -0
  28. package/script/dsl/Import.d.ts +221 -0
  29. package/script/dsl/Import.d.ts.map +1 -1
  30. package/script/dsl/Import.js +202 -0
  31. package/script/dsl/operation/OperationBase.d.ts +181 -1
  32. package/script/dsl/operation/OperationBase.d.ts.map +1 -1
  33. package/script/dsl/operation/OperationBase.js +181 -1
  34. package/script/oas/document/Document.d.ts +155 -1
  35. package/script/oas/document/Document.d.ts.map +1 -1
  36. package/script/oas/document/Document.js +141 -2
  37. package/script/oas/object/Object.d.ts +255 -10
  38. package/script/oas/object/Object.d.ts.map +1 -1
  39. package/script/oas/object/Object.js +229 -10
  40. package/script/types/GeneratorKeys.d.ts +336 -0
  41. package/script/types/GeneratorKeys.d.ts.map +1 -1
  42. package/script/types/GeneratorKeys.js +243 -0
  43. package/script/types/GeneratorType.d.ts +119 -0
  44. package/script/types/GeneratorType.d.ts.map +1 -1
  45. package/script/types/Method.d.ts +109 -0
  46. package/script/types/Method.d.ts.map +1 -1
  47. package/script/types/Method.js +84 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../../src/oas/object/Object.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Object.d.ts","sourceRoot":"","sources":["../../../src/oas/object/Object.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,109 @@ exports.OasObject = void 0;
4
4
  require("../../_dnt.polyfills.js");
5
5
  const ts_pattern_1 = require("ts-pattern");
6
6
  /**
7
- * Object representing an object and/or a record in the OpenAPI Specification.
7
+ * Represents an object schema in the OpenAPI Specification.
8
8
  *
9
- * Objects have fixed, named fields. Records have any number of fields that do not have predefined names.
9
+ * `OasObject` handles both:
10
+ * - **Objects**: Types with fixed, named properties (like TypeScript interfaces)
11
+ * - **Records**: Types with dynamic keys and consistent value types (like TypeScript Record<string, T>)
12
+ *
13
+ * This class provides comprehensive support for object validation constraints,
14
+ * property management, and JSON Schema conversion. It supports nullable types
15
+ * through generic type parameters and handles complex property relationships.
16
+ *
17
+ * ## Key Features
18
+ *
19
+ * - **Property Management**: Add/remove properties with automatic required field handling
20
+ * - **Type Safety**: Generic nullable type support with proper TypeScript inference
21
+ * - **Validation**: Min/max properties, additional properties, and enum constraints
22
+ * - **JSON Schema**: Convert to standard JSON Schema format for validation
23
+ * - **Immutability**: All mutations return new instances (functional style)
24
+ *
25
+ * @template Nullable - Whether the object value itself can be null
26
+ *
27
+ * @example Basic object schema
28
+ * ```typescript
29
+ * import { OasObject } from '@skmtc/core';
30
+ *
31
+ * const userObject = new OasObject({
32
+ * title: 'User',
33
+ * description: 'A user in the system',
34
+ * properties: {
35
+ * id: new OasString({ title: 'User ID' }),
36
+ * name: new OasString({ title: 'Full Name' }),
37
+ * email: new OasString({ format: 'email' })
38
+ * },
39
+ * required: ['id', 'name'],
40
+ * additionalProperties: false
41
+ * });
42
+ * ```
43
+ *
44
+ * @example Dynamic property management
45
+ * ```typescript
46
+ * // Start with empty object
47
+ * let schema = OasObject.empty();
48
+ *
49
+ * // Add properties dynamically
50
+ * schema = schema.addProperty({
51
+ * name: 'id',
52
+ * schema: new OasString(),
53
+ * required: true
54
+ * });
55
+ *
56
+ * schema = schema.addProperty({
57
+ * name: 'metadata',
58
+ * schema: new OasObject({ additionalProperties: true }),
59
+ * required: false
60
+ * });
61
+ *
62
+ * // Remove a property
63
+ * schema = schema.removeProperty('metadata');
64
+ * ```
65
+ *
66
+ * @example Record-style object (additional properties)
67
+ * ```typescript
68
+ * const recordObject = new OasObject({
69
+ * title: 'StringMap',
70
+ * description: 'A map of string keys to string values',
71
+ * additionalProperties: new OasString(), // Any string key -> string value
72
+ * minProperties: 1 // At least one property required
73
+ * });
74
+ *
75
+ * // This allows: { [key: string]: string }
76
+ * ```
77
+ *
78
+ * @example Nullable object support
79
+ * ```typescript
80
+ * const nullableUser = new OasObject<true>({
81
+ * nullable: true,
82
+ * properties: {
83
+ * name: new OasString()
84
+ * },
85
+ * default: null // Can have null default when nullable
86
+ * });
87
+ *
88
+ * // This represents: { name: string } | null
89
+ * ```
10
90
  */
11
91
  class OasObject {
92
+ /**
93
+ * Creates a new OasObject instance.
94
+ *
95
+ * @param fields - Object configuration fields
96
+ *
97
+ * @example
98
+ * ```typescript
99
+ * const userSchema = new OasObject({
100
+ * title: 'User',
101
+ * properties: {
102
+ * id: new OasString({ title: 'ID' }),
103
+ * name: new OasString({ title: 'Name' })
104
+ * },
105
+ * required: ['id'],
106
+ * additionalProperties: false
107
+ * });
108
+ * ```
109
+ */
12
110
  constructor(fields = {}) {
13
111
  /**
14
112
  * Object is part the 'schema' set which is used
@@ -161,7 +259,32 @@ class OasObject {
161
259
  this.deprecated = fields.deprecated;
162
260
  this.enums = fields.enums;
163
261
  }
164
- /** Creates new empty OasObject */
262
+ /**
263
+ * Creates a new empty OasObject with no properties.
264
+ *
265
+ * This factory method creates a non-nullable object with empty properties
266
+ * and required arrays, useful as a starting point for dynamic object building.
267
+ *
268
+ * @returns A new empty OasObject instance
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * // Start with empty object and build up
273
+ * let schema = OasObject.empty();
274
+ *
275
+ * schema = schema.addProperty({
276
+ * name: 'id',
277
+ * schema: new OasString(),
278
+ * required: true
279
+ * });
280
+ *
281
+ * schema = schema.addProperty({
282
+ * name: 'name',
283
+ * schema: new OasString(),
284
+ * required: true
285
+ * });
286
+ * ```
287
+ */
165
288
  static empty() {
166
289
  return new OasObject({
167
290
  nullable: false,
@@ -172,11 +295,47 @@ class OasObject {
172
295
  /**
173
296
  * Adds a new property to the object.
174
297
  *
175
- * @param {AddPropertyArgs} args - The arguments for adding a property.
176
- * @param {string} args.name - The name of the property to add.
177
- * @param {OasSchema | OasRef<'schema'> | CustomValue | undefined} args.schema - The schema of the property to add.
178
- * @param {boolean} args.required - Whether the property is required.
179
- * @returns {OasObject} A new OasObject with the added property.
298
+ * This method returns a new OasObject instance with the added property,
299
+ * following an immutable pattern. If the property is marked as required,
300
+ * it will be added to the required array.
301
+ *
302
+ * @param args - Property addition arguments
303
+ * @param args.name - The name of the property to add
304
+ * @param args.schema - The schema definition for the property
305
+ * @param args.required - Whether the property should be required (default: false)
306
+ * @returns A new OasObject with the added property
307
+ *
308
+ * @example Adding a simple property
309
+ * ```typescript
310
+ * const original = OasObject.empty();
311
+ * const withName = original.addProperty({
312
+ * name: 'username',
313
+ * schema: new OasString({ minLength: 3 }),
314
+ * required: true
315
+ * });
316
+ *
317
+ * console.log(withName.required); // ['username']
318
+ * ```
319
+ *
320
+ * @example Chaining property additions
321
+ * ```typescript
322
+ * const userSchema = OasObject.empty()
323
+ * .addProperty({
324
+ * name: 'id',
325
+ * schema: new OasInteger(),
326
+ * required: true
327
+ * })
328
+ * .addProperty({
329
+ * name: 'email',
330
+ * schema: new OasString({ format: 'email' }),
331
+ * required: true
332
+ * })
333
+ * .addProperty({
334
+ * name: 'age',
335
+ * schema: new OasInteger({ minimum: 0 }),
336
+ * required: false
337
+ * });
338
+ * ```
180
339
  */
181
340
  addProperty({ name, schema, required }) {
182
341
  if (!schema) {
@@ -198,8 +357,31 @@ class OasObject {
198
357
  /**
199
358
  * Removes a property from the object.
200
359
  *
201
- * @param {string} name - The name of the property to remove.
202
- * @returns {OasObject} A new OasObject with the removed property.
360
+ * This method returns a new OasObject instance with the specified property
361
+ * removed. If the property was required, it will also be removed from the
362
+ * required array. If the property doesn't exist, returns the same instance.
363
+ *
364
+ * @param name - The name of the property to remove
365
+ * @returns A new OasObject with the property removed, or the same instance if property doesn't exist
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const userSchema = new OasObject({
370
+ * properties: {
371
+ * id: new OasString(),
372
+ * name: new OasString(),
373
+ * email: new OasString(),
374
+ * temporaryField: new OasString()
375
+ * },
376
+ * required: ['id', 'name', 'temporaryField']
377
+ * });
378
+ *
379
+ * // Remove temporary field
380
+ * const cleanedSchema = userSchema.removeProperty('temporaryField');
381
+ *
382
+ * console.log(cleanedSchema.required); // ['id', 'name']
383
+ * console.log('temporaryField' in cleanedSchema.properties); // false
384
+ * ```
203
385
  */
204
386
  removeProperty(name) {
205
387
  if (!this.properties?.[name]) {
@@ -225,6 +407,43 @@ class OasObject {
225
407
  resolveOnce() {
226
408
  return this;
227
409
  }
410
+ /**
411
+ * Converts the OasObject to a standard JSON Schema object.
412
+ *
413
+ * This method serializes the object to the JSON Schema format used in
414
+ * OpenAPI specifications. It handles property conversion, additional
415
+ * properties rules, and validation constraints.
416
+ *
417
+ * @param options - Conversion options for handling references and context
418
+ * @returns A JSON Schema representation of the object
419
+ *
420
+ * @example
421
+ * ```typescript
422
+ * const userObject = new OasObject({
423
+ * title: 'User',
424
+ * properties: {
425
+ * id: new OasString(),
426
+ * name: new OasString()
427
+ * },
428
+ * required: ['id'],
429
+ * additionalProperties: false
430
+ * });
431
+ *
432
+ * const jsonSchema = userObject.toJsonSchema({ refContext: new Map() });
433
+ *
434
+ * console.log(jsonSchema);
435
+ * // {
436
+ * // type: 'object',
437
+ * // title: 'User',
438
+ * // properties: {
439
+ * // id: { type: 'string' },
440
+ * // name: { type: 'string' }
441
+ * // },
442
+ * // required: ['id'],
443
+ * // additionalProperties: false
444
+ * // }
445
+ * ```
446
+ */
228
447
  toJsonSchema(options) {
229
448
  return {
230
449
  type: 'object',
@@ -3,48 +3,384 @@ import type { OasOperation } from '../oas/operation/Operation.js';
3
3
  import type { Brand } from './Brand.js';
4
4
  import type { RefName } from './RefName.js';
5
5
  import { type Method } from './Method.js';
6
+ /**
7
+ * Template literal type for operation generator keys before branding.
8
+ * Format: `generatorId|path|method` (e.g., 'api-client|/users|get')
9
+ */
6
10
  export type NakedOperationGeneratorKey = `${string}|${string}|${Method}`;
11
+ /**
12
+ * Template literal type for model generator keys before branding.
13
+ * Format: `generatorId|refName` (e.g., 'typescript-models|User')
14
+ */
7
15
  export type NakedModelGeneratorKey = `${string}|${string}`;
16
+ /**
17
+ * Branded type for operation generator keys.
18
+ *
19
+ * Operation generator keys uniquely identify generators that process
20
+ * OpenAPI operations (HTTP methods on API paths). The key encodes
21
+ * the generator ID, API path, and HTTP method.
22
+ */
8
23
  export type OperationGeneratorKey = Brand<NakedOperationGeneratorKey, 'OperationGeneratorKey'>;
24
+ /**
25
+ * Branded type for model generator keys.
26
+ *
27
+ * Model generator keys uniquely identify generators that process
28
+ * OpenAPI schema models. The key encodes the generator ID and
29
+ * the schema reference name.
30
+ */
9
31
  export type ModelGeneratorKey = Brand<NakedModelGeneratorKey, 'ModelGeneratorKey'>;
32
+ /**
33
+ * Branded type for generator-only keys.
34
+ *
35
+ * Generator-only keys identify generators that don't process specific
36
+ * operations or models, but generate global artifacts like configuration
37
+ * files, base classes, or utility modules.
38
+ */
10
39
  export type GeneratorOnlyKey = Brand<string, 'GeneratorOnlyKey'>;
40
+ /**
41
+ * Union type of all possible generator key types.
42
+ *
43
+ * Generator keys serve as unique identifiers for different types of
44
+ * code generators in the SKMTC system. They enable tracking, caching,
45
+ * and dependency management between generated artifacts.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * // Operation generator key
50
+ * const opKey: GeneratorKey = toOperationGeneratorKey({
51
+ * generatorId: 'api-client',
52
+ * path: '/users/{id}',
53
+ * method: 'get'
54
+ * });
55
+ *
56
+ * // Model generator key
57
+ * const modelKey: GeneratorKey = toModelGeneratorKey({
58
+ * generatorId: 'typescript-types',
59
+ * refName: 'User'
60
+ * });
61
+ *
62
+ * // Generator-only key
63
+ * const globalKey: GeneratorKey = toGeneratorOnlyKey({
64
+ * generatorId: 'api-config'
65
+ * });
66
+ * ```
67
+ */
11
68
  export type GeneratorKey = OperationGeneratorKey | ModelGeneratorKey | GeneratorOnlyKey;
69
+ /**
70
+ * Arguments for {@link toOperationGeneratorKey}.
71
+ *
72
+ * Can specify operation details directly or provide an OasOperation
73
+ * object from which the path and method will be extracted.
74
+ */
12
75
  type ToOperationGeneratorKeyArgs = {
76
+ /** Unique identifier for the generator */
13
77
  generatorId: string;
78
+ /** API path (e.g., '/users/{id}') */
14
79
  path: string;
80
+ /** HTTP method */
15
81
  method: Method;
16
82
  } | {
83
+ /** Unique identifier for the generator */
17
84
  generatorId: string;
85
+ /** OpenAPI operation object containing path and method */
18
86
  operation: OasOperation;
19
87
  };
88
+ /**
89
+ * Creates an operation generator key from generator ID and operation details.
90
+ *
91
+ * Operation generator keys uniquely identify generators processing specific
92
+ * API operations. The key format is: `generatorId|path|method`
93
+ *
94
+ * @param args - Operation generator key arguments
95
+ * @returns A branded OperationGeneratorKey
96
+ *
97
+ * @example With explicit path and method
98
+ * ```typescript
99
+ * const key = toOperationGeneratorKey({
100
+ * generatorId: 'api-client',
101
+ * path: '/users/{id}',
102
+ * method: 'get'
103
+ * });
104
+ * // Result: 'api-client|/users/{id}|get' (branded)
105
+ * ```
106
+ *
107
+ * @example With OasOperation object
108
+ * ```typescript
109
+ * const operation = new OasOperation({
110
+ * path: '/posts',
111
+ * method: 'post',
112
+ * // ... other operation details
113
+ * });
114
+ *
115
+ * const key = toOperationGeneratorKey({
116
+ * generatorId: 'rest-client',
117
+ * operation
118
+ * });
119
+ * // Result: 'rest-client|/posts|post' (branded)
120
+ * ```
121
+ */
20
122
  export declare const toOperationGeneratorKey: ({ generatorId, ...rest }: ToOperationGeneratorKeyArgs) => OperationGeneratorKey;
123
+ /**
124
+ * Arguments for {@link toModelGeneratorKey}.
125
+ */
21
126
  type ToModelGeneratorKeyArgs = {
127
+ /** Unique identifier for the generator */
22
128
  generatorId: string;
129
+ /** Reference name of the schema model */
23
130
  refName: RefName;
24
131
  };
132
+ /**
133
+ * Creates a model generator key from generator ID and schema reference name.
134
+ *
135
+ * Model generator keys uniquely identify generators processing specific
136
+ * OpenAPI schema models. The key format is: `generatorId|refName`
137
+ *
138
+ * @param args - Model generator key arguments
139
+ * @returns A branded ModelGeneratorKey
140
+ *
141
+ * @example
142
+ * ```typescript
143
+ * const key = toModelGeneratorKey({
144
+ * generatorId: 'typescript-interfaces',
145
+ * refName: 'User'
146
+ * });
147
+ * // Result: 'typescript-interfaces|User' (branded)
148
+ *
149
+ * const validationKey = toModelGeneratorKey({
150
+ * generatorId: 'zod-schemas',
151
+ * refName: 'CreateUserRequest'
152
+ * });
153
+ * // Result: 'zod-schemas|CreateUserRequest' (branded)
154
+ * ```
155
+ */
25
156
  export declare const toModelGeneratorKey: ({ generatorId, refName }: ToModelGeneratorKeyArgs) => ModelGeneratorKey;
157
+ /**
158
+ * Arguments for {@link toGeneratorOnlyKey}.
159
+ */
26
160
  type ToGeneratorOnlyKeyArgs = {
161
+ /** Unique identifier for the generator */
27
162
  generatorId: string;
28
163
  };
164
+ /**
165
+ * Creates a generator-only key for global/utility generators.
166
+ *
167
+ * Generator-only keys identify generators that produce artifacts not tied
168
+ * to specific operations or models, such as configuration files, base classes,
169
+ * utilities, or documentation.
170
+ *
171
+ * @param args - Generator-only key arguments
172
+ * @returns A branded GeneratorOnlyKey
173
+ *
174
+ * @example
175
+ * ```typescript
176
+ * const configKey = toGeneratorOnlyKey({
177
+ * generatorId: 'api-config'
178
+ * });
179
+ * // Result: 'api-config' (branded)
180
+ *
181
+ * const utilsKey = toGeneratorOnlyKey({
182
+ * generatorId: 'common-utilities'
183
+ * });
184
+ * // Result: 'common-utilities' (branded)
185
+ * ```
186
+ */
29
187
  export declare const toGeneratorOnlyKey: ({ generatorId }: ToGeneratorOnlyKeyArgs) => GeneratorOnlyKey;
188
+ /**
189
+ * Type guard to check if a value is a valid GeneratorKey.
190
+ *
191
+ * This function validates that the argument is one of the three
192
+ * generator key types: operation, model, or generator-only.
193
+ *
194
+ * @param arg - Value to check
195
+ * @returns True if the value is a valid GeneratorKey
196
+ *
197
+ * @example
198
+ * ```typescript
199
+ * const key = 'api-client|/users|get';
200
+ *
201
+ * if (isGeneratorKey(key)) {
202
+ * // key is now typed as GeneratorKey
203
+ * const generatorId = toGeneratorId(key);
204
+ * console.log(generatorId); // 'api-client'
205
+ * }
206
+ * ```
207
+ */
30
208
  export declare const isGeneratorKey: (arg: unknown) => arg is GeneratorKey;
209
+ /**
210
+ * Type guard to check if a value is a valid OperationGeneratorKey.
211
+ *
212
+ * Validates that the argument is a string with the correct format:
213
+ * `generatorId|path|method` where each part is non-empty and method
214
+ * is a valid HTTP method.
215
+ *
216
+ * @param arg - Value to check
217
+ * @returns True if the value is a valid OperationGeneratorKey
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const key = 'api-client|/users/{id}|get';
222
+ *
223
+ * if (isOperationGeneratorKey(key)) {
224
+ * // key is now typed as OperationGeneratorKey
225
+ * const obj = fromGeneratorKey(key);
226
+ * console.log(obj.type); // 'operation'
227
+ * console.log(obj.generatorId); // 'api-client'
228
+ * console.log(obj.path); // '/users/{id}'
229
+ * console.log(obj.method); // 'get'
230
+ * }
231
+ * ```
232
+ */
31
233
  export declare const isOperationGeneratorKey: (arg: unknown) => arg is OperationGeneratorKey;
234
+ /**
235
+ * Type guard to check if a value is a valid ModelGeneratorKey.
236
+ *
237
+ * Validates that the argument is a string with the correct format:
238
+ * `generatorId|refName` where both parts are non-empty strings.
239
+ *
240
+ * @param arg - Value to check
241
+ * @returns True if the value is a valid ModelGeneratorKey
242
+ *
243
+ * @example
244
+ * ```typescript
245
+ * const key = 'zod-schemas|User';
246
+ *
247
+ * if (isModelGeneratorKey(key)) {
248
+ * // key is now typed as ModelGeneratorKey
249
+ * const obj = fromGeneratorKey(key);
250
+ * console.log(obj.type); // 'model'
251
+ * console.log(obj.generatorId); // 'zod-schemas'
252
+ * console.log(obj.refName); // 'User'
253
+ * }
254
+ * ```
255
+ */
32
256
  export declare const isModelGeneratorKey: (arg: unknown) => arg is ModelGeneratorKey;
257
+ /**
258
+ * Type guard to check if a value is a valid GeneratorOnlyKey.
259
+ *
260
+ * Validates that the argument is a non-empty string. Generator-only keys
261
+ * are simple strings containing just the generator ID.
262
+ *
263
+ * @param arg - Value to check
264
+ * @returns True if the value is a valid GeneratorOnlyKey
265
+ *
266
+ * @example
267
+ * ```typescript
268
+ * const key = 'api-config';
269
+ *
270
+ * if (isGeneratorOnlyKey(key)) {
271
+ * // key is now typed as GeneratorOnlyKey
272
+ * const obj = fromGeneratorKey(key);
273
+ * console.log(obj.type); // 'generator-only'
274
+ * console.log(obj.generatorId); // 'api-config'
275
+ * }
276
+ * ```
277
+ */
33
278
  export declare const isGeneratorOnlyKey: (arg: unknown) => arg is GeneratorOnlyKey;
279
+ /**
280
+ * Extracts the generator ID from any type of GeneratorKey.
281
+ *
282
+ * This utility function parses the generator key to extract just the
283
+ * generator identifier, regardless of the key type. For operation and
284
+ * model keys, it extracts the first part before the pipe. For generator-only
285
+ * keys, it returns the entire key since it's just the generator ID.
286
+ *
287
+ * @param generatorKey - Any type of generator key
288
+ * @returns The generator ID string
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * const opKey = toOperationGeneratorKey({
293
+ * generatorId: 'api-client',
294
+ * path: '/users',
295
+ * method: 'get'
296
+ * });
297
+ * console.log(toGeneratorId(opKey)); // 'api-client'
298
+ *
299
+ * const modelKey = toModelGeneratorKey({
300
+ * generatorId: 'typescript-types',
301
+ * refName: 'User'
302
+ * });
303
+ * console.log(toGeneratorId(modelKey)); // 'typescript-types'
304
+ *
305
+ * const globalKey = toGeneratorOnlyKey({
306
+ * generatorId: 'utilities'
307
+ * });
308
+ * console.log(toGeneratorId(globalKey)); // 'utilities'
309
+ * ```
310
+ */
34
311
  export declare const toGeneratorId: (generatorKey: GeneratorKey) => string;
312
+ /**
313
+ * Object representation of a parsed GeneratorKey.
314
+ *
315
+ * This discriminated union type represents the parsed components of any
316
+ * generator key, making it easier to work with key data in a structured way.
317
+ * The `type` field discriminates between the three key types.
318
+ */
35
319
  export type GeneratorKeyObject = {
320
+ /** Discriminator for operation generator keys */
36
321
  type: 'operation';
322
+ /** Generator identifier */
37
323
  generatorId: string;
324
+ /** API path */
38
325
  path: string;
326
+ /** HTTP method */
39
327
  method: Method;
40
328
  } | {
329
+ /** Discriminator for model generator keys */
41
330
  type: 'model';
331
+ /** Generator identifier */
42
332
  generatorId: string;
333
+ /** Schema reference name */
43
334
  refName: string;
44
335
  } | {
336
+ /** Discriminator for generator-only keys */
45
337
  type: 'generator-only';
338
+ /** Generator identifier */
46
339
  generatorId: string;
47
340
  };
341
+ /**
342
+ * Parses a GeneratorKey into its structured object representation.
343
+ *
344
+ * This function decomposes any generator key into a structured object
345
+ * with discriminated union types, making it easier to work with the
346
+ * key components in a type-safe manner.
347
+ *
348
+ * @param generatorKey - Any type of generator key to parse
349
+ * @returns Parsed generator key object with discriminated type
350
+ *
351
+ * @example Operation key parsing
352
+ * ```typescript
353
+ * const opKey = 'api-client|/users/{id}|get' as OperationGeneratorKey;
354
+ * const parsed = fromGeneratorKey(opKey);
355
+ *
356
+ * if (parsed.type === 'operation') {
357
+ * console.log(parsed.generatorId); // 'api-client'
358
+ * console.log(parsed.path); // '/users/{id}'
359
+ * console.log(parsed.method); // 'get'
360
+ * }
361
+ * ```
362
+ *
363
+ * @example Model key parsing
364
+ * ```typescript
365
+ * const modelKey = 'zod-schemas|User' as ModelGeneratorKey;
366
+ * const parsed = fromGeneratorKey(modelKey);
367
+ *
368
+ * if (parsed.type === 'model') {
369
+ * console.log(parsed.generatorId); // 'zod-schemas'
370
+ * console.log(parsed.refName); // 'User'
371
+ * }
372
+ * ```
373
+ *
374
+ * @example Generator-only key parsing
375
+ * ```typescript
376
+ * const globalKey = 'utilities' as GeneratorOnlyKey;
377
+ * const parsed = fromGeneratorKey(globalKey);
378
+ *
379
+ * if (parsed.type === 'generator-only') {
380
+ * console.log(parsed.generatorId); // 'utilities'
381
+ * }
382
+ * ```
383
+ */
48
384
  export declare const fromGeneratorKey: (generatorKey: GeneratorKey) => GeneratorKeyObject;
49
385
  export {};
50
386
  //# sourceMappingURL=GeneratorKeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeneratorKeys.d.ts","sourceRoot":"","sources":["../../src/types/GeneratorKeys.ts"],"names":[],"mappings":"AAAA,OAAO,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,aAAa,CAAA;AAEnD,MAAM,MAAM,0BAA0B,GAAG,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,CAAA;AAExE,MAAM,MAAM,sBAAsB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAA;AAE1D,MAAM,MAAM,qBAAqB,GAAG,KAAK,CACvC,0BAA0B,EAC1B,uBAAuB,CACxB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,CACnC,sBAAsB,EACtB,mBAAmB,CACpB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;AAEhE,MAAM,MAAM,YAAY,GACpB,qBAAqB,GACrB,iBAAiB,GACjB,gBAAgB,CAAA;AAEpB,KAAK,2BAA2B,GAC5B;IACE,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,GACD;IACE,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,YAAY,CAAA;CACxB,CAAA;AAEL,eAAO,MAAM,uBAAuB,GAAI,0BAGrC,2BAA2B,KAAG,qBAMhC,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,0BAGjC,uBAAuB,KAAG,iBAI5B,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,iBAEhC,sBAAsB,KAAG,gBAI3B,CAAA;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,YAMpD,CAAA;AAED,eAAO,MAAM,uBAAuB,GAClC,KAAK,OAAO,KACX,GAAG,IAAI,qBA0BT,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,iBAsBzD,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,OAAO,KAAG,GAAG,IAAI,gBAMxD,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,cAAc,YAAY,KAAG,MAU1D,CAAA;AAED,MAAM,MAAM,kBAAkB,GAC1B;IACE,IAAI,EAAE,WAAW,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,GACD;IACE,IAAI,EAAE,OAAO,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;CAChB,GACD;IACE,IAAI,EAAE,gBAAgB,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAEL,eAAO,MAAM,gBAAgB,GAC3B,cAAc,YAAY,KACzB,kBAYF,CAAA"}
1
+ {"version":3,"file":"GeneratorKeys.d.ts","sourceRoot":"","sources":["../../src/types/GeneratorKeys.ts"],"names":[],"mappings":"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"}