nestjs-ddd-cli 3.2.1 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/README.md +118 -9
  2. package/ddd.schema.json +11 -1
  3. package/dist/commands/doctor-enhanced.d.ts +1 -0
  4. package/dist/commands/doctor-enhanced.js +94 -79
  5. package/dist/commands/doctor-enhanced.js.map +1 -1
  6. package/dist/commands/doctor.d.ts +9 -0
  7. package/dist/commands/doctor.js +68 -21
  8. package/dist/commands/doctor.js.map +1 -1
  9. package/dist/commands/generate-all.js +238 -176
  10. package/dist/commands/generate-all.js.map +1 -1
  11. package/dist/commands/generate-controller.d.ts +1 -0
  12. package/dist/commands/generate-controller.js +71 -0
  13. package/dist/commands/generate-controller.js.map +1 -0
  14. package/dist/commands/generate-domain-service.d.ts +1 -1
  15. package/dist/commands/generate-domain-service.js +6 -4
  16. package/dist/commands/generate-domain-service.js.map +1 -1
  17. package/dist/commands/generate-dto.d.ts +4 -0
  18. package/dist/commands/generate-dto.js +162 -0
  19. package/dist/commands/generate-dto.js.map +1 -0
  20. package/dist/commands/generate-entity.js +44 -35
  21. package/dist/commands/generate-entity.js.map +1 -1
  22. package/dist/commands/generate-event.js +10 -4
  23. package/dist/commands/generate-event.js.map +1 -1
  24. package/dist/commands/generate-migration-deployment.d.ts +15 -0
  25. package/dist/commands/generate-migration-deployment.js +326 -0
  26. package/dist/commands/generate-migration-deployment.js.map +1 -0
  27. package/dist/commands/generate-migration-deployment.spec.d.ts +1 -0
  28. package/dist/commands/generate-migration-deployment.spec.js +337 -0
  29. package/dist/commands/generate-migration-deployment.spec.js.map +1 -0
  30. package/dist/commands/generate-module.js +41 -31
  31. package/dist/commands/generate-module.js.map +1 -1
  32. package/dist/commands/generate-query.js +23 -4
  33. package/dist/commands/generate-query.js.map +1 -1
  34. package/dist/commands/generate-repository.d.ts +1 -1
  35. package/dist/commands/generate-repository.js +17 -34
  36. package/dist/commands/generate-repository.js.map +1 -1
  37. package/dist/commands/generate-service.js +19 -4
  38. package/dist/commands/generate-service.js.map +1 -1
  39. package/dist/commands/generate-usecase.js +12 -31
  40. package/dist/commands/generate-usecase.js.map +1 -1
  41. package/dist/commands/generate-value-object.js +3 -14
  42. package/dist/commands/generate-value-object.js.map +1 -1
  43. package/dist/commands/init-project.d.ts +3 -0
  44. package/dist/commands/init-project.js +19 -9
  45. package/dist/commands/init-project.js.map +1 -1
  46. package/dist/commands/interactive-scaffold.js +10 -0
  47. package/dist/commands/interactive-scaffold.js.map +1 -1
  48. package/dist/commands/migration.d.ts +3 -0
  49. package/dist/commands/migration.js +83 -48
  50. package/dist/commands/migration.js.map +1 -1
  51. package/dist/commands/recipe.d.ts +2 -0
  52. package/dist/commands/recipe.js +282 -91
  53. package/dist/commands/recipe.js.map +1 -1
  54. package/dist/commands/recipes/banklink-connector-contract.recipe.d.ts +1 -0
  55. package/dist/commands/recipes/banklink-connector-contract.recipe.js +161 -0
  56. package/dist/commands/recipes/banklink-connector-contract.recipe.js.map +1 -0
  57. package/dist/commands/recipes/bounded-json-http.recipe.d.ts +2 -0
  58. package/dist/commands/recipes/bounded-json-http.recipe.js +53 -0
  59. package/dist/commands/recipes/bounded-json-http.recipe.js.map +1 -0
  60. package/dist/commands/recipes/business-reference-identifiers.recipe.d.ts +1 -0
  61. package/dist/commands/recipes/business-reference-identifiers.recipe.js +223 -0
  62. package/dist/commands/recipes/business-reference-identifiers.recipe.js.map +1 -0
  63. package/dist/commands/recipes/event-backbone.recipe.d.ts +1 -0
  64. package/dist/commands/recipes/event-backbone.recipe.js +1118 -0
  65. package/dist/commands/recipes/event-backbone.recipe.js.map +1 -0
  66. package/dist/commands/recipes/external-projection-worker.recipe.d.ts +6 -0
  67. package/dist/commands/recipes/external-projection-worker.recipe.js +211 -0
  68. package/dist/commands/recipes/external-projection-worker.recipe.js.map +1 -0
  69. package/dist/commands/recipes/index.d.ts +12 -0
  70. package/dist/commands/recipes/index.js +12 -0
  71. package/dist/commands/recipes/index.js.map +1 -1
  72. package/dist/commands/recipes/jest-cjs-compat.recipe.d.ts +3 -0
  73. package/dist/commands/recipes/jest-cjs-compat.recipe.js +130 -0
  74. package/dist/commands/recipes/jest-cjs-compat.recipe.js.map +1 -0
  75. package/dist/commands/recipes/joi-env.recipe.d.ts +1 -0
  76. package/dist/commands/recipes/joi-env.recipe.js +301 -0
  77. package/dist/commands/recipes/joi-env.recipe.js.map +1 -0
  78. package/dist/commands/recipes/kafka-consumer.recipe.d.ts +1 -0
  79. package/dist/commands/recipes/kafka-consumer.recipe.js +65 -0
  80. package/dist/commands/recipes/kafka-consumer.recipe.js.map +1 -0
  81. package/dist/commands/recipes/oauth2-client-credentials.recipe.d.ts +1 -0
  82. package/dist/commands/recipes/oauth2-client-credentials.recipe.js +60 -0
  83. package/dist/commands/recipes/oauth2-client-credentials.recipe.js.map +1 -0
  84. package/dist/commands/recipes/oauth2-token-introspection.recipe.d.ts +1 -0
  85. package/dist/commands/recipes/oauth2-token-introspection.recipe.js +67 -0
  86. package/dist/commands/recipes/oauth2-token-introspection.recipe.js.map +1 -0
  87. package/dist/commands/recipes/oidc-bff-session.recipe.d.ts +1 -0
  88. package/dist/commands/recipes/oidc-bff-session.recipe.js +57 -0
  89. package/dist/commands/recipes/oidc-bff-session.recipe.js.map +1 -0
  90. package/dist/commands/recipes/oidc-dashboard.recipe.d.ts +1 -0
  91. package/dist/commands/recipes/oidc-dashboard.recipe.js +463 -0
  92. package/dist/commands/recipes/oidc-dashboard.recipe.js.map +1 -0
  93. package/dist/commands/recipes/oidc-resource-server.recipe.d.ts +1 -0
  94. package/dist/commands/recipes/oidc-resource-server.recipe.js +85 -0
  95. package/dist/commands/recipes/oidc-resource-server.recipe.js.map +1 -0
  96. package/dist/commands/recipes/platform-context.recipe.d.ts +1 -0
  97. package/dist/commands/recipes/platform-context.recipe.js +229 -0
  98. package/dist/commands/recipes/platform-context.recipe.js.map +1 -0
  99. package/dist/commands/recipes/platform-parc-authorization.recipe.d.ts +1 -0
  100. package/dist/commands/recipes/platform-parc-authorization.recipe.js +339 -0
  101. package/dist/commands/recipes/platform-parc-authorization.recipe.js.map +1 -0
  102. package/dist/commands/recipes/platform-parc-bound-authorization.recipe.d.ts +1 -0
  103. package/dist/commands/recipes/platform-parc-bound-authorization.recipe.js +56 -0
  104. package/dist/commands/recipes/platform-parc-bound-authorization.recipe.js.map +1 -0
  105. package/dist/commands/recipes/platform-service-access-request-context.recipe.d.ts +1 -0
  106. package/dist/commands/recipes/platform-service-access-request-context.recipe.js +103 -0
  107. package/dist/commands/recipes/platform-service-access-request-context.recipe.js.map +1 -0
  108. package/dist/commands/recipes/platform-service-runtime.recipe.d.ts +1 -0
  109. package/dist/commands/recipes/platform-service-runtime.recipe.js +415 -0
  110. package/dist/commands/recipes/platform-service-runtime.recipe.js.map +1 -0
  111. package/dist/index.js +82 -11
  112. package/dist/index.js.map +1 -1
  113. package/dist/templates/ai-context/CLAUDE.md.hbs +54 -3
  114. package/dist/templates/ai-context/conventions.md.hbs +20 -8
  115. package/dist/templates/command/create-command.hbs +8 -3
  116. package/dist/templates/command/delete-command.hbs +1 -1
  117. package/dist/templates/command/update-command.hbs +1 -1
  118. package/dist/templates/controller/application-controller.hbs +7 -0
  119. package/dist/templates/controller/controller.hbs +6 -0
  120. package/dist/templates/dto/create-dto.hbs +17 -5
  121. package/dist/templates/dto/filter-dto.hbs +1 -1
  122. package/dist/templates/dto/response-dto.hbs +1 -1
  123. package/dist/templates/entity/entity.hbs +4 -0
  124. package/dist/templates/mapper/mapper.hbs +6 -2
  125. package/dist/templates/orm-entity/orm-entity.hbs +9 -1
  126. package/dist/templates/prisma/prisma-mapper.hbs +6 -0
  127. package/dist/templates/prisma/prisma-repository.hbs +57 -5
  128. package/dist/templates/prisma/prisma-schema.hbs +2 -0
  129. package/dist/templates/query/get-all.query.hbs +10 -2
  130. package/dist/templates/recipes/bounded-json-http/README.md.hbs +36 -0
  131. package/dist/templates/recipes/external-projection-worker/README.md.hbs +157 -0
  132. package/dist/templates/recipes/external-projection-worker/canonical-json.ts.hbs +123 -0
  133. package/dist/templates/recipes/external-projection-worker/enqueuer.ts.hbs +167 -0
  134. package/dist/templates/recipes/external-projection-worker/index.ts.hbs +6 -0
  135. package/dist/templates/recipes/external-projection-worker/migration.ts.hbs +88 -0
  136. package/dist/templates/recipes/external-projection-worker/module.ts.hbs +36 -0
  137. package/dist/templates/recipes/external-projection-worker/store.ts.hbs +354 -0
  138. package/dist/templates/recipes/external-projection-worker/types.ts.hbs +134 -0
  139. package/dist/templates/recipes/external-projection-worker/worker.ts.hbs +296 -0
  140. package/dist/templates/recipes/kafka-consumer/README.md.hbs +50 -0
  141. package/dist/templates/recipes/kafka-consumer/kafka-consumer.ts.hbs +135 -0
  142. package/dist/templates/recipes/kafka-consumer/migration.ts.hbs +17 -0
  143. package/dist/templates/recipes/oauth2-client-credentials/README.md.hbs +40 -0
  144. package/dist/templates/recipes/oauth2-client-credentials/client.spec.ts.hbs +234 -0
  145. package/dist/templates/recipes/oauth2-client-credentials/client.ts.hbs +210 -0
  146. package/dist/templates/recipes/oauth2-client-credentials/index.ts.hbs +2 -0
  147. package/dist/templates/recipes/oauth2-client-credentials/module.ts.hbs +58 -0
  148. package/dist/templates/recipes/oauth2-token-introspection/README.md.hbs +158 -0
  149. package/dist/templates/recipes/oauth2-token-introspection/client.spec.ts.hbs +350 -0
  150. package/dist/templates/recipes/oauth2-token-introspection/client.ts.hbs +241 -0
  151. package/dist/templates/recipes/oauth2-token-introspection/http-client.spec.ts.hbs +411 -0
  152. package/dist/templates/recipes/oauth2-token-introspection/http-client.ts.hbs +343 -0
  153. package/dist/templates/recipes/oauth2-token-introspection/index.ts.hbs +3 -0
  154. package/dist/templates/recipes/oauth2-token-introspection/module.ts.hbs +58 -0
  155. package/dist/templates/recipes/oidc-bff-session/README.md.hbs +96 -0
  156. package/dist/templates/recipes/oidc-bff-session/client.test.ts.hbs +663 -0
  157. package/dist/templates/recipes/oidc-bff-session/client.ts.hbs +635 -0
  158. package/dist/templates/recipes/oidc-bff-session/index.ts.hbs +3 -0
  159. package/dist/templates/recipes/oidc-bff-session/store.integration.test.ts.hbs +480 -0
  160. package/dist/templates/recipes/oidc-bff-session/store.test.ts.hbs +87 -0
  161. package/dist/templates/recipes/oidc-bff-session/store.ts.hbs +549 -0
  162. package/dist/templates/recipes/oidc-bff-session/valkey.test.ts.hbs +158 -0
  163. package/dist/templates/recipes/oidc-bff-session/valkey.ts.hbs +148 -0
  164. package/dist/templates/recipes/oidc-resource-server/README.md.hbs +74 -0
  165. package/dist/templates/recipes/oidc-resource-server/index.ts.hbs +2 -0
  166. package/dist/templates/recipes/oidc-resource-server/module.ts.hbs +51 -0
  167. package/dist/templates/recipes/oidc-resource-server/verifier.spec.ts.hbs +186 -0
  168. package/dist/templates/recipes/oidc-resource-server/verifier.ts.hbs +440 -0
  169. package/dist/templates/recipes/platform-parc-bound-authorization/README.md.hbs +92 -0
  170. package/dist/templates/recipes/platform-parc-bound-authorization/client.ts.hbs +142 -0
  171. package/dist/templates/recipes/platform-service-access-request-context/docs.md.hbs +61 -0
  172. package/dist/templates/recipes/platform-service-access-request-context/env.example.hbs +7 -0
  173. package/dist/templates/recipes/platform-service-access-request-context/index.ts.hbs +7 -0
  174. package/dist/templates/recipes/platform-service-access-request-context/request-context-headers.ts.hbs +61 -0
  175. package/dist/templates/recipes/platform-service-access-request-context/request-context-introspection.parser.ts.hbs +132 -0
  176. package/dist/templates/recipes/platform-service-access-request-context/request-context-introspection.types.ts.hbs +40 -0
  177. package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.client.ts.hbs +45 -0
  178. package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.config.ts.hbs +142 -0
  179. package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.guard.ts.hbs +77 -0
  180. package/dist/templates/recipes/platform-service-access-request-context/service-access-request-context.module.ts.hbs +17 -0
  181. package/dist/templates/repository/repository.hbs +43 -5
  182. package/dist/templates/resolver/graphql-input.hbs +23 -6
  183. package/dist/templates/resolver/resolver.hbs +4 -0
  184. package/dist/templates/service/domain-service.hbs +2 -2
  185. package/dist/templates/test/controller.spec.hbs +5 -1
  186. package/dist/templates/test/prisma-repository.spec.hbs +192 -0
  187. package/dist/templates/test/repository.spec.hbs +41 -2
  188. package/dist/templates/test/usecase.spec.hbs +24 -5
  189. package/dist/templates/usecase/application-usecase.hbs +17 -0
  190. package/dist/templates/usecase/create-usecase.hbs +34 -3
  191. package/dist/templates/usecase/update-usecase.hbs +15 -1
  192. package/dist/utils/config.utils.d.ts +2 -0
  193. package/dist/utils/config.utils.js +14 -2
  194. package/dist/utils/config.utils.js.map +1 -1
  195. package/dist/utils/dependency.utils.d.ts +18 -2
  196. package/dist/utils/dependency.utils.js +144 -15
  197. package/dist/utils/dependency.utils.js.map +1 -1
  198. package/dist/utils/field.utils.d.ts +6 -0
  199. package/dist/utils/field.utils.js +78 -24
  200. package/dist/utils/field.utils.js.map +1 -1
  201. package/dist/utils/field.utils.spec.d.ts +1 -0
  202. package/dist/utils/field.utils.spec.js +38 -0
  203. package/dist/utils/field.utils.spec.js.map +1 -0
  204. package/dist/utils/file.utils.d.ts +39 -3
  205. package/dist/utils/file.utils.js +150 -13
  206. package/dist/utils/file.utils.js.map +1 -1
  207. package/dist/utils/naming.utils.js +5 -4
  208. package/dist/utils/naming.utils.js.map +1 -1
  209. package/dist/utils/static-recipe.utils.d.ts +4 -0
  210. package/dist/utils/static-recipe.utils.js +148 -0
  211. package/dist/utils/static-recipe.utils.js.map +1 -0
  212. package/dist/utils/template-engine.utils.js +83 -68
  213. package/dist/utils/template-engine.utils.js.map +1 -1
  214. package/package.json +20 -11
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseFields = parseFields;
4
4
  exports.generateFieldsTemplateData = generateFieldsTemplateData;
5
5
  const naming_utils_1 = require("./naming.utils");
6
+ const BASE_ENTITY_FIELD_NAMES = new Set(['id', 'isActive', 'createdAt', 'updatedAt', 'deletedAt']);
6
7
  /**
7
8
  * Parse field definitions from CLI --fields flag
8
9
  * Format: "name:type:modifier1:modifier2"
@@ -12,30 +13,53 @@ const naming_utils_1 = require("./naming.utils");
12
13
  * "email:string:unique" -> required unique string with IsEmail
13
14
  * "age:number:optional" -> optional number
14
15
  * "status:enum:active,inactive" -> enum with values
16
+ * "amount:money" -> exact decimal stored as a TypeScript string
17
+ * "tenantId:uuid:serverOwned" -> persisted field excluded from request DTOs
15
18
  * "tags:string[]" -> string array
16
19
  * "userId:uuid:relation" -> foreign key relation
17
20
  */
18
21
  function parseFields(fieldsString) {
19
22
  if (!fieldsString || fieldsString.trim() === '') {
20
- return { fields: [], hasEmail: false, hasDate: false, hasEnum: false, hasRelation: false };
23
+ return {
24
+ fields: [],
25
+ hasEmail: false,
26
+ hasDate: false,
27
+ hasEnum: false,
28
+ hasRelation: false,
29
+ hasMoney: false,
30
+ hasServerOwned: false,
31
+ };
21
32
  }
22
- const fieldDefs = fieldsString.split(' ').filter(f => f.trim() !== '');
33
+ const fieldDefs = fieldsString
34
+ .split(' ')
35
+ .filter((fieldDefinition) => fieldDefinition.trim() !== '')
36
+ .filter((fieldDefinition) => {
37
+ const fieldName = (0, naming_utils_1.toCamelCase)(fieldDefinition.split(':')[0]?.trim() ?? '');
38
+ return !BASE_ENTITY_FIELD_NAMES.has(fieldName);
39
+ });
23
40
  let hasEmail = false;
24
41
  let hasDate = false;
25
42
  let hasEnum = false;
26
43
  let hasRelation = false;
27
- const fields = fieldDefs.map(fieldDef => {
44
+ let hasMoney = false;
45
+ let hasServerOwned = false;
46
+ const fields = fieldDefs.map((fieldDef) => {
28
47
  const parts = fieldDef.split(':');
29
- const name = parts[0];
48
+ const name = parts[0]?.trim();
49
+ if (!name) {
50
+ throw new Error(`Invalid field definition: ${fieldDef}`);
51
+ }
30
52
  const typeWithArray = parts[1] || 'string';
31
53
  const modifiers = parts.slice(2);
32
54
  const isArray = typeWithArray.endsWith('[]');
33
55
  const baseType = isArray ? typeWithArray.slice(0, -2) : typeWithArray;
34
56
  const isOptional = modifiers.includes('optional');
35
57
  const isUnique = modifiers.includes('unique');
58
+ const isMoney = baseType.toLowerCase() === 'money';
59
+ const isServerOwned = modifiers.includes('serverOwned') || modifiers.includes('internal');
36
60
  // Check for relation type
37
61
  const relationTypes = ['OneToOne', 'OneToMany', 'ManyToOne', 'ManyToMany'];
38
- const relationTypeModifier = modifiers.find(m => relationTypes.includes(m));
62
+ const relationTypeModifier = modifiers.find((m) => relationTypes.includes(m));
39
63
  const isRelation = baseType === 'relation' || modifiers.includes('relation') || !!relationTypeModifier;
40
64
  // Parse relation details
41
65
  let relationTarget;
@@ -45,9 +69,14 @@ function parseFields(fieldsString) {
45
69
  if (baseType === 'relation') {
46
70
  // Format: fieldName:relation:TargetEntity:RelationType:inverseSide
47
71
  relationTarget = modifiers[0]; // First modifier is target entity
48
- relationType = (modifiers.find(m => relationTypes.includes(m)) || 'ManyToOne');
72
+ relationType = (modifiers.find((m) => relationTypes.includes(m)) || 'ManyToOne');
49
73
  // Find inverse (anything that's not a relation type or target)
50
- relationInverse = modifiers.find(m => !relationTypes.includes(m) && m !== relationTarget && m !== 'optional' && m !== 'unique');
74
+ relationInverse = modifiers.find((m) => !relationTypes.includes(m) &&
75
+ m !== relationTarget &&
76
+ m !== 'optional' &&
77
+ m !== 'unique' &&
78
+ m !== 'serverOwned' &&
79
+ m !== 'internal');
51
80
  }
52
81
  else {
53
82
  // Legacy format or uuid:relation
@@ -56,7 +85,7 @@ function parseFields(fieldsString) {
56
85
  }
57
86
  }
58
87
  // Find enum values if present
59
- const enumModifier = modifiers.find(m => m.includes(',') || (baseType === 'enum' && m && !relationTypes.includes(m)));
88
+ const enumModifier = modifiers.find((m) => m.includes(',') || (baseType === 'enum' && m && !relationTypes.includes(m)));
60
89
  const enumValues = baseType === 'enum' && enumModifier ? enumModifier.split(',') : undefined;
61
90
  // Determine TypeScript type
62
91
  let tsType = mapToTsType(baseType, enumValues);
@@ -77,6 +106,10 @@ function parseFields(fieldsString) {
77
106
  hasEnum = true;
78
107
  if (isRelation)
79
108
  hasRelation = true;
109
+ if (isMoney)
110
+ hasMoney = true;
111
+ if (isServerOwned)
112
+ hasServerOwned = true;
80
113
  const camelCase = (0, naming_utils_1.toCamelCase)(name);
81
114
  const snakeCase = (0, naming_utils_1.toSnakeCase)(name);
82
115
  const pascalCase = name.charAt(0).toUpperCase() + (0, naming_utils_1.toCamelCase)(name).slice(1);
@@ -86,12 +119,18 @@ function parseFields(fieldsString) {
86
119
  snakeCase,
87
120
  pascalCase,
88
121
  type: baseType,
89
- tsType: isRelation ? (relationType === 'OneToMany' || relationType === 'ManyToMany' ? `${relationTarget}[]` : relationTarget || 'string') : tsType,
122
+ tsType: isRelation
123
+ ? relationType === 'OneToMany' || relationType === 'ManyToMany'
124
+ ? `${relationTarget}[]`
125
+ : relationTarget || 'string'
126
+ : tsType,
90
127
  dbType,
91
128
  prismaType,
92
129
  isRequired: !isOptional,
93
130
  isOptional,
94
131
  isUnique,
132
+ isMoney,
133
+ isServerOwned,
95
134
  isArray,
96
135
  validators,
97
136
  description: generateDescription(name, baseType),
@@ -103,7 +142,7 @@ function parseFields(fieldsString) {
103
142
  relationInverse,
104
143
  };
105
144
  });
106
- return { fields, hasEmail, hasDate, hasEnum, hasRelation };
145
+ return { fields, hasEmail, hasDate, hasEnum, hasRelation, hasMoney, hasServerOwned };
107
146
  }
108
147
  function mapToTsType(type, enumValues) {
109
148
  const typeMap = {
@@ -113,6 +152,7 @@ function mapToTsType(type, enumValues) {
113
152
  integer: 'number',
114
153
  float: 'number',
115
154
  decimal: 'number',
155
+ money: 'string',
116
156
  boolean: 'boolean',
117
157
  bool: 'boolean',
118
158
  date: 'Date',
@@ -121,7 +161,7 @@ function mapToTsType(type, enumValues) {
121
161
  uuid: 'string',
122
162
  json: 'Record<string, any>',
123
163
  text: 'string',
124
- enum: enumValues ? enumValues.map(v => `'${v}'`).join(' | ') : 'string',
164
+ enum: enumValues ? enumValues.map((v) => `'${v}'`).join(' | ') : 'string',
125
165
  };
126
166
  return typeMap[type.toLowerCase()] || 'string';
127
167
  }
@@ -133,6 +173,7 @@ function mapToDbType(type, isArray) {
133
173
  integer: 'int',
134
174
  float: 'float',
135
175
  decimal: 'decimal',
176
+ money: 'decimal',
136
177
  boolean: 'boolean',
137
178
  bool: 'boolean',
138
179
  date: 'date',
@@ -154,6 +195,7 @@ function mapToPrismaType(type, isArray) {
154
195
  integer: 'Int',
155
196
  float: 'Float',
156
197
  decimal: 'Decimal',
198
+ money: 'Decimal',
157
199
  boolean: 'Boolean',
158
200
  bool: 'Boolean',
159
201
  date: 'DateTime',
@@ -167,7 +209,7 @@ function mapToPrismaType(type, isArray) {
167
209
  const prismaType = typeMap[type.toLowerCase()] || 'String';
168
210
  return isArray ? `${prismaType}[]` : prismaType;
169
211
  }
170
- function generateValidators(name, type, isOptional, isUnique, isArray, enumValues) {
212
+ function generateValidators(name, type, isOptional, _isUnique, isArray, enumValues) {
171
213
  const validators = [];
172
214
  const nameLower = name.toLowerCase();
173
215
  if (isOptional) {
@@ -208,7 +250,9 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
208
250
  validators.push('@MinLength(8)');
209
251
  validators.push('@MaxLength(128)');
210
252
  }
211
- else if (nameLower.includes('description') || nameLower.includes('content') || type.toLowerCase() === 'text') {
253
+ else if (nameLower.includes('description') ||
254
+ nameLower.includes('content') ||
255
+ type.toLowerCase() === 'text') {
212
256
  validators.push('@MaxLength(10000)'); // Long text fields
213
257
  }
214
258
  else if (nameLower.includes('title') || nameLower.includes('subject')) {
@@ -242,6 +286,11 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
242
286
  validators.push('@Min(-1e15)');
243
287
  validators.push('@Max(1e15)');
244
288
  break;
289
+ case 'money':
290
+ validators.push('@IsString()');
291
+ validators.push("@IsDecimal({ decimal_digits: '0,18', force_decimal: false })");
292
+ validators.push('@MaxLength(64)');
293
+ break;
245
294
  case 'boolean':
246
295
  case 'bool':
247
296
  validators.push('@IsBoolean()');
@@ -257,7 +306,7 @@ function generateValidators(name, type, isOptional, isUnique, isArray, enumValue
257
306
  break;
258
307
  case 'enum':
259
308
  if (enumValues) {
260
- validators.push(`@IsIn([${enumValues.map(v => `'${v}'`).join(', ')}])`);
309
+ validators.push(`@IsIn([${enumValues.map((v) => `'${v}'`).join(', ')}])`);
261
310
  }
262
311
  break;
263
312
  case 'json':
@@ -291,10 +340,14 @@ function generateDescription(name, type) {
291
340
  .replace(/[_-]/g, ' ')
292
341
  .trim()
293
342
  .toLowerCase();
294
- return `The ${readableName} of the entity`;
343
+ return type.toLowerCase() === 'money'
344
+ ? `The ${readableName} of the entity as an exact decimal string`
345
+ : `The ${readableName} of the entity`;
295
346
  }
296
347
  function generateExample(name, type) {
297
348
  const lowerName = name.toLowerCase();
349
+ if (type.toLowerCase() === 'money')
350
+ return '1250.00';
298
351
  if (lowerName.includes('email'))
299
352
  return 'user@example.com';
300
353
  if (lowerName.includes('name'))
@@ -332,22 +385,23 @@ function generateExample(name, type) {
332
385
  */
333
386
  function generateFieldsTemplateData(fields) {
334
387
  const entityProperties = fields
335
- .map(f => ` public readonly ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
388
+ .map((f) => ` public readonly ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
336
389
  .join('\n');
337
390
  const entityPropsInterface = fields
338
- .map(f => ` ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
391
+ .map((f) => ` ${f.camelCase}${f.isOptional ? '?' : ''}: ${f.tsType};`)
339
392
  .join('\n');
340
393
  const dtoProperties = fields
341
- .map(f => {
394
+ .filter((field) => !field.isServerOwned)
395
+ .map((f) => {
342
396
  const decorators = [
343
397
  ` @ApiProperty({ description: "${f.description}"${f.example ? `, example: "${f.example}"` : ''} })`,
344
- ...f.validators.map(v => ` ${v}`),
398
+ ...f.validators.map((v) => ` ${v}`),
345
399
  ].join('\n');
346
400
  return `${decorators}\n ${f.snakeCase}${f.isOptional ? '?' : ''}: ${f.tsType};`;
347
401
  })
348
402
  .join('\n\n');
349
403
  const ormColumns = fields
350
- .map(f => {
404
+ .map((f) => {
351
405
  if (f.isRelation && f.relationType && f.relationTarget) {
352
406
  // Generate relation decorator
353
407
  const relationDecorator = generateRelationDecorator(f);
@@ -365,17 +419,17 @@ function generateFieldsTemplateData(fields) {
365
419
  })
366
420
  .join('\n\n');
367
421
  const migrationColumns = fields
368
- .map(f => {
422
+ .map((f) => {
423
+ const uniqueLine = f.isUnique ? '\n isUnique: true,' : '';
369
424
  return ` {
370
425
  name: "${f.snakeCase}",
371
426
  type: "${f.dbType}",
372
- isNullable: ${f.isOptional},
373
- ${f.isUnique ? 'isUnique: true,' : ''}
427
+ isNullable: ${f.isOptional},${uniqueLine}
374
428
  },`;
375
429
  })
376
430
  .join('\n');
377
431
  const responseProperties = fields
378
- .map(f => ` @ApiProperty({ description: "${f.description}" })\n @Expose()\n ${f.camelCase}: ${f.tsType};`)
432
+ .map((f) => ` @ApiProperty({ description: "${f.description}" })\n @Expose()\n ${f.camelCase}: ${f.tsType};`)
379
433
  .join('\n\n');
380
434
  return {
381
435
  entityProperties,
@@ -1 +1 @@
1
- {"version":3,"file":"field.utils.js","sourceRoot":"","sources":["../../src/utils/field.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.utils.js","sourceRoot":"","sources":["../../src/utils/field.utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const field_utils_1 = require("./field.utils");
4
+ describe('parseFields', () => {
5
+ it('does not regenerate fields already owned by the base entity', () => {
6
+ const result = (0, field_utils_1.parseFields)('name:string isActive:boolean created_at:datetime updatedAt:datetime');
7
+ expect(result.fields.map((field) => field.name)).toEqual(['name']);
8
+ });
9
+ it('keeps business fields while normalizing their generated names', () => {
10
+ const result = (0, field_utils_1.parseFields)('functionalCurrency:string effectiveFrom:date');
11
+ expect(result.fields.map((field) => field.camelCase)).toEqual([
12
+ 'functionalCurrency',
13
+ 'effectiveFrom',
14
+ ]);
15
+ });
16
+ it('models money exactly and marks server-owned fields as internal inputs', () => {
17
+ const result = (0, field_utils_1.parseFields)('amount:money tenantId:uuid:serverOwned organizationId:uuid:internal');
18
+ expect(result.hasMoney).toBe(true);
19
+ expect(result.hasServerOwned).toBe(true);
20
+ expect(result.fields[0]).toMatchObject({
21
+ name: 'amount',
22
+ tsType: 'string',
23
+ dbType: 'decimal',
24
+ prismaType: 'Decimal',
25
+ isMoney: true,
26
+ isServerOwned: false,
27
+ });
28
+ expect(result.fields.slice(1).map((field) => field.isServerOwned)).toEqual([true, true]);
29
+ expect(result.fields[0]?.validators).toContain("@IsDecimal({ decimal_digits: '0,18', force_decimal: false })");
30
+ });
31
+ it('does not emit whitespace-only lines for non-unique migration columns', () => {
32
+ const { fields } = (0, field_utils_1.parseFields)('name:string code:string:unique');
33
+ const migrationColumns = (0, field_utils_1.generateFieldsTemplateData)(fields).migrationColumns;
34
+ expect(migrationColumns).not.toMatch(/^\s+$/m);
35
+ expect(migrationColumns).toContain('isUnique: true');
36
+ });
37
+ });
38
+ //# sourceMappingURL=field.utils.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.utils.spec.js","sourceRoot":"","sources":["../../src/utils/field.utils.spec.ts"],"names":[],"mappings":";;AAAA,+CAAwE;AAExE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,IAAA,yBAAW,EACxB,qEAAqE,CACtE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,IAAA,yBAAW,EAAC,8CAA8C,CAAC,CAAC;QAE3E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC5D,oBAAoB;YACpB,eAAe;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;QAC/E,MAAM,MAAM,GAAG,IAAA,yBAAW,EACxB,qEAAqE,CACtE,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACrC,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,SAAS,CAC5C,8DAA8D,CAC/D,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,EAAE,MAAM,EAAE,GAAG,IAAA,yBAAW,EAAC,gCAAgC,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,IAAA,wCAA0B,EAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC;QAE7E,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -14,7 +14,11 @@ export interface TemplateData {
14
14
  moduleNameKebab: string;
15
15
  moduleNamePascal: string;
16
16
  fields?: FieldDefinition[];
17
+ requestFields?: FieldDefinition[];
18
+ serverOwnedFields?: FieldDefinition[];
17
19
  hasFields: boolean;
20
+ hasRequestFields: boolean;
21
+ hasServerOwnedFields: boolean;
18
22
  entityProperties?: string;
19
23
  entityPropsInterface?: string;
20
24
  dtoProperties?: string;
@@ -23,15 +27,47 @@ export interface TemplateData {
23
27
  responseProperties?: string;
24
28
  hasRelations: boolean;
25
29
  relationImports?: string;
30
+ orm: 'typeorm' | 'prisma' | 'mikro-orm';
31
+ isPrisma: boolean;
32
+ softDelete: boolean;
33
+ hardDelete: boolean;
34
+ deleteEnabled: boolean;
26
35
  }
27
- export declare function prepareTemplateData(entityName: string, moduleName: string, fieldsString?: string): TemplateData;
36
+ export interface TemplateGenerationConfig {
37
+ orm?: 'typeorm' | 'prisma' | 'mikro-orm';
38
+ features?: {
39
+ delete?: boolean;
40
+ softDelete?: boolean;
41
+ hardDelete?: boolean;
42
+ };
43
+ }
44
+ export interface ConfiguredTemplateDataOptions extends TemplateGenerationConfig {
45
+ basePath: string;
46
+ fieldsString?: string;
47
+ }
48
+ export declare function prepareConfiguredTemplateData(entityName: string, moduleName: string, options: ConfiguredTemplateDataOptions): Promise<TemplateData>;
49
+ export declare function prepareTemplateData(entityName: string, moduleName: string, fieldsString?: string, generationConfig?: TemplateGenerationConfig): TemplateData;
28
50
  export declare function ensureDir(dirPath: string): Promise<void>;
29
51
  export declare function fileExists(filePath: string): Promise<boolean>;
30
52
  export declare function writeFile(filePath: string, content: string): Promise<void>;
31
53
  export declare function readTemplate(templatePath: string): Promise<string>;
32
54
  export declare function compileTemplate(template: string, data: TemplateData): string;
33
55
  export declare function generateFromTemplate(templatePath: string, outputPath: string, data: TemplateData, dryRun?: boolean): Promise<string>;
56
+ export type DryRunAction = 'create' | 'update';
57
+ export interface DryRunChange {
58
+ filePath: string;
59
+ action: DryRunAction;
60
+ }
34
61
  export declare function resetDryRunFiles(): void;
35
- export declare function getDryRunFiles(): string[];
36
- export declare function addDryRunFile(filePath: string): void;
62
+ export declare function getDryRunFiles(): DryRunChange[];
63
+ export declare function addDryRunFile(filePath: string, action?: DryRunAction): void;
64
+ export declare function writeGeneratedFile(filePath: string, content: string, dryRun?: boolean): Promise<void>;
65
+ export interface BarrelFileUpdate {
66
+ exports?: string[];
67
+ imports?: string[];
68
+ arrayName?: string;
69
+ arrayItems?: string[];
70
+ dryRun?: boolean;
71
+ }
72
+ export declare function updateBarrelFile(filePath: string, update: BarrelFileUpdate): Promise<void>;
37
73
  export declare function getModulePath(basePath: string, moduleName: string): string;