@veloxts/cli 0.3.6 → 0.4.1

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 (139) hide show
  1. package/dist/cli.js +2 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/generate.d.ts +17 -0
  4. package/dist/commands/generate.d.ts.map +1 -0
  5. package/dist/commands/generate.js +219 -0
  6. package/dist/commands/generate.js.map +1 -0
  7. package/dist/commands/migrate.d.ts +8 -3
  8. package/dist/commands/migrate.d.ts.map +1 -1
  9. package/dist/commands/migrate.js +17 -123
  10. package/dist/commands/migrate.js.map +1 -1
  11. package/dist/generators/base.d.ts +76 -0
  12. package/dist/generators/base.d.ts.map +1 -0
  13. package/dist/generators/base.js +271 -0
  14. package/dist/generators/base.js.map +1 -0
  15. package/dist/generators/generators/index.d.ts +17 -0
  16. package/dist/generators/generators/index.d.ts.map +1 -0
  17. package/dist/generators/generators/index.js +43 -0
  18. package/dist/generators/generators/index.js.map +1 -0
  19. package/dist/generators/generators/migration.d.ts +43 -0
  20. package/dist/generators/generators/migration.d.ts.map +1 -0
  21. package/dist/generators/generators/migration.js +121 -0
  22. package/dist/generators/generators/migration.js.map +1 -0
  23. package/dist/generators/generators/model.d.ts +38 -0
  24. package/dist/generators/generators/model.d.ts.map +1 -0
  25. package/dist/generators/generators/model.js +108 -0
  26. package/dist/generators/generators/model.js.map +1 -0
  27. package/dist/generators/generators/procedure.d.ts +37 -0
  28. package/dist/generators/generators/procedure.d.ts.map +1 -0
  29. package/dist/generators/generators/procedure.js +99 -0
  30. package/dist/generators/generators/procedure.js.map +1 -0
  31. package/dist/generators/generators/resource.d.ts +29 -0
  32. package/dist/generators/generators/resource.d.ts.map +1 -0
  33. package/dist/generators/generators/resource.js +124 -0
  34. package/dist/generators/generators/resource.js.map +1 -0
  35. package/dist/generators/generators/schema.d.ts +28 -0
  36. package/dist/generators/generators/schema.d.ts.map +1 -0
  37. package/dist/generators/generators/schema.js +83 -0
  38. package/dist/generators/generators/schema.js.map +1 -0
  39. package/dist/generators/generators/test.d.ts +28 -0
  40. package/dist/generators/generators/test.d.ts.map +1 -0
  41. package/dist/generators/generators/test.js +96 -0
  42. package/dist/generators/generators/test.js.map +1 -0
  43. package/dist/generators/index.d.ts +16 -0
  44. package/dist/generators/index.d.ts.map +1 -0
  45. package/dist/generators/index.js +16 -0
  46. package/dist/generators/index.js.map +1 -0
  47. package/dist/generators/registry.d.ts +97 -0
  48. package/dist/generators/registry.d.ts.map +1 -0
  49. package/dist/generators/registry.js +253 -0
  50. package/dist/generators/registry.js.map +1 -0
  51. package/dist/generators/templates/migration.d.ts +23 -0
  52. package/dist/generators/templates/migration.d.ts.map +1 -0
  53. package/dist/generators/templates/migration.js +389 -0
  54. package/dist/generators/templates/migration.js.map +1 -0
  55. package/dist/generators/templates/model.d.ts +37 -0
  56. package/dist/generators/templates/model.d.ts.map +1 -0
  57. package/dist/generators/templates/model.js +374 -0
  58. package/dist/generators/templates/model.js.map +1 -0
  59. package/dist/generators/templates/procedure.d.ts +25 -0
  60. package/dist/generators/templates/procedure.d.ts.map +1 -0
  61. package/dist/generators/templates/procedure.js +274 -0
  62. package/dist/generators/templates/procedure.js.map +1 -0
  63. package/dist/generators/templates/resource.d.ts +34 -0
  64. package/dist/generators/templates/resource.d.ts.map +1 -0
  65. package/dist/generators/templates/resource.js +550 -0
  66. package/dist/generators/templates/resource.js.map +1 -0
  67. package/dist/generators/templates/schema.d.ts +33 -0
  68. package/dist/generators/templates/schema.d.ts.map +1 -0
  69. package/dist/generators/templates/schema.js +248 -0
  70. package/dist/generators/templates/schema.js.map +1 -0
  71. package/dist/generators/templates/test.d.ts +31 -0
  72. package/dist/generators/templates/test.d.ts.map +1 -0
  73. package/dist/generators/templates/test.js +882 -0
  74. package/dist/generators/templates/test.js.map +1 -0
  75. package/dist/generators/types.d.ts +211 -0
  76. package/dist/generators/types.d.ts.map +1 -0
  77. package/dist/generators/types.js +54 -0
  78. package/dist/generators/types.js.map +1 -0
  79. package/dist/generators/utils/filesystem.d.ts +68 -0
  80. package/dist/generators/utils/filesystem.d.ts.map +1 -0
  81. package/dist/generators/utils/filesystem.js +217 -0
  82. package/dist/generators/utils/filesystem.js.map +1 -0
  83. package/dist/generators/utils/naming.d.ts +122 -0
  84. package/dist/generators/utils/naming.d.ts.map +1 -0
  85. package/dist/generators/utils/naming.js +198 -0
  86. package/dist/generators/utils/naming.js.map +1 -0
  87. package/dist/index.d.ts +4 -0
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +4 -0
  90. package/dist/index.js.map +1 -1
  91. package/dist/migrations/commands/fresh.d.ts +11 -0
  92. package/dist/migrations/commands/fresh.d.ts.map +1 -0
  93. package/dist/migrations/commands/fresh.js +164 -0
  94. package/dist/migrations/commands/fresh.js.map +1 -0
  95. package/dist/migrations/commands/index.d.ts +11 -0
  96. package/dist/migrations/commands/index.d.ts.map +1 -0
  97. package/dist/migrations/commands/index.js +11 -0
  98. package/dist/migrations/commands/index.js.map +1 -0
  99. package/dist/migrations/commands/reset.d.ts +11 -0
  100. package/dist/migrations/commands/reset.d.ts.map +1 -0
  101. package/dist/migrations/commands/reset.js +258 -0
  102. package/dist/migrations/commands/reset.js.map +1 -0
  103. package/dist/migrations/commands/rollback.d.ts +11 -0
  104. package/dist/migrations/commands/rollback.d.ts.map +1 -0
  105. package/dist/migrations/commands/rollback.js +241 -0
  106. package/dist/migrations/commands/rollback.js.map +1 -0
  107. package/dist/migrations/commands/run.d.ts +11 -0
  108. package/dist/migrations/commands/run.d.ts.map +1 -0
  109. package/dist/migrations/commands/run.js +183 -0
  110. package/dist/migrations/commands/run.js.map +1 -0
  111. package/dist/migrations/commands/status.d.ts +11 -0
  112. package/dist/migrations/commands/status.d.ts.map +1 -0
  113. package/dist/migrations/commands/status.js +154 -0
  114. package/dist/migrations/commands/status.js.map +1 -0
  115. package/dist/migrations/errors.d.ts +74 -0
  116. package/dist/migrations/errors.d.ts.map +1 -0
  117. package/dist/migrations/errors.js +155 -0
  118. package/dist/migrations/errors.js.map +1 -0
  119. package/dist/migrations/index.d.ts +13 -0
  120. package/dist/migrations/index.d.ts.map +1 -0
  121. package/dist/migrations/index.js +17 -0
  122. package/dist/migrations/index.js.map +1 -0
  123. package/dist/migrations/loader.d.ts +44 -0
  124. package/dist/migrations/loader.d.ts.map +1 -0
  125. package/dist/migrations/loader.js +181 -0
  126. package/dist/migrations/loader.js.map +1 -0
  127. package/dist/migrations/prisma-wrapper.d.ts +60 -0
  128. package/dist/migrations/prisma-wrapper.d.ts.map +1 -0
  129. package/dist/migrations/prisma-wrapper.js +184 -0
  130. package/dist/migrations/prisma-wrapper.js.map +1 -0
  131. package/dist/migrations/rollback-runner.d.ts +40 -0
  132. package/dist/migrations/rollback-runner.d.ts.map +1 -0
  133. package/dist/migrations/rollback-runner.js +191 -0
  134. package/dist/migrations/rollback-runner.js.map +1 -0
  135. package/dist/migrations/types.d.ts +214 -0
  136. package/dist/migrations/types.d.ts.map +1 -0
  137. package/dist/migrations/types.js +19 -0
  138. package/dist/migrations/types.js.map +1 -0
  139. package/package.json +29 -8
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/generators/generators/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAqB,MAAM,uBAAuB,CAAC;AAQpG,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,aAA2B;IACpD,QAAQ,GAAsB;QACrC,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,iEAAiE;QAC9E,eAAe,EAAE;;;;;;;;;;;CAWpB;QACG,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,QAAQ,EAAE,UAAU;KACrB,CAAC;IAEO,OAAO,GAAmC;QACjD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,8CAA8C;YAC3D,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,qDAAqD;YAClE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,2CAA2C;YACxD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,2CAA2C;YACxD,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;SACd;KACF,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,GAA4B;QAC1C,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;YAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC;YAC1C,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC;YAClE,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,IAAI,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAqC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3C,2BAA2B;QAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE1C,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEvD,OAAO;YACL,KAAK;YACL,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,cAAc,EAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Procedure Generator
3
+ *
4
+ * Generates procedure files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox generate procedure <name> [options]
8
+ * velox g p <name> [options]
9
+ *
10
+ * Examples:
11
+ * velox generate procedure users # Simple get procedure
12
+ * velox generate procedure posts --crud # Full CRUD procedures
13
+ * velox g p comments --crud --paginated # CRUD with pagination
14
+ */
15
+ import { BaseGenerator } from '../base.js';
16
+ import { type ProcedureOptions } from '../templates/procedure.js';
17
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
18
+ /**
19
+ * Procedure generator - creates procedure files
20
+ */
21
+ export declare class ProcedureGenerator extends BaseGenerator<ProcedureOptions> {
22
+ readonly metadata: GeneratorMetadata;
23
+ readonly options: ReadonlyArray<GeneratorOption>;
24
+ /**
25
+ * Validate and transform raw options
26
+ */
27
+ validateOptions(raw: Record<string, unknown>): ProcedureOptions;
28
+ /**
29
+ * Generate procedure files
30
+ */
31
+ generate(config: GeneratorConfig<ProcedureOptions>): Promise<GeneratorOutput>;
32
+ }
33
+ /**
34
+ * Create a new procedure generator instance
35
+ */
36
+ export declare function createProcedureGenerator(): ProcedureGenerator;
37
+ //# sourceMappingURL=procedure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/procedure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAEV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,gBAAgB,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAgBlC;IAEF,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAe9C;IAEF;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB;IAY/D;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAqBpF;AAMD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Procedure Generator
3
+ *
4
+ * Generates procedure files for VeloxTS applications.
5
+ *
6
+ * Usage:
7
+ * velox generate procedure <name> [options]
8
+ * velox g p <name> [options]
9
+ *
10
+ * Examples:
11
+ * velox generate procedure users # Simple get procedure
12
+ * velox generate procedure posts --crud # Full CRUD procedures
13
+ * velox g p comments --crud --paginated # CRUD with pagination
14
+ */
15
+ import { BaseGenerator } from '../base.js';
16
+ import { getProcedureInstructions, getProcedurePath, procedureTemplate, } from '../templates/procedure.js';
17
+ // ============================================================================
18
+ // Generator Implementation
19
+ // ============================================================================
20
+ /**
21
+ * Procedure generator - creates procedure files
22
+ */
23
+ export class ProcedureGenerator extends BaseGenerator {
24
+ metadata = {
25
+ name: 'procedure',
26
+ description: 'Generate a procedure file for API endpoints',
27
+ longDescription: `
28
+ Generate a VeloxTS procedure file that defines API endpoints.
29
+
30
+ By default, generates a simple procedure with just a get operation.
31
+ Use --crud to generate full CRUD operations (get, list, create, update, patch, delete).
32
+
33
+ Examples:
34
+ velox generate procedure users # Simple get procedure
35
+ velox generate procedure posts --crud # Full CRUD procedures
36
+ velox g p comments --crud --paginated # CRUD with pagination
37
+ `,
38
+ aliases: ['p', 'proc'],
39
+ category: 'resource',
40
+ };
41
+ options = [
42
+ {
43
+ name: 'crud',
44
+ short: 'c',
45
+ description: 'Generate full CRUD operations (get, list, create, update, patch, delete)',
46
+ type: 'boolean',
47
+ default: false,
48
+ },
49
+ {
50
+ name: 'paginated',
51
+ short: 'P',
52
+ description: 'Include pagination for list operation (requires --crud)',
53
+ type: 'boolean',
54
+ default: false,
55
+ },
56
+ ];
57
+ /**
58
+ * Validate and transform raw options
59
+ */
60
+ validateOptions(raw) {
61
+ const crud = Boolean(raw.crud ?? false);
62
+ const paginated = Boolean(raw.paginated ?? false);
63
+ // Warn if --paginated without --crud (paginated only applies to list)
64
+ if (paginated && !crud) {
65
+ // Silently enable pagination anyway - it will work when user adds list manually
66
+ }
67
+ return { crud, paginated };
68
+ }
69
+ /**
70
+ * Generate procedure files
71
+ */
72
+ async generate(config) {
73
+ const context = this.createContext(config);
74
+ const { entity } = context;
75
+ // Generate procedure content using template
76
+ const content = procedureTemplate(context);
77
+ // Create the generated file
78
+ const file = {
79
+ path: getProcedurePath(entity.plural),
80
+ content,
81
+ };
82
+ // Generate post-creation instructions
83
+ const postInstructions = getProcedureInstructions(entity.plural, entity.pascal);
84
+ return {
85
+ files: [file],
86
+ postInstructions,
87
+ };
88
+ }
89
+ }
90
+ // ============================================================================
91
+ // Export
92
+ // ============================================================================
93
+ /**
94
+ * Create a new procedure generator instance
95
+ */
96
+ export function createProcedureGenerator() {
97
+ return new ProcedureGenerator();
98
+ }
99
+ //# sourceMappingURL=procedure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../../../src/generators/generators/procedure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAEhB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AASnC,+EAA+E;AAC/E,2BAA2B;AAC3B,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAA+B;IAC5D,QAAQ,GAAsB;QACrC,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,6CAA6C;QAC1D,eAAe,EAAE;;;;;;;;;;CAUpB;QACG,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,UAAU;KACrB,CAAC;IAEO,OAAO,GAAmC;QACjD;YACE,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,0EAA0E;YACvF,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,yDAAyD;YACtE,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;SACf;KACF,CAAC;IAEF;;OAEG;IACH,eAAe,CAAC,GAA4B;QAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC;QAElD,sEAAsE;QACtE,IAAI,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC;YACvB,gFAAgF;QAClF,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAyC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAE3B,4CAA4C;QAC5C,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAE3C,4BAA4B;QAC5B,MAAM,IAAI,GAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,OAAO;SACR,CAAC;QAEF,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhF,OAAO;YACL,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,gBAAgB;SACjB,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,SAAS;AACT,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,IAAI,kBAAkB,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Resource Generator
3
+ *
4
+ * Generates a complete resource with model, schema, procedures, and tests.
5
+ * This is the "full stack" generator for quickly scaffolding new entities.
6
+ */
7
+ import { BaseGenerator } from '../base.js';
8
+ import { type ResourceOptions } from '../templates/resource.js';
9
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
10
+ /**
11
+ * Resource generator implementation
12
+ */
13
+ export declare class ResourceGenerator extends BaseGenerator<ResourceOptions> {
14
+ readonly metadata: GeneratorMetadata;
15
+ readonly options: ReadonlyArray<GeneratorOption>;
16
+ /**
17
+ * Validate resource-specific options
18
+ */
19
+ validateOptions(rawOptions: Record<string, unknown>): ResourceOptions;
20
+ /**
21
+ * Generate resource files
22
+ */
23
+ generate(config: GeneratorConfig<ResourceOptions>): Promise<GeneratorOutput>;
24
+ }
25
+ /**
26
+ * Create a new resource generator instance
27
+ */
28
+ export declare function createResourceGenerator(): ResourceGenerator;
29
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/resource.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAgFrB;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,eAAe,CAAC;IACnE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAW;IAE3D;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,eAAe;IAarE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CASnF;AAMD;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAE3D"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Resource Generator
3
+ *
4
+ * Generates a complete resource with model, schema, procedures, and tests.
5
+ * This is the "full stack" generator for quickly scaffolding new entities.
6
+ */
7
+ import { BaseGenerator } from '../base.js';
8
+ import { generateResourceFiles, getResourceInstructions, } from '../templates/resource.js';
9
+ // ============================================================================
10
+ // Generator Metadata
11
+ // ============================================================================
12
+ const metadata = {
13
+ name: 'resource',
14
+ description: 'Generate complete resource (model, schema, procedures, tests)',
15
+ category: 'resource',
16
+ aliases: ['r', 'res'],
17
+ };
18
+ // ============================================================================
19
+ // Generator Options
20
+ // ============================================================================
21
+ const options = [
22
+ {
23
+ name: 'crud',
24
+ type: 'boolean',
25
+ description: 'Generate full CRUD operations',
26
+ default: true,
27
+ flag: '-c, --crud',
28
+ },
29
+ {
30
+ name: 'paginated',
31
+ type: 'boolean',
32
+ description: 'Include pagination for list operations',
33
+ default: true,
34
+ flag: '-P, --paginated',
35
+ },
36
+ {
37
+ name: 'softDelete',
38
+ type: 'boolean',
39
+ description: 'Include soft delete support',
40
+ default: false,
41
+ flag: '-s, --soft-delete',
42
+ },
43
+ {
44
+ name: 'timestamps',
45
+ type: 'boolean',
46
+ description: 'Include timestamp fields (createdAt, updatedAt)',
47
+ default: true,
48
+ flag: '-t, --timestamps',
49
+ },
50
+ {
51
+ name: 'withTests',
52
+ type: 'boolean',
53
+ description: 'Generate test files',
54
+ default: true,
55
+ flag: '-W, --with-tests',
56
+ },
57
+ {
58
+ name: 'skipModel',
59
+ type: 'boolean',
60
+ description: 'Skip Prisma model generation',
61
+ default: false,
62
+ flag: '--skip-model',
63
+ },
64
+ {
65
+ name: 'skipSchema',
66
+ type: 'boolean',
67
+ description: 'Skip Zod schema generation',
68
+ default: false,
69
+ flag: '--skip-schema',
70
+ },
71
+ {
72
+ name: 'skipProcedure',
73
+ type: 'boolean',
74
+ description: 'Skip procedure generation',
75
+ default: false,
76
+ flag: '--skip-procedure',
77
+ },
78
+ ];
79
+ // ============================================================================
80
+ // Generator Class
81
+ // ============================================================================
82
+ /**
83
+ * Resource generator implementation
84
+ */
85
+ export class ResourceGenerator extends BaseGenerator {
86
+ metadata = metadata;
87
+ options = options;
88
+ /**
89
+ * Validate resource-specific options
90
+ */
91
+ validateOptions(rawOptions) {
92
+ return {
93
+ crud: Boolean(rawOptions.crud ?? true),
94
+ paginated: Boolean(rawOptions.paginated ?? true),
95
+ softDelete: Boolean(rawOptions.softDelete ?? false),
96
+ timestamps: Boolean(rawOptions.timestamps ?? true),
97
+ withTests: Boolean(rawOptions.withTests ?? true),
98
+ skipModel: Boolean(rawOptions.skipModel ?? false),
99
+ skipSchema: Boolean(rawOptions.skipSchema ?? false),
100
+ skipProcedure: Boolean(rawOptions.skipProcedure ?? false),
101
+ };
102
+ }
103
+ /**
104
+ * Generate resource files
105
+ */
106
+ async generate(config) {
107
+ const ctx = this.createContext(config);
108
+ const files = generateResourceFiles(ctx);
109
+ return {
110
+ files,
111
+ postInstructions: getResourceInstructions(ctx.entity.pascal, config.options),
112
+ };
113
+ }
114
+ }
115
+ // ============================================================================
116
+ // Factory Function
117
+ // ============================================================================
118
+ /**
119
+ * Create a new resource generator instance
120
+ */
121
+ export function createResourceGenerator() {
122
+ return new ResourceGenerator();
123
+ }
124
+ //# sourceMappingURL=resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.js","sourceRoot":"","sources":["../../../src/generators/generators/resource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Schema Generator
3
+ *
4
+ * Generates Zod validation schemas for VeloxTS applications.
5
+ */
6
+ import { BaseGenerator } from '../base.js';
7
+ import { type SchemaOptions } from '../templates/schema.js';
8
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
9
+ /**
10
+ * Schema generator implementation
11
+ */
12
+ export declare class SchemaGenerator extends BaseGenerator<SchemaOptions> {
13
+ readonly metadata: GeneratorMetadata;
14
+ readonly options: ReadonlyArray<GeneratorOption>;
15
+ /**
16
+ * Validate schema-specific options
17
+ */
18
+ validateOptions(rawOptions: Record<string, unknown>): SchemaOptions;
19
+ /**
20
+ * Generate schema files
21
+ */
22
+ generate(config: GeneratorConfig<SchemaOptions>): Promise<GeneratorOutput>;
23
+ }
24
+ /**
25
+ * Create a new schema generator instance
26
+ */
27
+ export declare function createSchemaGenerator(): SchemaGenerator;
28
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AA6CrB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa,CAAC,aAAa,CAAC;IAC/D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAW;IAE3D;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa;IAQnE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CASjF;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,CAEvD"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Schema Generator
3
+ *
4
+ * Generates Zod validation schemas for VeloxTS applications.
5
+ */
6
+ import { BaseGenerator } from '../base.js';
7
+ import { generateSchemaFiles, getSchemaInstructions, } from '../templates/schema.js';
8
+ // ============================================================================
9
+ // Generator Metadata
10
+ // ============================================================================
11
+ const metadata = {
12
+ name: 'schema',
13
+ description: 'Generate Zod validation schemas',
14
+ category: 'resource',
15
+ aliases: ['s', 'zod'],
16
+ };
17
+ // ============================================================================
18
+ // Generator Options
19
+ // ============================================================================
20
+ const options = [
21
+ {
22
+ name: 'crud',
23
+ type: 'boolean',
24
+ description: 'Generate CRUD-related schemas (create, update, patch, list)',
25
+ default: false,
26
+ flag: '-c, --crud',
27
+ },
28
+ {
29
+ name: 'timestamps',
30
+ type: 'boolean',
31
+ description: 'Include timestamp fields (createdAt, updatedAt)',
32
+ default: true,
33
+ flag: '-t, --timestamps',
34
+ },
35
+ {
36
+ name: 'softDelete',
37
+ type: 'boolean',
38
+ description: 'Include soft delete field (deletedAt)',
39
+ default: false,
40
+ flag: '-s, --soft-delete',
41
+ },
42
+ ];
43
+ // ============================================================================
44
+ // Generator Class
45
+ // ============================================================================
46
+ /**
47
+ * Schema generator implementation
48
+ */
49
+ export class SchemaGenerator extends BaseGenerator {
50
+ metadata = metadata;
51
+ options = options;
52
+ /**
53
+ * Validate schema-specific options
54
+ */
55
+ validateOptions(rawOptions) {
56
+ return {
57
+ crud: Boolean(rawOptions.crud ?? false),
58
+ timestamps: Boolean(rawOptions.timestamps ?? true),
59
+ softDelete: Boolean(rawOptions.softDelete ?? false),
60
+ };
61
+ }
62
+ /**
63
+ * Generate schema files
64
+ */
65
+ async generate(config) {
66
+ const ctx = this.createContext(config);
67
+ const files = generateSchemaFiles(ctx);
68
+ return {
69
+ files,
70
+ postInstructions: getSchemaInstructions(ctx.entity.pascal, config.options),
71
+ };
72
+ }
73
+ }
74
+ // ============================================================================
75
+ // Factory Function
76
+ // ============================================================================
77
+ /**
78
+ * Create a new schema generator instance
79
+ */
80
+ export function createSchemaGenerator() {
81
+ return new SchemaGenerator();
82
+ }
83
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/generators/generators/schema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,qBAAqB,GAEtB,MAAM,wBAAwB,CAAC;AAQhC,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,QAAQ,GAAsB;IAClC,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,iCAAiC;IAC9C,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC;CACtB,CAAC;AAEF,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,OAAO,GAAsB;IACjC;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,6DAA6D;QAC1E,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,YAAY;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iDAAiD;QAC9D,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,kBAAkB;KACzB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,mBAAmB;KAC1B;CACF,CAAC;AAEF,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,aAA4B;IACtD,QAAQ,GAAsB,QAAQ,CAAC;IACvC,OAAO,GAAmC,OAAO,CAAC;IAE3D;;OAEG;IACH,eAAe,CAAC,UAAmC;QACjD,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC;YAClD,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,CAAC;SACpD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsC;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAEvC,OAAO;YACL,KAAK;YACL,gBAAgB,EAAE,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;SAC3E,CAAC;IACJ,CAAC;CACF;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,eAAe,EAAE,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Test Generator
3
+ *
4
+ * Generates Vitest test files for VeloxTS applications.
5
+ */
6
+ import { BaseGenerator } from '../base.js';
7
+ import { type TestOptions } from '../templates/test.js';
8
+ import type { GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOutput } from '../types.js';
9
+ /**
10
+ * Test generator implementation
11
+ */
12
+ export declare class TestGenerator extends BaseGenerator<TestOptions> {
13
+ readonly metadata: GeneratorMetadata;
14
+ readonly options: ReadonlyArray<GeneratorOption>;
15
+ /**
16
+ * Validate test-specific options
17
+ */
18
+ validateOptions(rawOptions: Record<string, unknown>): TestOptions;
19
+ /**
20
+ * Generate test files
21
+ */
22
+ generate(config: GeneratorConfig<TestOptions>): Promise<GeneratorOutput>;
23
+ }
24
+ /**
25
+ * Create a new test generator instance
26
+ */
27
+ export declare function createTestGenerator(): TestGenerator;
28
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../../src/generators/generators/test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAA0C,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EAChB,MAAM,aAAa,CAAC;AAwDrB;;GAEG;AACH,qBAAa,aAAc,SAAQ,aAAa,CAAC,WAAW,CAAC;IAC3D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAY;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,CAAW;IAE3D;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW;IAwBjE;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;CAS/E;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Test Generator
3
+ *
4
+ * Generates Vitest test files for VeloxTS applications.
5
+ */
6
+ import { BaseGenerator } from '../base.js';
7
+ import { generateTestFiles, getTestInstructions } from '../templates/test.js';
8
+ // ============================================================================
9
+ // Generator Metadata
10
+ // ============================================================================
11
+ const metadata = {
12
+ name: 'test',
13
+ description: 'Generate Vitest test files',
14
+ category: 'test',
15
+ aliases: ['t', 'spec'],
16
+ };
17
+ // ============================================================================
18
+ // Generator Options
19
+ // ============================================================================
20
+ const options = [
21
+ {
22
+ name: 'type',
23
+ type: 'string',
24
+ description: 'Test type: unit, integration, or e2e',
25
+ default: 'unit',
26
+ flag: '-T, --type <type>',
27
+ },
28
+ {
29
+ name: 'target',
30
+ type: 'string',
31
+ description: 'Target to test: procedure, schema, model, service, or generic',
32
+ default: 'generic',
33
+ flag: '-G, --target <target>',
34
+ },
35
+ ];
36
+ // ============================================================================
37
+ // Validation
38
+ // ============================================================================
39
+ const validTypes = ['unit', 'integration', 'e2e'];
40
+ const validTargets = ['procedure', 'schema', 'model', 'service', 'generic'];
41
+ function isValidType(value) {
42
+ return validTypes.includes(value);
43
+ }
44
+ function isValidTarget(value) {
45
+ return validTargets.includes(value);
46
+ }
47
+ // ============================================================================
48
+ // Generator Class
49
+ // ============================================================================
50
+ /**
51
+ * Test generator implementation
52
+ */
53
+ export class TestGenerator extends BaseGenerator {
54
+ metadata = metadata;
55
+ options = options;
56
+ /**
57
+ * Validate test-specific options
58
+ */
59
+ validateOptions(rawOptions) {
60
+ const typeValue = String(rawOptions.type ?? 'unit');
61
+ const targetValue = String(rawOptions.target ?? 'generic');
62
+ // Validate type
63
+ if (!isValidType(typeValue)) {
64
+ throw new Error(`Invalid test type: "${typeValue}". Valid types are: ${validTypes.join(', ')}`);
65
+ }
66
+ // Validate target
67
+ if (!isValidTarget(targetValue)) {
68
+ throw new Error(`Invalid test target: "${targetValue}". Valid targets are: ${validTargets.join(', ')}`);
69
+ }
70
+ return {
71
+ type: typeValue,
72
+ target: targetValue,
73
+ };
74
+ }
75
+ /**
76
+ * Generate test files
77
+ */
78
+ async generate(config) {
79
+ const ctx = this.createContext(config);
80
+ const files = generateTestFiles(ctx);
81
+ return {
82
+ files,
83
+ postInstructions: getTestInstructions(ctx.entity.pascal, config.options),
84
+ };
85
+ }
86
+ }
87
+ // ============================================================================
88
+ // Factory Function
89
+ // ============================================================================
90
+ /**
91
+ * Create a new test generator instance
92
+ */
93
+ export function createTestGenerator() {
94
+ return new TestGenerator();
95
+ }
96
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/generators/generators/test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * VeloxTS Code Generators
3
+ *
4
+ * Central module for code generation infrastructure.
5
+ * Re-exports all public generator APIs.
6
+ */
7
+ export { applyCliFlags, BaseGenerator, createDefaultConfig, detectProjectContext, ensureVeloxProject, validateEntityNameDefault, } from './base.js';
8
+ export { createMigrationGenerator, createModelGenerator, createProcedureGenerator, createResourceGenerator, createSchemaGenerator, createTestGenerator, MigrationGenerator, ModelGenerator, ProcedureGenerator, ResourceGenerator, registerBuiltinGenerators, SchemaGenerator, TestGenerator, } from './generators/index.js';
9
+ export type { RegisteredGenerator } from './registry.js';
10
+ export { findSimilarGenerators, formatGeneratorList, getAllGenerators, getGenerator, getGeneratorsByCategory, registerGenerator, registry, } from './registry.js';
11
+ export type { AnyGenerator, ConflictStrategy, EntityNames, GeneratedFile, Generator, GeneratorCategory, GeneratorConfig, GeneratorMetadata, GeneratorOption, GeneratorOptionType, GeneratorOutput, ProjectContext, TemplateContext, TemplateFunction, } from './types.js';
12
+ export { GeneratorError, GeneratorErrorCode } from './types.js';
13
+ export type { WriteOptions, WriteResult } from './utils/filesystem.js';
14
+ export { dirExists, ensureDir, fileExists, formatWriteResults, formatWriteResultsJson, readFileSafe, writeFile, writeFiles, } from './utils/filesystem.js';
15
+ export { deriveEntityNames, isPlural, pluralize, singularize, toCamelCase, toHumanReadable, toKebabCase, toPascalCase, toScreamingSnakeCase, toSnakeCase, } from './utils/naming.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,UAAU,GACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * VeloxTS Code Generators
3
+ *
4
+ * Central module for code generation infrastructure.
5
+ * Re-exports all public generator APIs.
6
+ */
7
+ // Base infrastructure
8
+ export { applyCliFlags, BaseGenerator, createDefaultConfig, detectProjectContext, ensureVeloxProject, validateEntityNameDefault, } from './base.js';
9
+ // Built-in generators
10
+ export { createMigrationGenerator, createModelGenerator, createProcedureGenerator, createResourceGenerator, createSchemaGenerator, createTestGenerator, MigrationGenerator, ModelGenerator, ProcedureGenerator, ResourceGenerator, registerBuiltinGenerators, SchemaGenerator, TestGenerator, } from './generators/index.js';
11
+ export { findSimilarGenerators, formatGeneratorList, getAllGenerators, getGenerator, getGeneratorsByCategory, registerGenerator, registry, } from './registry.js';
12
+ export { GeneratorError, GeneratorErrorCode } from './types.js';
13
+ export { dirExists, ensureDir, fileExists, formatWriteResults, formatWriteResultsJson, readFileSafe, writeFile, writeFiles, } from './utils/filesystem.js';
14
+ // Utilities
15
+ export { deriveEntityNames, isPlural, pluralize, singularize, toCamelCase, toHumanReadable, toKebabCase, toPascalCase, toScreamingSnakeCase, toSnakeCase, } from './utils/naming.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,WAAW,CAAC;AACnB,sBAAsB;AACtB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EACf,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,GACT,MAAM,eAAe,CAAC;AAkBvB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,WAAW,GACZ,MAAM,mBAAmB,CAAC"}