micro-contracts 0.16.4 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/dist/micro-contracts.bundle.mjs +4682 -0
  2. package/dist/micro-contracts.bundle.mjs.map +7 -0
  3. package/package.json +20 -23
  4. package/dist/agents/context-builder.d.ts +0 -5
  5. package/dist/agents/context-builder.d.ts.map +0 -1
  6. package/dist/agents/context-builder.js +0 -239
  7. package/dist/agents/context-builder.js.map +0 -1
  8. package/dist/agents/formatter.d.ts +0 -9
  9. package/dist/agents/formatter.d.ts.map +0 -1
  10. package/dist/agents/formatter.js +0 -124
  11. package/dist/agents/formatter.js.map +0 -1
  12. package/dist/agents/index.d.ts +0 -5
  13. package/dist/agents/index.d.ts.map +0 -1
  14. package/dist/agents/index.js +0 -3
  15. package/dist/agents/index.js.map +0 -1
  16. package/dist/agents/orchestrator.d.ts +0 -5
  17. package/dist/agents/orchestrator.d.ts.map +0 -1
  18. package/dist/agents/orchestrator.js +0 -105
  19. package/dist/agents/orchestrator.js.map +0 -1
  20. package/dist/agents/types.d.ts +0 -21
  21. package/dist/agents/types.d.ts.map +0 -1
  22. package/dist/agents/types.js +0 -2
  23. package/dist/agents/types.js.map +0 -1
  24. package/dist/cli/templates.d.ts +0 -22
  25. package/dist/cli/templates.d.ts.map +0 -1
  26. package/dist/cli/templates.js +0 -445
  27. package/dist/cli/templates.js.map +0 -1
  28. package/dist/cli.d.ts +0 -3
  29. package/dist/cli.d.ts.map +0 -1
  30. package/dist/cli.js +0 -1142
  31. package/dist/cli.js.map +0 -1
  32. package/dist/commands/audit-guardrails.d.ts +0 -13
  33. package/dist/commands/audit-guardrails.d.ts.map +0 -1
  34. package/dist/commands/audit-guardrails.js +0 -32
  35. package/dist/commands/audit-guardrails.js.map +0 -1
  36. package/dist/commands/audit-openapi.d.ts +0 -13
  37. package/dist/commands/audit-openapi.d.ts.map +0 -1
  38. package/dist/commands/audit-openapi.js +0 -32
  39. package/dist/commands/audit-openapi.js.map +0 -1
  40. package/dist/commands/propose-overlays.d.ts +0 -13
  41. package/dist/commands/propose-overlays.d.ts.map +0 -1
  42. package/dist/commands/propose-overlays.js +0 -32
  43. package/dist/commands/propose-overlays.js.map +0 -1
  44. package/dist/commands/review-published.d.ts +0 -13
  45. package/dist/commands/review-published.d.ts.map +0 -1
  46. package/dist/commands/review-published.js +0 -32
  47. package/dist/commands/review-published.js.map +0 -1
  48. package/dist/generated/commands.d.ts +0 -2
  49. package/dist/generated/commands.d.ts.map +0 -1
  50. package/dist/generated/commands.js +0 -2
  51. package/dist/generated/commands.js.map +0 -1
  52. package/dist/generated/dsl/agents.d.ts +0 -34
  53. package/dist/generated/dsl/agents.d.ts.map +0 -1
  54. package/dist/generated/dsl/agents.js +0 -98
  55. package/dist/generated/dsl/agents.js.map +0 -1
  56. package/dist/generated/dsl/handoffs.d.ts +0 -457
  57. package/dist/generated/dsl/handoffs.d.ts.map +0 -1
  58. package/dist/generated/dsl/handoffs.js +0 -205
  59. package/dist/generated/dsl/handoffs.js.map +0 -1
  60. package/dist/generated/dsl/index.d.ts +0 -13
  61. package/dist/generated/dsl/index.d.ts.map +0 -1
  62. package/dist/generated/dsl/index.js +0 -10
  63. package/dist/generated/dsl/index.js.map +0 -1
  64. package/dist/generated/dsl/tasks.d.ts +0 -26
  65. package/dist/generated/dsl/tasks.d.ts.map +0 -1
  66. package/dist/generated/dsl/tasks.js +0 -133
  67. package/dist/generated/dsl/tasks.js.map +0 -1
  68. package/dist/generated/dsl/workflows.d.ts +0 -34
  69. package/dist/generated/dsl/workflows.d.ts.map +0 -1
  70. package/dist/generated/dsl/workflows.js +0 -84
  71. package/dist/generated/dsl/workflows.js.map +0 -1
  72. package/dist/generated/index.d.ts +0 -7
  73. package/dist/generated/index.d.ts.map +0 -1
  74. package/dist/generated/index.js +0 -7
  75. package/dist/generated/index.js.map +0 -1
  76. package/dist/generated/policy-runtime.d.ts +0 -114
  77. package/dist/generated/policy-runtime.d.ts.map +0 -1
  78. package/dist/generated/policy-runtime.js +0 -195
  79. package/dist/generated/policy-runtime.js.map +0 -1
  80. package/dist/generated/policy.d.ts +0 -619
  81. package/dist/generated/policy.d.ts.map +0 -1
  82. package/dist/generated/policy.js +0 -802
  83. package/dist/generated/policy.js.map +0 -1
  84. package/dist/generated/program.d.ts +0 -112
  85. package/dist/generated/program.d.ts.map +0 -1
  86. package/dist/generated/program.js +0 -266
  87. package/dist/generated/program.js.map +0 -1
  88. package/dist/generated/schemas.d.ts +0 -778
  89. package/dist/generated/schemas.d.ts.map +0 -1
  90. package/dist/generated/schemas.js +0 -1005
  91. package/dist/generated/schemas.js.map +0 -1
  92. package/dist/generated/types.d.ts +0 -395
  93. package/dist/generated/types.d.ts.map +0 -1
  94. package/dist/generated/types.js +0 -3
  95. package/dist/generated/types.js.map +0 -1
  96. package/dist/generator/dependencyGenerator.d.ts +0 -43
  97. package/dist/generator/dependencyGenerator.d.ts.map +0 -1
  98. package/dist/generator/dependencyGenerator.js +0 -159
  99. package/dist/generator/dependencyGenerator.js.map +0 -1
  100. package/dist/generator/index.d.ts +0 -39
  101. package/dist/generator/index.d.ts.map +0 -1
  102. package/dist/generator/index.js +0 -720
  103. package/dist/generator/index.js.map +0 -1
  104. package/dist/generator/inputHash.d.ts +0 -23
  105. package/dist/generator/inputHash.d.ts.map +0 -1
  106. package/dist/generator/inputHash.js +0 -145
  107. package/dist/generator/inputHash.js.map +0 -1
  108. package/dist/generator/linter.d.ts +0 -26
  109. package/dist/generator/linter.d.ts.map +0 -1
  110. package/dist/generator/linter.js +0 -352
  111. package/dist/generator/linter.js.map +0 -1
  112. package/dist/generator/overlayProcessor.d.ts +0 -90
  113. package/dist/generator/overlayProcessor.d.ts.map +0 -1
  114. package/dist/generator/overlayProcessor.js +0 -541
  115. package/dist/generator/overlayProcessor.js.map +0 -1
  116. package/dist/generator/schemaGenerator.d.ts +0 -10
  117. package/dist/generator/schemaGenerator.d.ts.map +0 -1
  118. package/dist/generator/schemaGenerator.js +0 -299
  119. package/dist/generator/schemaGenerator.js.map +0 -1
  120. package/dist/generator/serviceGenerator.d.ts +0 -41
  121. package/dist/generator/serviceGenerator.d.ts.map +0 -1
  122. package/dist/generator/serviceGenerator.js +0 -296
  123. package/dist/generator/serviceGenerator.js.map +0 -1
  124. package/dist/generator/templateProcessor.d.ts +0 -245
  125. package/dist/generator/templateProcessor.d.ts.map +0 -1
  126. package/dist/generator/templateProcessor.js +0 -821
  127. package/dist/generator/templateProcessor.js.map +0 -1
  128. package/dist/generator/typeGenerator.d.ts +0 -9
  129. package/dist/generator/typeGenerator.d.ts.map +0 -1
  130. package/dist/generator/typeGenerator.js +0 -424
  131. package/dist/generator/typeGenerator.js.map +0 -1
  132. package/dist/generator/typeGenerator.test.d.ts +0 -2
  133. package/dist/generator/typeGenerator.test.d.ts.map +0 -1
  134. package/dist/generator/typeGenerator.test.js +0 -122
  135. package/dist/generator/typeGenerator.test.js.map +0 -1
  136. package/dist/guardrails/allowlist.d.ts +0 -45
  137. package/dist/guardrails/allowlist.d.ts.map +0 -1
  138. package/dist/guardrails/allowlist.js +0 -261
  139. package/dist/guardrails/allowlist.js.map +0 -1
  140. package/dist/guardrails/config.d.ts +0 -40
  141. package/dist/guardrails/config.d.ts.map +0 -1
  142. package/dist/guardrails/config.js +0 -174
  143. package/dist/guardrails/config.js.map +0 -1
  144. package/dist/guardrails/docs.d.ts +0 -24
  145. package/dist/guardrails/docs.d.ts.map +0 -1
  146. package/dist/guardrails/docs.js +0 -138
  147. package/dist/guardrails/docs.js.map +0 -1
  148. package/dist/guardrails/drift.d.ts +0 -23
  149. package/dist/guardrails/drift.d.ts.map +0 -1
  150. package/dist/guardrails/drift.js +0 -127
  151. package/dist/guardrails/drift.js.map +0 -1
  152. package/dist/guardrails/index.d.ts +0 -19
  153. package/dist/guardrails/index.d.ts.map +0 -1
  154. package/dist/guardrails/index.js +0 -23
  155. package/dist/guardrails/index.js.map +0 -1
  156. package/dist/guardrails/lint.d.ts +0 -20
  157. package/dist/guardrails/lint.d.ts.map +0 -1
  158. package/dist/guardrails/lint.js +0 -274
  159. package/dist/guardrails/lint.js.map +0 -1
  160. package/dist/guardrails/manifest.d.ts +0 -63
  161. package/dist/guardrails/manifest.d.ts.map +0 -1
  162. package/dist/guardrails/manifest.js +0 -299
  163. package/dist/guardrails/manifest.js.map +0 -1
  164. package/dist/guardrails/runner.d.ts +0 -43
  165. package/dist/guardrails/runner.d.ts.map +0 -1
  166. package/dist/guardrails/runner.js +0 -365
  167. package/dist/guardrails/runner.js.map +0 -1
  168. package/dist/guardrails/typecheck.d.ts +0 -15
  169. package/dist/guardrails/typecheck.d.ts.map +0 -1
  170. package/dist/guardrails/typecheck.js +0 -104
  171. package/dist/guardrails/typecheck.js.map +0 -1
  172. package/dist/guardrails/types.d.ts +0 -202
  173. package/dist/guardrails/types.d.ts.map +0 -1
  174. package/dist/guardrails/types.js +0 -8
  175. package/dist/guardrails/types.js.map +0 -1
  176. package/dist/index.d.ts.map +0 -1
  177. package/dist/index.js.map +0 -1
  178. package/dist/types.d.ts +0 -583
  179. package/dist/types.d.ts.map +0 -1
  180. package/dist/types.js +0 -305
  181. package/dist/types.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"templateProcessor.js","sourceRoot":"","sources":["../../src/generator/templateProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * TypeScript type generator from OpenAPI schemas
3
- */
4
- import type { OpenAPISpec } from '../types.js';
5
- /**
6
- * Generate TypeScript type definitions from OpenAPI spec
7
- */
8
- export declare function generateTypes(spec: OpenAPISpec): string;
9
- //# sourceMappingURL=typeGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeGenerator.d.ts","sourceRoot":"","sources":["../../src/generator/typeGenerator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,WAAW,EAOZ,MAAM,aAAa,CAAC;AAkBrB;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAgCvD"}
@@ -1,424 +0,0 @@
1
- /**
2
- * TypeScript type generator from OpenAPI schemas
3
- */
4
- import { isReference, getRefName } from '../types.js';
5
- /**
6
- * Normalize OpenAPI 3.1 type arrays into a non-null type and a nullable flag.
7
- * Returns undefined for type if the schema has no type field.
8
- */
9
- function normalizeType(schema) {
10
- const raw = schema.type;
11
- if (raw === undefined) {
12
- return { types: [], nullable: !!schema.nullable };
13
- }
14
- const arr = Array.isArray(raw) ? raw : [raw];
15
- const hasNull = arr.includes('null');
16
- const nonNull = arr.filter((t) => t !== 'null');
17
- return { types: nonNull, nullable: hasNull || !!schema.nullable };
18
- }
19
- /**
20
- * Generate TypeScript type definitions from OpenAPI spec
21
- */
22
- export function generateTypes(spec) {
23
- const lines = [];
24
- lines.push('/**');
25
- lines.push(' * Auto-generated TypeScript types from OpenAPI specification');
26
- lines.push(` * Generated from: ${spec.info.title} v${spec.info.version}`);
27
- lines.push(' * DO NOT EDIT MANUALLY');
28
- lines.push(' */');
29
- lines.push('');
30
- // Always include ProblemDetails (RFC 9457) for error handling
31
- lines.push(generateProblemDetailsType());
32
- lines.push('');
33
- // Generate types from components/schemas
34
- if (spec.components?.schemas) {
35
- for (const [name, schema] of Object.entries(spec.components.schemas)) {
36
- // Skip if already generated (e.g., ProblemDetails)
37
- if (name === 'ProblemDetails')
38
- continue;
39
- lines.push(generateSchemaType(name, schema, spec));
40
- lines.push('');
41
- }
42
- }
43
- // Generate request/response types from paths
44
- const operationTypes = generateOperationTypes(spec);
45
- if (operationTypes) {
46
- lines.push('// Operation-specific types');
47
- lines.push(operationTypes);
48
- }
49
- return lines.join('\n');
50
- }
51
- /**
52
- * Generate ProblemDetails type (RFC 9457)
53
- * This is always included for standardized error handling
54
- */
55
- function generateProblemDetailsType() {
56
- return `/**
57
- * RFC 9457 Problem Details for HTTP APIs
58
- * @see https://www.rfc-editor.org/rfc/rfc9457.html
59
- */
60
- export interface ProblemDetails {
61
- /** A URI reference that identifies the problem type */
62
- type: string;
63
- /** A short, human-readable summary */
64
- title: string;
65
- /** The HTTP status code */
66
- status: number;
67
- /** A human-readable explanation specific to this occurrence */
68
- detail?: string;
69
- /** A URI reference to the specific occurrence */
70
- instance?: string;
71
- /** Application-specific error code (SCREAMING_SNAKE_CASE) */
72
- code?: string;
73
- /** Request trace ID for debugging */
74
- traceId?: string;
75
- /** Detailed validation errors */
76
- errors?: ValidationError[];
77
- /** Additional properties */
78
- [key: string]: unknown;
79
- }
80
-
81
- /**
82
- * Validation error detail
83
- */
84
- export interface ValidationError {
85
- /** JSON Pointer to the invalid field */
86
- pointer: string;
87
- /** Error message for this field */
88
- detail: string;
89
- }`;
90
- }
91
- /**
92
- * Generate TypeScript type for a single schema
93
- */
94
- function generateSchemaType(name, schema, spec) {
95
- if (isReference(schema)) {
96
- const refName = getRefName(schema.$ref);
97
- return `export type ${name} = ${refName};`;
98
- }
99
- // Handle allOf, oneOf, anyOf
100
- if (schema.allOf) {
101
- const types = schema.allOf.map(s => schemaToTypeString(s, spec)).join(' & ');
102
- return `export type ${name} = ${types};`;
103
- }
104
- if (schema.oneOf) {
105
- const types = schema.oneOf.map(s => schemaToTypeString(s, spec)).join(' | ');
106
- return `export type ${name} = ${types};`;
107
- }
108
- if (schema.anyOf) {
109
- const types = schema.anyOf.map(s => schemaToTypeString(s, spec)).join(' | ');
110
- return `export type ${name} = ${types};`;
111
- }
112
- const { types, nullable } = normalizeType(schema);
113
- // Handle object type
114
- if (types.includes('object') || schema.properties) {
115
- return generateInterfaceType(name, schema, spec);
116
- }
117
- // Handle enum
118
- if (schema.enum) {
119
- const enumValues = schema.enum.map(v => typeof v === 'string' ? `'${v}'` : String(v)).join(' | ');
120
- const suffix = nullable ? ' | null' : '';
121
- return `export type ${name} = ${enumValues}${suffix};`;
122
- }
123
- // Handle array
124
- if (types.includes('array') && schema.items) {
125
- const itemType = schemaToTypeString(schema.items, spec);
126
- const suffix = nullable ? ' | null' : '';
127
- return `export type ${name} = ${itemType}[]${suffix};`;
128
- }
129
- // Handle primitive types (including type arrays like ['string', 'null'])
130
- const tsType = resolveTypeString(types, schema, nullable);
131
- return `export type ${name} = ${tsType};`;
132
- }
133
- /**
134
- * Generate interface type for object schema
135
- */
136
- function generateInterfaceType(name, schema, spec) {
137
- const lines = [];
138
- const required = new Set(schema.required || []);
139
- if (schema.description) {
140
- lines.push(`/** ${schema.description} */`);
141
- }
142
- lines.push(`export interface ${name} {`);
143
- if (schema.properties) {
144
- for (const [propName, propSchema] of Object.entries(schema.properties)) {
145
- const isRequired = required.has(propName);
146
- const tsType = schemaToTypeString(propSchema, spec);
147
- const optional = isRequired ? '' : '?';
148
- // Add description as JSDoc if available
149
- if (!isReference(propSchema) && propSchema.description) {
150
- lines.push(` /** ${propSchema.description} */`);
151
- }
152
- lines.push(` ${propName}${optional}: ${tsType};`);
153
- }
154
- }
155
- // Handle additionalProperties
156
- if (schema.additionalProperties) {
157
- if (typeof schema.additionalProperties === 'boolean') {
158
- lines.push(' [key: string]: unknown;');
159
- }
160
- else {
161
- const valueType = schemaToTypeString(schema.additionalProperties, spec);
162
- lines.push(` [key: string]: ${valueType};`);
163
- }
164
- }
165
- lines.push('}');
166
- return lines.join('\n');
167
- }
168
- /**
169
- * Convert schema to TypeScript type string
170
- */
171
- function schemaToTypeString(schema, spec) {
172
- if (isReference(schema)) {
173
- return getRefName(schema.$ref);
174
- }
175
- const { types, nullable } = normalizeType(schema);
176
- const nullSuffix = nullable ? ' | null' : '';
177
- // Handle allOf, oneOf, anyOf
178
- if (schema.allOf) {
179
- const ts = schema.allOf.map(s => schemaToTypeString(s, spec)).join(' & ');
180
- return `(${ts})${nullSuffix}`;
181
- }
182
- if (schema.oneOf) {
183
- const ts = schema.oneOf.map(s => schemaToTypeString(s, spec)).join(' | ');
184
- return `(${ts})${nullSuffix}`;
185
- }
186
- if (schema.anyOf) {
187
- const ts = schema.anyOf.map(s => schemaToTypeString(s, spec)).join(' | ');
188
- return `(${ts})${nullSuffix}`;
189
- }
190
- // Handle enum
191
- if (schema.enum) {
192
- const enumValues = schema.enum.map(v => typeof v === 'string' ? `'${v}'` : String(v)).join(' | ');
193
- return `(${enumValues})${nullSuffix}`;
194
- }
195
- // Handle array
196
- if (types.includes('array') && schema.items) {
197
- const itemType = schemaToTypeString(schema.items, spec);
198
- const wrappedItemType = itemType.includes(' | ') || itemType.includes(' & ')
199
- ? `(${itemType})`
200
- : itemType;
201
- return `${wrappedItemType}[]${nullSuffix}`;
202
- }
203
- // Handle object with inline properties
204
- if (types.includes('object') || schema.properties) {
205
- if (!schema.properties) {
206
- if (schema.additionalProperties) {
207
- if (typeof schema.additionalProperties === 'boolean') {
208
- return `Record<string, unknown>${nullSuffix}`;
209
- }
210
- const valueType = schemaToTypeString(schema.additionalProperties, spec);
211
- return `Record<string, ${valueType}>${nullSuffix}`;
212
- }
213
- return `Record<string, unknown>${nullSuffix}`;
214
- }
215
- const props = [];
216
- const required = new Set(schema.required || []);
217
- for (const [propName, propSchema] of Object.entries(schema.properties)) {
218
- const isRequired = required.has(propName);
219
- const tsType = schemaToTypeString(propSchema, spec);
220
- const optional = isRequired ? '' : '?';
221
- props.push(`${propName}${optional}: ${tsType}`);
222
- }
223
- return `{ ${props.join('; ')} }${nullSuffix}`;
224
- }
225
- // Handle primitive types (including type arrays like ['string', 'null'])
226
- return resolveTypeString(types, schema, nullable);
227
- }
228
- /**
229
- * Map a single OpenAPI type name to its TypeScript equivalent
230
- */
231
- function singleTypeToTs(typeName) {
232
- switch (typeName) {
233
- case 'string':
234
- return 'string';
235
- case 'integer':
236
- case 'number':
237
- return 'number';
238
- case 'boolean':
239
- return 'boolean';
240
- case 'null':
241
- return 'null';
242
- case 'object':
243
- return 'Record<string, unknown>';
244
- case 'array':
245
- return 'unknown[]';
246
- default:
247
- return 'unknown';
248
- }
249
- }
250
- /**
251
- * Resolve an array of OpenAPI types (with nullable flag) into a TypeScript type string.
252
- * Handles both single-type and multi-type (OpenAPI 3.1 union) cases.
253
- */
254
- function resolveTypeString(types, schema, nullable) {
255
- const nullSuffix = nullable ? ' | null' : '';
256
- if (types.length === 0) {
257
- return `unknown${nullSuffix}`;
258
- }
259
- const tsTypes = types.map(t => singleTypeToTs(t));
260
- const unique = [...new Set(tsTypes)];
261
- return unique.join(' | ') + nullSuffix;
262
- }
263
- /**
264
- * Generate a valid TypeScript identifier from service and method
265
- * e.g., "User" + "getSchema" -> "User_getSchema"
266
- */
267
- function getOperationTypeName(operation) {
268
- const service = operation['x-micro-contracts-service'];
269
- const method = operation['x-micro-contracts-method'];
270
- if (service && method) {
271
- // Use x-micro-contracts-service + _ + x-micro-contracts-method for type name
272
- return `${service}_${method}`;
273
- }
274
- // Fallback: sanitize operationId (replace dots with underscores, etc.)
275
- if (operation.operationId) {
276
- return operation.operationId.replace(/[^a-zA-Z0-9]/g, '_');
277
- }
278
- return 'Unknown';
279
- }
280
- /**
281
- * Generate parameter types for operations
282
- */
283
- function generateOperationTypes(spec) {
284
- const lines = [];
285
- const generatedTypes = new Set();
286
- for (const [path, pathItem] of Object.entries(spec.paths)) {
287
- for (const method of ['get', 'post', 'put', 'patch', 'delete']) {
288
- const operation = pathItem[method];
289
- if (!operation)
290
- continue;
291
- const baseTypeName = getOperationTypeName(operation);
292
- // Collect all parameters (path + query) into a single Params type
293
- const allParams = (operation.parameters || []).filter((p) => !isReference(p) && (p.in === 'query' || p.in === 'path'));
294
- let paramsTypeName;
295
- if (allParams.length > 0) {
296
- paramsTypeName = `${baseTypeName}Params`;
297
- if (!generatedTypes.has(paramsTypeName)) {
298
- generatedTypes.add(paramsTypeName);
299
- lines.push(generateParamsType(paramsTypeName, allParams, spec));
300
- lines.push('');
301
- }
302
- }
303
- // Get request body type name
304
- let bodyTypeName;
305
- if (operation.requestBody) {
306
- if (isReference(operation.requestBody)) {
307
- // Referenced request body - extract name
308
- bodyTypeName = getRefName(operation.requestBody.$ref);
309
- }
310
- else {
311
- const content = operation.requestBody.content?.['application/json'];
312
- if (content?.schema) {
313
- if (isReference(content.schema)) {
314
- bodyTypeName = getRefName(content.schema.$ref);
315
- }
316
- else if (content.schema.properties || normalizeType(content.schema).types.includes('object')) {
317
- // Generate inline body type
318
- bodyTypeName = `${baseTypeName}Body`;
319
- if (!generatedTypes.has(bodyTypeName)) {
320
- generatedTypes.add(bodyTypeName);
321
- lines.push(generateRequestBodyType(bodyTypeName, content.schema, spec));
322
- lines.push('');
323
- }
324
- }
325
- }
326
- }
327
- }
328
- // Generate Input type that combines params and body
329
- // - params are flattened (path + query combined)
330
- // - body becomes 'data' (not HTTP-specific)
331
- // - Always generate (empty object for parameterless operations)
332
- const inputTypeName = `${baseTypeName}Input`;
333
- if (!generatedTypes.has(inputTypeName)) {
334
- generatedTypes.add(inputTypeName);
335
- lines.push(generateInputType(inputTypeName, paramsTypeName, bodyTypeName));
336
- lines.push('');
337
- }
338
- }
339
- }
340
- return lines.join('\n');
341
- }
342
- /**
343
- * Generate Input type that combines params and body
344
- * - params (path + query) are flattened (HTTP details hidden)
345
- * - body is renamed to 'data' (not HTTP-specific naming)
346
- * - parameterless operations get empty object type
347
- *
348
- * Examples:
349
- * - No params: type Input = Record<string, never>; (empty object)
350
- * - Params only: type Input = Params;
351
- * - Body only: type Input = { data: Body };
352
- * - Params + Body: type Input = Params & { data: Body };
353
- */
354
- function generateInputType(name, paramsType, bodyType) {
355
- const parts = [];
356
- // Flatten params (path + query parameters become direct properties)
357
- if (paramsType) {
358
- parts.push(paramsType);
359
- }
360
- // Body becomes 'data' property (not HTTP-specific naming)
361
- if (bodyType) {
362
- parts.push(`{ data: ${bodyType} }`);
363
- }
364
- // Generate type alias
365
- if (parts.length === 0) {
366
- // Parameterless operation: empty object type
367
- return `export type ${name} = Record<string, never>;`;
368
- }
369
- else if (parts.length === 1) {
370
- return `export type ${name} = ${parts[0]};`;
371
- }
372
- else {
373
- return `export type ${name} = ${parts.join(' & ')};`;
374
- }
375
- }
376
- /**
377
- * Generate request body interface
378
- */
379
- function generateRequestBodyType(name, schema, spec) {
380
- const lines = [];
381
- lines.push(`export interface ${name} {`);
382
- if (schema.properties) {
383
- const required = new Set(schema.required || []);
384
- for (const [propName, propSchema] of Object.entries(schema.properties)) {
385
- const isRequired = required.has(propName);
386
- const optional = isRequired ? '' : '?';
387
- const tsType = schemaToTypeString(propSchema, spec);
388
- if (isReference(propSchema)) {
389
- // No description for refs
390
- }
391
- else if (propSchema.description) {
392
- lines.push(` /** ${propSchema.description} */`);
393
- }
394
- lines.push(` ${propName}${optional}: ${tsType};`);
395
- }
396
- }
397
- lines.push('}');
398
- return lines.join('\n');
399
- }
400
- /**
401
- * Generate params interface (combines path + query parameters)
402
- */
403
- function generateParamsType(name, params, spec) {
404
- const lines = [];
405
- lines.push(`export interface ${name} {`);
406
- for (const param of params) {
407
- const optional = param.required ? '' : '?';
408
- let tsType = 'unknown';
409
- if (param.schema) {
410
- tsType = schemaToTypeString(param.schema, spec);
411
- }
412
- if (param.description) {
413
- lines.push(` /** ${param.description} */`);
414
- }
415
- // Use OpenAPI parameter name as-is (quoted for names with special chars)
416
- lines.push(` '${param.name}'${optional}: ${tsType};`);
417
- }
418
- lines.push('}');
419
- return lines.join('\n');
420
- }
421
- function capitalize(str) {
422
- return str.charAt(0).toUpperCase() + str.slice(1);
423
- }
424
- //# sourceMappingURL=typeGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeGenerator.js","sourceRoot":"","sources":["../../src/generator/typeGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=typeGenerator.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeGenerator.test.d.ts","sourceRoot":"","sources":["../../src/generator/typeGenerator.test.ts"],"names":[],"mappings":""}
@@ -1,122 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { generateTypes } from './typeGenerator.js';
3
- function minimalSpec(schemas) {
4
- return {
5
- openapi: '3.1.0',
6
- info: { title: 'Test', version: '1.0.0' },
7
- paths: {},
8
- components: { schemas: schemas },
9
- };
10
- }
11
- function extractInterface(output, name) {
12
- const re = new RegExp(`export interface ${name} \\{[\\s\\S]*?\\n\\}`, 'm');
13
- const match = output.match(re);
14
- return match ? match[0] : '';
15
- }
16
- describe('OpenAPI 3.1 type array nullable syntax', () => {
17
- it('generates string | null for type: [string, null]', () => {
18
- const spec = minimalSpec({
19
- Example: {
20
- type: 'object',
21
- required: ['name'],
22
- properties: {
23
- name: { type: 'string' },
24
- phase: { type: ['string', 'null'], description: 'nullable string' },
25
- },
26
- },
27
- });
28
- const output = generateTypes(spec);
29
- const iface = extractInterface(output, 'Example');
30
- expect(iface).toContain('phase?: string | null;');
31
- expect(iface).toContain('name: string;');
32
- });
33
- it('generates number | null for type: [number, null]', () => {
34
- const spec = minimalSpec({
35
- Example: {
36
- type: 'object',
37
- properties: {
38
- count: { type: ['number', 'null'] },
39
- },
40
- },
41
- });
42
- const output = generateTypes(spec);
43
- expect(output).toContain('count?: number | null;');
44
- });
45
- it('generates number | null for type: [integer, null]', () => {
46
- const spec = minimalSpec({
47
- Example: {
48
- type: 'object',
49
- properties: {
50
- count: { type: ['integer', 'null'] },
51
- },
52
- },
53
- });
54
- const output = generateTypes(spec);
55
- expect(output).toContain('count?: number | null;');
56
- });
57
- it('generates string | number for type: [string, integer]', () => {
58
- const spec = minimalSpec({
59
- Example: {
60
- type: 'object',
61
- properties: {
62
- value: { type: ['string', 'integer'] },
63
- },
64
- },
65
- });
66
- const output = generateTypes(spec);
67
- expect(output).toContain('value?: string | number;');
68
- });
69
- it('generates string | number | null for type: [string, integer, null]', () => {
70
- const spec = minimalSpec({
71
- Example: {
72
- type: 'object',
73
- properties: {
74
- value: { type: ['string', 'integer', 'null'] },
75
- },
76
- },
77
- });
78
- const output = generateTypes(spec);
79
- expect(output).toContain('value?: string | number | null;');
80
- });
81
- it('still supports OpenAPI 3.0 nullable: true syntax', () => {
82
- const spec = minimalSpec({
83
- Example: {
84
- type: 'object',
85
- properties: {
86
- phase: { type: 'string', nullable: true },
87
- },
88
- },
89
- });
90
- const output = generateTypes(spec);
91
- expect(output).toContain('phase?: string | null;');
92
- });
93
- it('handles both 3.0 and 3.1 nullable in the same schema', () => {
94
- const spec = minimalSpec({
95
- Example: {
96
- type: 'object',
97
- required: ['name'],
98
- properties: {
99
- name: { type: 'string' },
100
- phase_v31: { type: ['string', 'null'], description: 'Nullable string (3.1 syntax)' },
101
- phase_v30: { type: 'string', nullable: true, description: 'Nullable string (3.0 syntax)' },
102
- },
103
- },
104
- });
105
- const output = generateTypes(spec);
106
- const iface = extractInterface(output, 'Example');
107
- expect(iface).toContain('name: string;');
108
- expect(iface).toContain('phase_v31?: string | null;');
109
- expect(iface).toContain('phase_v30?: string | null;');
110
- expect(iface).not.toContain('unknown');
111
- });
112
- it('generates top-level type alias with nullable type array', () => {
113
- const spec = minimalSpec({
114
- NullableString: {
115
- type: ['string', 'null'],
116
- },
117
- });
118
- const output = generateTypes(spec);
119
- expect(output).toContain('export type NullableString = string | null;');
120
- });
121
- });
122
- //# sourceMappingURL=typeGenerator.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeGenerator.test.js","sourceRoot":"","sources":["../../src/generator/typeGenerator.test.ts"],"names":[],"mappings":"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"}