@solidxai/core 0.1.4 → 0.1.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/dist/constants/error-messages.d.ts +1 -0
  3. package/dist/constants/error-messages.d.ts.map +1 -1
  4. package/dist/constants/error-messages.js +1 -0
  5. package/dist/constants/error-messages.js.map +1 -1
  6. package/dist/constants.d.ts +3 -3
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/constants.js +12 -12
  9. package/dist/constants.js.map +1 -1
  10. package/dist/controllers/otp-authentication.controller.d.ts +1 -4
  11. package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
  12. package/dist/controllers/otp-authentication.controller.js +1 -1
  13. package/dist/controllers/role-metadata.controller.d.ts +1 -0
  14. package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
  15. package/dist/controllers/role-metadata.controller.js +15 -0
  16. package/dist/controllers/role-metadata.controller.js.map +1 -1
  17. package/dist/controllers/view-metadata.controller.d.ts +1 -0
  18. package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
  19. package/dist/dtos/create-email-template.dto.d.ts.map +1 -1
  20. package/dist/dtos/create-email-template.dto.js.map +1 -1
  21. package/dist/dtos/create-list-of-values.dto.d.ts.map +1 -1
  22. package/dist/dtos/create-list-of-values.dto.js.map +1 -1
  23. package/dist/dtos/create-menu-item-metadata.dto.d.ts.map +1 -1
  24. package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
  25. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  26. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  27. package/dist/dtos/create-saved-filters.dto.d.ts +1 -0
  28. package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
  29. package/dist/dtos/create-saved-filters.dto.js +8 -1
  30. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  31. package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -1
  32. package/dist/dtos/create-scheduled-job.dto.js.map +1 -1
  33. package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
  34. package/dist/dtos/create-security-rule.dto.js.map +1 -1
  35. package/dist/dtos/create-sms-template.dto.d.ts.map +1 -1
  36. package/dist/dtos/create-sms-template.dto.js.map +1 -1
  37. package/dist/dtos/create-view-metadata.dto.d.ts.map +1 -1
  38. package/dist/dtos/create-view-metadata.dto.js.map +1 -1
  39. package/dist/dtos/otp-sign-in.dto.d.ts +1 -1
  40. package/dist/dtos/otp-sign-in.dto.d.ts.map +1 -1
  41. package/dist/dtos/otp-sign-in.dto.js +2 -2
  42. package/dist/dtos/otp-sign-in.dto.js.map +1 -1
  43. package/dist/dtos/otp-sign-up.dto.d.ts +2 -2
  44. package/dist/dtos/otp-sign-up.dto.d.ts.map +1 -1
  45. package/dist/dtos/otp-sign-up.dto.js +2 -2
  46. package/dist/dtos/otp-sign-up.dto.js.map +1 -1
  47. package/dist/dtos/resolve-s3-url.dto.d.ts +2 -5
  48. package/dist/dtos/resolve-s3-url.dto.d.ts.map +1 -1
  49. package/dist/dtos/resolve-s3-url.dto.js +1 -13
  50. package/dist/dtos/resolve-s3-url.dto.js.map +1 -1
  51. package/dist/dtos/sign-up.dto.d.ts.map +1 -1
  52. package/dist/dtos/sign-up.dto.js.map +1 -1
  53. package/dist/dtos/update-email-template.dto.d.ts.map +1 -1
  54. package/dist/dtos/update-email-template.dto.js.map +1 -1
  55. package/dist/dtos/update-list-of-values.dto.d.ts.map +1 -1
  56. package/dist/dtos/update-list-of-values.dto.js.map +1 -1
  57. package/dist/dtos/update-menu-item-metadata.dto.d.ts.map +1 -1
  58. package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
  59. package/dist/dtos/update-saved-filters.dto.d.ts +1 -0
  60. package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
  61. package/dist/dtos/update-saved-filters.dto.js +10 -1
  62. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  63. package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -1
  64. package/dist/dtos/update-scheduled-job.dto.js.map +1 -1
  65. package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
  66. package/dist/dtos/update-security-rule.dto.js.map +1 -1
  67. package/dist/dtos/update-sms-template.dto.d.ts.map +1 -1
  68. package/dist/dtos/update-sms-template.dto.js.map +1 -1
  69. package/dist/dtos/update-view-metadata.dto.d.ts.map +1 -1
  70. package/dist/dtos/update-view-metadata.dto.js.map +1 -1
  71. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
  72. package/dist/entities/chatter-message-details.entity.js +1 -0
  73. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  74. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  75. package/dist/entities/chatter-message.entity.js +1 -0
  76. package/dist/entities/chatter-message.entity.js.map +1 -1
  77. package/dist/entities/common.entity.js +4 -4
  78. package/dist/entities/common.entity.js.map +1 -1
  79. package/dist/entities/legacy-common.entity.js +4 -4
  80. package/dist/entities/legacy-common.entity.js.map +1 -1
  81. package/dist/entities/saved-filters.entity.d.ts +1 -0
  82. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  83. package/dist/entities/saved-filters.entity.js +6 -1
  84. package/dist/entities/saved-filters.entity.js.map +1 -1
  85. package/dist/entities/user.entity.d.ts +1 -0
  86. package/dist/entities/user.entity.d.ts.map +1 -1
  87. package/dist/entities/user.entity.js +6 -1
  88. package/dist/entities/user.entity.js.map +1 -1
  89. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts +2 -0
  90. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.d.ts.map +1 -1
  91. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js +33 -23
  92. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
  93. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts +3 -0
  94. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.d.ts.map +1 -1
  95. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js +36 -23
  96. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
  97. package/dist/helpers/security.helper.js +1 -0
  98. package/dist/helpers/security.helper.js.map +1 -1
  99. package/dist/index.d.ts +0 -4
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +0 -4
  102. package/dist/index.js.map +1 -1
  103. package/dist/repository/solid-base.repository.d.ts +10 -1
  104. package/dist/repository/solid-base.repository.d.ts.map +1 -1
  105. package/dist/repository/solid-base.repository.js +109 -0
  106. package/dist/repository/solid-base.repository.js.map +1 -1
  107. package/dist/seeders/module-metadata-seeder.service.d.ts +2 -0
  108. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  109. package/dist/seeders/module-metadata-seeder.service.js +142 -72
  110. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  111. package/dist/seeders/permission-metadata-seeder.service.d.ts +1 -1
  112. package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
  113. package/dist/seeders/permission-metadata-seeder.service.js +1 -1
  114. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  115. package/dist/seeders/seed-data/solid-core-metadata.json +23 -25
  116. package/dist/services/authentication.service.d.ts +22 -8
  117. package/dist/services/authentication.service.d.ts.map +1 -1
  118. package/dist/services/authentication.service.js +230 -214
  119. package/dist/services/authentication.service.js.map +1 -1
  120. package/dist/services/crud-helper.service.d.ts +4 -0
  121. package/dist/services/crud-helper.service.d.ts.map +1 -1
  122. package/dist/services/crud-helper.service.js +66 -32
  123. package/dist/services/crud-helper.service.js.map +1 -1
  124. package/dist/services/crud.service.d.ts.map +1 -1
  125. package/dist/services/crud.service.js +7 -4
  126. package/dist/services/crud.service.js.map +1 -1
  127. package/dist/services/field-metadata.service.d.ts.map +1 -1
  128. package/dist/services/field-metadata.service.js.map +1 -1
  129. package/dist/services/file/disk-file.service.d.ts +0 -2
  130. package/dist/services/file/disk-file.service.d.ts.map +1 -1
  131. package/dist/services/file/disk-file.service.js +7 -16
  132. package/dist/services/file/disk-file.service.js.map +1 -1
  133. package/dist/services/file/index.d.ts +1 -0
  134. package/dist/services/file/index.d.ts.map +1 -1
  135. package/dist/services/file/index.js +1 -0
  136. package/dist/services/file/index.js.map +1 -1
  137. package/dist/services/file/storage-path-builder.d.ts +17 -0
  138. package/dist/services/file/storage-path-builder.d.ts.map +1 -0
  139. package/dist/{seeders/sms-template-seeder.service.js → services/file/storage-path-builder.js} +45 -35
  140. package/dist/services/file/storage-path-builder.js.map +1 -0
  141. package/dist/services/media.service.d.ts +1 -1
  142. package/dist/services/media.service.d.ts.map +1 -1
  143. package/dist/services/media.service.js +45 -6
  144. package/dist/services/media.service.js.map +1 -1
  145. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  146. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  147. package/dist/services/mediaStorageProviders/file-storage-provider.js +46 -7
  148. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  149. package/dist/services/module-metadata.service.d.ts +4 -6
  150. package/dist/services/module-metadata.service.d.ts.map +1 -1
  151. package/dist/services/module-metadata.service.js +16 -14
  152. package/dist/services/module-metadata.service.js.map +1 -1
  153. package/dist/services/setting.service.d.ts +3 -2
  154. package/dist/services/setting.service.d.ts.map +1 -1
  155. package/dist/services/setting.service.js +7 -4
  156. package/dist/services/setting.service.js.map +1 -1
  157. package/dist/services/settings/default-settings-provider.service.d.ts +24 -2
  158. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  159. package/dist/services/settings/default-settings-provider.service.js +8 -6
  160. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  161. package/dist/services/view-metadata.service.d.ts +1 -0
  162. package/dist/services/view-metadata.service.d.ts.map +1 -1
  163. package/dist/services/view-metadata.service.js +25 -1
  164. package/dist/services/view-metadata.service.js.map +1 -1
  165. package/dist/solid-core.module.d.ts +3 -1
  166. package/dist/solid-core.module.d.ts.map +1 -1
  167. package/dist/solid-core.module.js +45 -9
  168. package/dist/solid-core.module.js.map +1 -1
  169. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  170. package/dist/testing/adapters/ui/playwright-adapter.js +35 -2
  171. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  172. package/dist/transformers/typeorm/local-date-time-transformer.d.ts +4 -3
  173. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  174. package/dist/transformers/typeorm/local-date-time-transformer.js +20 -2
  175. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  176. package/package.json +8 -2
  177. package/src/constants/error-messages.ts +1 -0
  178. package/src/constants.ts +3 -3
  179. package/src/controllers/role-metadata.controller.ts +26 -18
  180. package/src/dtos/create-email-template.dto.ts +7 -0
  181. package/src/dtos/create-list-of-values.dto.ts +7 -0
  182. package/src/dtos/create-menu-item-metadata.dto.ts +12 -1
  183. package/src/dtos/create-role-metadata.dto.ts +9 -0
  184. package/src/dtos/create-saved-filters.dto.ts +7 -0
  185. package/src/dtos/create-scheduled-job.dto.ts +14 -0
  186. package/src/dtos/create-security-rule.dto.ts +6 -0
  187. package/src/dtos/create-sms-template.dto.ts +6 -0
  188. package/src/dtos/create-view-metadata.dto.ts +11 -0
  189. package/src/dtos/otp-sign-in.dto.ts +3 -3
  190. package/src/dtos/otp-sign-up.dto.ts +3 -3
  191. package/src/dtos/resolve-s3-url.dto.ts +2 -12
  192. package/src/dtos/sign-up.dto.ts +0 -2
  193. package/src/dtos/update-email-template.dto.ts +6 -0
  194. package/src/dtos/update-list-of-values.dto.ts +8 -0
  195. package/src/dtos/update-menu-item-metadata.dto.ts +12 -0
  196. package/src/dtos/update-saved-filters.dto.ts +5 -1
  197. package/src/dtos/update-scheduled-job.dto.ts +15 -0
  198. package/src/dtos/update-security-rule.dto.ts +7 -0
  199. package/src/dtos/update-sms-template.dto.ts +32 -32
  200. package/src/dtos/update-view-metadata.dto.ts +12 -0
  201. package/src/entities/chatter-message-details.entity.ts +1 -0
  202. package/src/entities/chatter-message.entity.ts +1 -0
  203. package/src/entities/common.entity.ts +5 -5
  204. package/src/entities/legacy-common.entity.ts +5 -5
  205. package/src/entities/saved-filters.entity.ts +3 -0
  206. package/src/entities/user.entity.ts +4 -1
  207. package/src/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.ts +43 -32
  208. package/src/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.ts +45 -33
  209. package/src/helpers/security.helper.ts +1 -1
  210. package/src/index.ts +0 -4
  211. package/src/repository/solid-base.repository.ts +172 -1
  212. package/src/seeders/module-metadata-seeder.service.ts +189 -127
  213. package/src/seeders/permission-metadata-seeder.service.ts +1 -4
  214. package/src/seeders/seed-data/solid-core-metadata.json +30 -32
  215. package/src/services/authentication.service.ts +273 -269
  216. package/src/services/crud-helper.service.ts +79 -36
  217. package/src/services/crud.service.ts +9 -4
  218. package/src/services/field-metadata.service.ts +0 -71
  219. package/src/services/file/disk-file.service.ts +8 -18
  220. package/src/services/file/index.ts +1 -0
  221. package/src/services/file/storage-path-builder.ts +56 -0
  222. package/src/services/media.service.ts +13 -7
  223. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +1 -1
  224. package/src/services/mediaStorageProviders/file-storage-provider.ts +13 -8
  225. package/src/services/module-metadata.service.ts +18 -15
  226. package/src/services/setting.service.ts +5 -3
  227. package/src/services/settings/default-settings-provider.service.ts +5 -3
  228. package/src/services/view-metadata.service.ts +29 -1
  229. package/src/solid-core.module.ts +16 -12
  230. package/src/testing/adapters/ui/playwright-adapter.ts +1 -1
  231. package/src/transformers/typeorm/local-date-time-transformer.ts +21 -3
  232. package/dist/passport-strategies/local.strategy.d.ts +0 -15
  233. package/dist/passport-strategies/local.strategy.d.ts.map +0 -1
  234. package/dist/passport-strategies/local.strategy.js +0 -44
  235. package/dist/passport-strategies/local.strategy.js.map +0 -1
  236. package/dist/seeders/email-template-seeder.service.d.ts +0 -10
  237. package/dist/seeders/email-template-seeder.service.d.ts.map +0 -1
  238. package/dist/seeders/email-template-seeder.service.js +0 -84
  239. package/dist/seeders/email-template-seeder.service.js.map +0 -1
  240. package/dist/seeders/sms-template-seeder.service.d.ts +0 -10
  241. package/dist/seeders/sms-template-seeder.service.d.ts.map +0 -1
  242. package/dist/seeders/sms-template-seeder.service.js.map +0 -1
  243. package/dist/seeders/user-seeder.service.d.ts +0 -10
  244. package/dist/seeders/user-seeder.service.d.ts.map +0 -1
  245. package/dist/seeders/user-seeder.service.js +0 -44
  246. package/dist/seeders/user-seeder.service.js.map +0 -1
  247. package/src/passport-strategies/local.strategy.ts +0 -28
  248. package/src/seeders/email-template-seeder.service.ts +0 -49
  249. package/src/seeders/sms-template-seeder.service.ts +0 -50
  250. package/src/seeders/user-seeder.service.ts +0 -33
  251. package/src/workflow.readme.md +0 -25
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from './commands/helper'\nexport * from './commands/refresh-model.command'\nexport * from './commands/refresh-module.command'\nexport * from './commands/remove-fields.command'\nexport * from './commands/seed.command'\nexport * from './commands/test-data.command'\nexport * from './commands/run-tests.command'\nexport * from './commands/test.command'\n\nexport * from './config/cache.options'\n\nexport * from './decorators/active-user.decorator'\nexport * from './decorators/solid-request-context.decorator'\nexport * from './decorators/auth.decorator'\nexport * from './decorators/computed-field-provider.decorator'\nexport * from './decorators/scheduled-job-provider.decorator'\nexport * from './decorators/is-not-in-enum.decorator'\nexport * from './decorators/protocol.decorator'\nexport * from './decorators/public.decorator'\nexport * from './decorators/roles.decorator'\nexport * from './decorators/selection-provider.decorator'\nexport * from './decorators/error-codes-provider.decorator'\nexport * from './decorators/solid-database-module.decorator'\nexport * from './decorators/solid-service.decorator'\nexport * from './decorators/mail-provider.decorator'\nexport * from './decorators/security-rule-config-provider.decorator'\nexport * from './decorators/sms-provider.decorator'\nexport * from './decorators/settings-provider.decorator'\n\nexport * from './dtos/post-chatter-message.dto'\nexport * from './dtos/security-rule-config.dto'\nexport * from './dtos/basic-filters.dto'\nexport * from './dtos/solid-request-context.dto'\nexport * from './dtos/change-password.dto'\nexport * from './dtos/confirm-forgot-password.dto'\nexport * from './dtos/create-action-metadata.dto'\nexport * from './dtos/create-email-attachment.dto'\nexport * from './dtos/create-email-template.dto'\nexport * from './dtos/create-field-metadata.dto'\nexport * from './dtos/create-list-of-values.dto'\nexport * from './dtos/create-media-storage-provider-metadata.dto'\nexport * from './dtos/create-media.dto'\nexport * from './dtos/create-menu-item-metadata.dto'\nexport * from './dtos/create-message.dto'\nexport * from './dtos/create-model-metadata.dto'\nexport * from './dtos/create-module-metadata.dto'\nexport * from './dtos/create-mq-message-queue.dto'\nexport * from './dtos/create-mq-message.dto'\nexport * from './dtos/create-scheduled-job.dto'\nexport * from './dtos/create-permission-metadata.dto'\nexport * from './dtos/create-role-metadata.dto'\nexport * from './dtos/create-short-url.dto'\nexport * from './dtos/create-sms-template.dto'\nexport * from './dtos/create-user.dto'\nexport * from './dtos/create-view-metadata.dto'\nexport * from './dtos/create-chatter-message.dto'\nexport * from './dtos/create-chatter-message-details.dto'\nexport * from './dtos/create-locale.dto'\nexport * from './dtos/fetch-roles.dto'\nexport * from './dtos/initiate-forgot-password.dto'\nexport * from './dtos/mutate-role-permissions.dto'\nexport * from './dtos/mutate-user-roles-list.dto'\nexport * from './dtos/mutate-user-roles.dto'\nexport * from './dtos/oauth-user-dto'\nexport * from './dtos/otp-confirm-otp.dto'\nexport * from './dtos/otp-sign-in.dto'\nexport * from './dtos/otp-sign-up.dto'\nexport * from './dtos/pagination-query.dto'\nexport * from './dtos/query.dto'\nexport * from './dtos/refresh-token.dto'\nexport * from './dtos/register-private.dto'\nexport * from './dtos/selection-dynamic-query.dto'\nexport * from './dtos/sign-in.dto'\nexport * from './dtos/sign-up.dto'\nexport * from './dtos/sort-filter.dto'\nexport * from './dtos/update-action-metadata.dto'\nexport * from './dtos/update-email-template.dto'\nexport * from './dtos/update-field-metadata.dto'\nexport * from './dtos/update-media-storage-provider.dto'\nexport * from './dtos/update-media.dto'\nexport * from './dtos/update-menu-item-metadata.dto'\nexport * from './dtos/update-message.dto'\nexport * from './dtos/update-model-metadata.dto'\nexport * from './dtos/update-module-metadata.dto'\nexport * from './dtos/update-mq-message-queue.dto'\nexport * from './dtos/update-mq-message.dto'\nexport * from './dtos/update-scheduled-job.dto'\nexport * from './dtos/update-permission-metadata.dto'\nexport * from './dtos/update-role-metadata.dto'\nexport * from './dtos/update-sms-template.dto'\nexport * from './dtos/update-user.dto'\nexport * from './dtos/update-view-metadata.dto'\nexport * from './dtos/create-setting.dto'\nexport * from './dtos/update-setting.dto'\nexport * from './dtos/create-security-rule.dto'\nexport * from './dtos/update-security-rule.dto'\nexport * from './dtos/update-chatter-message.dto'\nexport * from './dtos/update-chatter-message-details.dto'\nexport * from './dtos/update-locale.dto'\nexport * from './dtos/create-user-activity-history.dto'\nexport * from './dtos/update-user-activity-history.dto'\n\nexport * from './entities/action-metadata.entity'\nexport * from './entities/common.entity'\nexport * from './entities/legacy-common.entity'\nexport * from './entities/legacy-common-with-id.entity'\nexport * from './entities/email-attachment.entity'\nexport * from './entities/email-template.entity'\nexport * from './entities/field-metadata.entity'\nexport * from './entities/list-of-values.entity'\nexport * from './entities/media.entity'\nexport * from './entities/media-storage-provider-metadata.entity'\nexport * from './entities/menu-item-metadata.entity'\nexport * from './entities/model-metadata.entity'\nexport * from './entities/module-metadata.entity'\nexport * from './entities/mq-message-queue.entity'\nexport * from './entities/mq-message.entity'\nexport * from './entities/scheduled-job.entity'\nexport * from './entities/permission-metadata.entity'\nexport * from './entities/role-metadata.entity'\nexport * from './entities/sms-template.entity'\nexport * from './entities/user.entity'\nexport * from './entities/view-metadata.entity'\nexport * from './entities/setting.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/user-view-metadata.entity'\nexport * from './entities/security-rule.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/chatter-message.entity'\nexport * from './entities/chatter-message-details.entity'\nexport * from './entities/export-template.entity'\nexport * from './entities/export-transaction.entity'\nexport * from './entities/import-transaction.entity'\nexport * from './entities/import-transaction-error-log.entity'\nexport * from './entities/locale.entity'\nexport * from './entities/user-activity-history.entity'\nexport * from './entities/dashboard.entity'\nexport * from './entities/dashboard-variable.entity'\nexport * from './entities/dashboard-question.entity'\nexport * from './entities/dashboard-question-sql-dataset-config.entity'\nexport * from './entities/ai-interaction.entity'\nexport * from './entities/model-sequence.entity'\n\nexport * from './enums/auth-type.enum'\nexport * from './decorators/disallow-in-production.decorator'\n\nexport * from './filters/http-exception.filter'\n\nexport * from './guards/access-token.guard'\nexport * from './guards/authentication.guard'\nexport * from './guards/permissions.guard'\nexport * from './guards/roles.guard'\n\nexport * from './helpers/command.service'\nexport * from './helpers/module.helper'\nexport * from './helpers/schematic.service'\nexport * from './helpers/solid-registry'\nexport * from './helpers/field-crud-managers/BigIntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/BooleanFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ComputedFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DateFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DecimalFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/EmailFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/IntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/JsonFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/LongTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToOneRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/MediaFieldCrudManager' // Need to resolve ambiguity\nexport * from './helpers/field-crud-managers/NoOpsFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/OneToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/PasswordFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/RichTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionDynamicFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionStaticFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ShortTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/UUIDFieldCrudManager' //rename\nexport * from './helpers/environment.helper'\nexport * from './helpers/cors.helper'\nexport * from './helpers/security.helper'\nexport * from './helpers/model-metadata-helper.service'\nexport * from './helpers/image-encoding.helper'\nexport * from './helpers/solid-microservice-adapter.service'\nexport * from './helpers/typeorm-db-helper';\n\nexport * from './services/crud.service'\nexport * from './interceptors/logging.interceptor'\nexport * from './interceptors/wrap-response.interceptor'\n\nexport * from './interfaces/active-user-data.interface'\nexport * from './interfaces/mq'\nexport * from './services/scheduled-jobs/scheduled-job.interface';\nexport * from './services/scheduled-jobs/scheduler.interface';\nexport * from './services/scheduled-jobs/scheduler.service';\n\nexport * from './jobs/api-email-publisher.service'\nexport * from './jobs/api-email-queue-options'\nexport * from './jobs/api-email-subscriber.service'\nexport { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/smtp-email-publisher.service' // alias for backward compatibility\nexport * from './jobs/smtp-email-queue-options'\nexport { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/smtp-email-subscriber.service' // alias for backward compatibility\nexport * from './jobs/msg91-otp-publisher.service'\nexport * from './jobs/msg91-otp-queue-options'\nexport * from './jobs/msg91-otp-subscriber.service'\nexport * from './jobs/msg91-sms-publisher.service'\nexport * from './jobs/msg91-sms-queue-options'\nexport * from './jobs/msg91-sms-subscriber.service'\nexport * from './jobs/msg91-whatsapp-publisher.service'\nexport * from './jobs/msg91-whatsapp-queue-options'\nexport * from './jobs/msg91-whatsapp-subscriber.service'\n\nexport * from './listeners/user-registration.listener'\n\nexport * from './passport-strategies/google-oauth.strategy'\nexport * from './passport-strategies/local.strategy'\n\nexport * from './services/selection-providers/list-of-values-selection-providers.service'\n\n// seed-data\nexport * from './seeders/email-template-seeder.service'\nexport * from './seeders/permission-metadata-seeder.service'\nexport * from './seeders/sms-template-seeder.service'\nexport * from './seeders/module-metadata-seeder.service'\nexport * from './seeders/user-seeder.service'\n\n// export * from './services/access-token-storage.service'\nexport * from './services/action-metadata.service'\nexport * from './services/authentication.service'\nexport * from './services/bcrypt.service'\nexport * from './services/computed-fields/uuid-external-id-computed-field-provider.service'\nexport * from './services/crud-helper.service'\nexport * from './services/crud.service'\nexport * from './services/email-template.service'\nexport * from './services/field-metadata.service'\nexport * from './services/file'\nexport * from './services/textract.service'\nexport * from './services/hashing.service'\nexport * from './services/list-of-values.service'\nexport * from './services/mail/elastic-email.service'\nexport * from './services/mail/smtp-email.service'\nexport * from './services/media-storage-provider-metadata.service'\nexport * from './services/media.service'\nexport * from './services/mediaStorageProviders/file-s3-storage-provider'\nexport * from './services/mediaStorageProviders/file-storage-provider'\nexport * from './services/mediaStorageProviders/index'\nexport * from './services/menu-item-metadata.service'\nexport * from './services/model-metadata.service'\nexport * from './services/module-metadata.service'\nexport * from './services/mq-message-queue.service'\nexport * from './services/mq-message.service'\nexport * from './services/scheduled-job.service'\nexport * from './services/pdf.service'\nexport * from './services/permission-metadata.service'\nexport * from './services/queues/rabbitmq-publisher.service'\nexport * from './services/queues/rabbitmq-subscriber.service'\nexport * from './services/refresh-token-ids-storage.service'\nexport * from './services/role-metadata.service'\nexport * from './services/selection-providers/list-of-models-selection-provider.service'\nexport * from './services/short-url/tiny-url.service'\nexport * from './services/sms/Msg91BaseSMSService' //rename\nexport * from './services/sms/Msg91OTPService' //rename\nexport * from './services/sms/Msg91SMSService' //rename\nexport * from './services/sms/TwilioSMSService' //rename\nexport * from './services/poller.service'\nexport * from './services/sms-template.service'\nexport * from './services/solid-introspect.service'\nexport * from './services/user.service'\nexport * from './services/view-metadata.service'\nexport * from './services/whatsapp/Msg91WhatsappService' //rename\nexport * from './services/setting.service'\nexport * from './services/settings/default-settings-provider.service'\nexport * from './services/security-rule.service'\nexport * from './services/request-context.service'\nexport * from './services/chatter-message.service'\nexport * from './services/chatter-message-details.service'\nexport * from './services/locale.service'\nexport * from './services/user-activity-history.service'\nexport * from './services/import-transaction.service'\nexport * from './services/import-transaction-error-log.service'\nexport * from './services/excel.service'\nexport * from './services/csv.service'\nexport * from './services/queues/publisher-factory.service'\nexport * from './services/queues/database-publisher.service'\nexport * from './services/queues/database-subscriber.service'\nexport * from './services/ai-interaction.service'\n\n// Factories\nexport * from './factories/mail.factory'\nexport * from './factories/sms.factory'\nexport * from './factories/whatsapp.factory'\n\n// Repositories\nexport * from './repository/solid-base.repository'\nexport * from './repository/security-rule.repository'\nexport * from './repository/chatter-message.repository'\nexport * from './repository/chatter-message-details.repository'\n\n\n//softDeleteAwareEventSubscriber.subscriber.ts\nexport * from './subscribers/model-metadata.subscriber'\nexport * from './subscribers/soft-delete-aware-event.subscriber' //rename\nexport * from './subscribers/view-metadata.subscriber' //rename\nexport * from './subscribers/audit.subscriber'\n\n\n\nexport * from './transformers/array-transformer'\nexport * from './transformers/boolean-transformer'\nexport * from './transformers/integer-transformer'\nexport { default as datetimeTransformer } from './transformers/datetime-transformer'\nexport * from './transformers/typeorm/local-date-time-transformer'\n\nexport * from './validators/is-parsable-int'\n\nexport * from './constants'\nexport * from './interfaces'\nexport * from './solid-core.module'\n\nexport * from './winston.logger'\n\nexport { ERROR_MESSAGES } from './constants/error-messages'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["export * from './commands/helper'\nexport * from './commands/refresh-model.command'\nexport * from './commands/refresh-module.command'\nexport * from './commands/remove-fields.command'\nexport * from './commands/seed.command'\nexport * from './commands/test-data.command'\nexport * from './commands/run-tests.command'\nexport * from './commands/test.command'\n\nexport * from './config/cache.options'\n\nexport * from './decorators/active-user.decorator'\nexport * from './decorators/solid-request-context.decorator'\nexport * from './decorators/auth.decorator'\nexport * from './decorators/computed-field-provider.decorator'\nexport * from './decorators/scheduled-job-provider.decorator'\nexport * from './decorators/is-not-in-enum.decorator'\nexport * from './decorators/protocol.decorator'\nexport * from './decorators/public.decorator'\nexport * from './decorators/roles.decorator'\nexport * from './decorators/selection-provider.decorator'\nexport * from './decorators/error-codes-provider.decorator'\nexport * from './decorators/solid-database-module.decorator'\nexport * from './decorators/solid-service.decorator'\nexport * from './decorators/mail-provider.decorator'\nexport * from './decorators/security-rule-config-provider.decorator'\nexport * from './decorators/sms-provider.decorator'\nexport * from './decorators/settings-provider.decorator'\n\nexport * from './dtos/post-chatter-message.dto'\nexport * from './dtos/security-rule-config.dto'\nexport * from './dtos/basic-filters.dto'\nexport * from './dtos/solid-request-context.dto'\nexport * from './dtos/change-password.dto'\nexport * from './dtos/confirm-forgot-password.dto'\nexport * from './dtos/create-action-metadata.dto'\nexport * from './dtos/create-email-attachment.dto'\nexport * from './dtos/create-email-template.dto'\nexport * from './dtos/create-field-metadata.dto'\nexport * from './dtos/create-list-of-values.dto'\nexport * from './dtos/create-media-storage-provider-metadata.dto'\nexport * from './dtos/create-media.dto'\nexport * from './dtos/create-menu-item-metadata.dto'\nexport * from './dtos/create-message.dto'\nexport * from './dtos/create-model-metadata.dto'\nexport * from './dtos/create-module-metadata.dto'\nexport * from './dtos/create-mq-message-queue.dto'\nexport * from './dtos/create-mq-message.dto'\nexport * from './dtos/create-scheduled-job.dto'\nexport * from './dtos/create-permission-metadata.dto'\nexport * from './dtos/create-role-metadata.dto'\nexport * from './dtos/create-short-url.dto'\nexport * from './dtos/create-sms-template.dto'\nexport * from './dtos/create-user.dto'\nexport * from './dtos/create-view-metadata.dto'\nexport * from './dtos/create-chatter-message.dto'\nexport * from './dtos/create-chatter-message-details.dto'\nexport * from './dtos/create-locale.dto'\nexport * from './dtos/fetch-roles.dto'\nexport * from './dtos/initiate-forgot-password.dto'\nexport * from './dtos/mutate-role-permissions.dto'\nexport * from './dtos/mutate-user-roles-list.dto'\nexport * from './dtos/mutate-user-roles.dto'\nexport * from './dtos/oauth-user-dto'\nexport * from './dtos/otp-confirm-otp.dto'\nexport * from './dtos/otp-sign-in.dto'\nexport * from './dtos/otp-sign-up.dto'\nexport * from './dtos/pagination-query.dto'\nexport * from './dtos/query.dto'\nexport * from './dtos/refresh-token.dto'\nexport * from './dtos/register-private.dto'\nexport * from './dtos/selection-dynamic-query.dto'\nexport * from './dtos/sign-in.dto'\nexport * from './dtos/sign-up.dto'\nexport * from './dtos/sort-filter.dto'\nexport * from './dtos/update-action-metadata.dto'\nexport * from './dtos/update-email-template.dto'\nexport * from './dtos/update-field-metadata.dto'\nexport * from './dtos/update-media-storage-provider.dto'\nexport * from './dtos/update-media.dto'\nexport * from './dtos/update-menu-item-metadata.dto'\nexport * from './dtos/update-message.dto'\nexport * from './dtos/update-model-metadata.dto'\nexport * from './dtos/update-module-metadata.dto'\nexport * from './dtos/update-mq-message-queue.dto'\nexport * from './dtos/update-mq-message.dto'\nexport * from './dtos/update-scheduled-job.dto'\nexport * from './dtos/update-permission-metadata.dto'\nexport * from './dtos/update-role-metadata.dto'\nexport * from './dtos/update-sms-template.dto'\nexport * from './dtos/update-user.dto'\nexport * from './dtos/update-view-metadata.dto'\nexport * from './dtos/create-setting.dto'\nexport * from './dtos/update-setting.dto'\nexport * from './dtos/create-security-rule.dto'\nexport * from './dtos/update-security-rule.dto'\nexport * from './dtos/update-chatter-message.dto'\nexport * from './dtos/update-chatter-message-details.dto'\nexport * from './dtos/update-locale.dto'\nexport * from './dtos/create-user-activity-history.dto'\nexport * from './dtos/update-user-activity-history.dto'\n\nexport * from './entities/action-metadata.entity'\nexport * from './entities/common.entity'\nexport * from './entities/legacy-common.entity'\nexport * from './entities/legacy-common-with-id.entity'\nexport * from './entities/email-attachment.entity'\nexport * from './entities/email-template.entity'\nexport * from './entities/field-metadata.entity'\nexport * from './entities/list-of-values.entity'\nexport * from './entities/media.entity'\nexport * from './entities/media-storage-provider-metadata.entity'\nexport * from './entities/menu-item-metadata.entity'\nexport * from './entities/model-metadata.entity'\nexport * from './entities/module-metadata.entity'\nexport * from './entities/mq-message-queue.entity'\nexport * from './entities/mq-message.entity'\nexport * from './entities/scheduled-job.entity'\nexport * from './entities/permission-metadata.entity'\nexport * from './entities/role-metadata.entity'\nexport * from './entities/sms-template.entity'\nexport * from './entities/user.entity'\nexport * from './entities/view-metadata.entity'\nexport * from './entities/setting.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/user-view-metadata.entity'\nexport * from './entities/security-rule.entity'\nexport * from './entities/saved-filters.entity'\nexport * from './entities/chatter-message.entity'\nexport * from './entities/chatter-message-details.entity'\nexport * from './entities/export-template.entity'\nexport * from './entities/export-transaction.entity'\nexport * from './entities/import-transaction.entity'\nexport * from './entities/import-transaction-error-log.entity'\nexport * from './entities/locale.entity'\nexport * from './entities/user-activity-history.entity'\nexport * from './entities/dashboard.entity'\nexport * from './entities/dashboard-variable.entity'\nexport * from './entities/dashboard-question.entity'\nexport * from './entities/dashboard-question-sql-dataset-config.entity'\nexport * from './entities/ai-interaction.entity'\nexport * from './entities/model-sequence.entity'\n\nexport * from './enums/auth-type.enum'\nexport * from './decorators/disallow-in-production.decorator'\n\nexport * from './filters/http-exception.filter'\n\nexport * from './guards/access-token.guard'\nexport * from './guards/authentication.guard'\nexport * from './guards/permissions.guard'\nexport * from './guards/roles.guard'\n\nexport * from './helpers/command.service'\nexport * from './helpers/module.helper'\nexport * from './helpers/schematic.service'\nexport * from './helpers/solid-registry'\nexport * from './helpers/field-crud-managers/BigIntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/BooleanFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ComputedFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DateFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/DecimalFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/EmailFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/IntFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/JsonFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/LongTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ManyToOneRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/MediaFieldCrudManager' // Need to resolve ambiguity\nexport * from './helpers/field-crud-managers/NoOpsFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/OneToManyRelationFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/PasswordFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/RichTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionDynamicFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/SelectionStaticFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/ShortTextFieldCrudManager' //rename\nexport * from './helpers/field-crud-managers/UUIDFieldCrudManager' //rename\nexport * from './helpers/environment.helper'\nexport * from './helpers/cors.helper'\nexport * from './helpers/security.helper'\nexport * from './helpers/model-metadata-helper.service'\nexport * from './helpers/image-encoding.helper'\nexport * from './helpers/solid-microservice-adapter.service'\nexport * from './helpers/typeorm-db-helper';\n\nexport * from './services/crud.service'\nexport * from './interceptors/logging.interceptor'\nexport * from './interceptors/wrap-response.interceptor'\n\nexport * from './interfaces/active-user-data.interface'\nexport * from './interfaces/mq'\nexport * from './services/scheduled-jobs/scheduled-job.interface';\nexport * from './services/scheduled-jobs/scheduler.interface';\nexport * from './services/scheduled-jobs/scheduler.service';\n\nexport * from './jobs/api-email-publisher.service'\nexport * from './jobs/api-email-queue-options'\nexport * from './jobs/api-email-subscriber.service'\nexport { SmtpEmailQueuePublisherRabbitmq, SmtpEmailQueuePublisherRabbitmq as EmailQueuePublisher } from './jobs/smtp-email-publisher.service' // alias for backward compatibility\nexport * from './jobs/smtp-email-queue-options'\nexport { SmtpEmailQueueSubscriberRabbitmq, SmtpEmailQueueSubscriberRabbitmq as EmailQueueSubscriber } from './jobs/smtp-email-subscriber.service' // alias for backward compatibility\nexport * from './jobs/msg91-otp-publisher.service'\nexport * from './jobs/msg91-otp-queue-options'\nexport * from './jobs/msg91-otp-subscriber.service'\nexport * from './jobs/msg91-sms-publisher.service'\nexport * from './jobs/msg91-sms-queue-options'\nexport * from './jobs/msg91-sms-subscriber.service'\nexport * from './jobs/msg91-whatsapp-publisher.service'\nexport * from './jobs/msg91-whatsapp-queue-options'\nexport * from './jobs/msg91-whatsapp-subscriber.service'\n\nexport * from './listeners/user-registration.listener'\n\nexport * from './passport-strategies/google-oauth.strategy'\n\nexport * from './services/selection-providers/list-of-values-selection-providers.service'\n\n// seed-data\nexport * from './seeders/permission-metadata-seeder.service'\nexport * from './seeders/module-metadata-seeder.service'\n\n// export * from './services/access-token-storage.service'\nexport * from './services/action-metadata.service'\nexport * from './services/authentication.service'\nexport * from './services/bcrypt.service'\nexport * from './services/computed-fields/uuid-external-id-computed-field-provider.service'\nexport * from './services/crud-helper.service'\nexport * from './services/crud.service'\nexport * from './services/email-template.service'\nexport * from './services/field-metadata.service'\nexport * from './services/file'\nexport * from './services/textract.service'\nexport * from './services/hashing.service'\nexport * from './services/list-of-values.service'\nexport * from './services/mail/elastic-email.service'\nexport * from './services/mail/smtp-email.service'\nexport * from './services/media-storage-provider-metadata.service'\nexport * from './services/media.service'\nexport * from './services/mediaStorageProviders/file-s3-storage-provider'\nexport * from './services/mediaStorageProviders/file-storage-provider'\nexport * from './services/mediaStorageProviders/index'\nexport * from './services/menu-item-metadata.service'\nexport * from './services/model-metadata.service'\nexport * from './services/module-metadata.service'\nexport * from './services/mq-message-queue.service'\nexport * from './services/mq-message.service'\nexport * from './services/scheduled-job.service'\nexport * from './services/pdf.service'\nexport * from './services/permission-metadata.service'\nexport * from './services/queues/rabbitmq-publisher.service'\nexport * from './services/queues/rabbitmq-subscriber.service'\nexport * from './services/refresh-token-ids-storage.service'\nexport * from './services/role-metadata.service'\nexport * from './services/selection-providers/list-of-models-selection-provider.service'\nexport * from './services/short-url/tiny-url.service'\nexport * from './services/sms/Msg91BaseSMSService' //rename\nexport * from './services/sms/Msg91OTPService' //rename\nexport * from './services/sms/Msg91SMSService' //rename\nexport * from './services/sms/TwilioSMSService' //rename\nexport * from './services/poller.service'\nexport * from './services/sms-template.service'\nexport * from './services/solid-introspect.service'\nexport * from './services/user.service'\nexport * from './services/view-metadata.service'\nexport * from './services/whatsapp/Msg91WhatsappService' //rename\nexport * from './services/setting.service'\nexport * from './services/settings/default-settings-provider.service'\nexport * from './services/security-rule.service'\nexport * from './services/request-context.service'\nexport * from './services/chatter-message.service'\nexport * from './services/chatter-message-details.service'\nexport * from './services/locale.service'\nexport * from './services/user-activity-history.service'\nexport * from './services/import-transaction.service'\nexport * from './services/import-transaction-error-log.service'\nexport * from './services/excel.service'\nexport * from './services/csv.service'\nexport * from './services/queues/publisher-factory.service'\nexport * from './services/queues/database-publisher.service'\nexport * from './services/queues/database-subscriber.service'\nexport * from './services/ai-interaction.service'\n\n// Factories\nexport * from './factories/mail.factory'\nexport * from './factories/sms.factory'\nexport * from './factories/whatsapp.factory'\n\n// Repositories\nexport * from './repository/solid-base.repository'\nexport * from './repository/security-rule.repository'\nexport * from './repository/chatter-message.repository'\nexport * from './repository/chatter-message-details.repository'\n\n\n//softDeleteAwareEventSubscriber.subscriber.ts\nexport * from './subscribers/model-metadata.subscriber'\nexport * from './subscribers/soft-delete-aware-event.subscriber' //rename\nexport * from './subscribers/view-metadata.subscriber' //rename\nexport * from './subscribers/audit.subscriber'\n\n\n\nexport * from './transformers/array-transformer'\nexport * from './transformers/boolean-transformer'\nexport * from './transformers/integer-transformer'\nexport { default as datetimeTransformer } from './transformers/datetime-transformer'\nexport * from './transformers/typeorm/local-date-time-transformer'\n\nexport * from './validators/is-parsable-int'\n\nexport * from './constants'\nexport * from './interfaces'\nexport * from './solid-core.module'\n\nexport * from './winston.logger'\n\nexport { ERROR_MESSAGES } from './constants/error-messages'\n"]}
@@ -1,8 +1,9 @@
1
1
  import { Logger } from '@nestjs/common';
2
2
  import { CommonEntity } from 'src/entities/common.entity';
3
3
  import { RequestContextService } from 'src/services/request-context.service';
4
- import { DataSource, EntityTarget, FindManyOptions, FindOneOptions, FindOptionsWhere, QueryRunner, Repository, SelectQueryBuilder } from 'typeorm';
4
+ import { DataSource, EntityTarget, FindManyOptions, FindOneOptions, FindOptionsWhere, QueryRunner, Repository, SelectQueryBuilder, UpdateResult } from 'typeorm';
5
5
  import { SecurityRuleRepository } from './security-rule.repository';
6
+ import { PickKeysByType } from 'typeorm/common/PickKeysByType';
6
7
  export declare class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {
7
8
  protected readonly requestContextService: RequestContextService | null;
8
9
  protected readonly securityRuleRepository: SecurityRuleRepository | null;
@@ -17,5 +18,13 @@ export declare class SolidBaseRepository<T extends CommonEntity> extends Reposit
17
18
  findOneOrFail(options?: FindOneOptions<T>): Promise<T>;
18
19
  find(options?: FindManyOptions<T>): Promise<T[]>;
19
20
  findAndCount(options?: FindManyOptions<T>): Promise<[T[], number]>;
21
+ count(options?: FindManyOptions<T>): Promise<number>;
22
+ countBy(where: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number>;
23
+ average(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null>;
24
+ sum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null>;
25
+ minimum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null>;
26
+ maximum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null>;
27
+ increment(where: FindOptionsWhere<T>, propertyPath: string, value: string | number): Promise<UpdateResult>;
28
+ decrement(where: FindOptionsWhere<T>, propertyPath: string, value: string | number): Promise<UpdateResult>;
20
29
  }
21
30
  //# sourceMappingURL=solid-base.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solid-base.repository.d.ts","sourceRoot":"","sources":["../../src/repository/solid-base.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACH,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,qBAAa,mBAAmB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAMtE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI;IACtE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAN5E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAG9B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,EAAE,UAAU,EACH,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,EACnD,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAM5E,iBAAiB,IAAI,MAAM;IAIrB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAe/D,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAIvF,mCAAmC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAoBrG,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAevD,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOhF,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYtD,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAehD,YAAY,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;CAUpF"}
1
+ {"version":3,"file":"solid-base.repository.d.ts","sourceRoot":"","sources":["../../src/repository/solid-base.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EACH,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,YAAY,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,qBAAa,mBAAmB,CAAC,CAAC,SAAS,YAAY,CAAE,SAAQ,UAAU,CAAC,CAAC,CAAC;IAMtE,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,GAAG,IAAI;IACtE,SAAS,CAAC,QAAQ,CAAC,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAN5E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAG9B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,UAAU,EAAE,UAAU,EACH,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,EACnD,sBAAsB,EAAE,sBAAsB,GAAG,IAAI;IAM5E,iBAAiB,IAAI,MAAM;IAIrB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAe/D,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC;IAIvF,mCAAmC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAoBrG,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAevD,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAOhF,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAYtD,IAAI,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAehD,YAAY,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAclE,KAAK,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAcpD,OAAO,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5E,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwB3H,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwBvH,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAwB3H,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyB3H,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAI,OAAO,CAAC,YAAY,CAAC;IA0B3G,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAI,OAAO,CAAC,YAAY,CAAC;CAqB7H"}
@@ -76,6 +76,115 @@ class SolidBaseRepository extends typeorm_1.Repository {
76
76
  }
77
77
  return qb.getManyAndCount();
78
78
  }
79
+ async count(options) {
80
+ const alias = this.modelSingularName();
81
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
82
+ if (options) {
83
+ qb.setFindOptions(options);
84
+ }
85
+ return qb.getCount();
86
+ }
87
+ async countBy(where) {
88
+ return this.count({ where });
89
+ }
90
+ async average(columnName, where) {
91
+ const alias = this.modelSingularName();
92
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
93
+ if (where) {
94
+ qb.setFindOptions({ where });
95
+ }
96
+ const result = await qb
97
+ .select(`AVG(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'avg')
98
+ .getRawOne();
99
+ if (result?.avg === null || result?.avg === undefined) {
100
+ return null;
101
+ }
102
+ return typeof result.avg === 'number'
103
+ ? result.avg
104
+ : parseFloat(result.avg);
105
+ }
106
+ async sum(columnName, where) {
107
+ const alias = this.modelSingularName();
108
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
109
+ if (where) {
110
+ qb.setFindOptions({ where });
111
+ }
112
+ const result = await qb
113
+ .select(`SUM(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'sum')
114
+ .getRawOne();
115
+ if (result?.sum === null || result?.sum === undefined) {
116
+ return null;
117
+ }
118
+ return typeof result.sum === 'number'
119
+ ? result.sum
120
+ : parseFloat(result.sum);
121
+ }
122
+ async minimum(columnName, where) {
123
+ const alias = this.modelSingularName();
124
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
125
+ if (where) {
126
+ qb.setFindOptions({ where });
127
+ }
128
+ const result = await qb
129
+ .select(`MIN(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'min')
130
+ .getRawOne();
131
+ if (result?.min === null || result?.min === undefined) {
132
+ return null;
133
+ }
134
+ return typeof result.min === 'number'
135
+ ? result.min
136
+ : parseFloat(result.min);
137
+ }
138
+ async maximum(columnName, where) {
139
+ const alias = this.modelSingularName();
140
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
141
+ if (where) {
142
+ qb.setFindOptions({ where });
143
+ }
144
+ const result = await qb
145
+ .select(`MAX(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'max')
146
+ .getRawOne();
147
+ if (result?.max === null || result?.max === undefined) {
148
+ return null;
149
+ }
150
+ return typeof result.max === 'number'
151
+ ? result.max
152
+ : parseFloat(result.max);
153
+ }
154
+ async increment(where, propertyPath, value) {
155
+ const alias = this.modelSingularName();
156
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
157
+ qb.setFindOptions({ where });
158
+ const rows = await qb.select(`${alias}.id`).getMany();
159
+ const ids = rows.map((r) => r.id);
160
+ if (ids.length === 0) {
161
+ return { raw: [], affected: 0, generatedMaps: [] };
162
+ }
163
+ return this.manager
164
+ .createQueryBuilder()
165
+ .update(this.metadata.target)
166
+ .set({ [propertyPath]: () => `${propertyPath} + :value` })
167
+ .whereInIds(ids)
168
+ .setParameter('value', value)
169
+ .execute();
170
+ }
171
+ async decrement(where, propertyPath, value) {
172
+ const alias = this.modelSingularName();
173
+ const qb = await this.createSecurityRuleAwareQueryBuilder(alias);
174
+ qb.setFindOptions({ where });
175
+ const rows = await qb.select(`${alias}.id`).getMany();
176
+ const ids = rows.map((r) => r.id);
177
+ if (ids.length === 0) {
178
+ return { raw: [], affected: 0, generatedMaps: [] };
179
+ }
180
+ return this.manager
181
+ .createQueryBuilder()
182
+ .update(this.metadata.target)
183
+ .set({ [propertyPath]: () => `${propertyPath} - :value` })
184
+ .whereInIds(ids)
185
+ .setParameter('value', value)
186
+ .execute();
187
+ }
79
188
  }
80
189
  exports.SolidBaseRepository = SolidBaseRepository;
81
190
  //# sourceMappingURL=solid-base.repository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"solid-base.repository.js","sourceRoot":"","sources":["../../src/repository/solid-base.repository.ts"],"names":[],"mappings":";;;AAAA,oEAAkE;AAClE,2CAAwC;AAExC,6EAAmE;AAGnE,qCAUiB;AAGjB,MAAa,mBAA4C,SAAQ,oBAAa;IAG1E,YACI,MAAuB,EACvB,UAAsB,EACH,qBAAmD,EACnD,sBAAqD;QAExE,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAH7B,0BAAqB,GAArB,qBAAqB,CAA8B;QACnD,2BAAsB,GAAtB,sBAAsB,CAA+B;QAGxE,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB;QACb,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAA6B;QAChD,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qCAAa,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE;YAC1C,SAAS,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,sCAAsC,iBAAiB,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,YAAY,EAAyB,CAAC,CAAC;IAClG,CAAC;IAEQ,kBAAkB,CAAC,KAAc,EAAE,WAAyB;QACjE,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,mCAAmC,CAAC,KAAc,EAAE,WAAyB;QAC/E,MAAM,EAAE,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAExD,IAAI,CAAC,IAAI,CAAC,sBAAsB;YAAE,OAAO,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,qBAAqB;YAAE,OAAO,EAAE,CAAC;QAE3C,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC;QACzE,IAAI,CAAC,qBAAqB;YAAE,OAAO,EAAE,CAAC;QAEtC,OAAO,MAAM,IAAI,CAAC,sBAAsB,CAAC,kBAAkB,CACvD,EAAE,EACF,IAAI,CAAC,iBAAiB,EAAE,EACxB,qBAAuC,CAC1C,CAAC;IACN,CAAC;IAMQ,KAAK,CAAC,OAAO,CAAC,OAA2B;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YAEV,IAAI,OAAO;gBAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC5C,CAAC;QAED,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAKQ,KAAK,CAAC,SAAS,CAAC,KAAkD;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IACnC,CAAC;IAKQ,KAAK,CAAC,aAAa,CAAC,OAA2B;QACpD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,IAAI,6BAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAMQ,KAAK,CAAC,IAAI,CAAC,OAA4B;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACV,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAMQ,KAAK,CAAC,YAAY,CAAC,OAA4B;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mCAAmC,CAAC,KAAK,CAAC,CAAC;QAEjE,IAAI,OAAO,EAAE,CAAC;YACV,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;CACJ;AAnHD,kDAmHC","sourcesContent":["import { camelize } from '@angular-devkit/core/src/utils/strings';\nimport { Logger } from '@nestjs/common';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport {\n DataSource,\n EntityNotFoundError,\n EntityTarget,\n FindManyOptions,\n FindOneOptions,\n FindOptionsWhere,\n QueryRunner,\n Repository,\n SelectQueryBuilder\n} from 'typeorm';\nimport { SecurityRuleRepository } from './security-rule.repository';\n\nexport class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {\n protected readonly logger: Logger;\n\n constructor(\n entity: EntityTarget<T>,\n dataSource: DataSource,\n protected readonly requestContextService: RequestContextService | null,\n protected readonly securityRuleRepository: SecurityRuleRepository | null,\n ) {\n super(entity, dataSource.createEntityManager());\n this.logger = new Logger(this.constructor.name);\n }\n\n modelSingularName(): string {\n return camelize(this.metadata.name);\n }\n\n async findOneByUserKey(userKeyValue: string | number): Promise<T | null> {\n const modelSingularName = this.modelSingularName();\n const modelMetaRepo = this.manager.getRepository(ModelMetadata);\n const modelMeta = await modelMetaRepo.findOne({\n where: { singularName: modelSingularName },\n relations: { userKeyField: true },\n });\n\n if (!modelMeta?.userKeyField?.name) {\n throw new Error(`User key field not found for model ${modelSingularName}`);\n }\n\n return this.findOneBy({ [modelMeta.userKeyField.name]: userKeyValue } as FindOptionsWhere<T>);\n }\n\n override createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {\n throw new Error('createQueryBuilder() is disabled. Use createSecurityRuleAwareQueryBuilder instead');\n }\n\n async createSecurityRuleAwareQueryBuilder(alias?: string, queryRunner?: QueryRunner): Promise<SelectQueryBuilder<T>> {\n const qb = super.createQueryBuilder(alias, queryRunner);\n\n if (!this.securityRuleRepository) return qb;\n if (!this.requestContextService) return qb;\n\n const activeUserOrUndefined = this.requestContextService.getActiveUser();\n if (!activeUserOrUndefined) return qb;\n\n return await this.securityRuleRepository.applySecurityRules(\n qb,\n this.modelSingularName(),\n activeUserOrUndefined as ActiveUserData\n );\n }\n\n /**\n * Security-aware findOne: applies FindOneOptions via FindOptionsUtils,\n * but builds from our security-wrapped QueryBuilder.\n */\n override async findOne(options?: FindOneOptions<T>): Promise<T | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n // Apply all standard find options (relations, selects, order, where, etc.)\n if (options) qb.setFindOptions(options); // <- applies where, relations, select, order, etc.\n }\n\n return qb.getOne();\n }\n\n /**\n * Convenience: route findOneBy through the same path so rules apply.\n */\n override async findOneBy(where: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<T | null> {\n return this.findOne({ where });\n }\n\n /**\n * Optional: an OrFail that still honors security rules.\n */\n override async findOneOrFail(options?: FindOneOptions<T>): Promise<T> {\n const entity = await this.findOne(options);\n if (!entity) {\n throw new EntityNotFoundError(this.metadata.target, options?.where ?? {});\n }\n return entity;\n }\n\n /**\n * Security-aware find(): builds from our secured QB and preserves all FindManyOptions\n * (where, relations, select, order, take/skip, withDeleted, etc.).\n */\n override async find(options?: FindManyOptions<T>): Promise<T[]> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n qb.setFindOptions(options);\n }\n\n return qb.getMany();\n }\n\n /**\n * (Optional) Security-aware findAndCount(): same as find(), plus a total count.\n * Mirrors Repository.findAndCount semantics.\n */\n override async findAndCount(options?: FindManyOptions<T>): Promise<[T[], number]> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n qb.setFindOptions(options);\n }\n\n return qb.getManyAndCount();\n }\n}\n"]}
1
+ {"version":3,"file":"solid-base.repository.js","sourceRoot":"","sources":["../../src/repository/solid-base.repository.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelize } from '@angular-devkit/core/src/utils/strings';\nimport { Logger } from '@nestjs/common';\nimport { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { RequestContextService } from 'src/services/request-context.service';\nimport {\n DataSource,\n EntityNotFoundError,\n EntityTarget,\n FindManyOptions,\n FindOneOptions,\n FindOptionsWhere,\n QueryRunner,\n Repository,\n SelectQueryBuilder,\n UpdateResult\n} from 'typeorm';\nimport { SecurityRuleRepository } from './security-rule.repository';\nimport { PickKeysByType } from 'typeorm/common/PickKeysByType';\n\nexport class SolidBaseRepository<T extends CommonEntity> extends Repository<T> {\n protected readonly logger: Logger;\n\n constructor(\n entity: EntityTarget<T>,\n dataSource: DataSource,\n protected readonly requestContextService: RequestContextService | null,\n protected readonly securityRuleRepository: SecurityRuleRepository | null,\n ) {\n super(entity, dataSource.createEntityManager());\n this.logger = new Logger(this.constructor.name);\n }\n\n modelSingularName(): string {\n return camelize(this.metadata.name);\n }\n\n async findOneByUserKey(userKeyValue: string | number): Promise<T | null> {\n const modelSingularName = this.modelSingularName();\n const modelMetaRepo = this.manager.getRepository(ModelMetadata);\n const modelMeta = await modelMetaRepo.findOne({\n where: { singularName: modelSingularName },\n relations: { userKeyField: true },\n });\n\n if (!modelMeta?.userKeyField?.name) {\n throw new Error(`User key field not found for model ${modelSingularName}`);\n }\n\n return this.findOneBy({ [modelMeta.userKeyField.name]: userKeyValue } as FindOptionsWhere<T>);\n }\n\n override createQueryBuilder(alias?: string, queryRunner?: QueryRunner): SelectQueryBuilder<T> {\n throw new Error('createQueryBuilder() is disabled. Use createSecurityRuleAwareQueryBuilder instead');\n }\n\n async createSecurityRuleAwareQueryBuilder(alias?: string, queryRunner?: QueryRunner): Promise<SelectQueryBuilder<T>> {\n const qb = super.createQueryBuilder(alias, queryRunner);\n\n if (!this.securityRuleRepository) return qb;\n if (!this.requestContextService) return qb;\n\n const activeUserOrUndefined = this.requestContextService.getActiveUser();\n if (!activeUserOrUndefined) return qb;\n\n return await this.securityRuleRepository.applySecurityRules(\n qb,\n this.modelSingularName(),\n activeUserOrUndefined as ActiveUserData\n );\n }\n\n /**\n * Security-aware findOne: applies FindOneOptions via FindOptionsUtils,\n * but builds from our security-wrapped QueryBuilder.\n */\n override async findOne(options?: FindOneOptions<T>): Promise<T | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n // Apply all standard find options (relations, selects, order, where, etc.)\n if (options) qb.setFindOptions(options); // <- applies where, relations, select, order, etc.\n }\n\n return qb.getOne();\n }\n\n /**\n * Convenience: route findOneBy through the same path so rules apply.\n */\n override async findOneBy(where: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<T | null> {\n return this.findOne({ where });\n }\n\n /**\n * Optional: an OrFail that still honors security rules.\n */\n override async findOneOrFail(options?: FindOneOptions<T>): Promise<T> {\n const entity = await this.findOne(options);\n if (!entity) {\n throw new EntityNotFoundError(this.metadata.target, options?.where ?? {});\n }\n return entity;\n }\n\n /**\n * Security-aware find(): builds from our secured QB and preserves all FindManyOptions\n * (where, relations, select, order, take/skip, withDeleted, etc.).\n */\n override async find(options?: FindManyOptions<T>): Promise<T[]> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n qb.setFindOptions(options);\n }\n\n return qb.getMany();\n }\n\n /**\n * (Optional) Security-aware findAndCount(): same as find(), plus a total count.\n * Mirrors Repository.findAndCount semantics.\n */\n override async findAndCount(options?: FindManyOptions<T>): Promise<[T[], number]> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n qb.setFindOptions(options);\n }\n\n return qb.getManyAndCount();\n }\n\n /**\n * Security-aware count(): applies security rules before counting.\n */\n override async count(options?: FindManyOptions<T>): Promise<number> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (options) {\n qb.setFindOptions(options);\n }\n\n return qb.getCount();\n }\n\n /**\n * Security-aware countBy(): convenience wrapper routed through count().\n */\n override async countBy(where: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number> {\n return this.count({ where });\n }\n\n /**\n * Security-aware average(): applies security rules before computing the average.\n */\n override async average(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (where) {\n qb.setFindOptions({ where });\n }\n\n const result = await qb\n .select(`AVG(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'avg')\n .getRawOne<{ avg: string | number | null }>();\n\n if (result?.avg === null || result?.avg === undefined) {\n return null;\n }\n\n return typeof result.avg === 'number'\n ? result.avg\n : parseFloat(result.avg);\n }\n\n /**\n * Security-aware sum(): applies security rules before computing the sum.\n */\n override async sum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (where) {\n qb.setFindOptions({ where });\n }\n\n const result = await qb\n .select(`SUM(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'sum')\n .getRawOne<{ sum: string | number | null }>();\n\n if (result?.sum === null || result?.sum === undefined) {\n return null;\n }\n\n return typeof result.sum === 'number'\n ? result.sum\n : parseFloat(result.sum);\n }\n\n /**\n * Security-aware minimum(): applies security rules before computing the minimum.\n */\n override async minimum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (where) {\n qb.setFindOptions({ where });\n }\n\n const result = await qb\n .select(`MIN(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'min')\n .getRawOne<{ min: string | number | null }>();\n\n if (result?.min === null || result?.min === undefined) {\n return null;\n }\n\n return typeof result.min === 'number'\n ? result.min\n : parseFloat(result.min);\n }\n\n /**\n * Security-aware maximum(): applies security rules before computing the maximum.\n */\n override async maximum(columnName: PickKeysByType<T, number>, where?: FindOptionsWhere<T> | FindOptionsWhere<T>[]): Promise<number | null> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n if (where) {\n qb.setFindOptions({ where });\n }\n\n const result = await qb\n .select(`MAX(CAST(${alias}.${String(columnName)} AS FLOAT))`, 'max')\n .getRawOne<{ max: string | number | null }>();\n\n if (result?.max === null || result?.max === undefined) {\n return null;\n }\n\n return typeof result.max === 'number'\n ? result.max\n : parseFloat(result.max);\n }\n\n /**\n * Security-aware increment(): increments a column by a given value for all matching rows.\n * Security rules are applied to determine which rows the user is allowed to modify.\n */\n override async increment(where: FindOptionsWhere<T>, propertyPath: string, value: string | number,): Promise<UpdateResult> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n qb.setFindOptions({ where });\n\n const rows = await qb.select(`${alias}.id`).getMany();\n const ids = rows.map((r) => (r as any).id);\n\n if (ids.length === 0) {\n return { raw: [], affected: 0, generatedMaps: [] };\n }\n\n return this.manager\n .createQueryBuilder()\n .update(this.metadata.target)\n .set({ [propertyPath]: () => `${propertyPath} + :value` } as any)\n .whereInIds(ids)\n .setParameter('value', value)\n .execute();\n }\n\n /**\n * Security-aware decrement(): decrements a column by a given value for all matching rows.\n * Security rules are applied to determine which rows the user is allowed to modify.\n */\n override async decrement(where: FindOptionsWhere<T>, propertyPath: string, value: string | number,): Promise<UpdateResult> {\n const alias = this.modelSingularName();\n const qb = await this.createSecurityRuleAwareQueryBuilder(alias);\n\n qb.setFindOptions({ where });\n\n const rows = await qb.select(`${alias}.id`).getMany();\n const ids = rows.map((r) => (r as any).id);\n\n if (ids.length === 0) {\n return { raw: [], affected: 0, generatedMaps: [] };\n }\n\n return this.manager\n .createQueryBuilder()\n .update(this.metadata.target)\n .set({ [propertyPath]: () => `${propertyPath} - :value` } as any)\n .whereInIds(ids)\n .setParameter('value', value)\n .execute();\n }\n}\n"]}
@@ -81,6 +81,7 @@ export declare class ModuleMetadataSeederService {
81
81
  private handleSeedDashboards;
82
82
  private handleSeedScheduledJobs;
83
83
  private handleSeedSavedFilters;
84
+ private validateSavedFilterQueryJsonWrapper;
84
85
  private handleSeedModelSequences;
85
86
  private pruneModelSequences;
86
87
  private pruneSavedFilters;
@@ -95,6 +96,7 @@ export declare class ModuleMetadataSeederService {
95
96
  private pruneModels;
96
97
  private getRolePermissionJoinInfo;
97
98
  private prunePermissions;
99
+ private logSeedFailureForCli;
98
100
  private formatSeedResult;
99
101
  }
100
102
  //# sourceMappingURL=module-metadata-seeder.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-metadata-seeder.service.d.ts","sourceRoot":"","sources":["../../src/seeders/module-metadata-seeder.service.ts"],"names":[],"mappings":"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"}
@@ -119,79 +119,112 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
119
119
  this.enablePruning = false;
120
120
  }
121
121
  async seed(conf) {
122
- this.enablePruning = Boolean(conf?.pruneMetadata);
123
- console.log(this.enablePruning ? '▶ Pruning enabled: metadata not present in JSON will be removed.' : '▶ Pruning disabled: existing metadata will be kept.');
124
- await this.seedGlobalMetadata();
125
- const seedDataFiles = this.seedDataFiles;
126
- this.logger.debug(`Found seed data for modules: ${seedDataFiles.map(s => s.moduleMetadata?.name)}`);
122
+ let currentModule = 'global';
123
+ let currentStep = 'bootstrap';
127
124
  let modulesToSeed = null;
128
- if (conf && Array.isArray(conf.modulesToSeed)) {
129
- modulesToSeed = conf.modulesToSeed;
130
- console.log(`▶ Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);
131
- this.logger.log(`Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);
132
- }
133
- else {
134
- console.log(`▶ No modulesToSeed provided. Seeding ALL modules.`);
135
- this.logger.log(`No modulesToSeed provided. Seeding ALL modules.`);
136
- }
137
- const filteredSeedDataFiles = modulesToSeed ? seedDataFiles.filter((file) => modulesToSeed.includes(file.moduleMetadata?.name)) : seedDataFiles;
138
- if (filteredSeedDataFiles.length === 0) {
139
- this.logger.warn(`No modules matched the provided modulesToSeed list.`);
140
- return;
125
+ try {
126
+ this.enablePruning = Boolean(conf?.pruneMetadata);
127
+ console.log(this.enablePruning ? '▶ Pruning enabled: metadata not present in JSON will be removed.' : '▶ Pruning disabled: existing metadata will be kept.');
128
+ currentStep = 'seedGlobalMetadata';
129
+ await this.seedGlobalMetadata();
130
+ const seedDataFiles = this.seedDataFiles;
131
+ this.logger.debug(`Found seed data for modules: ${seedDataFiles.map(s => s.moduleMetadata?.name)}`);
132
+ currentStep = 'resolveModulesToSeed';
133
+ if (conf && Array.isArray(conf.modulesToSeed)) {
134
+ modulesToSeed = conf.modulesToSeed;
135
+ console.log(`▶ Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);
136
+ this.logger.log(`Selective seeding enabled. Modules to seed: ${modulesToSeed.join(', ')}`);
137
+ }
138
+ else {
139
+ console.log(`▶ No modulesToSeed provided. Seeding ALL modules.`);
140
+ this.logger.log(`No modulesToSeed provided. Seeding ALL modules.`);
141
+ }
142
+ const filteredSeedDataFiles = modulesToSeed ? seedDataFiles.filter((file) => modulesToSeed.includes(file.moduleMetadata?.name)) : seedDataFiles;
143
+ if (filteredSeedDataFiles.length === 0) {
144
+ this.logger.warn(`No modules matched the provided modulesToSeed list.`);
145
+ return;
146
+ }
147
+ for (let i = 0; i < filteredSeedDataFiles.length; i++) {
148
+ const overallMetadata = filteredSeedDataFiles[i];
149
+ const moduleMetadata = overallMetadata.moduleMetadata;
150
+ currentModule = moduleMetadata?.name ?? 'unknown';
151
+ console.log(`▶ Seeding Metadata for Module: ${moduleMetadata.name}`);
152
+ this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
153
+ currentStep = 'seedModuleModelFields';
154
+ this.logger.log(`Seeding Module / Model / Fields`);
155
+ const moduleModelFieldCounts = await this.seedModuleModelFields(moduleMetadata);
156
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
157
+ currentStep = 'seedMediaStorageProviders';
158
+ this.logger.log(`Seeding Media Storage Providers`);
159
+ const mediaStorageCounts = await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);
160
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Media Storage Providers', mediaStorageCounts)}`);
161
+ currentStep = 'seedRoles';
162
+ this.logger.log(`Seeding Roles`);
163
+ const roleCounts = await this.seedRoles(overallMetadata);
164
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Roles', roleCounts)}`);
165
+ currentStep = 'seedUsers';
166
+ this.logger.log(`Seeding Users`);
167
+ const userCounts = await this.seedUsers(overallMetadata);
168
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Users', userCounts)}`);
169
+ currentStep = 'seedViews';
170
+ this.logger.log(`Seeding Views`);
171
+ const viewCounts = await this.seedViews(overallMetadata);
172
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Views', viewCounts)}`);
173
+ currentStep = 'seedActions';
174
+ this.logger.log(`Seeding Actions`);
175
+ const actionCounts = await this.seedActions(overallMetadata);
176
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Actions', actionCounts)}`);
177
+ currentStep = 'seedMenus';
178
+ this.logger.log(`Seeding Menus`);
179
+ const menuCounts = await this.seedMenus(overallMetadata);
180
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Menus', menuCounts)}`);
181
+ currentStep = 'seedEmailTemplates';
182
+ this.logger.log(`Seeding Email Templates`);
183
+ const emailTemplateCounts = await this.seedEmailTemplates(overallMetadata, moduleMetadata.name);
184
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Email Templates', emailTemplateCounts)}`);
185
+ currentStep = 'seedSmsTemplates';
186
+ this.logger.log(`Seeding Sms Templates`);
187
+ const smsTemplateCounts = await this.seedSmsTemplates(overallMetadata, moduleMetadata.name);
188
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Sms Templates', smsTemplateCounts)}`);
189
+ currentStep = 'seedSecurityRules';
190
+ this.logger.log(`Seeding Security Rules`);
191
+ const securityRuleCounts = await this.seedSecurityRules(overallMetadata);
192
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Security Rules', securityRuleCounts)}`);
193
+ currentStep = 'seedListOfValues';
194
+ this.logger.log(`Seeding List Of Values`);
195
+ const lovCounts = await this.seedListOfValues(moduleMetadata, overallMetadata);
196
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'List Of Values', lovCounts)}`);
197
+ currentStep = 'seedDashboards';
198
+ this.logger.log(`Seeding Dashboards`);
199
+ const dashboardCounts = await this.seedDashboards(moduleMetadata, overallMetadata);
200
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Dashboards', dashboardCounts)}`);
201
+ currentStep = 'seedScheduledJobs';
202
+ this.logger.log(`Seeding Scheduled Jobs`);
203
+ const scheduledJobCounts = await this.seedScheduledJobs(moduleMetadata, overallMetadata);
204
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Scheduled Jobs', scheduledJobCounts)}`);
205
+ currentStep = 'seedSavedFilters';
206
+ this.logger.log(`Seeding Saved Filters`);
207
+ const savedFilterCounts = await this.seedSavedFilters(moduleMetadata, overallMetadata);
208
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Saved Filters', savedFilterCounts)}`);
209
+ currentStep = 'seedModelSequences';
210
+ this.logger.log(`Seeding Model Sequences`);
211
+ const modelSequenceCounts = await this.seedModelSequences(overallMetadata);
212
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Model Sequences', modelSequenceCounts)}`);
213
+ }
214
+ currentModule = 'global';
215
+ currentStep = 'setupDefaultRolesWithPermissions';
216
+ await this.setupDefaultRolesWithPermissions();
217
+ console.log(`✔ Seeding completed.`);
218
+ }
219
+ catch (error) {
220
+ this.logSeedFailureForCli(error, {
221
+ moduleName: currentModule,
222
+ step: currentStep,
223
+ pruneEnabled: this.enablePruning,
224
+ modulesToSeed,
225
+ });
226
+ throw error;
141
227
  }
142
- for (let i = 0; i < filteredSeedDataFiles.length; i++) {
143
- const overallMetadata = filteredSeedDataFiles[i];
144
- const moduleMetadata = overallMetadata.moduleMetadata;
145
- console.log(`▶ Seeding Metadata for Module: ${moduleMetadata.name}`);
146
- this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
147
- this.logger.log(`Seeding Module / Model / Fields`);
148
- const moduleModelFieldCounts = await this.seedModuleModelFields(moduleMetadata);
149
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
150
- this.logger.log(`Seeding Media Storage Providers`);
151
- const mediaStorageCounts = await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);
152
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Media Storage Providers', mediaStorageCounts)}`);
153
- this.logger.log(`Seeding Roles`);
154
- const roleCounts = await this.seedRoles(overallMetadata);
155
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Roles', roleCounts)}`);
156
- this.logger.log(`Seeding Users`);
157
- const userCounts = await this.seedUsers(overallMetadata);
158
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Users', userCounts)}`);
159
- this.logger.log(`Seeding Views`);
160
- const viewCounts = await this.seedViews(overallMetadata);
161
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Views', viewCounts)}`);
162
- this.logger.log(`Seeding Actions`);
163
- const actionCounts = await this.seedActions(overallMetadata);
164
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Actions', actionCounts)}`);
165
- this.logger.log(`Seeding Menus`);
166
- const menuCounts = await this.seedMenus(overallMetadata);
167
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Menus', menuCounts)}`);
168
- this.logger.log(`Seeding Email Templates`);
169
- const emailTemplateCounts = await this.seedEmailTemplates(overallMetadata, moduleMetadata.name);
170
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Email Templates', emailTemplateCounts)}`);
171
- this.logger.log(`Seeding Sms Templates`);
172
- const smsTemplateCounts = await this.seedSmsTemplates(overallMetadata, moduleMetadata.name);
173
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Sms Templates', smsTemplateCounts)}`);
174
- this.logger.log(`Seeding Security Rules`);
175
- const securityRuleCounts = await this.seedSecurityRules(overallMetadata);
176
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Security Rules', securityRuleCounts)}`);
177
- this.logger.log(`Seeding List Of Values`);
178
- const lovCounts = await this.seedListOfValues(moduleMetadata, overallMetadata);
179
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'List Of Values', lovCounts)}`);
180
- this.logger.log(`Seeding Dashboards`);
181
- const dashboardCounts = await this.seedDashboards(moduleMetadata, overallMetadata);
182
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Dashboards', dashboardCounts)}`);
183
- this.logger.log(`Seeding Scheduled Jobs`);
184
- const scheduledJobCounts = await this.seedScheduledJobs(moduleMetadata, overallMetadata);
185
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Scheduled Jobs', scheduledJobCounts)}`);
186
- this.logger.log(`Seeding Saved Filters`);
187
- const savedFilterCounts = await this.seedSavedFilters(moduleMetadata, overallMetadata);
188
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Saved Filters', savedFilterCounts)}`);
189
- this.logger.log(`Seeding Model Sequences`);
190
- const modelSequenceCounts = await this.seedModelSequences(overallMetadata);
191
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Model Sequences', modelSequenceCounts)}`);
192
- }
193
- await this.setupDefaultRolesWithPermissions();
194
- console.log(`✔ Seeding completed.`);
195
228
  }
196
229
  async seedScheduledJobs(moduleMetadata, overallMetadata) {
197
230
  this.logger.debug(`[Start] Processing scheduled jobs for ${moduleMetadata.name}`);
@@ -675,7 +708,23 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
675
708
  return;
676
709
  }
677
710
  for (const dto of createSavedFilterDto) {
678
- await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson) });
711
+ this.validateSavedFilterQueryJsonWrapper(dto);
712
+ await this.savedFiltersRepo.upsertWithDto({ ...dto, filterQueryJson: JSON.stringify(dto.filterQueryJson), isSeeded: true });
713
+ }
714
+ }
715
+ validateSavedFilterQueryJsonWrapper(dto) {
716
+ const filterName = dto?.name ?? '<unnamed>';
717
+ const filterQueryJson = dto?.filterQueryJson;
718
+ const baseErrorMessage = `Invalid saved filter "${filterName}": filterQueryJson must be wrapped with a top-level "$or" or "$and". ` +
719
+ `Example: {"$or":[{"employeeStatus":{"$eq":"Active"}}]}`;
720
+ if (!filterQueryJson || typeof filterQueryJson !== 'object' || Array.isArray(filterQueryJson)) {
721
+ throw new Error(baseErrorMessage);
722
+ }
723
+ const topLevelKeys = Object.keys(filterQueryJson);
724
+ const hasLogicalWrapper = topLevelKeys.includes('$or') || topLevelKeys.includes('$and');
725
+ if (!hasLogicalWrapper) {
726
+ const receivedKeys = topLevelKeys.length > 0 ? topLevelKeys.join(', ') : '(none)';
727
+ throw new Error(`${baseErrorMessage}. Received top-level keys: ${receivedKeys}`);
679
728
  }
680
729
  }
681
730
  async handleSeedModelSequences(modelSequencesDto) {
@@ -1165,6 +1214,27 @@ let ModuleMetadataSeederService = ModuleMetadataSeederService_1 = class ModuleMe
1165
1214
  }
1166
1215
  return 0;
1167
1216
  }
1217
+ logSeedFailureForCli(error, context) {
1218
+ const err = error instanceof Error ? error : new Error(String(error));
1219
+ const stackLines = (err.stack ?? '')
1220
+ .split('\n')
1221
+ .slice(0, 8)
1222
+ .map((line) => line.trim())
1223
+ .filter(Boolean);
1224
+ const logPayload = {
1225
+ module: context.moduleName,
1226
+ step: context.step,
1227
+ pruneEnabled: context.pruneEnabled,
1228
+ modulesToSeed: context.modulesToSeed?.length ? context.modulesToSeed : 'ALL',
1229
+ error: {
1230
+ name: err.name,
1231
+ message: err.message,
1232
+ stackPreview: stackLines.length > 0 ? stackLines : undefined,
1233
+ },
1234
+ };
1235
+ console.log('✖ Seeding failed');
1236
+ console.log(JSON.stringify(logPayload, null, 2));
1237
+ }
1168
1238
  formatSeedResult(moduleName, label, counts) {
1169
1239
  if (this.enablePruning) {
1170
1240
  return `✔ [${moduleName}] ${label} seeded (pruned ${counts.pruned}, upserted ${counts.upserted})`;