@solidstarters/solid-core 1.2.193 → 1.2.201

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 (630) hide show
  1. package/dist/commands/fixtures/fixtures-setup.command.d.ts +15 -0
  2. package/dist/commands/fixtures/fixtures-setup.command.d.ts.map +1 -0
  3. package/dist/commands/fixtures/fixtures-setup.command.js +58 -0
  4. package/dist/commands/fixtures/fixtures-setup.command.js.map +1 -0
  5. package/dist/commands/fixtures/fixtures-tear-down.command.d.ts +16 -0
  6. package/dist/commands/fixtures/fixtures-tear-down.command.d.ts.map +1 -0
  7. package/dist/commands/fixtures/fixtures-tear-down.command.js +59 -0
  8. package/dist/commands/fixtures/fixtures-tear-down.command.js.map +1 -0
  9. package/dist/commands/mcp.command.d.ts +20 -0
  10. package/dist/commands/mcp.command.d.ts.map +1 -0
  11. package/dist/commands/mcp.command.js +208 -0
  12. package/dist/commands/mcp.command.js.map +1 -0
  13. package/dist/commands/refresh-model.command.d.ts +8 -5
  14. package/dist/commands/refresh-model.command.d.ts.map +1 -1
  15. package/dist/commands/refresh-model.command.js +36 -0
  16. package/dist/commands/refresh-model.command.js.map +1 -1
  17. package/dist/commands/remove-fields.command.js +1 -1
  18. package/dist/commands/remove-fields.command.js.map +1 -1
  19. package/dist/commands/seed.command.d.ts +2 -0
  20. package/dist/commands/seed.command.d.ts.map +1 -1
  21. package/dist/commands/seed.command.js +28 -1
  22. package/dist/commands/seed.command.js.map +1 -1
  23. package/dist/constants/error-messages.d.ts +2 -0
  24. package/dist/constants/error-messages.d.ts.map +1 -1
  25. package/dist/constants/error-messages.js +4 -0
  26. package/dist/constants/error-messages.js.map +1 -1
  27. package/dist/controllers/authentication.controller.js +1 -1
  28. package/dist/controllers/authentication.controller.js.map +1 -1
  29. package/dist/controllers/email-template.controller.js +1 -1
  30. package/dist/controllers/email-template.controller.js.map +1 -1
  31. package/dist/controllers/field-metadata.controller.d.ts +136 -4
  32. package/dist/controllers/field-metadata.controller.d.ts.map +1 -1
  33. package/dist/controllers/field-metadata.controller.js +14 -1
  34. package/dist/controllers/field-metadata.controller.js.map +1 -1
  35. package/dist/controllers/media-storage-provider-metadata.controller.js +1 -1
  36. package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
  37. package/dist/controllers/model-metadata.controller.js +1 -1
  38. package/dist/controllers/model-metadata.controller.js.map +1 -1
  39. package/dist/controllers/model-sequence.controller.d.ts +43 -0
  40. package/dist/controllers/model-sequence.controller.d.ts.map +1 -0
  41. package/dist/controllers/model-sequence.controller.js +179 -0
  42. package/dist/controllers/model-sequence.controller.js.map +1 -0
  43. package/dist/controllers/module-metadata.controller.js +1 -1
  44. package/dist/controllers/module-metadata.controller.js.map +1 -1
  45. package/dist/controllers/otp-authentication.controller.js +1 -1
  46. package/dist/controllers/otp-authentication.controller.js.map +1 -1
  47. package/dist/controllers/service.controller.js +1 -1
  48. package/dist/controllers/service.controller.js.map +1 -1
  49. package/dist/controllers/setting.controller.d.ts +1 -0
  50. package/dist/controllers/setting.controller.d.ts.map +1 -1
  51. package/dist/controllers/setting.controller.js +15 -0
  52. package/dist/controllers/setting.controller.js.map +1 -1
  53. package/dist/controllers/sms-template.controller.js +1 -1
  54. package/dist/controllers/sms-template.controller.js.map +1 -1
  55. package/dist/controllers/test-queue.controller.js +1 -1
  56. package/dist/controllers/test-queue.controller.js.map +1 -1
  57. package/dist/controllers/test.controller.js +1 -1
  58. package/dist/controllers/test.controller.js.map +1 -1
  59. package/dist/dtos/basic-filters.dto.d.ts +3 -1
  60. package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
  61. package/dist/dtos/basic-filters.dto.js +8 -2
  62. package/dist/dtos/basic-filters.dto.js.map +1 -1
  63. package/dist/dtos/basic-group-filters.dto.d.ts +6 -0
  64. package/dist/dtos/basic-group-filters.dto.d.ts.map +1 -0
  65. package/dist/dtos/basic-group-filters.dto.js +46 -0
  66. package/dist/dtos/basic-group-filters.dto.js.map +1 -0
  67. package/dist/dtos/create-ai-interaction.dto.d.ts +2 -0
  68. package/dist/dtos/create-ai-interaction.dto.d.ts.map +1 -1
  69. package/dist/dtos/create-ai-interaction.dto.js +14 -1
  70. package/dist/dtos/create-ai-interaction.dto.js.map +1 -1
  71. package/dist/dtos/create-field-metadata.dto.d.ts +22 -5
  72. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  73. package/dist/dtos/create-field-metadata.dto.js +34 -8
  74. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  75. package/dist/dtos/create-import-transaction.dto.d.ts +0 -1
  76. package/dist/dtos/create-import-transaction.dto.d.ts.map +1 -1
  77. package/dist/dtos/create-import-transaction.dto.js +1 -7
  78. package/dist/dtos/create-import-transaction.dto.js.map +1 -1
  79. package/dist/dtos/create-model-metadata.dto.d.ts +2 -0
  80. package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
  81. package/dist/dtos/create-model-metadata.dto.js +13 -1
  82. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  83. package/dist/dtos/create-model-sequence.dto.d.ts +14 -0
  84. package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -0
  85. package/dist/dtos/create-model-sequence.dto.js +90 -0
  86. package/dist/dtos/create-model-sequence.dto.js.map +1 -0
  87. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  88. package/dist/dtos/create-role-metadata.dto.js +6 -1
  89. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  90. package/dist/dtos/get-mcp-url.dto.d.ts +5 -0
  91. package/dist/dtos/get-mcp-url.dto.d.ts.map +1 -0
  92. package/dist/dtos/get-mcp-url.dto.js +31 -0
  93. package/dist/dtos/get-mcp-url.dto.js.map +1 -0
  94. package/dist/dtos/resolve-s3-url.dto.d.ts +10 -0
  95. package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -0
  96. package/dist/dtos/resolve-s3-url.dto.js +49 -0
  97. package/dist/dtos/resolve-s3-url.dto.js.map +1 -0
  98. package/dist/dtos/update-ai-interaction.dto.d.ts +2 -0
  99. package/dist/dtos/update-ai-interaction.dto.d.ts.map +1 -1
  100. package/dist/dtos/update-ai-interaction.dto.js +13 -1
  101. package/dist/dtos/update-ai-interaction.dto.js.map +1 -1
  102. package/dist/dtos/update-field-metadata.dto.d.ts.map +1 -1
  103. package/dist/dtos/update-field-metadata.dto.js.map +1 -1
  104. package/dist/dtos/update-import-transaction.dto.d.ts +0 -1
  105. package/dist/dtos/update-import-transaction.dto.d.ts.map +1 -1
  106. package/dist/dtos/update-import-transaction.dto.js +1 -7
  107. package/dist/dtos/update-import-transaction.dto.js.map +1 -1
  108. package/dist/dtos/update-model-sequence.dto.d.ts +15 -0
  109. package/dist/dtos/update-model-sequence.dto.d.ts.map +1 -0
  110. package/dist/dtos/update-model-sequence.dto.js +94 -0
  111. package/dist/dtos/update-model-sequence.dto.js.map +1 -0
  112. package/dist/entities/action-metadata.entity.js +4 -4
  113. package/dist/entities/action-metadata.entity.js.map +1 -1
  114. package/dist/entities/ai-interaction.entity.d.ts +2 -0
  115. package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
  116. package/dist/entities/ai-interaction.entity.js +15 -6
  117. package/dist/entities/ai-interaction.entity.js.map +1 -1
  118. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
  119. package/dist/entities/chatter-message-details.entity.js +1 -1
  120. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  121. package/dist/entities/chatter-message.entity.js +1 -1
  122. package/dist/entities/chatter-message.entity.js.map +1 -1
  123. package/dist/entities/common.entity.d.ts +2 -3
  124. package/dist/entities/common.entity.d.ts.map +1 -1
  125. package/dist/entities/common.entity.js +10 -11
  126. package/dist/entities/common.entity.js.map +1 -1
  127. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +2 -2
  128. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
  129. package/dist/entities/dashboard-question.entity.js +3 -3
  130. package/dist/entities/dashboard-question.entity.js.map +1 -1
  131. package/dist/entities/dashboard-variable.entity.js +3 -3
  132. package/dist/entities/dashboard-variable.entity.js.map +1 -1
  133. package/dist/entities/dashboard.entity.js +1 -1
  134. package/dist/entities/dashboard.entity.js.map +1 -1
  135. package/dist/entities/email-template.entity.d.ts.map +1 -1
  136. package/dist/entities/email-template.entity.js +4 -3
  137. package/dist/entities/email-template.entity.js.map +1 -1
  138. package/dist/entities/export-template.entity.js +2 -2
  139. package/dist/entities/export-template.entity.js.map +1 -1
  140. package/dist/entities/export-transaction.entity.js +2 -2
  141. package/dist/entities/export-transaction.entity.js.map +1 -1
  142. package/dist/entities/field-metadata.entity.d.ts +1 -0
  143. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  144. package/dist/entities/field-metadata.entity.js +8 -4
  145. package/dist/entities/field-metadata.entity.js.map +1 -1
  146. package/dist/entities/import-transaction-error-log.entity.js +1 -1
  147. package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
  148. package/dist/entities/import-transaction.entity.d.ts +0 -1
  149. package/dist/entities/import-transaction.entity.d.ts.map +1 -1
  150. package/dist/entities/import-transaction.entity.js +2 -7
  151. package/dist/entities/import-transaction.entity.js.map +1 -1
  152. package/dist/entities/legacy-common-with-id.entity.d.ts +5 -0
  153. package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -0
  154. package/dist/entities/legacy-common-with-id.entity.js +32 -0
  155. package/dist/entities/legacy-common-with-id.entity.js.map +1 -0
  156. package/dist/entities/legacy-common.entity.d.ts +13 -0
  157. package/dist/entities/legacy-common.entity.d.ts.map +1 -0
  158. package/dist/entities/legacy-common.entity.js +68 -0
  159. package/dist/entities/legacy-common.entity.js.map +1 -0
  160. package/dist/entities/list-of-values.entity.js +2 -2
  161. package/dist/entities/list-of-values.entity.js.map +1 -1
  162. package/dist/entities/locale.entity.js +1 -1
  163. package/dist/entities/locale.entity.js.map +1 -1
  164. package/dist/entities/media.entity.d.ts.map +1 -1
  165. package/dist/entities/media.entity.js +3 -3
  166. package/dist/entities/media.entity.js.map +1 -1
  167. package/dist/entities/menu-item-metadata.entity.js +4 -4
  168. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  169. package/dist/entities/model-metadata.entity.d.ts +2 -0
  170. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  171. package/dist/entities/model-metadata.entity.js +11 -3
  172. package/dist/entities/model-metadata.entity.js.map +1 -1
  173. package/dist/entities/model-sequence.entity.d.ts +15 -0
  174. package/dist/entities/model-sequence.entity.d.ts.map +1 -0
  175. package/dist/entities/model-sequence.entity.js +67 -0
  176. package/dist/entities/model-sequence.entity.js.map +1 -0
  177. package/dist/entities/mq-message-queue.entity.js +1 -1
  178. package/dist/entities/mq-message-queue.entity.js.map +1 -1
  179. package/dist/entities/mq-message.entity.d.ts +3 -3
  180. package/dist/entities/mq-message.entity.d.ts.map +1 -1
  181. package/dist/entities/mq-message.entity.js +10 -10
  182. package/dist/entities/mq-message.entity.js.map +1 -1
  183. package/dist/entities/saved-filters.entity.js +4 -4
  184. package/dist/entities/saved-filters.entity.js.map +1 -1
  185. package/dist/entities/scheduled-job.entity.js +4 -4
  186. package/dist/entities/scheduled-job.entity.js.map +1 -1
  187. package/dist/entities/security-rule.entity.js +2 -2
  188. package/dist/entities/security-rule.entity.js.map +1 -1
  189. package/dist/entities/setting.entity.js +2 -2
  190. package/dist/entities/setting.entity.js.map +1 -1
  191. package/dist/entities/sms-template.entity.js +2 -2
  192. package/dist/entities/sms-template.entity.js.map +1 -1
  193. package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
  194. package/dist/entities/user-activity-history.entity.js +1 -1
  195. package/dist/entities/user-activity-history.entity.js.map +1 -1
  196. package/dist/entities/user-view-metadata.entity.js +2 -2
  197. package/dist/entities/user-view-metadata.entity.js.map +1 -1
  198. package/dist/entities/user.entity.js +13 -15
  199. package/dist/entities/user.entity.js.map +1 -1
  200. package/dist/entities/view-metadata.entity.js +3 -3
  201. package/dist/entities/view-metadata.entity.js.map +1 -1
  202. package/dist/helpers/date.helper.d.ts +1 -1
  203. package/dist/helpers/date.helper.d.ts.map +1 -1
  204. package/dist/helpers/date.helper.js +24 -2
  205. package/dist/helpers/date.helper.js.map +1 -1
  206. package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.d.ts.map +1 -1
  207. package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js +13 -2
  208. package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
  209. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +0 -1
  210. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
  211. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +4 -9
  212. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
  213. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts +0 -1
  214. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.d.ts.map +1 -1
  215. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +7 -8
  216. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
  217. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +0 -1
  218. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
  219. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +4 -9
  220. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
  221. package/dist/helpers/model-metadata-helper.service.d.ts +4 -1
  222. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  223. package/dist/helpers/model-metadata-helper.service.js +52 -30
  224. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  225. package/dist/helpers/module-metadata-helper.service.d.ts +1 -0
  226. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  227. package/dist/helpers/module-metadata-helper.service.js +9 -0
  228. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  229. package/dist/helpers/module.helper.d.ts +1 -0
  230. package/dist/helpers/module.helper.d.ts.map +1 -1
  231. package/dist/helpers/module.helper.js +26 -2
  232. package/dist/helpers/module.helper.js.map +1 -1
  233. package/dist/helpers/schematic.service.d.ts +9 -3
  234. package/dist/helpers/schematic.service.d.ts.map +1 -1
  235. package/dist/helpers/schematic.service.js +49 -32
  236. package/dist/helpers/schematic.service.js.map +1 -1
  237. package/dist/helpers/solid-registry.d.ts +14 -2
  238. package/dist/helpers/solid-registry.d.ts.map +1 -1
  239. package/dist/helpers/solid-registry.js +10 -0
  240. package/dist/helpers/solid-registry.js.map +1 -1
  241. package/dist/helpers/typeorm-db-helper.d.ts +3 -0
  242. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -0
  243. package/dist/helpers/typeorm-db-helper.js +24 -0
  244. package/dist/helpers/typeorm-db-helper.js.map +1 -0
  245. package/dist/index.d.ts +7 -2
  246. package/dist/index.d.ts.map +1 -1
  247. package/dist/index.js +8 -3
  248. package/dist/index.js.map +1 -1
  249. package/dist/interfaces.d.ts +3 -0
  250. package/dist/interfaces.d.ts.map +1 -1
  251. package/dist/interfaces.js.map +1 -1
  252. package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts +1 -0
  253. package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +1 -1
  254. package/dist/jobs/computed-field-evaluation-subscriber.service.js +16 -4
  255. package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +1 -1
  256. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  257. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +6 -1
  258. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  259. package/dist/repository/media.repository.d.ts.map +1 -1
  260. package/dist/repository/media.repository.js +4 -0
  261. package/dist/repository/media.repository.js.map +1 -1
  262. package/dist/repository/model-sequence.repository.d.ts +14 -0
  263. package/dist/repository/model-sequence.repository.d.ts.map +1 -0
  264. package/dist/repository/model-sequence.repository.js +103 -0
  265. package/dist/repository/model-sequence.repository.js.map +1 -0
  266. package/dist/seeders/module-metadata-seeder.service.d.ts +8 -13
  267. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  268. package/dist/seeders/module-metadata-seeder.service.js +103 -43
  269. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  270. package/dist/seeders/seed-data/solid-core-metadata.json +553 -652
  271. package/dist/seeders/system-fields-seeder.service.d.ts +1 -0
  272. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  273. package/dist/seeders/system-fields-seeder.service.js +12 -3
  274. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  275. package/dist/services/action-metadata.service.d.ts.map +1 -1
  276. package/dist/services/action-metadata.service.js +1 -0
  277. package/dist/services/action-metadata.service.js.map +1 -1
  278. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  279. package/dist/services/ai-interaction.service.js +2 -1
  280. package/dist/services/ai-interaction.service.js.map +1 -1
  281. package/dist/services/authentication.service.d.ts.map +1 -1
  282. package/dist/services/authentication.service.js +22 -14
  283. package/dist/services/authentication.service.js.map +1 -1
  284. package/dist/services/chatter-message-details.service.d.ts.map +1 -1
  285. package/dist/services/chatter-message-details.service.js +1 -0
  286. package/dist/services/chatter-message-details.service.js.map +1 -1
  287. package/dist/services/chatter-message.service.d.ts.map +1 -1
  288. package/dist/services/chatter-message.service.js +7 -3
  289. package/dist/services/chatter-message.service.js.map +1 -1
  290. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
  291. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +10 -6
  292. package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
  293. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +15 -0
  294. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -0
  295. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +72 -0
  296. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -0
  297. package/dist/services/crud-helper.service.d.ts +31 -6
  298. package/dist/services/crud-helper.service.d.ts.map +1 -1
  299. package/dist/services/crud-helper.service.js +285 -50
  300. package/dist/services/crud-helper.service.js.map +1 -1
  301. package/dist/services/crud.service.d.ts +7 -2
  302. package/dist/services/crud.service.d.ts.map +1 -1
  303. package/dist/services/crud.service.js +135 -26
  304. package/dist/services/crud.service.js.map +1 -1
  305. package/dist/services/database/database-bootstrap.service.d.ts +12 -0
  306. package/dist/services/database/database-bootstrap.service.d.ts.map +1 -0
  307. package/dist/services/database/database-bootstrap.service.js +115 -0
  308. package/dist/services/database/database-bootstrap.service.js.map +1 -0
  309. package/dist/services/email-template.service.d.ts +7 -7
  310. package/dist/services/email-template.service.d.ts.map +1 -1
  311. package/dist/services/email-template.service.js +8 -7
  312. package/dist/services/email-template.service.js.map +1 -1
  313. package/dist/services/excel.service.d.ts +10 -0
  314. package/dist/services/excel.service.d.ts.map +1 -1
  315. package/dist/services/excel.service.js +100 -0
  316. package/dist/services/excel.service.js.map +1 -1
  317. package/dist/services/field-metadata.service.d.ts +146 -6
  318. package/dist/services/field-metadata.service.d.ts.map +1 -1
  319. package/dist/services/field-metadata.service.js +218 -58
  320. package/dist/services/field-metadata.service.js.map +1 -1
  321. package/dist/services/file.service.d.ts +1 -0
  322. package/dist/services/file.service.d.ts.map +1 -1
  323. package/dist/services/file.service.js +9 -0
  324. package/dist/services/file.service.js.map +1 -1
  325. package/dist/services/fixtures.service.d.ts +13 -0
  326. package/dist/services/fixtures.service.d.ts.map +1 -0
  327. package/dist/services/fixtures.service.js +95 -0
  328. package/dist/services/fixtures.service.js.map +1 -0
  329. package/dist/services/genai/ingest-metadata.service.d.ts.map +1 -1
  330. package/dist/services/genai/ingest-metadata.service.js +1 -1
  331. package/dist/services/genai/ingest-metadata.service.js.map +1 -1
  332. package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
  333. package/dist/services/import-transaction-error-log.service.js +1 -0
  334. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  335. package/dist/services/import-transaction.service.d.ts.map +1 -1
  336. package/dist/services/import-transaction.service.js +7 -1
  337. package/dist/services/import-transaction.service.js.map +1 -1
  338. package/dist/services/list-of-values.service.d.ts +2 -2
  339. package/dist/services/list-of-values.service.d.ts.map +1 -1
  340. package/dist/services/list-of-values.service.js +2 -1
  341. package/dist/services/list-of-values.service.js.map +1 -1
  342. package/dist/services/locale.service.d.ts.map +1 -1
  343. package/dist/services/locale.service.js +1 -0
  344. package/dist/services/locale.service.js.map +1 -1
  345. package/dist/services/mail/smtp-email.service.js +0 -1
  346. package/dist/services/mail/smtp-email.service.js.map +1 -1
  347. package/dist/services/media.service.d.ts +3 -3
  348. package/dist/services/media.service.d.ts.map +1 -1
  349. package/dist/services/media.service.js +6 -4
  350. package/dist/services/media.service.js.map +1 -1
  351. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  352. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +17 -6
  353. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  354. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  355. package/dist/services/mediaStorageProviders/file-storage-provider.js +0 -13
  356. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  357. package/dist/services/menu-item-metadata.service.d.ts +3 -1
  358. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  359. package/dist/services/menu-item-metadata.service.js +35 -11
  360. package/dist/services/menu-item-metadata.service.js.map +1 -1
  361. package/dist/services/model-metadata.service.d.ts.map +1 -1
  362. package/dist/services/model-metadata.service.js +16 -45
  363. package/dist/services/model-metadata.service.js.map +1 -1
  364. package/dist/services/model-sequence.service.d.ts +23 -0
  365. package/dist/services/model-sequence.service.d.ts.map +1 -0
  366. package/dist/services/model-sequence.service.js +55 -0
  367. package/dist/services/model-sequence.service.js.map +1 -0
  368. package/dist/services/module-metadata.service.d.ts +1 -0
  369. package/dist/services/module-metadata.service.d.ts.map +1 -1
  370. package/dist/services/module-metadata.service.js +35 -1
  371. package/dist/services/module-metadata.service.js.map +1 -1
  372. package/dist/services/mq-message.service.d.ts.map +1 -1
  373. package/dist/services/mq-message.service.js +3 -4
  374. package/dist/services/mq-message.service.js.map +1 -1
  375. package/dist/services/permission-metadata.service.d.ts +5 -5
  376. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  377. package/dist/services/permission-metadata.service.js +6 -5
  378. package/dist/services/permission-metadata.service.js.map +1 -1
  379. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  380. package/dist/services/queues/database-subscriber.service.js +2 -1
  381. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  382. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
  383. package/dist/services/queues/publisher-factory.service.js +4 -0
  384. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  385. package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
  386. package/dist/services/queues/rabbitmq-subscriber.service.js +2 -2
  387. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  388. package/dist/services/role-metadata.service.d.ts.map +1 -1
  389. package/dist/services/role-metadata.service.js +1 -0
  390. package/dist/services/role-metadata.service.js.map +1 -1
  391. package/dist/services/scheduled-job.service.d.ts +6 -6
  392. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  393. package/dist/services/scheduled-job.service.js +8 -8
  394. package/dist/services/scheduled-job.service.js.map +1 -1
  395. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  396. package/dist/services/scheduled-jobs/scheduler.service.js +4 -0
  397. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  398. package/dist/services/security-rule.service.d.ts.map +1 -1
  399. package/dist/services/security-rule.service.js +1 -0
  400. package/dist/services/security-rule.service.js.map +1 -1
  401. package/dist/services/selection-providers/list-of-models-selection-provider.service.d.ts.map +1 -1
  402. package/dist/services/selection-providers/list-of-models-selection-provider.service.js +4 -0
  403. package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
  404. package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.d.ts +2 -2
  405. package/dist/services/selection-providers/list-of-values-selection-providers.service.d.ts.map +1 -0
  406. package/dist/{providers → services/selection-providers}/list-of-values-selection-providers.service.js +3 -3
  407. package/dist/services/selection-providers/list-of-values-selection-providers.service.js.map +1 -0
  408. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts +20 -0
  409. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.d.ts.map +1 -0
  410. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js +87 -0
  411. package/dist/services/selection-providers/pseudo-foreign-key-selection-provider.service.js.map +1 -0
  412. package/dist/services/setting.service.d.ts +7 -5
  413. package/dist/services/setting.service.d.ts.map +1 -1
  414. package/dist/services/setting.service.js +28 -5
  415. package/dist/services/setting.service.js.map +1 -1
  416. package/dist/services/sms-template.service.d.ts +7 -7
  417. package/dist/services/sms-template.service.d.ts.map +1 -1
  418. package/dist/services/sms-template.service.js +8 -7
  419. package/dist/services/sms-template.service.js.map +1 -1
  420. package/dist/services/solid-introspect.service.d.ts +10 -3
  421. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  422. package/dist/services/solid-introspect.service.js +66 -12
  423. package/dist/services/solid-introspect.service.js.map +1 -1
  424. package/dist/services/solid-ts-morph.service.js +2 -2
  425. package/dist/services/solid-ts-morph.service.js.map +1 -1
  426. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  427. package/dist/services/user-activity-history.service.js +1 -0
  428. package/dist/services/user-activity-history.service.js.map +1 -1
  429. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  430. package/dist/services/user-view-metadata.service.js +3 -2
  431. package/dist/services/user-view-metadata.service.js.map +1 -1
  432. package/dist/services/user.service.d.ts.map +1 -1
  433. package/dist/services/user.service.js +1 -0
  434. package/dist/services/user.service.js.map +1 -1
  435. package/dist/services/view-metadata.service.d.ts +3 -1
  436. package/dist/services/view-metadata.service.d.ts.map +1 -1
  437. package/dist/services/view-metadata.service.js +33 -5
  438. package/dist/services/view-metadata.service.js.map +1 -1
  439. package/dist/solid-core-cli-db.module.d.ts.map +1 -1
  440. package/dist/solid-core-cli-db.module.js +5 -2
  441. package/dist/solid-core-cli-db.module.js.map +1 -1
  442. package/dist/solid-core.module.d.ts.map +1 -1
  443. package/dist/solid-core.module.js +23 -1
  444. package/dist/solid-core.module.js.map +1 -1
  445. package/dist/subscribers/audit.subscriber.d.ts +3 -2
  446. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  447. package/dist/subscribers/audit.subscriber.js +8 -10
  448. package/dist/subscribers/audit.subscriber.js.map +1 -1
  449. package/dist/subscribers/computed-entity-field.subscriber.d.ts +7 -4
  450. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
  451. package/dist/subscribers/computed-entity-field.subscriber.js +60 -21
  452. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  453. package/dist/subscribers/created-by-updated-by.subscriber.d.ts +4 -2
  454. package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
  455. package/dist/subscribers/created-by-updated-by.subscriber.js +10 -8
  456. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  457. package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
  458. package/dist/subscribers/field-metadata.subscriber.js +0 -1
  459. package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
  460. package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
  461. package/dist/subscribers/model-metadata.subscriber.js +3 -2
  462. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  463. package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts +3 -2
  464. package/dist/subscribers/soft-delete-aware-event.subscriber.d.ts.map +1 -1
  465. package/dist/subscribers/soft-delete-aware-event.subscriber.js +6 -11
  466. package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
  467. package/dist/transformers/typeorm/local-date-time-transformer.d.ts +5 -0
  468. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -0
  469. package/dist/transformers/typeorm/local-date-time-transformer.js +26 -0
  470. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -0
  471. package/dist/tsconfig.tsbuildinfo +1 -1
  472. package/docs/grouping-enhancements.md +89 -0
  473. package/package.json +1 -1
  474. package/sql/default/mssql/proc_CleanupModelMetadata.sql +175 -0
  475. package/sql/default/mssql/proc_CleanupModuleMetadata.sql +78 -0
  476. package/sql/default/mssql/scratchpad.sql.txt +10 -0
  477. package/sql/default/postgres/proc_CleanupModelMetadata.sql +148 -0
  478. package/sql/default/postgres/proc_CleanupModuleMetadata.sql +50 -0
  479. package/sql/default/postgres/scratchpad.sql.txt +12 -0
  480. package/sql-server-changes.txt +88 -0
  481. package/src/commands/fixtures/fixtures-setup.command.ts +44 -0
  482. package/src/commands/fixtures/fixtures-tear-down.command.ts +45 -0
  483. package/src/commands/mcp.command.ts +215 -0
  484. package/src/commands/refresh-model.command.ts +39 -5
  485. package/src/commands/remove-fields.command.ts +1 -1
  486. package/src/commands/seed.command.ts +34 -15
  487. package/src/constants/error-messages.ts +7 -1
  488. package/src/controllers/authentication.controller.ts +1 -1
  489. package/src/controllers/email-template.controller.ts +1 -1
  490. package/src/controllers/field-metadata.controller.ts +7 -1
  491. package/src/controllers/media-storage-provider-metadata.controller.ts +1 -1
  492. package/src/controllers/model-metadata.controller.ts +1 -1
  493. package/src/controllers/model-sequence.controller.ts +93 -0
  494. package/src/controllers/module-metadata.controller.ts +1 -1
  495. package/src/controllers/otp-authentication.controller.ts +1 -1
  496. package/src/controllers/service.controller.ts +1 -1
  497. package/src/controllers/setting.controller.ts +33 -21
  498. package/src/controllers/sms-template.controller.ts +1 -1
  499. package/src/controllers/test-queue.controller.ts +1 -1
  500. package/src/controllers/test.controller.ts +1 -1
  501. package/src/dtos/basic-filters.dto.ts +6 -1
  502. package/src/dtos/basic-group-filters.dto.ts +23 -0
  503. package/src/dtos/create-ai-interaction.dto.ts +16 -9
  504. package/src/dtos/create-field-metadata.dto.ts +43 -13
  505. package/src/dtos/create-import-transaction.dto.ts +0 -4
  506. package/src/dtos/create-model-metadata.dto.ts +10 -0
  507. package/src/dtos/create-model-sequence.dto.ts +51 -0
  508. package/src/dtos/create-role-metadata.dto.ts +23 -4
  509. package/src/dtos/get-mcp-url.dto.ts +13 -0
  510. package/src/dtos/resolve-s3-url.dto.ts +31 -0
  511. package/src/dtos/update-ai-interaction.dto.ts +16 -9
  512. package/src/dtos/update-field-metadata.dto.ts +1 -2
  513. package/src/dtos/update-import-transaction.dto.ts +0 -4
  514. package/src/dtos/update-model-sequence.dto.ts +53 -0
  515. package/src/entities/action-metadata.entity.ts +4 -4
  516. package/src/entities/ai-interaction.entity.ts +16 -12
  517. package/src/entities/chatter-message-details.entity.ts +18 -18
  518. package/src/entities/chatter-message.entity.ts +2 -2
  519. package/src/entities/common.entity.ts +20 -11
  520. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +2 -2
  521. package/src/entities/dashboard-question.entity.ts +3 -3
  522. package/src/entities/dashboard-variable.entity.ts +3 -3
  523. package/src/entities/dashboard.entity.ts +1 -1
  524. package/src/entities/email-template.entity.ts +4 -3
  525. package/src/entities/export-template.entity.ts +2 -2
  526. package/src/entities/export-transaction.entity.ts +2 -2
  527. package/src/entities/field-metadata.entity.ts +6 -3
  528. package/src/entities/import-transaction-error-log.entity.ts +2 -2
  529. package/src/entities/import-transaction.entity.ts +2 -5
  530. package/src/entities/legacy-common-with-id.entity.ts +11 -0
  531. package/src/entities/legacy-common.entity.ts +58 -0
  532. package/src/entities/list-of-values.entity.ts +2 -2
  533. package/src/entities/locale.entity.ts +1 -1
  534. package/src/entities/media.entity.ts +25 -25
  535. package/src/entities/menu-item-metadata.entity.ts +4 -4
  536. package/src/entities/model-metadata.entity.ts +9 -2
  537. package/src/entities/model-sequence.entity.ts +32 -0
  538. package/src/entities/mq-message-queue.entity.ts +1 -1
  539. package/src/entities/mq-message.entity.ts +34 -34
  540. package/src/entities/saved-filters.entity.ts +5 -5
  541. package/src/entities/scheduled-job.entity.ts +4 -4
  542. package/src/entities/security-rule.entity.ts +2 -2
  543. package/src/entities/setting.entity.ts +2 -2
  544. package/src/entities/sms-template.entity.ts +2 -2
  545. package/src/entities/user-activity-history.entity.ts +14 -14
  546. package/src/entities/user-view-metadata.entity.ts +2 -2
  547. package/src/entities/user.entity.ts +15 -15
  548. package/src/entities/view-metadata.entity.ts +3 -3
  549. package/src/helpers/date.helper.ts +31 -10
  550. package/src/helpers/field-crud-managers/BigIntFieldCrudManager.ts +18 -5
  551. package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +9 -9
  552. package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +16 -8
  553. package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +9 -9
  554. package/src/helpers/model-metadata-helper.service.ts +67 -34
  555. package/src/helpers/module-metadata-helper.service.ts +18 -1
  556. package/src/helpers/module.helper.ts +37 -1
  557. package/src/helpers/schematic.service.ts +72 -46
  558. package/src/helpers/solid-registry.ts +28 -2
  559. package/src/helpers/typeorm-db-helper.ts +26 -0
  560. package/src/index.ts +7 -2
  561. package/src/interfaces.ts +3 -0
  562. package/src/jobs/computed-field-evaluation-subscriber.service.ts +15 -4
  563. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +17 -21
  564. package/src/repository/media.repository.ts +3 -2
  565. package/src/repository/model-sequence.repository.ts +97 -0
  566. package/src/seeders/module-metadata-seeder.service.ts +176 -58
  567. package/src/seeders/seed-data/solid-core-metadata.json +555 -654
  568. package/src/seeders/system-fields-seeder.service.ts +39 -36
  569. package/src/services/action-metadata.service.ts +3 -2
  570. package/src/services/ai-interaction.service.ts +3 -2
  571. package/src/services/authentication.service.ts +46 -14
  572. package/src/services/chatter-message-details.service.ts +2 -1
  573. package/src/services/chatter-message.service.ts +10 -4
  574. package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +17 -12
  575. package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +86 -0
  576. package/src/services/crud-helper.service.ts +319 -53
  577. package/src/services/crud.service.ts +233 -34
  578. package/src/services/database/database-bootstrap.service.ts +91 -0
  579. package/src/services/email-template.service.ts +11 -13
  580. package/src/services/excel.service.ts +146 -3
  581. package/src/services/field-metadata.service.ts +322 -70
  582. package/src/services/file.service.ts +9 -0
  583. package/src/services/fixtures.service.ts +108 -0
  584. package/src/services/genai/ingest-metadata.service.ts +4 -3
  585. package/src/services/import-transaction-error-log.service.ts +2 -1
  586. package/src/services/import-transaction.service.ts +8 -4
  587. package/src/services/list-of-values.service.ts +4 -4
  588. package/src/services/locale.service.ts +2 -1
  589. package/src/services/mail/smtp-email.service.ts +1 -1
  590. package/src/services/media.service.ts +10 -11
  591. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +22 -7
  592. package/src/services/mediaStorageProviders/file-storage-provider.ts +18 -13
  593. package/src/services/menu-item-metadata.service.ts +87 -52
  594. package/src/services/model-metadata.service.ts +68 -47
  595. package/src/services/model-sequence.service.ts +33 -0
  596. package/src/services/module-metadata.service.ts +49 -2
  597. package/src/services/mq-message.service.ts +16 -15
  598. package/src/services/permission-metadata.service.ts +8 -9
  599. package/src/services/queues/database-subscriber.service.ts +3 -1
  600. package/src/services/queues/publisher-factory.service.ts +2 -1
  601. package/src/services/queues/rabbitmq-subscriber.service.ts +4 -2
  602. package/src/services/role-metadata.service.ts +1 -0
  603. package/src/services/scheduled-job.service.ts +9 -9
  604. package/src/services/scheduled-jobs/scheduler.service.ts +5 -0
  605. package/src/services/security-rule.service.ts +1 -0
  606. package/src/services/selection-providers/list-of-models-selection-provider.service.ts +5 -2
  607. package/src/{providers → services/selection-providers}/list-of-values-selection-providers.service.ts +2 -2
  608. package/src/services/selection-providers/pseudo-foreign-key-selection-provider.service.ts +94 -0
  609. package/src/services/setting.service.ts +46 -16
  610. package/src/services/sms-template.service.ts +11 -13
  611. package/src/services/solid-introspect.service.ts +97 -10
  612. package/src/services/solid-ts-morph.service.ts +2 -2
  613. package/src/services/user-activity-history.service.ts +3 -2
  614. package/src/services/user-view-metadata.service.ts +4 -3
  615. package/src/services/user.service.ts +2 -1
  616. package/src/services/view-metadata.service.ts +52 -21
  617. package/src/solid-core-cli-db.module.ts +5 -4
  618. package/src/solid-core.module.ts +23 -1
  619. package/src/subscribers/audit.subscriber.ts +14 -9
  620. package/src/subscribers/computed-entity-field.subscriber.ts +71 -22
  621. package/src/subscribers/created-by-updated-by.subscriber.ts +14 -8
  622. package/src/subscribers/field-metadata.subscriber.ts +1 -1
  623. package/src/subscribers/model-metadata.subscriber.ts +4 -2
  624. package/src/subscribers/soft-delete-aware-event.subscriber.ts +12 -6
  625. package/src/transformers/typeorm/local-date-time-transformer.ts +30 -0
  626. package/dist/providers/list-of-values-selection-providers.service.d.ts.map +0 -1
  627. package/dist/providers/list-of-values-selection-providers.service.js.map +0 -1
  628. package/src/commands/ingest-rag-chunking-strategy-for.md +0 -224
  629. package/src/entities/user.entity.ts.bkp +0 -144
  630. package/src/services/docker exec -it mssql //" +0 -8
@@ -1,19 +1,32 @@
1
1
  import { classify } from '@angular-devkit/core/src/utils/strings';
2
2
  import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
3
- import { DiscoveryService, MetadataScanner, Reflector } from '@nestjs/core';
3
+ import { DiscoveryService, MetadataScanner, ModuleRef, Reflector } from '@nestjs/core';
4
4
  import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
5
+ import { getDataSourceToken } from '@nestjs/typeorm';
5
6
  import { IS_COMPUTED_FIELD_PROVIDER } from 'src/decorators/computed-field-provider.decorator';
7
+ import { IS_DASHBOARD_QUESTION_DATA_PROVIDER } from 'src/decorators/dashboard-question-data-provider.decorator';
8
+ import { IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER } from 'src/decorators/dashboard-selection-provider.decorator';
9
+ import { IS_ERROR_CODE_PROVIDER } from 'src/decorators/error-codes-provider.decorator';
10
+ import { IS_MAIL_PROVIDER } from 'src/decorators/mail-provider.decorator';
11
+ import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
12
+ import { IS_SECURITY_RULE_CONFIG_PROVIDER } from 'src/decorators/security-rule-config-provider.decorator';
6
13
  import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorator';
7
14
  import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
15
+ import { IS_WA_PROVIDER } from 'src/decorators/whatsapp-provider.decorator';
8
16
  import { SolidRegistry } from 'src/helpers/solid-registry';
17
+ import { AuditSubscriber } from 'src/subscribers/audit.subscriber';
18
+ import { ComputedEntityFieldSubscriber } from 'src/subscribers/computed-entity-field.subscriber';
19
+ import { CreatedByUpdatedBySubscriber } from 'src/subscribers/created-by-updated-by.subscriber';
20
+ import { SoftDeleteAwareEventSubscriber } from 'src/subscribers/soft-delete-aware-event.subscriber';
21
+ import { DataSource } from 'typeorm';
9
22
  import { CRUDService } from './crud.service';
10
- import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
11
- import { IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER } from 'src/decorators/dashboard-selection-provider.decorator';
12
- import { IS_DASHBOARD_QUESTION_DATA_PROVIDER } from 'src/decorators/dashboard-question-data-provider.decorator';
13
- import { IS_MAIL_PROVIDER } from 'src/decorators/mail-provider.decorator';
14
- import { IS_WA_PROVIDER } from 'src/decorators/whatsapp-provider.decorator';
15
- import { IS_ERROR_CODE_PROVIDER } from 'src/decorators/error-codes-provider.decorator';
16
- import { IS_SECURITY_RULE_CONFIG_PROVIDER } from 'src/decorators/security-rule-config-provider.decorator';
23
+
24
+ export const coreSubscriberClasses = [
25
+ AuditSubscriber,
26
+ ComputedEntityFieldSubscriber,
27
+ CreatedByUpdatedBySubscriber,
28
+ SoftDeleteAwareEventSubscriber
29
+ ];
17
30
 
18
31
  @Injectable()
19
32
  export class SolidIntrospectService implements OnApplicationBootstrap {
@@ -22,11 +35,12 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
22
35
  private readonly reflector: Reflector,
23
36
  private readonly metadataScanner: MetadataScanner,
24
37
  private readonly solidRegistry: SolidRegistry,
38
+ private readonly moduleRef: ModuleRef,
25
39
  ) { }
26
40
 
27
41
  private readonly logger = new Logger(SolidIntrospectService.name);
28
- onApplicationBootstrap() {
29
- this.logger.log('Introspecting the application for Solid metadata');
42
+ async onApplicationBootstrap() {
43
+ this.logger.debug('Introspecting the application for Solid metadata');
30
44
 
31
45
  // Register all seeders
32
46
  const seeders = this.discoveryService
@@ -147,6 +161,79 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
147
161
  securityRuleConfigProviders.forEach((securityRuleConfigProvider) => {
148
162
  this.solidRegistry.registerSecurityRuleConfigProvider(securityRuleConfigProvider);
149
163
  });
164
+
165
+ // Register the core subscribers against all the configured database modules / datasources
166
+ await this.bootstrapCoreTypeOrmSubscribers(solidDatabaseModules)
167
+ }
168
+
169
+ async bootstrapCoreTypeOrmSubscribers(dbModules: Array<InstanceWrapper<any>>): Promise<void> {
170
+ // Register core subscribers for each Solid database module
171
+ for (const wrapper of dbModules) {
172
+ // Get the Database Module instance
173
+ const instance = (wrapper as InstanceWrapper).instance as any;
174
+ if (!instance || typeof instance.name !== 'function') {
175
+ this.logger.warn('Skipping a solid DB module wrapper with no instance or name() method');
176
+ continue;
177
+ }
178
+
179
+ // Get the DataSource for this module
180
+ const dsName: string | undefined = instance.name();
181
+ // getDataSourceToken() without name = default; pass dsName if non-default
182
+ const token = dsName ? getDataSourceToken(dsName) : getDataSourceToken();
183
+ let ds: DataSource | undefined;
184
+ try {
185
+ ds = this.moduleRef.get<DataSource>(token, { strict: false });
186
+ } catch (err) {
187
+ this.logger.warn(`DataSource token for "${dsName ?? 'default'}" not found: ${err?.message ?? err}`);
188
+ }
189
+ if (!ds) {
190
+ this.logger.warn(`No DataSource found for module "${dsName}". Skipping subscriber registration.`);
191
+ continue;
192
+ }
193
+
194
+ // Ensure DataSource is initialized (optional)
195
+ if (!ds.isInitialized) {
196
+ try {
197
+ await ds.initialize(); // only if you need to initialize here; in many apps datasources are created earlier
198
+ } catch (err) {
199
+ this.logger.error(`Failed to initialize DataSource "${dsName}": ${err}`);
200
+ continue;
201
+ }
202
+ }
203
+
204
+ // Register each subscriber class for this DataSource
205
+ // const auditSubscriberInstance = new AuditSubscriber(this.chatterMessageService, this.modelMetadataRepo, this.modelMetadataHelperService);
206
+ // auditSubscriberInstance.bindToDataSource(ds);
207
+
208
+ // const computedEntityFieldSubscriberInstance = new ComputedEntityFieldSubscriber(this.solidRegistry, this.publisherFactory);
209
+ // computedEntityFieldSubscriberInstance.bindToDataSource(ds);
210
+
211
+ // const createdByUpdatedBySubscriberInstance = new CreatedByUpdatedBySubscriber(this.requestContextService);
212
+ // createdByUpdatedBySubscriberInstance.bindToDataSource(ds);
213
+
214
+ // const softDeleteAwareEventSubscriberInstance = new SoftDeleteAwareEventSubscriber();
215
+ // softDeleteAwareEventSubscriberInstance.bindToDataSource(ds);
216
+ for (const SubClass of coreSubscriberClasses) {
217
+ const alreadyRegistered = ds.subscribers.some(
218
+ (s) => (s as any).constructor?.name === SubClass.name,
219
+ );
220
+ if (alreadyRegistered) {
221
+ this.logger.debug(`Subscriber ${SubClass.name} already registered on datasource ${dsName ?? 'default'}`);
222
+ continue;
223
+ }
224
+
225
+ // Resolve subscriber from NestJS moduleRef to ensure dependencies are injected
226
+ const subscriberInstance = await this.moduleRef.resolve(SubClass, undefined, { strict: false });
227
+ subscriberInstance.bindToDataSource(ds);
228
+
229
+ // instantiate subscriber bound to this DataSource
230
+ // NOTE: constructor signature must be (dataSource: DataSource, requestContextService: RequestContextService, ...)
231
+ // const subscriberInstance = new (SubClass as any)(ds, this.requestContextService);
232
+
233
+ // ds.subscribers.push(subscriberInstance);
234
+ // this.logger.log(`Registered subscriber ${SubClass.name} on datasource ${dsName ?? 'default'}`);
235
+ }
236
+ }
150
237
  }
151
238
 
152
239
  isDashboardQuestionDataProvider(providerWrapper: InstanceWrapper<any>) {
@@ -47,8 +47,8 @@ export class SolidTsMorphService {
47
47
  },
48
48
  });
49
49
 
50
- this.logger.log(`SolidTsMorphService repoRoot = ${this.repoRoot}`);
51
- Object.entries(this.workspaceMap).forEach(([k, v]) => this.logger.log(`workspace '${k}' => ${v}`));
50
+ this.logger.debug(`SolidTsMorphService repoRoot = ${this.repoRoot}`);
51
+ Object.entries(this.workspaceMap).forEach(([k, v]) => this.logger.debug(`workspace '${k}' => ${v}`));
52
52
  }
53
53
 
54
54
  // ---- repo-root discovery ----
@@ -1,7 +1,7 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { forwardRef, Inject, Injectable } from '@nestjs/common';
2
2
  import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
- import { EntityManager, Repository } from 'typeorm';
4
+ import { EntityManager, In, Repository } from 'typeorm';
5
5
 
6
6
  import { CRUDService } from 'src/services/crud.service';
7
7
  import { ModelMetadataService } from 'src/services/model-metadata.service';
@@ -19,6 +19,7 @@ import { UserActivityHistoryRepository } from 'src/repository/user-activity-hist
19
19
  @Injectable()
20
20
  export class UserActivityHistoryService extends CRUDService<UserActivityHistory> {
21
21
  constructor(
22
+ @Inject(forwardRef(() => ModelMetadataService))
22
23
  readonly modelMetadataService: ModelMetadataService,
23
24
  readonly moduleMetadataService: ModuleMetadataService,
24
25
  readonly configService: ConfigService,
@@ -1,4 +1,4 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { forwardRef, Inject, Injectable } from '@nestjs/common';
2
2
  import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
4
  import { EntityManager, Repository } from 'typeorm';
@@ -19,6 +19,7 @@ import { UserViewMetadataRepository } from 'src/repository/user-view-metadata.re
19
19
  @Injectable()
20
20
  export class UserViewMetadataService extends CRUDService<UserViewMetadata> {
21
21
  constructor(
22
+ @Inject(forwardRef(() => ModelMetadataService))
22
23
  readonly modelMetadataService: ModelMetadataService,
23
24
  readonly moduleMetadataService: ModuleMetadataService,
24
25
  readonly configService: ConfigService,
@@ -42,13 +43,13 @@ export class UserViewMetadataService extends CRUDService<UserViewMetadata> {
42
43
  });
43
44
 
44
45
  if (existing) {
45
- existing.layout = JSON.parse(query.layout);
46
+ existing.layout = query.layout;
46
47
  return await this.repo.save(existing);
47
48
  } else {
48
49
  const newEntry = this.repo.create({
49
50
  user: { id: activeUser?.sub },
50
51
  viewMetadata: { id: query.viewMetadataId },
51
- layout: JSON.parse(query.layout)
52
+ layout: query.layout
52
53
  });
53
54
  return await this.repo.save(newEntry);
54
55
  }
@@ -1,4 +1,4 @@
1
- import { BadRequestException, Inject, Injectable } from '@nestjs/common';
1
+ import { BadRequestException, forwardRef, Inject, Injectable } from '@nestjs/common';
2
2
  import { ConfigService, ConfigType } from '@nestjs/config';
3
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
4
  import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
@@ -22,6 +22,7 @@ import { RoleMetadataRepository } from 'src/repository/role-metadata.repository'
22
22
  @Injectable()
23
23
  export class UserService extends CRUDService<User> {
24
24
  constructor(
25
+ @Inject(forwardRef(() => ModelMetadataService))
25
26
  readonly modelMetadataService: ModelMetadataService,
26
27
  readonly moduleMetadataService: ModuleMetadataService,
27
28
  readonly configService: ConfigService,
@@ -1,4 +1,4 @@
1
- import { BadRequestException, Injectable, Logger } from '@nestjs/common';
1
+ import { BadRequestException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigService } from '@nestjs/config';
3
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
4
  import { InjectEntityManager } from '@nestjs/typeorm';
@@ -7,26 +7,27 @@ import { CRUDService } from 'src/services/crud.service';
7
7
  import { FileService } from "src/services/file.service";
8
8
  import { ModelMetadataService } from 'src/services/model-metadata.service';
9
9
  import { ModuleMetadataService } from 'src/services/module-metadata.service';
10
- import { EntityManager } from 'typeorm';
10
+ import { EntityManager, In } from 'typeorm';
11
11
 
12
12
 
13
13
  import { classify } from '@angular-devkit/core/src/utils/strings';
14
14
  import { Locale } from 'src/entities/locale.entity';
15
15
  import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
16
16
  import { SolidRegistry } from 'src/helpers/solid-registry';
17
- import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
18
17
  import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
19
18
  import { ViewMetadataRepository } from 'src/repository/view-metadata.repository';
20
19
  import { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';
21
20
  import { FieldMetadata } from '../entities/field-metadata.entity';
22
21
  import { ViewMetadata } from '../entities/view-metadata.entity';
23
22
  import { ActionMetadataService } from './action-metadata.service';
23
+ import { MenuItemMetadataService } from './menu-item-metadata.service';
24
24
  import { SolidIntrospectService } from './solid-introspect.service';
25
25
  import { UserViewMetadataService } from './user-view-metadata.service';
26
26
 
27
27
  @Injectable()
28
28
  export class ViewMetadataService extends CRUDService<ViewMetadata> {
29
29
  constructor(
30
+ @Inject(forwardRef(() => ModelMetadataService))
30
31
  readonly modelMetadataService: ModelMetadataService,
31
32
  readonly moduleMetadataService: ModuleMetadataService,
32
33
  readonly configService: ConfigService,
@@ -34,6 +35,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
34
35
  readonly discoveryService: DiscoveryService,
35
36
  readonly crudHelperService: CrudHelperService,
36
37
  readonly actionMetadataService: ActionMetadataService,
38
+ readonly menuItemMetadataService: MenuItemMetadataService,
37
39
  readonly introspectService: SolidIntrospectService,
38
40
  readonly userViewMetadataService: UserViewMetadataService,
39
41
  @InjectEntityManager()
@@ -44,6 +46,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
44
46
  // private readonly fieldMetadataRepo: Repository<FieldMetadata>,
45
47
  // @InjectRepository(ModelMetadata)
46
48
  // private readonly modelMetadataRepo: Repository<ModelMetadata>,
49
+ @Inject(forwardRef(() => ModelMetadataRepository))
47
50
  private readonly modelMetadataRepo: ModelMetadataRepository,
48
51
  private readonly modelMetadataHelperService: ModelMetadataHelperService,
49
52
  readonly moduleRef: ModuleRef
@@ -55,13 +58,13 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
55
58
 
56
59
  //for locales
57
60
  private async getEntityRecordsInAllLocales(
58
- modelName: string,
59
- id: string,
60
- defaultEntityLocaleIdFromQuery?: string
61
- ): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {
62
- const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
63
- // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
64
- const currentEntityRepository = this.entityManager.getRepository(classify(modelName));
61
+ modelName: string,
62
+ id: string,
63
+ defaultEntityLocaleIdFromQuery?: string
64
+ ): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {
65
+ const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
66
+ // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
67
+ const currentEntityRepository = this.entityManager.getRepository(classify(modelName));
65
68
 
66
69
  // Case 1: Creating a new record with no defaultEntityLocaleId to clone
67
70
  if (id === 'new' && !defaultEntityLocaleIdFromQuery) {
@@ -117,16 +120,35 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
117
120
 
118
121
  // START: Custom Service Methods
119
122
  async getLayout(query, activeUser) {
120
- let { modelName, moduleName, viewType, id, populate } = query;
123
+ let { modelName, moduleName, viewType, id, populate, menuItemId, menuItemName, actionId, actionName } = query;
121
124
 
122
- // modelName = camelize(modelName);
123
125
 
124
- // 1. Fetch the view based on module, model & view name.
126
+ // 1. Fetch the action based on actionId.
127
+ const solidRequestContext = {
128
+ activeUser: activeUser
129
+ }
130
+ const actionQuery = {
131
+ populate: ["view"]
132
+ }
133
+ let action = null;
134
+ if (actionId) {
135
+ action = await this.actionMetadataService.findOne(actionId, actionQuery, solidRequestContext);
136
+ }
137
+
138
+ // 2. Fetch the menu based on menuItemId.
139
+ const menuItemQuery = {
140
+ }
141
+ let menuItem = null;
142
+ if (menuItemId) {
143
+ menuItem = await this.menuItemMetadataService.findOne(menuItemId, menuItemQuery, solidRequestContext);
144
+ }
145
+ const viewId = action?.view?.id
146
+ // 3. Fetch the view based on module, model & view name.
125
147
  const entity = await this.repo.findOne({
126
148
  where: {
127
149
  model: { singularName: modelName },
128
150
  module: { name: moduleName },
129
- type: viewType,
151
+ ...(actionId && viewId ? { id: action.view.id } : { type: viewType })
130
152
  },
131
153
  relations: {
132
154
  model: {
@@ -143,7 +165,16 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
143
165
  throw new BadRequestException(`Unable to identify user for module: ${moduleName}, model: ${modelName} and viewType: ${viewType}`);
144
166
  }
145
167
 
146
- // 2. See if we have a user specific layout for this view.
168
+ // 4. add action and menuItem to Entity which is our solid View
169
+ if (actionId) {
170
+ delete action.view;
171
+ entity['action'] = action
172
+ }
173
+ if (menuItemId) {
174
+ entity['menu'] = menuItem
175
+ }
176
+
177
+ // 5. See if we have a user specific layout for this view.
147
178
  const userLayout = await this.userViewMetadataService.repo.findOne({
148
179
  where: {
149
180
  user: { id: activeUser?.sub },
@@ -158,7 +189,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
158
189
  }
159
190
 
160
191
 
161
- // 3. We are resolving the create & edit actions if specified in the layout.
192
+ // 6. We are resolving the create & edit actions if specified in the layout.
162
193
  if (entity?.layout?.attrs?.createAction) {
163
194
  const actionName: string = entity.layout.attrs.createAction;
164
195
  entity.layout.attrs.createAction = await this.actionMetadataService.findOneByUserKey(actionName)
@@ -168,14 +199,14 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
168
199
  entity.layout.attrs.editAction = await this.actionMetadataService.findOneByUserKey(actionName)
169
200
  }
170
201
 
171
- // 4. For form views we need to fetch the workflow field metadata if specified.
202
+ // 7. For form views we need to fetch the workflow field metadata if specified.
172
203
  let workflowFieldName = null;
173
204
  let workflowField = null;
174
205
  if (viewType === 'form') {
175
206
  workflowFieldName = entity.layout?.attrs?.workflowField;
176
207
  }
177
208
 
178
- // 5. Create an easy to use map of field metadata, rather than sending an array of fields it becomes easier to use in the frontend.
209
+ // 8. Create an easy to use map of field metadata, rather than sending an array of fields it becomes easier to use in the frontend.
179
210
  const fields = await this.modelMetadataHelperService.loadFieldHierarchy(modelName);
180
211
  const fieldsMap = new Map<string, FieldMetadata>();
181
212
  for (let i = 0; i < fields.length; i++) {
@@ -207,7 +238,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
207
238
  }
208
239
  }
209
240
 
210
- // 6. Use the resolved workflowField to populate workflow specific metadata.
241
+ // 9. Use the resolved workflowField to populate workflow specific metadata.
211
242
  // Check if we were able to resolve an actual workflowField.
212
243
  let solidFormViewWorkflowData = [];
213
244
  if (viewType === 'form' && workflowField) {
@@ -232,7 +263,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
232
263
  }
233
264
  }
234
265
 
235
- // 7. If this model supports internationalisation, we need to load the locales applicable with the id of an actual record for each locale if present.
266
+ // 10. If this model supports internationalisation, we need to load the locales applicable with the id of an actual record for each locale if present.
236
267
  // This is the shape of locales that will be returned
237
268
  /**
238
269
  * [
@@ -335,7 +366,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
335
366
  'solidView': entity,
336
367
  'solidFieldsMetadata': Object.fromEntries(fieldsMap),
337
368
  'solidFormViewWorkflowData': solidFormViewWorkflowData,
338
- 'applicableLocales': applicableLocales
369
+ 'applicableLocales': applicableLocales,
339
370
  }
340
371
 
341
372
  return r;
@@ -4,7 +4,8 @@ import { join } from 'path';
4
4
  import { SnakeNamingStrategy } from 'typeorm-naming-strategies';
5
5
  import { WinstonTypeORMLogger } from './winston.logger';
6
6
  import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
7
-
7
+ import { parseBooleanEnv } from './helpers/environment.helper';
8
+ import { Logger } from 'winston';
8
9
  @Module({
9
10
  imports: [
10
11
  TypeOrmModule.forRootAsync({
@@ -47,9 +48,9 @@ import { WINSTON_MODULE_PROVIDER } from 'nest-winston';
47
48
  // autoLoadEntities: true,
48
49
  entities: entities,
49
50
  // your entities will be synced with the database (recommended: disable in prod)
50
- synchronize: Boolean(process.env.DEFAULT_DATABASE_SYNCHRONIZE),
51
- logging: Boolean(process.env.DEFAULT_DATABASE_LOGGING),
52
- // logger: new WinstonTypeORMLogger(logger), // Pass in the custom WinstonLogger
51
+ synchronize: parseBooleanEnv('DEFAULT_DATABASE_SYNCHRONIZE'),
52
+ logging: parseBooleanEnv('DEFAULT_DATABASE_LOGGING'),
53
+ logger: parseBooleanEnv('DEFAULT_DATABASE_LOGGING') ? new WinstonTypeORMLogger(logger) : undefined, // Pass in the custom WinstonLogger
53
54
  namingStrategy: new SnakeNamingStrategy(),
54
55
  // subscribers: subscribers
55
56
  }
@@ -25,7 +25,8 @@ import { ModelMetadata } from './entities/model-metadata.entity';
25
25
  import { ModuleMetadata } from './entities/module-metadata.entity';
26
26
  import { CommandService } from './helpers/command.service';
27
27
  import { SchematicService } from './helpers/schematic.service';
28
- import { ListOfValuesSelectionProvider } from './providers/list-of-values-selection-providers.service';
28
+ import { ListOfValuesSelectionProvider } from './services/selection-providers/list-of-values-selection-providers.service';
29
+ import { PseudoForeignKeySelectionProvider } from './services/selection-providers/pseudo-foreign-key-selection-provider.service'
29
30
  import { ModuleMetadataSeederService } from './seeders/module-metadata-seeder.service';
30
31
  import { CrudHelperService } from './services/crud-helper.service';
31
32
  import { FieldMetadataService } from './services/field-metadata.service';
@@ -326,6 +327,16 @@ import { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';
326
327
  import { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';
327
328
  import { ViewMetadataSubsciber } from './subscribers/view-metadata.subscriber';
328
329
  import { MediaStorageProviderMetadataRepository } from './repository/media-storage-provider-metadata.repository';
330
+ import { McpCommand } from './commands/mcp.command';
331
+ import { FixturesService } from './services/fixtures.service';
332
+ import { FixturesSetupCommand } from './commands/fixtures/fixtures-setup.command';
333
+ import { FixturesTearDownCommand } from './commands/fixtures/fixtures-tear-down.command';
334
+ import { DatabaseBootstrapService } from './services/database/database-bootstrap.service';
335
+ import { SequenceNumComputedFieldProvider } from './services/computed-fields/entity/sequence-num-computed-field-provider';
336
+ import { ModelSequence } from './entities/model-sequence.entity';
337
+ import { ModelSequenceService } from './services/model-sequence.service';
338
+ import { ModelSequenceController } from './controllers/model-sequence.controller';
339
+ import { ModelSequenceRepository } from './repository/model-sequence.repository';
329
340
 
330
341
 
331
342
  @Global()
@@ -367,6 +378,7 @@ import { MediaStorageProviderMetadataRepository } from './repository/media-stora
367
378
  UserActivityHistory,
368
379
  UserViewMetadata,
369
380
  ViewMetadata,
381
+ ModelSequence,
370
382
  ]),
371
383
  ConfigModule.forFeature(appBuilderConfig),
372
384
  ConfigModule.forFeature(commonConfig),
@@ -441,6 +453,7 @@ import { MediaStorageProviderMetadataRepository } from './repository/media-stora
441
453
  UserController,
442
454
  UserViewMetadataController,
443
455
  ViewMetadataController,
456
+ ModelSequenceController,
444
457
  ],
445
458
  providers: [
446
459
  {
@@ -486,6 +499,7 @@ import { MediaStorageProviderMetadataRepository } from './repository/media-stora
486
499
  ModuleMetadataSeederService,
487
500
  ListOfValuesService,
488
501
  ListOfValuesSelectionProvider,
502
+ PseudoForeignKeySelectionProvider,
489
503
  ModelMetadataSubscriber,
490
504
  ViewMetadataService,
491
505
  ActionMetadataService,
@@ -497,6 +511,7 @@ import { MediaStorageProviderMetadataRepository } from './repository/media-stora
497
511
  TextractService,
498
512
  SolidRegistry,
499
513
  SeedCommand,
514
+ McpCommand,
500
515
  IngestCommand,
501
516
  IngestMetadataService,
502
517
  SMTPEMailService,
@@ -698,6 +713,13 @@ import { MediaStorageProviderMetadataRepository } from './repository/media-stora
698
713
  ModuleMetadataRepository,
699
714
  ActionMetadataRepository,
700
715
  MediaStorageProviderMetadataRepository,
716
+ FixturesService,
717
+ FixturesSetupCommand,
718
+ FixturesTearDownCommand,
719
+ DatabaseBootstrapService,
720
+ SequenceNumComputedFieldProvider,
721
+ ModelSequenceService,
722
+ ModelSequenceRepository,
701
723
  ],
702
724
  exports: [
703
725
  AiInteractionService,
@@ -1,9 +1,8 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectDataSource } from '@nestjs/typeorm';
1
+ import { forwardRef, Inject, Injectable, Scope } from '@nestjs/common';
3
2
  import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
4
3
  import { lowerFirst } from 'src/helpers/string.helper';
5
4
  import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
6
- import { DataSource, EntityMetadata, EntitySubscriberInterface, EventSubscriber, InsertEvent, RemoveEvent, UpdateEvent } from 'typeorm';
5
+ import { DataSource, EntityMetadata, EntitySubscriberInterface, InsertEvent, RemoveEvent, UpdateEvent } from 'typeorm';
7
6
  import { ChatterMessageService } from '../services/chatter-message.service';
8
7
 
9
8
 
@@ -12,19 +11,25 @@ type DeferredCall =
12
11
  | { kind: 'update'; args: Parameters<ChatterMessageService['postAuditMessageOnUpdate']> }
13
12
  | { kind: 'delete'; args: Parameters<ChatterMessageService['postAuditMessageOnDelete']> };
14
13
 
15
- @Injectable()
16
- @EventSubscriber()
14
+ @Injectable({scope: Scope.TRANSIENT})
15
+ // @EventSubscriber()
17
16
  export class AuditSubscriber implements EntitySubscriberInterface {
18
-
17
+ private dataSource: DataSource;
19
18
  constructor(
20
- @InjectDataSource()
21
- private readonly dataSource: DataSource,
19
+ // @InjectDataSource()
20
+ // private readonly dataSource: DataSource,
22
21
  private readonly chatterMessageService: ChatterMessageService,
23
22
  // @InjectRepository(ModelMetadata)
24
23
  // private readonly modelMetadataRepo: Repository<ModelMetadata>,
24
+ @Inject(forwardRef(() => ModelMetadataRepository))
25
25
  private readonly modelMetadataRepo: ModelMetadataRepository,
26
26
  private readonly modelMetadataHelperService: ModelMetadataHelperService,
27
27
  ) {
28
+ // this.dataSource.subscribers.push(this);
29
+ }
30
+
31
+ bindToDataSource(dataSource: DataSource) {
32
+ this.dataSource = dataSource;
28
33
  this.dataSource.subscribers.push(this);
29
34
  }
30
35
 
@@ -57,7 +62,7 @@ export class AuditSubscriber implements EntitySubscriberInterface {
57
62
 
58
63
  const auditFields = modelFields.filter(field =>
59
64
  field.enableAuditTracking &&
60
- !['mediaSingle', 'mediaMultiple', 'computed', 'richText', 'json'].includes(field.type) &&
65
+ !['mediaSingle', 'mediaMultiple', 'richText', 'json'].includes(field.type) &&
61
66
  !(field.type === 'relation' && field.relationType === 'one-to-many')
62
67
  );
63
68