@xbg.solutions/backend-core 1.1.9 → 1.2.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.
@@ -7,15 +7,14 @@ import { EntitySpecification, GeneratorConfig } from './types';
7
7
  * Code Generator Class
8
8
  */
9
9
  export declare class CodeGenerator {
10
- private templatesDir;
11
10
  private outputDir;
12
- constructor(templatesDir: string, outputDir: string);
11
+ constructor(outputDir: string);
13
12
  /**
14
13
  * Generate all code for an entity
15
14
  */
16
15
  generateEntity(entityName: string, spec: EntitySpecification, config?: Partial<GeneratorConfig>): Promise<void>;
17
16
  /**
18
- * Generate from a template file
17
+ * Generate from an embedded template
19
18
  */
20
19
  private generateFromTemplate;
21
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/generator/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAmB,MAAM,SAAS,CAAC;AAkBhF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKnD;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,IAAI,CAAC;IA8BhB;;OAEG;YACW,oBAAoB;IAoBlC;;OAEG;YACW,aAAa;IAK3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAKjE"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/generator/generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAmB,MAAM,SAAS,CAAC;AAmBhF;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACG,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,EACzB,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,OAAO,CAAC,IAAI,CAAC;IA8BhB;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;YACW,aAAa;IAK3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAgBzB;;OAEG;IACG,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAsB7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,aAAa,CAGjE"}
@@ -46,6 +46,7 @@ const fs = __importStar(require("fs"));
46
46
  const path = __importStar(require("path"));
47
47
  const handlebars_1 = __importDefault(require("handlebars"));
48
48
  const parser_1 = require("./parser");
49
+ const templates_1 = require("./templates");
49
50
  /**
50
51
  * Register Handlebars helpers
51
52
  */
@@ -62,8 +63,7 @@ handlebars_1.default.registerHelper('uppercase', (str) => {
62
63
  * Code Generator Class
63
64
  */
64
65
  class CodeGenerator {
65
- constructor(templatesDir, outputDir) {
66
- this.templatesDir = templatesDir;
66
+ constructor(outputDir) {
67
67
  this.outputDir = outputDir;
68
68
  }
69
69
  /**
@@ -88,12 +88,11 @@ class CodeGenerator {
88
88
  console.log(`✅ Generated code for ${entityName}`);
89
89
  }
90
90
  /**
91
- * Generate from a template file
91
+ * Generate from an embedded template
92
92
  */
93
93
  async generateFromTemplate(templateName, context, outputPath) {
94
- // Read template
95
- const templatePath = path.join(this.templatesDir, `${templateName}.hbs`);
96
- const templateContent = fs.readFileSync(templatePath, 'utf-8');
94
+ // Get embedded template content
95
+ const templateContent = (0, templates_1.getTemplate)(templateName);
97
96
  // Compile template
98
97
  const template = handlebars_1.default.compile(templateContent);
99
98
  // Generate code
@@ -152,8 +151,7 @@ exports.CodeGenerator = CodeGenerator;
152
151
  * Helper function to create generator instance
153
152
  */
154
153
  function createGenerator(outputDir) {
155
- const templatesDir = path.join(__dirname, '../templates');
156
154
  const output = outputDir || path.join(__dirname, '../generated');
157
- return new CodeGenerator(templatesDir, output);
155
+ return new CodeGenerator(output);
158
156
  }
159
157
  //# sourceMappingURL=generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generator/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/generator/generator.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,10 @@ function parseEntitySpecification(entityName, spec, collectionName) {
27
27
  businessRules: spec.businessRules,
28
28
  };
29
29
  }
30
+ /**
31
+ * Base entity field names (should not be duplicated in generated entities)
32
+ */
33
+ const BASE_ENTITY_FIELDS = new Set(['id', 'createdAt', 'updatedAt', 'deletedAt', 'version']);
30
34
  /**
31
35
  * Parse field definitions
32
36
  */
@@ -41,6 +45,7 @@ function parseFields(fields) {
41
45
  defaultValue: formatDefaultValue(def.default, def.type),
42
46
  validation: generateValidationRules(name, def),
43
47
  description: def.description,
48
+ isBaseEntityField: BASE_ENTITY_FIELDS.has(name),
44
49
  }));
45
50
  }
46
51
  /**
@@ -153,11 +158,12 @@ function generateValidationRules(fieldName, field) {
153
158
  */
154
159
  function generateImports(fields, relationships) {
155
160
  const imports = [
156
- "import { BaseEntity, ValidationResult, ValidationHelper } from '@xbg.solutions/backend-core';",
161
+ "import { BaseEntity, BaseEntityData, ValidationResult, ValidationHelper } from '@xbg.solutions/backend-core';",
157
162
  "import { Timestamp, FieldValue } from 'firebase-admin/firestore';",
158
163
  ];
159
- // Add relationship imports
160
- const relatedEntities = new Set(relationships.map((r) => r.entity));
164
+ // Add relationship imports (only if relationships are actually used)
165
+ // Note: Currently these imports are commented out in templates, but kept here for future use
166
+ const relatedEntities = new Set(relationships.map((r) => r.entity).filter(e => e));
161
167
  relatedEntities.forEach((entity) => {
162
168
  imports.push(`import { ${entity} } from './${entity}';`);
163
169
  });
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/generator/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/generator/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Embedded Handlebars Templates
3
+ * All code generation templates as string constants
4
+ * This ensures templates are bundled with the compiled code
5
+ */
6
+ /**
7
+ * Entity Template
8
+ * Generates entity class with data interface
9
+ */
10
+ export declare const ENTITY_TEMPLATE = "/**\n * {{entityName}} Entity\n * Generated from data model specification\n */\n\n{{#each imports}}\n{{{this}}}\n{{/each}}\n\nexport interface {{entityName}}Data extends BaseEntityData {\n{{#each fields}}\n{{#unless isBaseEntityField}}\n {{name}}{{#unless required}}?{{/unless}}: {{{tsType}}};\n{{/unless}}\n{{/each}}\n}\n\nexport class {{entityName}} extends BaseEntity {\n{{#each fields}}\n{{#unless isBaseEntityField}}\n {{name}}{{#unless required}}?{{/unless}}: {{{tsType}}};\n{{/unless}}\n{{/each}}\n\n constructor(data: {{entityName}}Data) {\n super(data);\n{{#each fields}}\n{{#unless isBaseEntityField}}\n this.{{name}} = data.{{name}}{{#if hasDefault}} || {{{defaultValue}}}{{/if}};\n{{/unless}}\n{{/each}}\n }\n\n /**\n * Get entity-specific data for Firestore\n */\n protected getEntityData(): Record<string, any> {\n return {\n{{#each fields}}\n{{#unless isBaseEntityField}}\n {{name}}: this.{{name}},\n{{/unless}}\n{{/each}}\n };\n }\n\n /**\n * Validate entity\n */\n validate(): ValidationResult {\n const errors = ValidationHelper.collectErrors(\n{{#each fields}}\n {{#each validation}}\n {{{this}}},\n {{/each}}\n{{/each}}\n );\n\n return ValidationHelper.isValidResult(errors);\n }\n\n /**\n * Create entity from Firestore document\n */\n static fromFirestore(id: string, data: Record<string, any>): {{entityName}} {\n return new {{entityName}}({\n id,\n ...data,\n });\n }\n\n /**\n * Convert to plain object for API responses\n */\n toJSON(): Record<string, any> {\n return {\n id: this.id,\n{{#each fields}}\n{{#unless isBaseEntityField}}\n {{name}}: this.{{name}},\n{{/unless}}\n{{/each}}\n createdAt: this.createdAt,\n updatedAt: this.updatedAt,\n {{#if hasSoftDelete}}\n deletedAt: this.deletedAt,\n {{/if}}\n };\n }\n}\n";
11
+ /**
12
+ * Repository Template
13
+ * Generates repository class for entity
14
+ */
15
+ export declare const REPOSITORY_TEMPLATE = "/**\n * {{entityName}} Repository\n * Generated from data model specification\n */\n\nimport { Firestore, DocumentData } from 'firebase-admin/firestore';\nimport { BaseRepository } from '@xbg.solutions/backend-core';\nimport { {{entityName}} } from '../entities/{{entityName}}';\n\nexport class {{entityName}}Repository extends BaseRepository<{{entityName}}> {\n protected collectionName = '{{collectionName}}';\n\n constructor(db: Firestore) {\n super(db);\n }\n\n /**\n * Convert Firestore document to entity\n */\n protected fromFirestore(id: string, data: DocumentData): {{entityName}} {\n return {{entityName}}.fromFirestore(id, data);\n }\n\n{{#each fields}}\n{{#if unique}}\n /**\n * Find {{../entityName}} by {{name}}\n */\n async findBy{{capitalize name}}({{name}}: {{{tsType}}}): Promise<{{../entityName}} | null> {\n const snapshot = await this.getCollection()\n .where('{{name}}', '==', {{name}})\n .where('deletedAt', '==', null)\n .limit(1)\n .get();\n\n if (snapshot.empty) {\n return null;\n }\n\n const doc = snapshot.docs[0];\n return this.fromFirestore(doc.id, doc.data());\n }\n{{/if}}\n{{/each}}\n\n{{#each relationships}}\n /**\n * Get {{name}} for {{../entityName}}\n */\n async get{{capitalize name}}({{../entityNameLower}}Id: string): Promise<{{entity}}[]> {\n // Implementation depends on relationship type\n // TODO: Implement relationship query\n return [];\n }\n{{/each}}\n}\n";
16
+ /**
17
+ * Service Template
18
+ * Generates service class for business logic
19
+ */
20
+ export declare const SERVICE_TEMPLATE = "/**\n * {{entityName}} Service\n * Generated from data model specification\n */\n\nimport { BaseService, RequestContext } from '@xbg.solutions/backend-core';\nimport { {{entityName}}, {{entityName}}Data } from '../entities/{{entityName}}';\nimport { {{entityName}}Repository } from '../repositories/{{entityName}}Repository';\n\nexport class {{entityName}}Service extends BaseService<{{entityName}}> {\n protected entityName = '{{entityName}}';\n\n constructor(repository: {{entityName}}Repository) {\n super(repository);\n }\n\n /**\n * Build entity from partial data\n */\n protected async buildEntity(data: Partial<{{entityName}}Data>): Promise<{{entityName}}> {\n return new {{entityName}}(data as {{entityName}}Data);\n }\n\n /**\n * Merge existing entity with updates\n */\n protected async mergeEntity(existing: {{entityName}}, updates: Partial<{{entityName}}Data>): Promise<{{entityName}}> {\n return new {{entityName}}({\n ...existing.toJSON(),\n ...updates,\n id: existing.id,\n });\n }\n\n{{#if accessRules}}\n /**\n * Check read access\n */\n protected async checkReadAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {\n {{#if accessRules.read}}\n const allowedRoles = [{{#each accessRules.read}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];\n\n // Check if user has required role\n if (context.userRole && allowedRoles.includes(context.userRole)) {\n return true;\n }\n\n // Check if user owns the resource\n if (allowedRoles.includes('self')) {\n // TODO: Implement ownership check based on your entity structure\n return true;\n }\n\n return false;\n {{else}}\n return true;\n {{/if}}\n }\n\n /**\n * Check update access\n */\n protected async checkUpdateAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {\n {{#if accessRules.update}}\n const allowedRoles = [{{#each accessRules.update}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];\n\n if (context.userRole && allowedRoles.includes(context.userRole)) {\n return true;\n }\n\n if (allowedRoles.includes('self')) {\n // TODO: Implement ownership check\n return true;\n }\n\n return false;\n {{else}}\n return true;\n {{/if}}\n }\n\n /**\n * Check delete access\n */\n protected async checkDeleteAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {\n {{#if accessRules.delete}}\n const allowedRoles = [{{#each accessRules.delete}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];\n\n if (context.userRole && allowedRoles.includes(context.userRole)) {\n return true;\n }\n\n return false;\n {{else}}\n return true;\n {{/if}}\n }\n{{/if}}\n\n{{#if businessRules}}\n /**\n * Business Rules:\n{{#each businessRules}}\n * - {{this}}\n{{/each}}\n */\n{{/if}}\n}\n";
21
+ /**
22
+ * Controller Template
23
+ * Generates controller class for HTTP endpoints
24
+ */
25
+ export declare const CONTROLLER_TEMPLATE = "/**\n * {{entityName}} Controller\n * Generated from data model specification\n */\n\nimport { BaseController } from '@xbg.solutions/backend-core';\nimport { {{entityName}} } from '../entities/{{entityName}}';\nimport { {{entityName}}Service } from '../services/{{entityName}}Service';\n\nexport class {{entityName}}Controller extends BaseController<{{entityName}}> {\n constructor(service: {{entityName}}Service, basePath = '/{{entityNameLower}}s') {\n super(service, basePath);\n }\n\n /**\n * Register custom routes\n */\n protected registerRoutes(): void {\n // Register standard CRUD routes\n super.registerRoutes();\n\n // Add custom routes here\n{{#each fields}}\n{{#if unique}}\n // this.router.get('/by-{{name}}/:{{name}}', this.handleFindBy{{capitalize name}}.bind(this));\n{{/if}}\n{{/each}}\n }\n\n{{#each fields}}\n{{#if unique}}\n /**\n * Find {{../entityName}} by {{name}}\n */\n // protected async handleFindBy{{capitalize name}}(req: Request, res: Response, next: NextFunction): Promise<void> {\n // try {\n // const context = this.createContext(req);\n // const { {{name}} } = req.params;\n //\n // // Implementation here\n // } catch (error) {\n // next(error);\n // }\n // }\n{{/if}}\n{{/each}}\n}\n";
26
+ /**
27
+ * Get template by name
28
+ */
29
+ export declare function getTemplate(name: string): string;
30
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../../src/generator/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,eAAe,g1DA0F3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,i9CAwD/B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,61FA4G5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,qwCA+C/B,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAahD"}
@@ -0,0 +1,348 @@
1
+ "use strict";
2
+ /**
3
+ * Embedded Handlebars Templates
4
+ * All code generation templates as string constants
5
+ * This ensures templates are bundled with the compiled code
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CONTROLLER_TEMPLATE = exports.SERVICE_TEMPLATE = exports.REPOSITORY_TEMPLATE = exports.ENTITY_TEMPLATE = void 0;
9
+ exports.getTemplate = getTemplate;
10
+ /**
11
+ * Entity Template
12
+ * Generates entity class with data interface
13
+ */
14
+ exports.ENTITY_TEMPLATE = `/**
15
+ * {{entityName}} Entity
16
+ * Generated from data model specification
17
+ */
18
+
19
+ {{#each imports}}
20
+ {{{this}}}
21
+ {{/each}}
22
+
23
+ export interface {{entityName}}Data extends BaseEntityData {
24
+ {{#each fields}}
25
+ {{#unless isBaseEntityField}}
26
+ {{name}}{{#unless required}}?{{/unless}}: {{{tsType}}};
27
+ {{/unless}}
28
+ {{/each}}
29
+ }
30
+
31
+ export class {{entityName}} extends BaseEntity {
32
+ {{#each fields}}
33
+ {{#unless isBaseEntityField}}
34
+ {{name}}{{#unless required}}?{{/unless}}: {{{tsType}}};
35
+ {{/unless}}
36
+ {{/each}}
37
+
38
+ constructor(data: {{entityName}}Data) {
39
+ super(data);
40
+ {{#each fields}}
41
+ {{#unless isBaseEntityField}}
42
+ this.{{name}} = data.{{name}}{{#if hasDefault}} || {{{defaultValue}}}{{/if}};
43
+ {{/unless}}
44
+ {{/each}}
45
+ }
46
+
47
+ /**
48
+ * Get entity-specific data for Firestore
49
+ */
50
+ protected getEntityData(): Record<string, any> {
51
+ return {
52
+ {{#each fields}}
53
+ {{#unless isBaseEntityField}}
54
+ {{name}}: this.{{name}},
55
+ {{/unless}}
56
+ {{/each}}
57
+ };
58
+ }
59
+
60
+ /**
61
+ * Validate entity
62
+ */
63
+ validate(): ValidationResult {
64
+ const errors = ValidationHelper.collectErrors(
65
+ {{#each fields}}
66
+ {{#each validation}}
67
+ {{{this}}},
68
+ {{/each}}
69
+ {{/each}}
70
+ );
71
+
72
+ return ValidationHelper.isValidResult(errors);
73
+ }
74
+
75
+ /**
76
+ * Create entity from Firestore document
77
+ */
78
+ static fromFirestore(id: string, data: Record<string, any>): {{entityName}} {
79
+ return new {{entityName}}({
80
+ id,
81
+ ...data,
82
+ });
83
+ }
84
+
85
+ /**
86
+ * Convert to plain object for API responses
87
+ */
88
+ toJSON(): Record<string, any> {
89
+ return {
90
+ id: this.id,
91
+ {{#each fields}}
92
+ {{#unless isBaseEntityField}}
93
+ {{name}}: this.{{name}},
94
+ {{/unless}}
95
+ {{/each}}
96
+ createdAt: this.createdAt,
97
+ updatedAt: this.updatedAt,
98
+ {{#if hasSoftDelete}}
99
+ deletedAt: this.deletedAt,
100
+ {{/if}}
101
+ };
102
+ }
103
+ }
104
+ `;
105
+ /**
106
+ * Repository Template
107
+ * Generates repository class for entity
108
+ */
109
+ exports.REPOSITORY_TEMPLATE = `/**
110
+ * {{entityName}} Repository
111
+ * Generated from data model specification
112
+ */
113
+
114
+ import { Firestore, DocumentData } from 'firebase-admin/firestore';
115
+ import { BaseRepository } from '@xbg.solutions/backend-core';
116
+ import { {{entityName}} } from '../entities/{{entityName}}';
117
+
118
+ export class {{entityName}}Repository extends BaseRepository<{{entityName}}> {
119
+ protected collectionName = '{{collectionName}}';
120
+
121
+ constructor(db: Firestore) {
122
+ super(db);
123
+ }
124
+
125
+ /**
126
+ * Convert Firestore document to entity
127
+ */
128
+ protected fromFirestore(id: string, data: DocumentData): {{entityName}} {
129
+ return {{entityName}}.fromFirestore(id, data);
130
+ }
131
+
132
+ {{#each fields}}
133
+ {{#if unique}}
134
+ /**
135
+ * Find {{../entityName}} by {{name}}
136
+ */
137
+ async findBy{{capitalize name}}({{name}}: {{{tsType}}}): Promise<{{../entityName}} | null> {
138
+ const snapshot = await this.getCollection()
139
+ .where('{{name}}', '==', {{name}})
140
+ .where('deletedAt', '==', null)
141
+ .limit(1)
142
+ .get();
143
+
144
+ if (snapshot.empty) {
145
+ return null;
146
+ }
147
+
148
+ const doc = snapshot.docs[0];
149
+ return this.fromFirestore(doc.id, doc.data());
150
+ }
151
+ {{/if}}
152
+ {{/each}}
153
+
154
+ {{#each relationships}}
155
+ /**
156
+ * Get {{name}} for {{../entityName}}
157
+ */
158
+ async get{{capitalize name}}({{../entityNameLower}}Id: string): Promise<{{entity}}[]> {
159
+ // Implementation depends on relationship type
160
+ // TODO: Implement relationship query
161
+ return [];
162
+ }
163
+ {{/each}}
164
+ }
165
+ `;
166
+ /**
167
+ * Service Template
168
+ * Generates service class for business logic
169
+ */
170
+ exports.SERVICE_TEMPLATE = `/**
171
+ * {{entityName}} Service
172
+ * Generated from data model specification
173
+ */
174
+
175
+ import { BaseService, RequestContext } from '@xbg.solutions/backend-core';
176
+ import { {{entityName}}, {{entityName}}Data } from '../entities/{{entityName}}';
177
+ import { {{entityName}}Repository } from '../repositories/{{entityName}}Repository';
178
+
179
+ export class {{entityName}}Service extends BaseService<{{entityName}}> {
180
+ protected entityName = '{{entityName}}';
181
+
182
+ constructor(repository: {{entityName}}Repository) {
183
+ super(repository);
184
+ }
185
+
186
+ /**
187
+ * Build entity from partial data
188
+ */
189
+ protected async buildEntity(data: Partial<{{entityName}}Data>): Promise<{{entityName}}> {
190
+ return new {{entityName}}(data as {{entityName}}Data);
191
+ }
192
+
193
+ /**
194
+ * Merge existing entity with updates
195
+ */
196
+ protected async mergeEntity(existing: {{entityName}}, updates: Partial<{{entityName}}Data>): Promise<{{entityName}}> {
197
+ return new {{entityName}}({
198
+ ...existing.toJSON(),
199
+ ...updates,
200
+ id: existing.id,
201
+ });
202
+ }
203
+
204
+ {{#if accessRules}}
205
+ /**
206
+ * Check read access
207
+ */
208
+ protected async checkReadAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {
209
+ {{#if accessRules.read}}
210
+ const allowedRoles = [{{#each accessRules.read}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];
211
+
212
+ // Check if user has required role
213
+ if (context.userRole && allowedRoles.includes(context.userRole)) {
214
+ return true;
215
+ }
216
+
217
+ // Check if user owns the resource
218
+ if (allowedRoles.includes('self')) {
219
+ // TODO: Implement ownership check based on your entity structure
220
+ return true;
221
+ }
222
+
223
+ return false;
224
+ {{else}}
225
+ return true;
226
+ {{/if}}
227
+ }
228
+
229
+ /**
230
+ * Check update access
231
+ */
232
+ protected async checkUpdateAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {
233
+ {{#if accessRules.update}}
234
+ const allowedRoles = [{{#each accessRules.update}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];
235
+
236
+ if (context.userRole && allowedRoles.includes(context.userRole)) {
237
+ return true;
238
+ }
239
+
240
+ if (allowedRoles.includes('self')) {
241
+ // TODO: Implement ownership check
242
+ return true;
243
+ }
244
+
245
+ return false;
246
+ {{else}}
247
+ return true;
248
+ {{/if}}
249
+ }
250
+
251
+ /**
252
+ * Check delete access
253
+ */
254
+ protected async checkDeleteAccess(entity: {{entityName}}, context: RequestContext): Promise<boolean> {
255
+ {{#if accessRules.delete}}
256
+ const allowedRoles = [{{#each accessRules.delete}}'{{this}}'{{#unless @last}}, {{/unless}}{{/each}}];
257
+
258
+ if (context.userRole && allowedRoles.includes(context.userRole)) {
259
+ return true;
260
+ }
261
+
262
+ return false;
263
+ {{else}}
264
+ return true;
265
+ {{/if}}
266
+ }
267
+ {{/if}}
268
+
269
+ {{#if businessRules}}
270
+ /**
271
+ * Business Rules:
272
+ {{#each businessRules}}
273
+ * - {{this}}
274
+ {{/each}}
275
+ */
276
+ {{/if}}
277
+ }
278
+ `;
279
+ /**
280
+ * Controller Template
281
+ * Generates controller class for HTTP endpoints
282
+ */
283
+ exports.CONTROLLER_TEMPLATE = `/**
284
+ * {{entityName}} Controller
285
+ * Generated from data model specification
286
+ */
287
+
288
+ import { BaseController } from '@xbg.solutions/backend-core';
289
+ import { {{entityName}} } from '../entities/{{entityName}}';
290
+ import { {{entityName}}Service } from '../services/{{entityName}}Service';
291
+
292
+ export class {{entityName}}Controller extends BaseController<{{entityName}}> {
293
+ constructor(service: {{entityName}}Service, basePath = '/{{entityNameLower}}s') {
294
+ super(service, basePath);
295
+ }
296
+
297
+ /**
298
+ * Register custom routes
299
+ */
300
+ protected registerRoutes(): void {
301
+ // Register standard CRUD routes
302
+ super.registerRoutes();
303
+
304
+ // Add custom routes here
305
+ {{#each fields}}
306
+ {{#if unique}}
307
+ // this.router.get('/by-{{name}}/:{{name}}', this.handleFindBy{{capitalize name}}.bind(this));
308
+ {{/if}}
309
+ {{/each}}
310
+ }
311
+
312
+ {{#each fields}}
313
+ {{#if unique}}
314
+ /**
315
+ * Find {{../entityName}} by {{name}}
316
+ */
317
+ // protected async handleFindBy{{capitalize name}}(req: Request, res: Response, next: NextFunction): Promise<void> {
318
+ // try {
319
+ // const context = this.createContext(req);
320
+ // const { {{name}} } = req.params;
321
+ //
322
+ // // Implementation here
323
+ // } catch (error) {
324
+ // next(error);
325
+ // }
326
+ // }
327
+ {{/if}}
328
+ {{/each}}
329
+ }
330
+ `;
331
+ /**
332
+ * Get template by name
333
+ */
334
+ function getTemplate(name) {
335
+ switch (name) {
336
+ case 'entity':
337
+ return exports.ENTITY_TEMPLATE;
338
+ case 'repository':
339
+ return exports.REPOSITORY_TEMPLATE;
340
+ case 'service':
341
+ return exports.SERVICE_TEMPLATE;
342
+ case 'controller':
343
+ return exports.CONTROLLER_TEMPLATE;
344
+ default:
345
+ throw new Error(`Unknown template: ${name}`);
346
+ }
347
+ }
348
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../../../src/generator/templates.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA0UH,kCAaC;AArVD;;;GAGG;AACU,QAAA,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0F9B,CAAC;AAEF;;;GAGG;AACU,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDlC,CAAC;AAEF;;;GAGG;AACU,QAAA,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4G/B,CAAC;AAEF;;;GAGG;AACU,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ClC,CAAC;AAEF;;GAEG;AACH,SAAgB,WAAW,CAAC,IAAY;IACtC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,uBAAe,CAAC;QACzB,KAAK,YAAY;YACf,OAAO,2BAAmB,CAAC;QAC7B,KAAK,SAAS;YACZ,OAAO,wBAAgB,CAAC;QAC1B,KAAK,YAAY;YACf,OAAO,2BAAmB,CAAC;QAC7B;YACE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;AACH,CAAC"}
@@ -101,6 +101,7 @@ export interface FieldContext {
101
101
  defaultValue?: string;
102
102
  validation: string[];
103
103
  description?: string;
104
+ isBaseEntityField: boolean;
104
105
  }
105
106
  export interface RelationshipContext {
106
107
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generator/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACxC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvD,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,WAAW,GACX,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,GACR,WAAW,GACX,MAAM,CAAC;AAEX,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAE7F,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/generator/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xbg.solutions/backend-core",
3
- "version": "1.1.9",
3
+ "version": "1.2.0",
4
4
  "description": "XBG Backend Core - Base classes, middleware, config, and code generator",
5
5
  "main": "lib/core/src/index.js",
6
6
  "types": "lib/core/src/index.d.ts",
@@ -15,20 +15,20 @@
15
15
  "prepublishOnly": "npm run build"
16
16
  },
17
17
  "dependencies": {
18
- "@xbg.solutions/utils-cache-connector": "^1.0.0",
19
- "@xbg.solutions/utils-events": "^1.0.0",
20
- "@xbg.solutions/utils-firebase-event-bridge": "^1.0.0",
21
- "@xbg.solutions/utils-firestore-connector": "^1.0.0",
22
- "@xbg.solutions/utils-logger": "^1.0.0",
23
- "@xbg.solutions/utils-token-handler": "^1.0.0",
24
18
  "@types/cors": "^2.8.17",
25
19
  "@types/express": "^4.17.21",
20
+ "@xbg.solutions/utils-cache-connector": "^1.2.0",
21
+ "@xbg.solutions/utils-events": "^1.2.0",
22
+ "@xbg.solutions/utils-firebase-event-bridge": "^1.2.0",
23
+ "@xbg.solutions/utils-firestore-connector": "^1.2.0",
24
+ "@xbg.solutions/utils-logger": "^1.2.0",
25
+ "@xbg.solutions/utils-token-handler": "^1.2.0",
26
26
  "cors": "^2.8.5",
27
27
  "dotenv": "^16.3.1",
28
28
  "express": "^4.18.2",
29
29
  "express-rate-limit": "^7.1.5",
30
30
  "express-validator": "^7.0.1",
31
- "firebase-admin": "^10.3.0",
31
+ "firebase-admin": "^13.7.0",
32
32
  "firebase-functions": "^4.6.0",
33
33
  "handlebars": "^4.7.8",
34
34
  "helmet": "^7.1.0",