@rapidd/build 2.1.0 → 2.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAClC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC,CAoGnH"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;CAClC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,KAAK,EAAE,GAAG,CAAA;CAAE,CAAC,CAuFnH"}
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.buildModels = buildModels;
37
37
  const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
- const child_process_1 = require("child_process");
40
39
  const prismaParser_1 = require("../parsers/prismaParser");
41
40
  const modelGenerator_1 = require("../generators/modelGenerator");
42
41
  const routeGenerator_1 = require("../generators/routeGenerator");
@@ -62,19 +61,6 @@ async function buildModels(options) {
62
61
  if (!fs.existsSync(schemaPath)) {
63
62
  throw new Error(`Prisma schema file not found at: ${schemaPath}`);
64
63
  }
65
- // Run npx prisma generate first
66
- console.log('\nRunning npx prisma generate...');
67
- try {
68
- (0, child_process_1.execSync)(`npx prisma generate --schema=${schemaPath}`, {
69
- stdio: 'inherit',
70
- cwd: process.cwd()
71
- });
72
- console.log('Prisma client generated successfully\n');
73
- }
74
- catch (_error) {
75
- console.warn('Warning: Failed to generate Prisma client');
76
- console.warn('Continuing with schema parsing fallback...\n');
77
- }
78
64
  // Try to use Prisma DMMF first (using @prisma/internals getDMMF)
79
65
  let parsedData = null;
80
66
  try {
@@ -124,7 +110,7 @@ async function buildModels(options) {
124
110
  }
125
111
  // Generate routes
126
112
  if (shouldGenerate.route) {
127
- (0, routeGenerator_1.generateAllRoutes)(filteredModels, routesDir);
113
+ (0, routeGenerator_1.generateAllRoutes)(filteredModels, routesDir, models);
128
114
  }
129
115
  return { models, enums };
130
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  export { generateModelFile, generateAllModels } from './modelGenerator';
2
- export { generateRouteFile, generateAllRoutes } from './routeGenerator';
2
+ export { generateRouteFile, generateParentRouteFile, generateSubRouteFile, generateAllRoutes } from './routeGenerator';
3
3
  export { generateACL } from './aclGenerator';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/generators/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateACL = exports.generateAllRoutes = exports.generateRouteFile = exports.generateAllModels = exports.generateModelFile = void 0;
3
+ exports.generateACL = exports.generateAllRoutes = exports.generateSubRouteFile = exports.generateParentRouteFile = exports.generateRouteFile = exports.generateAllModels = exports.generateModelFile = void 0;
4
4
  // Re-export all generators
5
5
  var modelGenerator_1 = require("./modelGenerator");
6
6
  Object.defineProperty(exports, "generateModelFile", { enumerable: true, get: function () { return modelGenerator_1.generateModelFile; } });
7
7
  Object.defineProperty(exports, "generateAllModels", { enumerable: true, get: function () { return modelGenerator_1.generateAllModels; } });
8
8
  var routeGenerator_1 = require("./routeGenerator");
9
9
  Object.defineProperty(exports, "generateRouteFile", { enumerable: true, get: function () { return routeGenerator_1.generateRouteFile; } });
10
+ Object.defineProperty(exports, "generateParentRouteFile", { enumerable: true, get: function () { return routeGenerator_1.generateParentRouteFile; } });
11
+ Object.defineProperty(exports, "generateSubRouteFile", { enumerable: true, get: function () { return routeGenerator_1.generateSubRouteFile; } });
10
12
  Object.defineProperty(exports, "generateAllRoutes", { enumerable: true, get: function () { return routeGenerator_1.generateAllRoutes; } });
11
13
  var aclGenerator_1 = require("./aclGenerator");
12
14
  Object.defineProperty(exports, "generateACL", { enumerable: true, get: function () { return aclGenerator_1.generateACL; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/index.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,mDAAwE;AAA/D,mHAAA,iBAAiB,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAC7C,mDAAwE;AAA/D,mHAAA,iBAAiB,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAC7C,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generators/index.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,mDAAwE;AAA/D,mHAAA,iBAAiB,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAC7C,mDAAuH;AAA9G,mHAAA,iBAAiB,OAAA;AAAE,yHAAA,uBAAuB,OAAA;AAAE,sHAAA,oBAAoB,OAAA;AAAE,mHAAA,iBAAiB,OAAA;AAC5F,+CAA6C;AAApC,2GAAA,WAAW,OAAA"}
@@ -1,10 +1,30 @@
1
1
  import type { ModelInfo } from '../parsers/types';
2
+ export interface SubRouteInfo {
3
+ junctionModelName: string;
4
+ junctionModelInfo: ModelInfo;
5
+ subRouteName: string;
6
+ fkFieldToParent: string;
7
+ otherFkField: string;
8
+ }
2
9
  /**
3
- * Generate Fastify route for a single model (TypeScript)
10
+ * Generate Fastify route for a standalone model (TypeScript)
4
11
  */
5
- export declare function generateRouteFile(modelName: string): string;
12
+ export declare function generateRouteFile(modelName: string, modelInfo: ModelInfo, importPathPrefix?: string): string;
6
13
  /**
7
- * Generate all route files
14
+ * Generate Fastify route for a parent model that has sub-routes (TypeScript)
8
15
  */
9
- export declare function generateAllRoutes(models: Record<string, ModelInfo>, routesDir: string): void;
16
+ export declare function generateParentRouteFile(modelName: string, modelInfo: ModelInfo, subRoutes: SubRouteInfo[]): string;
17
+ /**
18
+ * Generate Fastify sub-route for a junction table (TypeScript).
19
+ * Uses composite key { fkFieldToParent: parentId, otherFkField: subId }
20
+ * for get, update, and delete operations.
21
+ */
22
+ export declare function generateSubRouteFile(junctionModelName: string, junctionModelInfo: ModelInfo, parentModelInfo: ModelInfo, fkFieldToParent: string, otherFkField: string): string;
23
+ /**
24
+ * Generate all route files with junction-table-aware nested structure.
25
+ * @param models Models to generate routes for (may be filtered by --model)
26
+ * @param routesDir Output directory (e.g. routes/api/v1)
27
+ * @param allModels Full models map for junction detection (defaults to models)
28
+ */
29
+ export declare function generateAllRoutes(models: Record<string, ModelInfo>, routesDir: string, allModels?: Record<string, ModelInfo>): void;
10
30
  //# sourceMappingURL=routeGenerator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routeGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAalD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA+E3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiB5F"}
1
+ {"version":3,"file":"routeGenerator.d.ts","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA0GlD,MAAM,WAAW,YAAY;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,SAAS,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAkDD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,gBAAgB,SAAwB,GAAG,MAAM,CAqF3H;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,MAAM,CAiGlH;AAUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,SAAS,EAC5B,eAAe,EAAE,SAAS,EAC1B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM,CAoGR;AAID;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,IAAI,CA4EN"}
@@ -34,6 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.generateRouteFile = generateRouteFile;
37
+ exports.generateParentRouteFile = generateParentRouteFile;
38
+ exports.generateSubRouteFile = generateSubRouteFile;
37
39
  exports.generateAllRoutes = generateAllRoutes;
38
40
  const fs = __importStar(require("fs"));
39
41
  const path = __importStar(require("path"));
@@ -47,13 +49,126 @@ function toClassName(modelName) {
47
49
  .map(word => word.charAt(0).toUpperCase() + word.slice(1))
48
50
  .join('');
49
51
  }
52
+ const numericTypes = ['Int', 'Float', 'Decimal', 'BigInt'];
50
53
  /**
51
- * Generate Fastify route for a single model (TypeScript)
54
+ * Detect if the primary key field is numeric
52
55
  */
53
- function generateRouteFile(modelName) {
56
+ function isNumericId(modelInfo) {
57
+ for (const field of Object.values(modelInfo.fields)) {
58
+ if (field.isId && numericTypes.includes(field.type)) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ /**
65
+ * Detect if a model is a junction (n:m) table.
66
+ * A junction table has a composite primary key (@@id) with exactly 2 fields,
67
+ * where each field maps to a parent relation.
68
+ * Models with 3+ composite key fields are skipped entirely (no routes generated).
69
+ */
70
+ function detectJunctionTable(_modelName, modelInfo) {
71
+ if (!modelInfo.compositeKey || modelInfo.compositeKey.length !== 2) {
72
+ return { isJunction: false, parentRelations: [] };
73
+ }
74
+ // Map each composite key field to its parent relation
75
+ const parentRelations = [];
76
+ for (const keyField of modelInfo.compositeKey) {
77
+ const rel = modelInfo.relations.find(r => r.relationFromFields && r.relationFromFields.includes(keyField));
78
+ if (rel) {
79
+ parentRelations.push({
80
+ fkField: keyField,
81
+ parentModel: rel.type,
82
+ });
83
+ }
84
+ }
85
+ // Both composite key fields must map to parent relations
86
+ return {
87
+ isJunction: parentRelations.length === 2,
88
+ parentRelations,
89
+ };
90
+ }
91
+ /**
92
+ * Normalise a word for prefix comparison (strip trailing plural 's'/'es').
93
+ */
94
+ function singularize(word) {
95
+ if (word.endsWith('ies'))
96
+ return word.slice(0, -3) + 'y';
97
+ if (word.endsWith('ses') || word.endsWith('xes') || word.endsWith('zes') || word.endsWith('ches') || word.endsWith('shes'))
98
+ return word.slice(0, -2);
99
+ if (word.endsWith('s') && !word.endsWith('ss'))
100
+ return word.slice(0, -1);
101
+ return word;
102
+ }
103
+ /**
104
+ * Derive sub-route name by stripping the common leading word(s)
105
+ * between parent model name and junction table name.
106
+ * Handles plural/singular differences (e.g. "messages" vs "message_attachments").
107
+ */
108
+ function computeSubRouteName(parentName, junctionName) {
109
+ const parentWords = parentName.split('_');
110
+ const junctionWords = junctionName.split('_');
111
+ let commonCount = 0;
112
+ for (let i = 0; i < Math.min(parentWords.length, junctionWords.length); i++) {
113
+ if (singularize(parentWords[i]) === singularize(junctionWords[i])) {
114
+ commonCount++;
115
+ }
116
+ else {
117
+ break;
118
+ }
119
+ }
120
+ if (commonCount > 0 && commonCount < junctionWords.length) {
121
+ return junctionWords.slice(commonCount).join('_');
122
+ }
123
+ return junctionName;
124
+ }
125
+ /**
126
+ * Analyse all models and build the junction / parent-sub-route map.
127
+ */
128
+ function buildJunctionMap(models) {
129
+ const junctionModels = new Set();
130
+ const parentSubRoutes = new Map();
131
+ for (const [modelName, modelInfo] of Object.entries(models)) {
132
+ const junction = detectJunctionTable(modelName, modelInfo);
133
+ if (!junction.isJunction)
134
+ continue;
135
+ junctionModels.add(modelName);
136
+ for (let i = 0; i < junction.parentRelations.length; i++) {
137
+ const parentRel = junction.parentRelations[i];
138
+ const otherRels = junction.parentRelations.filter((_, j) => j !== i);
139
+ if (!models[parentRel.parentModel])
140
+ continue;
141
+ if (!parentSubRoutes.has(parentRel.parentModel)) {
142
+ parentSubRoutes.set(parentRel.parentModel, []);
143
+ }
144
+ parentSubRoutes.get(parentRel.parentModel).push({
145
+ junctionModelName: modelName,
146
+ junctionModelInfo: modelInfo,
147
+ subRouteName: computeSubRouteName(parentRel.parentModel, modelName),
148
+ fkFieldToParent: parentRel.fkField,
149
+ otherFkField: otherRels[0].fkField,
150
+ });
151
+ }
152
+ }
153
+ // Remove sub-route entries where the parent is itself a junction table
154
+ for (const parentModel of parentSubRoutes.keys()) {
155
+ if (junctionModels.has(parentModel)) {
156
+ parentSubRoutes.delete(parentModel);
157
+ }
158
+ }
159
+ return { junctionModels, parentSubRoutes };
160
+ }
161
+ // ─── Route file generators ──────────────────────────────────────────
162
+ /**
163
+ * Generate Fastify route for a standalone model (TypeScript)
164
+ */
165
+ function generateRouteFile(modelName, modelInfo, importPathPrefix = '../../../src/models') {
54
166
  const className = toClassName(modelName);
167
+ const numeric = isNumericId(modelInfo);
168
+ const idType = numeric ? 'number' : 'string';
169
+ const idCast = numeric ? 'Number(rawId)' : 'rawId';
55
170
  return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
56
- import { ${className}, QueryBuilder } from '../../../src/models/${className}';
171
+ import { ${className}, QueryBuilder } from '${importPathPrefix}/${className}';
57
172
 
58
173
  const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
59
174
  fastify.addHook('preHandler', async (request, reply) => {
@@ -77,7 +192,8 @@ const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
77
192
 
78
193
  fastify.get('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
79
194
  try {
80
- const { id } = request.params as { id: string };
195
+ const { id: rawId } = request.params as { id: string };
196
+ const id: ${idType} = ${idCast};
81
197
  const { include = '' } = request.query as { include?: string };
82
198
  const model = (request as any).${className} as ${className};
83
199
  const response = await model.get(id, include);
@@ -101,7 +217,8 @@ const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
101
217
  });
102
218
 
103
219
  fastify.patch('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
104
- const { id } = request.params as { id: string };
220
+ const { id: rawId } = request.params as { id: string };
221
+ const id: ${idType} = ${idCast};
105
222
  const payload = request.body as Record<string, unknown>;
106
223
  try {
107
224
  const model = (request as any).${className} as ${className};
@@ -115,7 +232,8 @@ const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
115
232
 
116
233
  fastify.delete('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
117
234
  try {
118
- const { id } = request.params as { id: string };
235
+ const { id: rawId } = request.params as { id: string };
236
+ const id: ${idType} = ${idCast};
119
237
  const model = (request as any).${className} as ${className};
120
238
  await model.delete(id);
121
239
  return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
@@ -130,23 +248,280 @@ export default ${modelName}Routes;
130
248
  `;
131
249
  }
132
250
  /**
133
- * Generate all route files
251
+ * Generate Fastify route for a parent model that has sub-routes (TypeScript)
134
252
  */
135
- function generateAllRoutes(models, routesDir) {
136
- // Create routes directory if it doesn't exist
253
+ function generateParentRouteFile(modelName, modelInfo, subRoutes) {
254
+ const className = toClassName(modelName);
255
+ const numeric = isNumericId(modelInfo);
256
+ const idType = numeric ? 'number' : 'string';
257
+ const idCast = numeric ? 'Number(rawId)' : 'rawId';
258
+ const importPath = '../../../../src/models';
259
+ const subRouteImports = subRoutes.map(sr => `import ${sr.subRouteName}Routes from './_${sr.subRouteName}';`).join('\n');
260
+ const subRouteRegistrations = subRoutes.map(sr => ` fastify.register(${sr.subRouteName}Routes, { prefix: '/:id/${sr.subRouteName}' });`).join('\n');
261
+ return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
262
+ import { ${className}, QueryBuilder } from '${importPath}/${className}';
263
+ ${subRouteImports}
264
+
265
+ const ${modelName}Routes: FastifyPluginAsync = async (fastify) => {
266
+ fastify.addHook('preHandler', async (request, reply) => {
267
+ if (!request.user) {
268
+ return reply.sendError(401, 'no_valid_session');
269
+ }
270
+ (request as any).${className} = new ${className}({ user: request.user });
271
+ });
272
+
273
+ ${subRouteRegistrations}
274
+
275
+ fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => {
276
+ try {
277
+ const { q = {}, include = '', limit = '25', offset = '0', sortBy = 'id', sortOrder = 'asc' } = request.query as Record<string, string>;
278
+ const model = (request as any).${className} as ${className};
279
+ const results = await model.getMany(q, include, Number(limit), Number(offset), sortBy, sortOrder as 'asc' | 'desc');
280
+ return reply.sendList(results.data, results.meta);
281
+ } catch (error: any) {
282
+ const response = QueryBuilder.errorHandler(error);
283
+ return reply.code(response.status_code).send(response);
284
+ }
285
+ });
286
+
287
+ fastify.get('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
288
+ try {
289
+ const { id: rawId } = request.params as { id: string };
290
+ const id: ${idType} = ${idCast};
291
+ const { include = '' } = request.query as { include?: string };
292
+ const model = (request as any).${className} as ${className};
293
+ const response = await model.get(id, include);
294
+ return reply.send(response);
295
+ } catch (error: any) {
296
+ const response = QueryBuilder.errorHandler(error);
297
+ return reply.code(response.status_code).send(response);
298
+ }
299
+ });
300
+
301
+ fastify.post('/', async (request: FastifyRequest, reply: FastifyReply) => {
302
+ const payload = request.body as Record<string, unknown>;
303
+ try {
304
+ const model = (request as any).${className} as ${className};
305
+ const response = await model.create(payload);
306
+ return reply.code(201).send(response);
307
+ } catch (error: any) {
308
+ const response = QueryBuilder.errorHandler(error, payload);
309
+ return reply.code(response.status_code).send(response);
310
+ }
311
+ });
312
+
313
+ fastify.patch('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
314
+ const { id: rawId } = request.params as { id: string };
315
+ const id: ${idType} = ${idCast};
316
+ const payload = request.body as Record<string, unknown>;
317
+ try {
318
+ const model = (request as any).${className} as ${className};
319
+ const response = await model.update(id, payload);
320
+ return reply.send(response);
321
+ } catch (error: any) {
322
+ const response = QueryBuilder.errorHandler(error, payload);
323
+ return reply.code(response.status_code).send(response);
324
+ }
325
+ });
326
+
327
+ fastify.delete('/:id', async (request: FastifyRequest, reply: FastifyReply) => {
328
+ try {
329
+ const { id: rawId } = request.params as { id: string };
330
+ const id: ${idType} = ${idCast};
331
+ const model = (request as any).${className} as ${className};
332
+ await model.delete(id);
333
+ return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
334
+ } catch (error: any) {
335
+ const response = QueryBuilder.errorHandler(error);
336
+ return reply.code(response.status_code).send(response);
337
+ }
338
+ });
339
+ };
340
+
341
+ export default ${modelName}Routes;
342
+ `;
343
+ }
344
+ /**
345
+ * Check if a specific field in a model is numeric
346
+ */
347
+ function isFieldNumeric(modelInfo, fieldName) {
348
+ const field = modelInfo.fields[fieldName];
349
+ return !!field && numericTypes.includes(field.type);
350
+ }
351
+ /**
352
+ * Generate Fastify sub-route for a junction table (TypeScript).
353
+ * Uses composite key { fkFieldToParent: parentId, otherFkField: subId }
354
+ * for get, update, and delete operations.
355
+ */
356
+ function generateSubRouteFile(junctionModelName, junctionModelInfo, parentModelInfo, fkFieldToParent, otherFkField) {
357
+ const className = toClassName(junctionModelName);
358
+ const numericParentId = isNumericId(parentModelInfo);
359
+ const numericOtherFk = isFieldNumeric(junctionModelInfo, otherFkField);
360
+ const parentIdType = numericParentId ? 'number' : 'string';
361
+ const otherFkType = numericOtherFk ? 'number' : 'string';
362
+ const parentIdCast = numericParentId ? 'Number(rawParentId)' : 'rawParentId';
363
+ const otherFkCast = numericOtherFk ? 'Number(rawSubId)' : 'rawSubId';
364
+ const importPath = '../../../../src/models';
365
+ return `import { FastifyPluginAsync, FastifyRequest, FastifyReply } from 'fastify';
366
+ import { ${className}, QueryBuilder } from '${importPath}/${className}';
367
+
368
+ const ${junctionModelName}Routes: FastifyPluginAsync = async (fastify) => {
369
+ fastify.addHook('preHandler', async (request, reply) => {
370
+ if (!request.user) {
371
+ return reply.sendError(401, 'no_valid_session');
372
+ }
373
+ (request as any).${className} = new ${className}({ user: request.user });
374
+ });
375
+
376
+ fastify.get('/', async (request: FastifyRequest, reply: FastifyReply) => {
377
+ try {
378
+ const { id: rawParentId } = request.params as { id: string };
379
+ const parentId: ${parentIdType} = ${parentIdCast};
380
+ const { q = {}, include = '', limit = '25', offset = '0', sortBy = 'id', sortOrder = 'asc' } = request.query as Record<string, string>;
381
+ const filter = typeof q === 'object' ? { ...q, ${fkFieldToParent}: parentId } : { ${fkFieldToParent}: parentId };
382
+ const model = (request as any).${className} as ${className};
383
+ const results = await model.getMany(filter, include, Number(limit), Number(offset), sortBy, sortOrder as 'asc' | 'desc');
384
+ return reply.sendList(results.data, results.meta);
385
+ } catch (error: any) {
386
+ const response = QueryBuilder.errorHandler(error);
387
+ return reply.code(response.status_code).send(response);
388
+ }
389
+ });
390
+
391
+ fastify.get('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
392
+ try {
393
+ const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
394
+ const parentId: ${parentIdType} = ${parentIdCast};
395
+ const ${otherFkField}: ${otherFkType} = ${otherFkCast};
396
+ const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
397
+ const { include = '' } = request.query as { include?: string };
398
+ const model = (request as any).${className} as ${className};
399
+ const response = await model.get(compositeId, include);
400
+ return reply.send(response);
401
+ } catch (error: any) {
402
+ const response = QueryBuilder.errorHandler(error);
403
+ return reply.code(response.status_code).send(response);
404
+ }
405
+ });
406
+
407
+ fastify.post('/', async (request: FastifyRequest, reply: FastifyReply) => {
408
+ const { id: rawParentId } = request.params as { id: string };
409
+ const parentId: ${parentIdType} = ${parentIdCast};
410
+ const payload = { ...(request.body as Record<string, unknown>), ${fkFieldToParent}: parentId };
411
+ try {
412
+ const model = (request as any).${className} as ${className};
413
+ const response = await model.create(payload);
414
+ return reply.code(201).send(response);
415
+ } catch (error: any) {
416
+ const response = QueryBuilder.errorHandler(error, payload);
417
+ return reply.code(response.status_code).send(response);
418
+ }
419
+ });
420
+
421
+ fastify.patch('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
422
+ const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
423
+ const parentId: ${parentIdType} = ${parentIdCast};
424
+ const ${otherFkField}: ${otherFkType} = ${otherFkCast};
425
+ const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
426
+ const payload = request.body as Record<string, unknown>;
427
+ try {
428
+ const model = (request as any).${className} as ${className};
429
+ const response = await model.update(compositeId, payload);
430
+ return reply.send(response);
431
+ } catch (error: any) {
432
+ const response = QueryBuilder.errorHandler(error, payload);
433
+ return reply.code(response.status_code).send(response);
434
+ }
435
+ });
436
+
437
+ fastify.delete('/:subId', async (request: FastifyRequest, reply: FastifyReply) => {
438
+ try {
439
+ const { id: rawParentId, subId: rawSubId } = request.params as { id: string; subId: string };
440
+ const parentId: ${parentIdType} = ${parentIdCast};
441
+ const ${otherFkField}: ${otherFkType} = ${otherFkCast};
442
+ const compositeId = { ${fkFieldToParent}: parentId, ${otherFkField} };
443
+ const model = (request as any).${className} as ${className};
444
+ await model.delete(compositeId);
445
+ return reply.sendResponse(200, 'object_deleted_successfully', { modelName: '${className}' });
446
+ } catch (error: any) {
447
+ const response = QueryBuilder.errorHandler(error);
448
+ return reply.code(response.status_code).send(response);
449
+ }
450
+ });
451
+ };
452
+
453
+ export default ${junctionModelName}Routes;
454
+ `;
455
+ }
456
+ // ─── Main generation orchestrator ───────────────────────────────────
457
+ /**
458
+ * Generate all route files with junction-table-aware nested structure.
459
+ * @param models Models to generate routes for (may be filtered by --model)
460
+ * @param routesDir Output directory (e.g. routes/api/v1)
461
+ * @param allModels Full models map for junction detection (defaults to models)
462
+ */
463
+ function generateAllRoutes(models, routesDir, allModels) {
137
464
  if (!fs.existsSync(routesDir)) {
138
465
  fs.mkdirSync(routesDir, { recursive: true });
139
466
  }
140
- // Generate individual route files (skip existing)
141
- for (const modelName of Object.keys(models)) {
142
- const routePath = path.join(routesDir, `${modelName}.ts`);
143
- if (fs.existsSync(routePath)) {
144
- console.log(`Skipped route (exists): ${modelName}.ts`);
467
+ const { junctionModels, parentSubRoutes } = buildJunctionMap(allModels ?? models);
468
+ for (const [modelName, modelInfo] of Object.entries(models)) {
469
+ // Skip models with 3+ composite key fields – no clean RESTful representation
470
+ if (modelInfo.compositeKey && modelInfo.compositeKey.length > 2) {
471
+ console.log(`Skipped route (3+ composite key): ${modelName}`);
472
+ continue;
473
+ }
474
+ // Skip junction tables – they become sub-routes, not standalone files
475
+ if (junctionModels.has(modelName)) {
476
+ console.log(`Skipped route (junction table): ${modelName}`);
145
477
  continue;
146
478
  }
147
- const routeCode = generateRouteFile(modelName);
148
- fs.writeFileSync(routePath, routeCode);
149
- console.log(`Generated route: ${modelName}.ts`);
479
+ const subRoutes = parentSubRoutes.get(modelName);
480
+ if (subRoutes && subRoutes.length > 0) {
481
+ // ── Parent model with sub-routes → directory structure ──
482
+ const parentDir = path.join(routesDir, modelName);
483
+ const indexPath = path.join(parentDir, 'index.ts');
484
+ // If a legacy flat file exists, skip entirely (never overwrite)
485
+ const legacyFlatPath = path.join(routesDir, `${modelName}.ts`);
486
+ if (fs.existsSync(legacyFlatPath)) {
487
+ console.log(`Skipped route (legacy flat file exists): ${modelName}.ts`);
488
+ continue;
489
+ }
490
+ if (!fs.existsSync(parentDir)) {
491
+ fs.mkdirSync(parentDir, { recursive: true });
492
+ }
493
+ // Generate parent index.ts
494
+ if (fs.existsSync(indexPath)) {
495
+ console.log(`Skipped route (exists): ${modelName}/index.ts`);
496
+ }
497
+ else {
498
+ const parentCode = generateParentRouteFile(modelName, modelInfo, subRoutes);
499
+ fs.writeFileSync(indexPath, parentCode);
500
+ console.log(`Generated route: ${modelName}/index.ts`);
501
+ }
502
+ // Generate each sub-route file
503
+ for (const sr of subRoutes) {
504
+ const subRoutePath = path.join(parentDir, `_${sr.subRouteName}.ts`);
505
+ if (fs.existsSync(subRoutePath)) {
506
+ console.log(`Skipped sub-route (exists): ${modelName}/_${sr.subRouteName}.ts`);
507
+ continue;
508
+ }
509
+ const subRouteCode = generateSubRouteFile(sr.junctionModelName, sr.junctionModelInfo, modelInfo, sr.fkFieldToParent, sr.otherFkField);
510
+ fs.writeFileSync(subRoutePath, subRouteCode);
511
+ console.log(`Generated sub-route: ${modelName}/_${sr.subRouteName}.ts`);
512
+ }
513
+ }
514
+ else {
515
+ // ── Standalone model → flat file (unchanged behaviour) ──
516
+ const routePath = path.join(routesDir, `${modelName}.ts`);
517
+ if (fs.existsSync(routePath)) {
518
+ console.log(`Skipped route (exists): ${modelName}.ts`);
519
+ continue;
520
+ }
521
+ const routeCode = generateRouteFile(modelName, modelInfo);
522
+ fs.writeFileSync(routePath, routeCode);
523
+ console.log(`Generated route: ${modelName}.ts`);
524
+ }
150
525
  }
151
526
  }
152
527
  //# sourceMappingURL=routeGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routeGenerator.js","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,8CA+EC;AAKD,8CAiBC;AAvHD,uCAAyB;AACzB,2CAA6B;AAG7B;;GAEG;AACH,SAAS,WAAW,CAAC,SAAiB;IACpC,OAAO,SAAS;SACb,KAAK,CAAC,eAAe,CAAC;SACtB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACzD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAAiB;IACjD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IAEzC,OAAO;WACE,SAAS,8CAA8C,SAAS;;QAEnE,SAAS;;;;;2BAKU,SAAS,UAAU,SAAS;;;;;;6CAMV,SAAS,OAAO,SAAS;;;;;;;;;;;;;6CAazB,SAAS,OAAO,SAAS;;;;;;;;;;;;6CAYzB,SAAS,OAAO,SAAS;;;;;;;;;;;;;6CAazB,SAAS,OAAO,SAAS;;;;;;;;;;;;6CAYzB,SAAS,OAAO,SAAS;;0FAEoB,SAAS;;;;;;;;iBAQlF,SAAS;CACzB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,MAAiC,EAAE,SAAiB;IACpF,8CAA8C;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,kDAAkD;IAClD,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,2BAA2B,SAAS,KAAK,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,oBAAoB,SAAS,KAAK,CAAC,CAAC;IAClD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"routeGenerator.js","sourceRoot":"","sources":["../../../src/generators/routeGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prismaParser.d.ts","sourceRoot":"","sources":["../../../src/parsers/prismaParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAqClE;AAuHD;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAqEtF"}
1
+ {"version":3,"file":"prismaParser.d.ts","sourceRoot":"","sources":["../../../src/parsers/prismaParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAA6B,MAAM,SAAS,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC;AA8BD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,YAAY,CAsClE;AAwID;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAsEtF"}
@@ -86,6 +86,7 @@ function parsePrismaSchema(schemaPath) {
86
86
  fields,
87
87
  relations: parseModelRelations(body),
88
88
  compositeKey: compositeKeyFields,
89
+ uniqueFields: parseUniqueFields(body),
89
90
  dbName: dbName || name.toLowerCase() // Default to lowercase model name
90
91
  };
91
92
  }
@@ -112,6 +113,20 @@ function parseCompositeKey(modelBody) {
112
113
  }
113
114
  return null;
114
115
  }
116
+ /**
117
+ * Parse @@unique directives to get compound unique constraints
118
+ */
119
+ function parseUniqueFields(modelBody) {
120
+ const result = [];
121
+ const lines = modelBody.split('\n').map(line => line.trim());
122
+ for (const line of lines) {
123
+ const match = line.match(/^@@unique\(\[([^\]]+)\]\)/);
124
+ if (match) {
125
+ result.push(match[1].split(',').map(f => f.trim()));
126
+ }
127
+ }
128
+ return result;
129
+ }
115
130
  /**
116
131
  * Parse @@map directive to get database table name
117
132
  */
@@ -200,14 +215,11 @@ function parseEnumValues(enumBody) {
200
215
  */
201
216
  async function parsePrismaDMMF(schemaPath) {
202
217
  try {
203
- const { getDMMF, getSchemaWithPath } = require('@prisma/internals');
204
- // Use Prisma 7's schema loader (handles prisma.config.ts and multi-file schemas)
205
- const schemaResult = await getSchemaWithPath({
206
- schemaPath: { cliProvidedPath: schemaPath }
207
- });
208
- // Pass schemas as [filePath, content] tuples for Prisma 7 compatibility
218
+ const { getDMMF } = require('@prisma/internals');
219
+ // Read schema directly to avoid getSchemaWithPath merging with prisma.config.ts
220
+ const schemaContent = fs.readFileSync(schemaPath, 'utf-8');
209
221
  const dmmf = await getDMMF({
210
- datamodel: schemaResult.schemas
222
+ datamodel: [[schemaPath, schemaContent]]
211
223
  });
212
224
  const models = {};
213
225
  for (const model of dmmf.datamodel.models) {
@@ -215,11 +227,14 @@ async function parsePrismaDMMF(schemaPath) {
215
227
  const compositeKey = model.primaryKey && model.primaryKey.fields && model.primaryKey.fields.length > 1
216
228
  ? model.primaryKey.fields
217
229
  : null;
230
+ // Extract compound unique constraints
231
+ const uniqueFields = Array.isArray(model.uniqueFields) ? model.uniqueFields : [];
218
232
  models[model.name] = {
219
233
  name: model.name,
220
234
  fields: {},
221
235
  relations: [],
222
236
  compositeKey,
237
+ uniqueFields,
223
238
  dbName: model.dbName || model.name.toLowerCase() // Use dbName from DMMF or default to lowercase
224
239
  };
225
240
  for (const field of model.fields) {
@@ -1 +1 @@
1
- {"version":3,"file":"prismaParser.js","sourceRoot":"","sources":["../../../src/parsers/prismaParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prismaParser.js","sourceRoot":"","sources":["../../../src/parsers/prismaParser.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ export interface ModelInfo {
28
28
  fields: Record<string, ModelField>;
29
29
  relations: ModelRelation[];
30
30
  compositeKey: string[] | null;
31
+ uniqueFields: string[][];
31
32
  dbName: string;
32
33
  }
33
34
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/parsers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/parsers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACnC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rapidd/build",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "description": "Dynamic code generator that transforms Prisma schemas into Fastify CRUD APIs with TypeScript",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",