klasik 2.4.2 → 2.5.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 (52) hide show
  1. package/README.md +400 -3
  2. package/dist/bin/go-schema-gen +0 -0
  3. package/dist/builders/class-builder.d.ts +2 -0
  4. package/dist/builders/class-builder.d.ts.map +1 -1
  5. package/dist/builders/class-builder.js.map +1 -1
  6. package/dist/cli/commands/generate-crd.d.ts +2 -0
  7. package/dist/cli/commands/generate-crd.d.ts.map +1 -1
  8. package/dist/cli/commands/generate-crd.js +43 -0
  9. package/dist/cli/commands/generate-crd.js.map +1 -1
  10. package/dist/cli/commands/generate-go.d.ts +2 -0
  11. package/dist/cli/commands/generate-go.d.ts.map +1 -1
  12. package/dist/cli/commands/generate-go.js +43 -0
  13. package/dist/cli/commands/generate-go.js.map +1 -1
  14. package/dist/cli/commands/generate-jsonschema.d.ts +2 -0
  15. package/dist/cli/commands/generate-jsonschema.d.ts.map +1 -1
  16. package/dist/cli/commands/generate-jsonschema.js +10 -0
  17. package/dist/cli/commands/generate-jsonschema.js.map +1 -1
  18. package/dist/cli/commands/generate.d.ts +3 -0
  19. package/dist/cli/commands/generate.d.ts.map +1 -1
  20. package/dist/cli/commands/generate.js +55 -2
  21. package/dist/cli/commands/generate.js.map +1 -1
  22. package/dist/cli/utils/options.d.ts +12 -0
  23. package/dist/cli/utils/options.d.ts.map +1 -1
  24. package/dist/cli/utils/options.js +23 -0
  25. package/dist/cli/utils/options.js.map +1 -1
  26. package/dist/converters/swagger-converter.d.ts +46 -0
  27. package/dist/converters/swagger-converter.d.ts.map +1 -0
  28. package/dist/converters/swagger-converter.js +79 -0
  29. package/dist/converters/swagger-converter.js.map +1 -0
  30. package/dist/generator/generator.d.ts.map +1 -1
  31. package/dist/generator/generator.js +6 -2
  32. package/dist/generator/generator.js.map +1 -1
  33. package/dist/generators/api-client-generator.d.ts +16 -0
  34. package/dist/generators/api-client-generator.d.ts.map +1 -1
  35. package/dist/generators/api-client-generator.js +508 -57
  36. package/dist/generators/api-client-generator.js.map +1 -1
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +5 -1
  40. package/dist/index.js.map +1 -1
  41. package/dist/ir/types.d.ts +2 -0
  42. package/dist/ir/types.d.ts.map +1 -1
  43. package/dist/ir/types.js.map +1 -1
  44. package/dist/parsers/openapi-parser.d.ts +17 -0
  45. package/dist/parsers/openapi-parser.d.ts.map +1 -1
  46. package/dist/parsers/openapi-parser.js +72 -4
  47. package/dist/parsers/openapi-parser.js.map +1 -1
  48. package/dist/plugins/zod-validator-plugin.d.ts +85 -0
  49. package/dist/plugins/zod-validator-plugin.d.ts.map +1 -0
  50. package/dist/plugins/zod-validator-plugin.js +446 -0
  51. package/dist/plugins/zod-validator-plugin.js.map +1 -0
  52. package/package.json +2 -1
@@ -0,0 +1,446 @@
1
+ "use strict";
2
+ /**
3
+ * Zod Validator Plugin
4
+ *
5
+ * Generates Zod validation schemas as separate .zod.ts files
6
+ * alongside the generated class models.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.ZodValidatorPlugin = void 0;
43
+ const path = __importStar(require("path"));
44
+ const fs = __importStar(require("fs"));
45
+ const name_utils_1 = require("../utils/name-utils");
46
+ /**
47
+ * Plugin that generates Zod validation schemas
48
+ *
49
+ * Generates:
50
+ * - {model}.zod.ts files with Zod schema definitions
51
+ * - Type exports using z.infer<typeof schema>
52
+ */
53
+ class ZodValidatorPlugin {
54
+ constructor() {
55
+ this.name = 'zod-validator';
56
+ this.priority = 85; // Same priority as AjvValidator
57
+ }
58
+ /**
59
+ * Generate .zod.ts files after model generation
60
+ */
61
+ afterGeneration(context, ir) {
62
+ const modelsDir = context.options.bare
63
+ ? context.options.outputDir
64
+ : path.join(context.options.outputDir, 'models');
65
+ // Ensure models directory exists
66
+ if (!fs.existsSync(modelsDir)) {
67
+ fs.mkdirSync(modelsDir, { recursive: true });
68
+ }
69
+ // Generate Zod file for each schema
70
+ for (const [_name, schema] of ir.schemas) {
71
+ this.generateZodFile(schema, context, modelsDir, ir);
72
+ }
73
+ // Update index.ts to include Zod exports
74
+ this.updateIndexFile(ir, context, modelsDir);
75
+ }
76
+ /**
77
+ * Add zod dependency to package.json
78
+ */
79
+ modifyPackageJson(packageJson, _context) {
80
+ if (!packageJson.dependencies) {
81
+ packageJson.dependencies = {};
82
+ }
83
+ packageJson.dependencies['zod'] = '^3.23.0';
84
+ }
85
+ /**
86
+ * Generate a .zod.ts file for a schema
87
+ */
88
+ generateZodFile(schema, context, modelsDir, ir) {
89
+ const fileName = this.getSchemaFileName(schema, context) + '.zod.ts';
90
+ const filePath = path.join(modelsDir, fileName);
91
+ // Collect imports needed
92
+ const imports = this.collectImports(schema, context, ir);
93
+ // Build the Zod schema
94
+ const zodSchema = this.buildZodSchema(schema);
95
+ // Generate file content
96
+ const lines = [];
97
+ // Import zod
98
+ lines.push("import { z } from 'zod';");
99
+ // Import referenced schemas
100
+ if (imports.length > 0) {
101
+ lines.push('');
102
+ for (const imp of imports) {
103
+ const importPath = context.options.esm
104
+ ? `./${imp.fileName}.zod.js`
105
+ : `./${imp.fileName}.zod`;
106
+ lines.push(`import { ${imp.schemaName}Schema } from '${importPath}';`);
107
+ }
108
+ }
109
+ lines.push('');
110
+ // Add JSDoc for schema
111
+ if (schema.description) {
112
+ lines.push('/**');
113
+ lines.push(` * ${schema.description.replace(/\n/g, '\n * ')}`);
114
+ lines.push(' */');
115
+ }
116
+ // Export the schema
117
+ lines.push(`export const ${schema.name}Schema = ${zodSchema};`);
118
+ lines.push('');
119
+ // Export the inferred type
120
+ lines.push(`export type ${schema.name} = z.infer<typeof ${schema.name}Schema>;`);
121
+ lines.push('');
122
+ // Write file
123
+ fs.writeFileSync(filePath, lines.join('\n'), 'utf-8');
124
+ }
125
+ /**
126
+ * Build the Zod schema string from a SchemaDefinition
127
+ */
128
+ buildZodSchema(schema) {
129
+ // Handle enum schemas
130
+ if (schema.type === 'enum' && schema.enumValues && schema.enumValues.length > 0) {
131
+ const enumValues = schema.enumValues
132
+ .map(v => typeof v === 'string' ? `'${this.escapeString(v)}'` : String(v))
133
+ .join(', ');
134
+ return `z.enum([${enumValues}])`;
135
+ }
136
+ // Build object schema
137
+ const properties = [];
138
+ for (const [_propName, propDef] of schema.properties) {
139
+ const propSchema = this.buildPropertySchema(propDef);
140
+ properties.push(` ${propDef.name}: ${propSchema}`);
141
+ }
142
+ if (properties.length === 0) {
143
+ return 'z.object({})';
144
+ }
145
+ return `z.object({\n${properties.join(',\n')},\n})`;
146
+ }
147
+ /**
148
+ * Build a Zod schema for a property
149
+ */
150
+ buildPropertySchema(propDef) {
151
+ let schema = this.buildTypeSchema(propDef.type, propDef.constraints);
152
+ // Add format-specific validations
153
+ schema = this.applyFormatValidations(schema, propDef.format, propDef.type);
154
+ // Add constraint validations
155
+ schema = this.applyConstraintValidations(schema, propDef.constraints, propDef.type);
156
+ // Add description if present
157
+ if (propDef.description) {
158
+ schema += `.describe('${this.escapeString(propDef.description)}')`;
159
+ }
160
+ // Handle nullable
161
+ if (propDef.nullable && propDef.required) {
162
+ schema += '.nullable()';
163
+ }
164
+ else if (propDef.nullable && !propDef.required) {
165
+ schema += '.nullish()';
166
+ }
167
+ else if (!propDef.required) {
168
+ schema += '.optional()';
169
+ }
170
+ return schema;
171
+ }
172
+ /**
173
+ * Build Zod schema for a type
174
+ */
175
+ buildTypeSchema(type, constraints) {
176
+ switch (type.kind) {
177
+ case 'primitive':
178
+ return this.buildPrimitiveSchema(type.name, constraints);
179
+ case 'array':
180
+ if (!type.elementType) {
181
+ return 'z.array(z.unknown())';
182
+ }
183
+ const elementSchema = this.buildTypeSchema(type.elementType);
184
+ return `z.array(${elementSchema})`;
185
+ case 'reference':
186
+ case 'object':
187
+ if (type.name) {
188
+ return `${type.name}Schema`;
189
+ }
190
+ return 'z.object({})';
191
+ case 'union':
192
+ if (!type.unionTypes || type.unionTypes.length === 0) {
193
+ return 'z.unknown()';
194
+ }
195
+ if (type.unionTypes.length === 1) {
196
+ return this.buildTypeSchema(type.unionTypes[0]);
197
+ }
198
+ const unionSchemas = type.unionTypes.map(t => this.buildTypeSchema(t));
199
+ return `z.union([${unionSchemas.join(', ')}])`;
200
+ case 'dictionary':
201
+ const valueSchema = type.additionalProperties
202
+ ? this.buildTypeSchema(type.additionalProperties)
203
+ : 'z.unknown()';
204
+ return `z.record(z.string(), ${valueSchema})`;
205
+ case 'unknown':
206
+ default:
207
+ return 'z.unknown()';
208
+ }
209
+ }
210
+ /**
211
+ * Build Zod schema for primitive types
212
+ */
213
+ buildPrimitiveSchema(name, constraints) {
214
+ // Check for enum first
215
+ if (constraints?.enum && constraints.enum.length > 0) {
216
+ const enumValues = constraints.enum
217
+ .map(v => typeof v === 'string' ? `'${this.escapeString(v)}'` : String(v))
218
+ .join(', ');
219
+ return `z.enum([${enumValues}])`;
220
+ }
221
+ switch (name) {
222
+ case 'string':
223
+ return 'z.string()';
224
+ case 'number':
225
+ return 'z.number()';
226
+ case 'integer':
227
+ return 'z.number().int()';
228
+ case 'boolean':
229
+ return 'z.boolean()';
230
+ default:
231
+ return 'z.string()';
232
+ }
233
+ }
234
+ /**
235
+ * Apply format-specific validations
236
+ */
237
+ applyFormatValidations(schema, format, type) {
238
+ if (!format)
239
+ return schema;
240
+ // Only apply to string types
241
+ if (type.kind !== 'primitive' || type.name !== 'string') {
242
+ return schema;
243
+ }
244
+ switch (format) {
245
+ case 'email':
246
+ return schema + '.email()';
247
+ case 'url':
248
+ case 'uri':
249
+ return schema + '.url()';
250
+ case 'uuid':
251
+ return schema + '.uuid()';
252
+ case 'date-time':
253
+ return schema + '.datetime()';
254
+ case 'date':
255
+ return schema + '.date()';
256
+ case 'ipv4':
257
+ return schema + ".ip({ version: 'v4' })";
258
+ case 'ipv6':
259
+ return schema + ".ip({ version: 'v6' })";
260
+ case 'cuid':
261
+ return schema + '.cuid()';
262
+ case 'cuid2':
263
+ return schema + '.cuid2()';
264
+ case 'ulid':
265
+ return schema + '.ulid()';
266
+ default:
267
+ return schema;
268
+ }
269
+ }
270
+ /**
271
+ * Apply constraint validations
272
+ */
273
+ applyConstraintValidations(schema, constraints, type) {
274
+ if (!constraints)
275
+ return schema;
276
+ // Skip if enum was already applied
277
+ if (constraints.enum && constraints.enum.length > 0) {
278
+ return schema;
279
+ }
280
+ let result = schema;
281
+ // String constraints
282
+ if (type.kind === 'primitive' && type.name === 'string') {
283
+ if (constraints.minLength !== undefined) {
284
+ result += `.min(${constraints.minLength})`;
285
+ }
286
+ if (constraints.maxLength !== undefined) {
287
+ result += `.max(${constraints.maxLength})`;
288
+ }
289
+ if (constraints.pattern) {
290
+ result += `.regex(/${this.escapeRegex(constraints.pattern)}/)`;
291
+ }
292
+ }
293
+ // Numeric constraints
294
+ if (type.kind === 'primitive' && (type.name === 'number' || type.name === 'integer')) {
295
+ if (constraints.minimum !== undefined) {
296
+ if (constraints.exclusiveMinimum) {
297
+ result += `.gt(${constraints.minimum})`;
298
+ }
299
+ else {
300
+ result += `.min(${constraints.minimum})`;
301
+ }
302
+ }
303
+ if (constraints.maximum !== undefined) {
304
+ if (constraints.exclusiveMaximum) {
305
+ result += `.lt(${constraints.maximum})`;
306
+ }
307
+ else {
308
+ result += `.max(${constraints.maximum})`;
309
+ }
310
+ }
311
+ if (constraints.multipleOf !== undefined) {
312
+ result += `.multipleOf(${constraints.multipleOf})`;
313
+ }
314
+ }
315
+ // Array constraints
316
+ if (type.kind === 'array') {
317
+ if (constraints.minItems !== undefined) {
318
+ result += `.min(${constraints.minItems})`;
319
+ }
320
+ if (constraints.maxItems !== undefined) {
321
+ result += `.max(${constraints.maxItems})`;
322
+ }
323
+ }
324
+ return result;
325
+ }
326
+ /**
327
+ * Collect imports needed for a schema
328
+ */
329
+ collectImports(schema, context, ir) {
330
+ const imports = [];
331
+ const importedNames = new Set();
332
+ for (const [_propName, propDef] of schema.properties) {
333
+ this.collectTypeImports(propDef.type, importedNames, ir);
334
+ }
335
+ // Remove self-reference
336
+ importedNames.delete(schema.name);
337
+ // Build import entries
338
+ for (const name of importedNames) {
339
+ const referencedSchema = ir.schemas.get(name);
340
+ if (referencedSchema) {
341
+ imports.push({
342
+ schemaName: name,
343
+ fileName: this.getSchemaFileName(referencedSchema, context),
344
+ });
345
+ }
346
+ }
347
+ return imports.sort((a, b) => a.schemaName.localeCompare(b.schemaName));
348
+ }
349
+ /**
350
+ * Recursively collect type names that need to be imported
351
+ */
352
+ collectTypeImports(type, collected, ir) {
353
+ if (!type)
354
+ return;
355
+ switch (type.kind) {
356
+ case 'reference':
357
+ case 'object':
358
+ if (type.name && ir.schemas.has(type.name)) {
359
+ collected.add(type.name);
360
+ }
361
+ break;
362
+ case 'array':
363
+ if (type.elementType) {
364
+ this.collectTypeImports(type.elementType, collected, ir);
365
+ }
366
+ break;
367
+ case 'union':
368
+ if (type.unionTypes) {
369
+ for (const t of type.unionTypes) {
370
+ this.collectTypeImports(t, collected, ir);
371
+ }
372
+ }
373
+ break;
374
+ case 'dictionary':
375
+ if (type.additionalProperties) {
376
+ this.collectTypeImports(type.additionalProperties, collected, ir);
377
+ }
378
+ break;
379
+ }
380
+ }
381
+ /**
382
+ * Update index.ts to include Zod exports
383
+ */
384
+ updateIndexFile(ir, context, modelsDir) {
385
+ // Create a separate index.zod.ts file
386
+ const indexPath = path.join(modelsDir, 'index.zod.ts');
387
+ const lines = [];
388
+ // Sort schemas alphabetically
389
+ const schemas = Array.from(ir.schemas.values()).sort((a, b) => a.name.localeCompare(b.name));
390
+ // Export all Zod schemas
391
+ for (const schema of schemas) {
392
+ const fileName = this.getSchemaFileName(schema, context);
393
+ const importPath = context.options.esm
394
+ ? `./${fileName}.zod.js`
395
+ : `./${fileName}.zod`;
396
+ lines.push(`export * from '${importPath}';`);
397
+ }
398
+ fs.writeFileSync(indexPath, lines.join('\n') + '\n', 'utf-8');
399
+ }
400
+ /**
401
+ * Get the file name for a schema (without extension)
402
+ */
403
+ getSchemaFileName(schema, context) {
404
+ if (context.options.crdKindCase && schema.metadata.kind) {
405
+ return this.applyCaseTransform(schema.metadata.kind, context.options.crdKindCase);
406
+ }
407
+ return (0, name_utils_1.toKebabCase)(schema.name);
408
+ }
409
+ /**
410
+ * Apply case transformation
411
+ */
412
+ applyCaseTransform(name, caseType) {
413
+ switch (caseType) {
414
+ case 'kebab':
415
+ return (0, name_utils_1.toKebabCase)(name);
416
+ case 'snake':
417
+ return name.replace(/([A-Z])/g, '_$1').toLowerCase().replace(/^_/, '');
418
+ case 'pascal':
419
+ return name.charAt(0).toUpperCase() + name.slice(1);
420
+ case 'camel':
421
+ return name.charAt(0).toLowerCase() + name.slice(1);
422
+ case 'none':
423
+ default:
424
+ return name;
425
+ }
426
+ }
427
+ /**
428
+ * Escape a string for use in generated code
429
+ */
430
+ escapeString(str) {
431
+ return str
432
+ .replace(/\\/g, '\\\\')
433
+ .replace(/'/g, "\\'")
434
+ .replace(/\n/g, '\\n')
435
+ .replace(/\r/g, '\\r');
436
+ }
437
+ /**
438
+ * Escape a regex pattern for use in generated code
439
+ */
440
+ escapeRegex(pattern) {
441
+ // Escape forward slashes for regex literal
442
+ return pattern.replace(/\//g, '\\/');
443
+ }
444
+ }
445
+ exports.ZodValidatorPlugin = ZodValidatorPlugin;
446
+ //# sourceMappingURL=zod-validator-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod-validator-plugin.js","sourceRoot":"","sources":["../../src/plugins/zod-validator-plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "klasik",
3
- "version": "2.4.2",
3
+ "version": "2.5.0",
4
4
  "description": "TypeScript code generator from OpenAPI/CRD/JSON Schema/Go structs - rebuilt from ground up with AST-based generation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -46,6 +46,7 @@
46
46
  "js-yaml": "^4.1.0",
47
47
  "mustache": "^4.2.0",
48
48
  "ora": "^5.4.1",
49
+ "swagger2openapi": "^7.0.8",
49
50
  "ts-morph": "^21.0.0"
50
51
  },
51
52
  "devDependencies": {