@solidstarters/solid-core 1.2.124 → 1.2.127

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 (667) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/commands/helper.js.map +1 -1
  3. package/dist/commands/refresh-model.command.js.map +1 -1
  4. package/dist/commands/refresh-module.command.js.map +1 -1
  5. package/dist/commands/remove-fields.command.js.map +1 -1
  6. package/dist/commands/seed.command.js.map +1 -1
  7. package/dist/config/app-builder.config.js.map +1 -1
  8. package/dist/config/cache.options.js.map +1 -1
  9. package/dist/config/common.config.js.map +1 -1
  10. package/dist/config/iam.config.js.map +1 -1
  11. package/dist/constants.js.map +1 -1
  12. package/dist/controllers/action-metadata.controller.js.map +1 -1
  13. package/dist/controllers/authentication.controller.js.map +1 -1
  14. package/dist/controllers/chatter-message-details.controller.js.map +1 -1
  15. package/dist/controllers/chatter-message.controller.js.map +1 -1
  16. package/dist/controllers/email-template.controller.js.map +1 -1
  17. package/dist/controllers/export-template.controller.js.map +1 -1
  18. package/dist/controllers/export-transaction.controller.js.map +1 -1
  19. package/dist/controllers/field-metadata.controller.js.map +1 -1
  20. package/dist/controllers/google-authentication.controller.js.map +1 -1
  21. package/dist/controllers/import-transaction-error-log.controller.js.map +1 -1
  22. package/dist/controllers/import-transaction.controller.js.map +1 -1
  23. package/dist/controllers/list-of-values.controller.js.map +1 -1
  24. package/dist/controllers/locale.controller.js.map +1 -1
  25. package/dist/controllers/media-storage-provider-metadata.controller.d.ts.map +1 -1
  26. package/dist/controllers/media-storage-provider-metadata.controller.js +3 -0
  27. package/dist/controllers/media-storage-provider-metadata.controller.js.map +1 -1
  28. package/dist/controllers/media.controller.js.map +1 -1
  29. package/dist/controllers/menu-item-metadata.controller.js.map +1 -1
  30. package/dist/controllers/model-metadata.controller.js.map +1 -1
  31. package/dist/controllers/module-metadata.controller.js.map +1 -1
  32. package/dist/controllers/mq-message-queue.controller.js.map +1 -1
  33. package/dist/controllers/mq-message.controller.js.map +1 -1
  34. package/dist/controllers/otp-authentication.controller.js.map +1 -1
  35. package/dist/controllers/permission-metadata.controller.js.map +1 -1
  36. package/dist/controllers/role-metadata.controller.js.map +1 -1
  37. package/dist/controllers/saved-filters.controller.js.map +1 -1
  38. package/dist/controllers/scheduled-job.controller.d.ts +43 -0
  39. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -0
  40. package/dist/controllers/scheduled-job.controller.js +179 -0
  41. package/dist/controllers/scheduled-job.controller.js.map +1 -0
  42. package/dist/controllers/security-rule.controller.js.map +1 -1
  43. package/dist/controllers/service.controller.js.map +1 -1
  44. package/dist/controllers/setting.controller.js.map +1 -1
  45. package/dist/controllers/sms-template.controller.js.map +1 -1
  46. package/dist/controllers/test-queue.controller.d.ts +7 -0
  47. package/dist/controllers/test-queue.controller.d.ts.map +1 -0
  48. package/dist/controllers/{queues-test.controller.js → test-queue.controller.js} +12 -20
  49. package/dist/controllers/test-queue.controller.js.map +1 -0
  50. package/dist/controllers/test.controller.js.map +1 -1
  51. package/dist/controllers/user-activity-history.controller.js.map +1 -1
  52. package/dist/controllers/user-view-metadata.controller.js.map +1 -1
  53. package/dist/controllers/user.controller.js.map +1 -1
  54. package/dist/controllers/view-metadata.controller.js.map +1 -1
  55. package/dist/decorators/active-user.decorator.js.map +1 -1
  56. package/dist/decorators/auth.decorator.js.map +1 -1
  57. package/dist/decorators/computed-field-provider.decorator.js.map +1 -1
  58. package/dist/decorators/disallow-in-production.decorator.js.map +1 -1
  59. package/dist/decorators/is-not-in-enum.decorator.js.map +1 -1
  60. package/dist/decorators/protocol.decorator.js.map +1 -1
  61. package/dist/decorators/public.decorator.js.map +1 -1
  62. package/dist/decorators/roles.decorator.js.map +1 -1
  63. package/dist/decorators/scheduled-job-provider.decorator.d.ts +3 -0
  64. package/dist/decorators/scheduled-job-provider.decorator.d.ts.map +1 -0
  65. package/dist/decorators/scheduled-job-provider.decorator.js +11 -0
  66. package/dist/decorators/scheduled-job-provider.decorator.js.map +1 -0
  67. package/dist/decorators/selection-provider.decorator.js.map +1 -1
  68. package/dist/decorators/solid-database-module.decorator.js.map +1 -1
  69. package/dist/decorators/solid-request-context.decorator.js.map +1 -1
  70. package/dist/decorators/solid-service.decorator.js.map +1 -1
  71. package/dist/dtos/basic-filters.dto.js.map +1 -1
  72. package/dist/dtos/change-password.dto.js.map +1 -1
  73. package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
  74. package/dist/dtos/create-action-metadata.dto.js.map +1 -1
  75. package/dist/dtos/create-chatter-message-details.dto.js.map +1 -1
  76. package/dist/dtos/create-chatter-message.dto.js.map +1 -1
  77. package/dist/dtos/create-email-attachment.dto.js.map +1 -1
  78. package/dist/dtos/create-email-template.dto.js.map +1 -1
  79. package/dist/dtos/create-export-template.dto.js.map +1 -1
  80. package/dist/dtos/create-export-transaction.dto.js.map +1 -1
  81. package/dist/dtos/create-field-metadata.dto.d.ts +14 -0
  82. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  83. package/dist/dtos/create-field-metadata.dto.js +15 -2
  84. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  85. package/dist/dtos/create-import-transaction-error-log.dto.js.map +1 -1
  86. package/dist/dtos/create-import-transaction.dto.js.map +1 -1
  87. package/dist/dtos/create-list-of-values.dto.js.map +1 -1
  88. package/dist/dtos/create-locale.dto.js.map +1 -1
  89. package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts +1 -0
  90. package/dist/dtos/create-media-storage-provider-metadata.dto.d.ts.map +1 -1
  91. package/dist/dtos/create-media-storage-provider-metadata.dto.js +6 -1
  92. package/dist/dtos/create-media-storage-provider-metadata.dto.js.map +1 -1
  93. package/dist/dtos/create-media.dto.js.map +1 -1
  94. package/dist/dtos/create-menu-item-metadata.dto.js.map +1 -1
  95. package/dist/dtos/create-message.dto.js.map +1 -1
  96. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  97. package/dist/dtos/create-module-metadata.dto.js.map +1 -1
  98. package/dist/dtos/create-mq-message-queue.dto.js.map +1 -1
  99. package/dist/dtos/create-mq-message.dto.js.map +1 -1
  100. package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
  101. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  102. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  103. package/dist/dtos/create-scheduled-job.dto.d.ts +15 -0
  104. package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -0
  105. package/dist/dtos/create-scheduled-job.dto.js +98 -0
  106. package/dist/dtos/create-scheduled-job.dto.js.map +1 -0
  107. package/dist/dtos/create-security-rule.dto.js.map +1 -1
  108. package/dist/dtos/create-setting.dto.js.map +1 -1
  109. package/dist/dtos/create-short-url.dto.js.map +1 -1
  110. package/dist/dtos/create-sms-template.dto.js.map +1 -1
  111. package/dist/dtos/create-user-activity-history.dto.js.map +1 -1
  112. package/dist/dtos/create-user-view-metadata.dto.js.map +1 -1
  113. package/dist/dtos/create-user.dto.js.map +1 -1
  114. package/dist/dtos/create-view-metadata.dto.js.map +1 -1
  115. package/dist/dtos/export.dto.js.map +1 -1
  116. package/dist/dtos/fetch-roles.dto.js.map +1 -1
  117. package/dist/dtos/import-instructions.dto.js.map +1 -1
  118. package/dist/dtos/initiate-forgot-password.dto.js.map +1 -1
  119. package/dist/dtos/mutate-role-permissions.dto.js.map +1 -1
  120. package/dist/dtos/mutate-user-roles-list.dto.js.map +1 -1
  121. package/dist/dtos/mutate-user-roles.dto.js.map +1 -1
  122. package/dist/dtos/oauth-user-dto.js.map +1 -1
  123. package/dist/dtos/otp-confirm-otp.dto.js.map +1 -1
  124. package/dist/dtos/otp-sign-in.dto.js.map +1 -1
  125. package/dist/dtos/otp-sign-up.dto.js.map +1 -1
  126. package/dist/dtos/pagination-query.dto.js.map +1 -1
  127. package/dist/dtos/post-chatter-message.dto.js.map +1 -1
  128. package/dist/dtos/query.dto.js.map +1 -1
  129. package/dist/dtos/refresh-token.dto.js.map +1 -1
  130. package/dist/dtos/register-private.dto.js.map +1 -1
  131. package/dist/dtos/security-rule-config.dto.js.map +1 -1
  132. package/dist/dtos/selection-dynamic-query.dto.js.map +1 -1
  133. package/dist/dtos/sign-in.dto.js.map +1 -1
  134. package/dist/dtos/sign-up.dto.js.map +1 -1
  135. package/dist/dtos/solid-request-context.dto.js.map +1 -1
  136. package/dist/dtos/sort-filter.dto.js.map +1 -1
  137. package/dist/dtos/update-action-metadata.dto.js.map +1 -1
  138. package/dist/dtos/update-chatter-message-details.dto.js.map +1 -1
  139. package/dist/dtos/update-chatter-message.dto.js.map +1 -1
  140. package/dist/dtos/update-email-attachment.dto.js.map +1 -1
  141. package/dist/dtos/update-email-template.dto.js.map +1 -1
  142. package/dist/dtos/update-export-template.dto.js.map +1 -1
  143. package/dist/dtos/update-export-transaction.dto.js.map +1 -1
  144. package/dist/dtos/update-field-metadata.dto.js.map +1 -1
  145. package/dist/dtos/update-import-transaction-error-log.dto.js.map +1 -1
  146. package/dist/dtos/update-import-transaction.dto.js.map +1 -1
  147. package/dist/dtos/update-list-of-values.dto.js.map +1 -1
  148. package/dist/dtos/update-locale.dto.js.map +1 -1
  149. package/dist/dtos/update-media-storage-provider.dto.js.map +1 -1
  150. package/dist/dtos/update-media.dto.js.map +1 -1
  151. package/dist/dtos/update-menu-item-metadata.dto.js.map +1 -1
  152. package/dist/dtos/update-message.dto.js.map +1 -1
  153. package/dist/dtos/update-model-metadata.dto.js.map +1 -1
  154. package/dist/dtos/update-module-metadata.dto.js.map +1 -1
  155. package/dist/dtos/update-mq-message-queue.dto.js.map +1 -1
  156. package/dist/dtos/update-mq-message.dto.js.map +1 -1
  157. package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
  158. package/dist/dtos/update-role-metadata.dto.js.map +1 -1
  159. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  160. package/dist/dtos/update-scheduled-job.dto.d.ts +16 -0
  161. package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -0
  162. package/dist/dtos/update-scheduled-job.dto.js +103 -0
  163. package/dist/dtos/update-scheduled-job.dto.js.map +1 -0
  164. package/dist/dtos/update-security-rule.dto.js.map +1 -1
  165. package/dist/dtos/update-setting.dto.js.map +1 -1
  166. package/dist/dtos/update-settings.dto.js.map +1 -1
  167. package/dist/dtos/update-sms-template.dto.js.map +1 -1
  168. package/dist/dtos/update-user-activity-history.dto.js.map +1 -1
  169. package/dist/dtos/update-user-profile.dto.js.map +1 -1
  170. package/dist/dtos/update-user-view-metadata.dto.js.map +1 -1
  171. package/dist/dtos/update-user.dto.js.map +1 -1
  172. package/dist/dtos/update-view-metadata.dto.js.map +1 -1
  173. package/dist/dtos/upsert-user-view-metadata.dto.js.map +1 -1
  174. package/dist/entities/action-metadata.entity.js.map +1 -1
  175. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  176. package/dist/entities/chatter-message.entity.js.map +1 -1
  177. package/dist/entities/common.entity.js.map +1 -1
  178. package/dist/entities/email-attachment.entity.js.map +1 -1
  179. package/dist/entities/email-template.entity.js.map +1 -1
  180. package/dist/entities/export-template.entity.js.map +1 -1
  181. package/dist/entities/export-transaction.entity.js.map +1 -1
  182. package/dist/entities/field-metadata.entity.d.ts +2 -0
  183. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  184. package/dist/entities/field-metadata.entity.js +5 -1
  185. package/dist/entities/field-metadata.entity.js.map +1 -1
  186. package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
  187. package/dist/entities/import-transaction.entity.js.map +1 -1
  188. package/dist/entities/list-of-values.entity.js.map +1 -1
  189. package/dist/entities/locale.entity.js.map +1 -1
  190. package/dist/entities/media-storage-provider-metadata.entity.d.ts +1 -0
  191. package/dist/entities/media-storage-provider-metadata.entity.d.ts.map +1 -1
  192. package/dist/entities/media-storage-provider-metadata.entity.js +5 -1
  193. package/dist/entities/media-storage-provider-metadata.entity.js.map +1 -1
  194. package/dist/entities/media.entity.js.map +1 -1
  195. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  196. package/dist/entities/model-metadata.entity.js.map +1 -1
  197. package/dist/entities/module-metadata.entity.js.map +1 -1
  198. package/dist/entities/mq-message-queue.entity.js.map +1 -1
  199. package/dist/entities/mq-message.entity.js.map +1 -1
  200. package/dist/entities/permission-metadata.entity.js.map +1 -1
  201. package/dist/entities/role-metadata.entity.js.map +1 -1
  202. package/dist/entities/saved-filters.entity.js.map +1 -1
  203. package/dist/entities/scheduled-job.entity.d.ts +16 -0
  204. package/dist/entities/scheduled-job.entity.d.ts.map +1 -0
  205. package/dist/entities/scheduled-job.entity.js +77 -0
  206. package/dist/entities/scheduled-job.entity.js.map +1 -0
  207. package/dist/entities/security-rule.entity.js.map +1 -1
  208. package/dist/entities/setting.entity.js.map +1 -1
  209. package/dist/entities/sms-template.entity.js.map +1 -1
  210. package/dist/entities/user-activity-history.entity.js.map +1 -1
  211. package/dist/entities/user-password-history.entity.js.map +1 -1
  212. package/dist/entities/user-view-metadata.entity.js.map +1 -1
  213. package/dist/entities/user.entity.js.map +1 -1
  214. package/dist/entities/view-metadata.entity.js.map +1 -1
  215. package/dist/enums/auth-type.enum.js.map +1 -1
  216. package/dist/filters/http-exception.filter.js.map +1 -1
  217. package/dist/guards/access-token.guard.js.map +1 -1
  218. package/dist/guards/authentication.guard.js.map +1 -1
  219. package/dist/guards/permissions.guard.js.map +1 -1
  220. package/dist/guards/roles.guard.js.map +1 -1
  221. package/dist/helpers/command.service.js.map +1 -1
  222. package/dist/helpers/field-crud-managers/BigIntFieldCrudManager.js.map +1 -1
  223. package/dist/helpers/field-crud-managers/BooleanFieldCrudManager.js.map +1 -1
  224. package/dist/helpers/field-crud-managers/ComputedFieldCrudManager.js.map +1 -1
  225. package/dist/helpers/field-crud-managers/DateFieldCrudManager.js.map +1 -1
  226. package/dist/helpers/field-crud-managers/DecimalFieldCrudManager.js.map +1 -1
  227. package/dist/helpers/field-crud-managers/EmailFieldCrudManager.js.map +1 -1
  228. package/dist/helpers/field-crud-managers/IntFieldCrudManager.js.map +1 -1
  229. package/dist/helpers/field-crud-managers/JsonFieldCrudManager.js.map +1 -1
  230. package/dist/helpers/field-crud-managers/LongTextFieldCrudManager.js.map +1 -1
  231. package/dist/helpers/field-crud-managers/ManyToManyRelationFieldCrudManager.js.map +1 -1
  232. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
  233. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  234. package/dist/helpers/field-crud-managers/NoOpsFieldCrudManager.js.map +1 -1
  235. package/dist/helpers/field-crud-managers/OneToManyRelationFieldCrudManager.js.map +1 -1
  236. package/dist/helpers/field-crud-managers/PasswordFieldCrudManager.js.map +1 -1
  237. package/dist/helpers/field-crud-managers/RichTextFieldCrudManager.js.map +1 -1
  238. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
  239. package/dist/helpers/field-crud-managers/SelectionStaticFieldCrudManager.js.map +1 -1
  240. package/dist/helpers/field-crud-managers/ShortTextFieldCrudManager.js.map +1 -1
  241. package/dist/helpers/field-crud-managers/UUIDFieldCrudManager.js.map +1 -1
  242. package/dist/helpers/google-oauth.helper.js.map +1 -1
  243. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  244. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  245. package/dist/helpers/module.helper.js.map +1 -1
  246. package/dist/helpers/schematic.service.js.map +1 -1
  247. package/dist/helpers/solid-registry.d.ts +20 -3
  248. package/dist/helpers/solid-registry.d.ts.map +1 -1
  249. package/dist/helpers/solid-registry.js +30 -5
  250. package/dist/helpers/solid-registry.js.map +1 -1
  251. package/dist/index.d.ts +8 -0
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +8 -0
  254. package/dist/index.js.map +1 -1
  255. package/dist/interceptors/logging.interceptor.js.map +1 -1
  256. package/dist/interceptors/wrap-response.interceptor.js.map +1 -1
  257. package/dist/interfaces/active-user-data.interface.js.map +1 -1
  258. package/dist/interfaces/mq.js.map +1 -1
  259. package/dist/interfaces.d.ts +11 -0
  260. package/dist/interfaces.d.ts.map +1 -1
  261. package/dist/interfaces.js.map +1 -1
  262. package/dist/jobs/api-email-publisher.service.js.map +1 -1
  263. package/dist/jobs/api-email-queue-options.js.map +1 -1
  264. package/dist/jobs/api-email-subscriber.service.js.map +1 -1
  265. package/dist/jobs/database/api-email-publisher-database.service.d.ts +11 -0
  266. package/dist/jobs/database/api-email-publisher-database.service.d.ts.map +1 -0
  267. package/dist/jobs/database/api-email-publisher-database.service.js +39 -0
  268. package/dist/jobs/database/api-email-publisher-database.service.js.map +1 -0
  269. package/dist/jobs/database/api-email-queue-options-database.d.ts +8 -0
  270. package/dist/jobs/database/api-email-queue-options-database.d.ts.map +1 -0
  271. package/dist/jobs/database/api-email-queue-options-database.js +10 -0
  272. package/dist/jobs/database/api-email-queue-options-database.js.map +1 -0
  273. package/dist/jobs/database/api-email-subscriber-database.service.d.ts +15 -0
  274. package/dist/jobs/database/api-email-subscriber-database.service.d.ts.map +1 -0
  275. package/dist/jobs/database/api-email-subscriber-database.service.js +45 -0
  276. package/dist/jobs/database/api-email-subscriber-database.service.js.map +1 -0
  277. package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts +12 -0
  278. package/dist/jobs/database/computed-field-evaluation-publisher.service.d.ts.map +1 -0
  279. package/dist/jobs/database/computed-field-evaluation-publisher.service.js +39 -0
  280. package/dist/jobs/database/computed-field-evaluation-publisher.service.js.map +1 -0
  281. package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts +8 -0
  282. package/dist/jobs/database/computed-field-evaluation-queue-options.d.ts.map +1 -0
  283. package/dist/jobs/database/computed-field-evaluation-queue-options.js +10 -0
  284. package/dist/jobs/database/computed-field-evaluation-queue-options.js.map +1 -0
  285. package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts +16 -0
  286. package/dist/jobs/database/computed-field-evaluation-subscriber.service.d.ts.map +1 -0
  287. package/dist/jobs/database/computed-field-evaluation-subscriber.service.js +48 -0
  288. package/dist/jobs/database/computed-field-evaluation-subscriber.service.js.map +1 -0
  289. package/dist/jobs/database/email-publisher-database.service.d.ts +11 -0
  290. package/dist/jobs/database/email-publisher-database.service.d.ts.map +1 -0
  291. package/dist/jobs/database/email-publisher-database.service.js +39 -0
  292. package/dist/jobs/database/email-publisher-database.service.js.map +1 -0
  293. package/dist/jobs/database/email-queue-options-database.d.ts +8 -0
  294. package/dist/jobs/database/email-queue-options-database.d.ts.map +1 -0
  295. package/dist/jobs/database/email-queue-options-database.js +10 -0
  296. package/dist/jobs/database/email-queue-options-database.js.map +1 -0
  297. package/dist/jobs/database/email-subscriber-database.service.d.ts +15 -0
  298. package/dist/jobs/database/email-subscriber-database.service.d.ts.map +1 -0
  299. package/dist/jobs/database/email-subscriber-database.service.js +45 -0
  300. package/dist/jobs/database/email-subscriber-database.service.js.map +1 -0
  301. package/dist/jobs/database/{generate-code-publisher.service.d.ts → generate-code-publisher-database.service.d.ts} +2 -2
  302. package/dist/jobs/database/generate-code-publisher-database.service.d.ts.map +1 -0
  303. package/dist/jobs/database/generate-code-publisher-database.service.js +39 -0
  304. package/dist/jobs/database/generate-code-publisher-database.service.js.map +1 -0
  305. package/dist/jobs/database/{test-queue-db-options.d.ts → generate-code-queue-options-database.d.ts} +1 -1
  306. package/dist/jobs/database/generate-code-queue-options-database.d.ts.map +1 -0
  307. package/dist/jobs/database/{generate-code-queue-options.js → generate-code-queue-options-database.js} +1 -1
  308. package/dist/jobs/database/generate-code-queue-options-database.js.map +1 -0
  309. package/dist/jobs/database/{generate-code-subscriber.service.d.ts → generate-code-subscriber-database.service.d.ts} +2 -2
  310. package/dist/jobs/database/generate-code-subscriber-database.service.d.ts.map +1 -0
  311. package/dist/jobs/database/{generate-code-subscriber.service.js → generate-code-subscriber-database.service.js} +10 -10
  312. package/dist/jobs/database/generate-code-subscriber-database.service.js.map +1 -0
  313. package/dist/jobs/database/otp-publisher-database.service.d.ts +11 -0
  314. package/dist/jobs/database/otp-publisher-database.service.d.ts.map +1 -0
  315. package/dist/jobs/database/{generate-code-publisher.service.js → otp-publisher-database.service.js} +8 -8
  316. package/dist/jobs/database/otp-publisher-database.service.js.map +1 -0
  317. package/dist/jobs/database/otp-queue-options-database.d.ts +8 -0
  318. package/dist/jobs/database/otp-queue-options-database.d.ts.map +1 -0
  319. package/dist/jobs/database/otp-queue-options-database.js +10 -0
  320. package/dist/jobs/database/otp-queue-options-database.js.map +1 -0
  321. package/dist/jobs/database/otp-subscriber-database.service.d.ts +15 -0
  322. package/dist/jobs/database/otp-subscriber-database.service.d.ts.map +1 -0
  323. package/dist/jobs/database/otp-subscriber-database.service.js +45 -0
  324. package/dist/jobs/database/otp-subscriber-database.service.js.map +1 -0
  325. package/dist/jobs/database/sms-publisher-database.service.d.ts +11 -0
  326. package/dist/jobs/database/sms-publisher-database.service.d.ts.map +1 -0
  327. package/dist/jobs/database/{queue-test-db-publisher.service.js → sms-publisher-database.service.js} +8 -8
  328. package/dist/jobs/database/sms-publisher-database.service.js.map +1 -0
  329. package/dist/jobs/database/sms-queue-database-options.d.ts +8 -0
  330. package/dist/jobs/database/sms-queue-database-options.d.ts.map +1 -0
  331. package/dist/jobs/database/sms-queue-database-options.js +10 -0
  332. package/dist/jobs/database/sms-queue-database-options.js.map +1 -0
  333. package/dist/jobs/database/sms-subscriber-database.service.d.ts +15 -0
  334. package/dist/jobs/database/sms-subscriber-database.service.d.ts.map +1 -0
  335. package/dist/jobs/database/sms-subscriber-database.service.js +45 -0
  336. package/dist/jobs/database/sms-subscriber-database.service.js.map +1 -0
  337. package/dist/jobs/database/{generate-code-queue-options.d.ts → test-queue-options-database.d.ts} +1 -1
  338. package/dist/jobs/database/test-queue-options-database.d.ts.map +1 -0
  339. package/dist/jobs/database/{test-queue-db-options.js → test-queue-options-database.js} +1 -1
  340. package/dist/jobs/database/test-queue-options-database.js.map +1 -0
  341. package/dist/jobs/database/{queue-test-db-publisher.service.d.ts → test-queue-publisher-database.service.d.ts} +2 -2
  342. package/dist/jobs/database/test-queue-publisher-database.service.d.ts.map +1 -0
  343. package/dist/jobs/database/test-queue-publisher-database.service.js +39 -0
  344. package/dist/jobs/database/test-queue-publisher-database.service.js.map +1 -0
  345. package/dist/jobs/database/{queue-test-db-subscriber.service.d.ts → test-queue-subscriber-database.service.d.ts} +2 -2
  346. package/dist/jobs/database/test-queue-subscriber-database.service.d.ts.map +1 -0
  347. package/dist/jobs/database/{queue-test-db-subscriber.service.js → test-queue-subscriber-database.service.js} +10 -10
  348. package/dist/jobs/database/test-queue-subscriber-database.service.js.map +1 -0
  349. package/dist/jobs/database/whatsapp-publisher-database.service.d.ts +11 -0
  350. package/dist/jobs/database/whatsapp-publisher-database.service.d.ts.map +1 -0
  351. package/dist/jobs/database/whatsapp-publisher-database.service.js +39 -0
  352. package/dist/jobs/database/whatsapp-publisher-database.service.js.map +1 -0
  353. package/dist/jobs/database/whatsapp-queue-options-database.d.ts +8 -0
  354. package/dist/jobs/database/whatsapp-queue-options-database.d.ts.map +1 -0
  355. package/dist/jobs/database/whatsapp-queue-options-database.js +10 -0
  356. package/dist/jobs/database/whatsapp-queue-options-database.js.map +1 -0
  357. package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts +15 -0
  358. package/dist/jobs/database/whatsapp-subscriber-database.service.d.ts.map +1 -0
  359. package/dist/jobs/database/whatsapp-subscriber-database.service.js +45 -0
  360. package/dist/jobs/database/whatsapp-subscriber-database.service.js.map +1 -0
  361. package/dist/jobs/email-publisher.service.js.map +1 -1
  362. package/dist/jobs/email-queue-options.js.map +1 -1
  363. package/dist/jobs/email-subscriber.service.js.map +1 -1
  364. package/dist/jobs/otp-publisher.service.js.map +1 -1
  365. package/dist/jobs/otp-queue-options.js.map +1 -1
  366. package/dist/jobs/otp-subscriber.service.js.map +1 -1
  367. package/dist/jobs/sms-publisher.service.js.map +1 -1
  368. package/dist/jobs/sms-queue-options.js.map +1 -1
  369. package/dist/jobs/sms-subscriber.service.js.map +1 -1
  370. package/dist/jobs/test-queue-options.d.ts.map +1 -1
  371. package/dist/jobs/test-queue-options.js.map +1 -1
  372. package/dist/jobs/{queue-test-publisher.service.d.ts → test-queue-publisher.service.d.ts} +1 -1
  373. package/dist/jobs/{queue-test-publisher.service.d.ts.map → test-queue-publisher.service.d.ts.map} +1 -1
  374. package/dist/jobs/{queue-test-publisher.service.js → test-queue-publisher.service.js} +1 -1
  375. package/dist/jobs/test-queue-publisher.service.js.map +1 -0
  376. package/dist/jobs/{queue-test-subscriber.service.d.ts → test-queue-subscriber.service.d.ts} +1 -1
  377. package/dist/jobs/{queue-test-subscriber.service.d.ts.map → test-queue-subscriber.service.d.ts.map} +1 -1
  378. package/dist/jobs/{queue-test-subscriber.service.js → test-queue-subscriber.service.js} +1 -1
  379. package/dist/jobs/test-queue-subscriber.service.js.map +1 -0
  380. package/dist/jobs/whatsapp-publisher.service.js.map +1 -1
  381. package/dist/jobs/whatsapp-queue-options.js.map +1 -1
  382. package/dist/jobs/whatsapp-subscriber.service.js.map +1 -1
  383. package/dist/listeners/user-registration.listener.js.map +1 -1
  384. package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
  385. package/dist/passport-strategies/local.strategy.js.map +1 -1
  386. package/dist/providers/list-of-values-selection-providers.service.js.map +1 -1
  387. package/dist/repository/field-metadata.repository.d.ts +8 -0
  388. package/dist/repository/field-metadata.repository.d.ts.map +1 -0
  389. package/dist/repository/field-metadata.repository.js +38 -0
  390. package/dist/repository/field-metadata.repository.js.map +1 -0
  391. package/dist/repository/field.repository.d.ts +1 -1
  392. package/dist/repository/field.repository.d.ts.map +1 -1
  393. package/dist/repository/field.repository.js +6 -6
  394. package/dist/repository/field.repository.js.map +1 -1
  395. package/dist/repository/media.repository.js.map +1 -1
  396. package/dist/repository/security-rule.repository.js.map +1 -1
  397. package/dist/repository/solid-base.repository.js.map +1 -1
  398. package/dist/seeders/email-template-seeder.service.js.map +1 -1
  399. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  400. package/dist/seeders/module-metadata-seeder.service.js +20 -2
  401. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  402. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  403. package/dist/seeders/seed-data/solid-core-metadata.json +559 -1
  404. package/dist/seeders/sms-template-seeder.service.js.map +1 -1
  405. package/dist/seeders/system-fields-seeder.service.d.ts +3 -3
  406. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  407. package/dist/seeders/system-fields-seeder.service.js +5 -6
  408. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  409. package/dist/seeders/user-seeder.service.js.map +1 -1
  410. package/dist/services/access-token-storage.service.js.map +1 -1
  411. package/dist/services/action-metadata.service.js +1 -1
  412. package/dist/services/action-metadata.service.js.map +1 -1
  413. package/dist/services/authentication.service.js.map +1 -1
  414. package/dist/services/bcrypt.service.js.map +1 -1
  415. package/dist/services/chatter-message-details.service.js.map +1 -1
  416. package/dist/services/chatter-message.service.js.map +1 -1
  417. package/dist/services/computed-fields/concat-computed-field-provider.service.js.map +1 -1
  418. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts +14 -0
  419. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.d.ts.map +1 -0
  420. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js +45 -0
  421. package/dist/services/computed-fields/entity/concat-entity-computed-field-provider.service.js.map +1 -0
  422. package/dist/services/computed-fields/uuid-external-id-computed-field-provider.service.js.map +1 -1
  423. package/dist/services/crud-helper.service.js.map +1 -1
  424. package/dist/services/crud.service.d.ts +1 -0
  425. package/dist/services/crud.service.d.ts.map +1 -1
  426. package/dist/services/crud.service.js +9 -1
  427. package/dist/services/crud.service.js.map +1 -1
  428. package/dist/services/csv.service.js.map +1 -1
  429. package/dist/services/email-template.service.js.map +1 -1
  430. package/dist/services/excel.service.js.map +1 -1
  431. package/dist/services/export-template.service.js.map +1 -1
  432. package/dist/services/export-transaction.service.js.map +1 -1
  433. package/dist/services/field-metadata.service.d.ts +6 -2
  434. package/dist/services/field-metadata.service.d.ts.map +1 -1
  435. package/dist/services/field-metadata.service.js +21 -4
  436. package/dist/services/field-metadata.service.js.map +1 -1
  437. package/dist/services/file.service.d.ts +1 -0
  438. package/dist/services/file.service.d.ts.map +1 -1
  439. package/dist/services/file.service.js +8 -0
  440. package/dist/services/file.service.js.map +1 -1
  441. package/dist/services/hashing.service.js.map +1 -1
  442. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  443. package/dist/services/import-transaction.service.js.map +1 -1
  444. package/dist/services/list-of-values.service.js.map +1 -1
  445. package/dist/services/locale.service.js.map +1 -1
  446. package/dist/services/mail/ElasticEmailService.d.ts +3 -3
  447. package/dist/services/mail/ElasticEmailService.d.ts.map +1 -1
  448. package/dist/services/mail/ElasticEmailService.js +5 -5
  449. package/dist/services/mail/ElasticEmailService.js.map +1 -1
  450. package/dist/services/mail/SMTPEmailService.d.ts +3 -3
  451. package/dist/services/mail/SMTPEmailService.d.ts.map +1 -1
  452. package/dist/services/mail/SMTPEmailService.js +5 -5
  453. package/dist/services/mail/SMTPEmailService.js.map +1 -1
  454. package/dist/services/media-storage-provider-metadata-seeder.service.js.map +1 -1
  455. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  456. package/dist/services/media.service.d.ts.map +1 -1
  457. package/dist/services/media.service.js.map +1 -1
  458. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +4 -2
  459. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  460. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +23 -7
  461. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  462. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  463. package/dist/services/mediaStorageProviders/index.js.map +1 -1
  464. package/dist/services/menu-item-metadata.service.js +1 -1
  465. package/dist/services/menu-item-metadata.service.js.map +1 -1
  466. package/dist/services/model-metadata.service.d.ts +1 -3
  467. package/dist/services/model-metadata.service.d.ts.map +1 -1
  468. package/dist/services/model-metadata.service.js +13 -15
  469. package/dist/services/model-metadata.service.js.map +1 -1
  470. package/dist/services/module-metadata.service.js.map +1 -1
  471. package/dist/services/mq-message-queue.service.js +1 -1
  472. package/dist/services/mq-message-queue.service.js.map +1 -1
  473. package/dist/services/mq-message.service.js +1 -1
  474. package/dist/services/mq-message.service.js.map +1 -1
  475. package/dist/services/pdf.service.js.map +1 -1
  476. package/dist/services/permission-metadata.service.js.map +1 -1
  477. package/dist/services/queues/database-publisher.service.js.map +1 -1
  478. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  479. package/dist/services/queues/database-subscriber.service.js +1 -1
  480. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  481. package/dist/services/queues/publisher-factory.service.d.ts +9 -0
  482. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -0
  483. package/dist/services/queues/publisher-factory.service.js +45 -0
  484. package/dist/services/queues/publisher-factory.service.js.map +1 -0
  485. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  486. package/dist/services/queues/rabbitmq-subscriber.service.js +1 -1
  487. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  488. package/dist/services/queues/redis-publisher.service.js.map +1 -1
  489. package/dist/services/queues/redis-subscriber.service.js.map +1 -1
  490. package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
  491. package/dist/services/request-context.service.js.map +1 -1
  492. package/dist/services/role-metadata.service.js.map +1 -1
  493. package/dist/services/saved-filters.service.js.map +1 -1
  494. package/dist/services/scheduled-job.service.d.ts +23 -0
  495. package/dist/services/scheduled-job.service.d.ts.map +1 -0
  496. package/dist/services/scheduled-job.service.js +59 -0
  497. package/dist/services/scheduled-job.service.js.map +1 -0
  498. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts +5 -0
  499. package/dist/services/scheduled-jobs/scheduled-job.interface.d.ts.map +1 -0
  500. package/dist/services/scheduled-jobs/scheduled-job.interface.js +3 -0
  501. package/dist/services/scheduled-jobs/scheduled-job.interface.js.map +1 -0
  502. package/dist/services/scheduled-jobs/scheduler.interface.d.ts +4 -0
  503. package/dist/services/scheduled-jobs/scheduler.interface.d.ts.map +1 -0
  504. package/dist/services/scheduled-jobs/scheduler.interface.js +3 -0
  505. package/dist/services/scheduled-jobs/scheduler.interface.js.map +1 -0
  506. package/dist/services/scheduled-jobs/scheduler.service.d.ts +14 -0
  507. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -0
  508. package/dist/services/scheduled-jobs/scheduler.service.js +124 -0
  509. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -0
  510. package/dist/services/security-rule.service.js.map +1 -1
  511. package/dist/services/selection-providers/list-of-models-selection-provider.service.js.map +1 -1
  512. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts +11 -0
  513. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.d.ts.map +1 -0
  514. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js +46 -0
  515. package/dist/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.js.map +1 -0
  516. package/dist/services/selection-providers/locale-list-selection-provider.service.js.map +1 -1
  517. package/dist/services/setting.service.js.map +1 -1
  518. package/dist/services/short-url/tiny-url.service.js.map +1 -1
  519. package/dist/services/sms/Msg91BaseSMSService.d.ts +4 -3
  520. package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
  521. package/dist/services/sms/Msg91BaseSMSService.js +3 -2
  522. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  523. package/dist/services/sms/Msg91OTPService.d.ts +2 -2
  524. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  525. package/dist/services/sms/Msg91OTPService.js +4 -4
  526. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  527. package/dist/services/sms/Msg91SMSService.d.ts +2 -2
  528. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  529. package/dist/services/sms/Msg91SMSService.js +4 -4
  530. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  531. package/dist/services/sms-template.service.js.map +1 -1
  532. package/dist/services/solid-introspect.service.d.ts +1 -0
  533. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  534. package/dist/services/solid-introspect.service.js +14 -0
  535. package/dist/services/solid-introspect.service.js.map +1 -1
  536. package/dist/services/user-activity-history.service.js.map +1 -1
  537. package/dist/services/user-view-metadata.service.js.map +1 -1
  538. package/dist/services/user.service.js.map +1 -1
  539. package/dist/services/view-metadata.service.d.ts.map +1 -1
  540. package/dist/services/view-metadata.service.js +8 -10
  541. package/dist/services/view-metadata.service.js.map +1 -1
  542. package/dist/services/whatsapp/Msg91WhatsappService.d.ts +2 -2
  543. package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
  544. package/dist/services/whatsapp/Msg91WhatsappService.js +4 -4
  545. package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
  546. package/dist/solid-core-cli-db.module.js.map +1 -1
  547. package/dist/solid-core-cli.module.js.map +1 -1
  548. package/dist/solid-core.module.d.ts.map +1 -1
  549. package/dist/solid-core.module.js +108 -65
  550. package/dist/solid-core.module.js.map +1 -1
  551. package/dist/subscribers/audit.subscriber.js.map +1 -1
  552. package/dist/subscribers/computed-entity-field.subscriber.d.ts +23 -0
  553. package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -0
  554. package/dist/subscribers/computed-entity-field.subscriber.js +95 -0
  555. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -0
  556. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  557. package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
  558. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  559. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  560. package/dist/subscribers/soft-delete-aware-event.subscriber.js.map +1 -1
  561. package/dist/subscribers/view-metadata.subscriber.js.map +1 -1
  562. package/dist/transformers/array-transformer.js.map +1 -1
  563. package/dist/transformers/boolean-transformer.js.map +1 -1
  564. package/dist/transformers/datetime-transformer.js.map +1 -1
  565. package/dist/transformers/integer-transformer.js.map +1 -1
  566. package/dist/tsconfig.tsbuildinfo +1 -1
  567. package/dist/validators/is-parsable-int.js.map +1 -1
  568. package/dist/winston.logger.js.map +1 -1
  569. package/package.json +3 -1
  570. package/src/# computed field pending issues.md +3 -0
  571. package/src/controllers/media-storage-provider-metadata.controller.ts +4 -1
  572. package/src/controllers/scheduled-job.controller.ts +93 -0
  573. package/src/controllers/{queues-test.controller.ts → test-queue.controller.ts} +12 -11
  574. package/src/decorators/scheduled-job-provider.decorator.ts +7 -0
  575. package/src/dtos/create-field-metadata.dto.ts +18 -0
  576. package/src/dtos/create-media-storage-provider-metadata.dto.ts +12 -7
  577. package/src/dtos/create-scheduled-job.dto.ts +65 -0
  578. package/src/dtos/update-scheduled-job.dto.ts +72 -0
  579. package/src/entities/field-metadata.entity.ts +4 -0
  580. package/src/entities/media-storage-provider-metadata.entity.ts +5 -1
  581. package/src/entities/scheduled-job.entity.ts +30 -0
  582. package/src/helpers/solid-registry.ts +67 -14
  583. package/src/index.ts +8 -0
  584. package/src/interfaces.ts +18 -0
  585. package/src/jobs/database/api-email-publisher-database.service.ts +24 -0
  586. package/src/jobs/database/api-email-queue-options-database.ts +9 -0
  587. package/src/jobs/database/api-email-subscriber-database.service.ts +30 -0
  588. package/src/jobs/database/computed-field-evaluation-publisher.service.ts +23 -0
  589. package/src/jobs/database/computed-field-evaluation-queue-options.ts +9 -0
  590. package/src/jobs/database/computed-field-evaluation-subscriber.service.ts +36 -0
  591. package/src/jobs/database/email-publisher-database.service.ts +23 -0
  592. package/src/jobs/database/email-queue-options-database.ts +10 -0
  593. package/src/jobs/database/email-subscriber-database.service.ts +30 -0
  594. package/src/jobs/database/{generate-code-publisher.service.ts → generate-code-publisher-database.service.ts} +2 -2
  595. package/src/jobs/database/{generate-code-subscriber.service.ts → generate-code-subscriber-database.service.ts} +3 -3
  596. package/src/jobs/database/otp-publisher-database.service.ts +23 -0
  597. package/src/jobs/database/otp-queue-options-database.ts +8 -0
  598. package/src/jobs/database/otp-subscriber-database.service.ts +30 -0
  599. package/src/jobs/database/sms-publisher-database.service.ts +23 -0
  600. package/src/jobs/database/sms-queue-database-options.ts +8 -0
  601. package/src/jobs/database/sms-subscriber-database.service.ts +30 -0
  602. package/src/jobs/database/test-queue-options-database.ts +9 -0
  603. package/src/jobs/database/{queue-test-db-publisher.service.ts → test-queue-publisher-database.service.ts} +2 -2
  604. package/src/jobs/database/{queue-test-db-subscriber.service.ts → test-queue-subscriber-database.service.ts} +3 -3
  605. package/src/jobs/database/whatsapp-publisher-database.service.ts +23 -0
  606. package/src/jobs/database/whatsapp-queue-options-database.ts +9 -0
  607. package/src/jobs/database/whatsapp-subscriber-database.service.ts +31 -0
  608. package/src/jobs/test-queue-options.ts +0 -1
  609. package/src/repository/field-metadata.repository.ts +26 -0
  610. package/src/repository/field.repository.ts +5 -2
  611. package/src/seeders/module-metadata-seeder.service.ts +30 -3
  612. package/src/seeders/seed-data/solid-core-metadata.json +559 -1
  613. package/src/seeders/system-fields-seeder.service.ts +3 -4
  614. package/src/services/action-metadata.service.ts +1 -1
  615. package/src/services/computed-fields/entity/concat-entity-computed-field-provider.service.ts +52 -0
  616. package/src/services/crud.service.ts +15 -6
  617. package/src/services/field-metadata.service.ts +38 -8
  618. package/src/services/file.service.ts +13 -6
  619. package/src/services/mail/ElasticEmailService.ts +6 -4
  620. package/src/services/mail/SMTPEmailService.ts +11 -5
  621. package/src/services/media.service.ts +9 -10
  622. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +30 -9
  623. package/src/services/mediaStorageProviders/file-storage-provider.ts +5 -5
  624. package/src/services/mediaStorageProviders/index.ts +3 -3
  625. package/src/services/menu-item-metadata.service.ts +2 -2
  626. package/src/services/model-metadata.service.ts +14 -13
  627. package/src/services/mq-message-queue.service.ts +1 -1
  628. package/src/services/mq-message.service.ts +1 -1
  629. package/src/services/queues/database-subscriber.service.ts +1 -2
  630. package/src/services/queues/publisher-factory.service.ts +41 -0
  631. package/src/services/queues/rabbitmq-subscriber.service.ts +1 -1
  632. package/src/services/scheduled-job.service.ts +34 -0
  633. package/src/services/scheduled-jobs/scheduled-job.interface.ts +5 -0
  634. package/src/services/scheduled-jobs/scheduler.interface.ts +3 -0
  635. package/src/services/scheduled-jobs/scheduler.service.ts +165 -0
  636. package/src/services/selection-providers/list-of-scheduled-jobs-selection-provider.service.ts +40 -0
  637. package/src/services/sms/Msg91BaseSMSService.ts +5 -4
  638. package/src/services/sms/Msg91OTPService.ts +7 -7
  639. package/src/services/sms/Msg91SMSService.ts +5 -4
  640. package/src/services/solid-introspect.service.ts +23 -0
  641. package/src/services/view-metadata.service.ts +50 -52
  642. package/src/services/whatsapp/Msg91WhatsappService.ts +4 -3
  643. package/src/solid-core.module.ts +106 -63
  644. package/src/subscribers/computed-entity-field.subscriber.ts +108 -0
  645. package/tsconfig.json +1 -0
  646. package/dist/controllers/queues-test.controller.d.ts +0 -9
  647. package/dist/controllers/queues-test.controller.d.ts.map +0 -1
  648. package/dist/controllers/queues-test.controller.js.map +0 -1
  649. package/dist/jobs/database/generate-code-publisher.service.d.ts.map +0 -1
  650. package/dist/jobs/database/generate-code-publisher.service.js.map +0 -1
  651. package/dist/jobs/database/generate-code-queue-options.d.ts.map +0 -1
  652. package/dist/jobs/database/generate-code-queue-options.js.map +0 -1
  653. package/dist/jobs/database/generate-code-subscriber.service.d.ts.map +0 -1
  654. package/dist/jobs/database/generate-code-subscriber.service.js.map +0 -1
  655. package/dist/jobs/database/queue-test-db-publisher.service.d.ts.map +0 -1
  656. package/dist/jobs/database/queue-test-db-publisher.service.js.map +0 -1
  657. package/dist/jobs/database/queue-test-db-subscriber.service.d.ts.map +0 -1
  658. package/dist/jobs/database/queue-test-db-subscriber.service.js.map +0 -1
  659. package/dist/jobs/database/test-queue-db-options.d.ts.map +0 -1
  660. package/dist/jobs/database/test-queue-db-options.js.map +0 -1
  661. package/dist/jobs/queue-test-publisher.service.js.map +0 -1
  662. package/dist/jobs/queue-test-subscriber.service.js.map +0 -1
  663. package/src/jobs/database/test-queue-db-options.ts +0 -13
  664. package/src/services/user.service.ts.bkp +0 -311
  665. /package/src/jobs/database/{generate-code-queue-options.ts → generate-code-queue-options-database.ts} +0 -0
  666. /package/src/jobs/{queue-test-publisher.service.ts → test-queue-publisher.service.ts} +0 -0
  667. /package/src/jobs/{queue-test-subscriber.service.ts → test-queue-subscriber.service.ts} +0 -0
@@ -1,5 +1,4 @@
1
1
  import { Logger, OnModuleInit } from '@nestjs/common';
2
- import * as amqp from 'amqplib';
3
2
  import { QueuesModuleOptions } from "../../interfaces";
4
3
  import { QueueMessage, QueueSubscriber } from '../../interfaces/mq';
5
4
  import { MqMessageQueueService } from '../mq-message-queue.service';
@@ -92,7 +91,7 @@ export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscr
92
91
  // start the loop
93
92
  poll();
94
93
 
95
- this.logger.debug(`DatabaseSubscriber ready to consume messages: ${JSON.stringify(this.options())}`);
94
+ this.logger.log(`DatabaseSubscriber ready to consume messages: ${JSON.stringify(this.options())}`);
96
95
  }
97
96
  }
98
97
 
@@ -0,0 +1,41 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { Injectable } from '@nestjs/common';
3
+
4
+ import { QueueMessage, QueuePublisher } from 'src/interfaces/mq';
5
+ import { classify } from '@angular-devkit/core/src/utils/strings';
6
+ import { SolidIntrospectService } from '../solid-introspect.service';
7
+
8
+
9
+ @Injectable()
10
+ export class PublisherFactory<T> {
11
+ private readonly logger = new Logger(PublisherFactory.name);
12
+
13
+ constructor(
14
+ private readonly solidIntrospectionService: SolidIntrospectService
15
+ ) {
16
+ }
17
+
18
+ async publish(message: QueueMessage<T>, publisherName: string, brokerToUse?: string): Promise<string> {
19
+ let defaultBrokerToUse = brokerToUse || process.env.QUEUES_DEFAULT_BROKER;
20
+ let resolvedPublisherName = `${publisherName}${classify(defaultBrokerToUse)}`;
21
+
22
+ // Register all ISolidDatabaseModules implementations
23
+ let actualPublisherToUse = this.solidIntrospectionService.getProvider(resolvedPublisherName);
24
+ if (!actualPublisherToUse) {
25
+
26
+ // Extra check in place to make sure we do not have to refactor old publishers which have been created earlier.
27
+ if (defaultBrokerToUse === 'rabbitmq') {
28
+ actualPublisherToUse = this.solidIntrospectionService.getProvider(publisherName);
29
+ if (!actualPublisherToUse) {
30
+ throw new Error(`Unable to locate publisher with name ${resolvedPublisherName}`);
31
+ }
32
+ }
33
+ }
34
+
35
+ // type safe
36
+ const typedActualPublisher: QueuePublisher<T> = actualPublisherToUse.instance;
37
+ this.logger.error(`Resolved publisher with name ${actualPublisherToUse.name}, and with options ${typedActualPublisher.options()}`);
38
+
39
+ return typedActualPublisher.publish(message);
40
+ }
41
+ }
@@ -121,7 +121,7 @@ export abstract class RabbitMqSubscriber<T> implements OnModuleInit, QueueSubscr
121
121
  {},
122
122
  );
123
123
 
124
- this.logger.debug(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(this.options())} and url: ${this.url}`);
124
+ this.logger.log(`RabbitMqSubscriber ready to consume messages: ${JSON.stringify(this.options())} and url: ${this.url}`);
125
125
  }
126
126
  }
127
127
 
@@ -0,0 +1,34 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
+ import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
+ import { EntityManager, Repository } from 'typeorm';
5
+ import { ScheduledJob } from 'src/entities/scheduled-job.entity';
6
+ import { ModelMetadataService } from './model-metadata.service';
7
+ import { ModuleMetadataService } from './module-metadata.service';
8
+ import { ConfigService } from '@nestjs/config';
9
+ import { FileService } from './file.service';
10
+ import { CrudHelperService } from './crud-helper.service';
11
+ import { CRUDService } from './crud.service';
12
+ import { Logger } from '@nestjs/common';
13
+
14
+ @Injectable()
15
+ export class ScheduledJobService extends CRUDService<ScheduledJob> {
16
+ private readonly logger = new Logger(ScheduledJobService.name);
17
+
18
+ constructor(
19
+ readonly modelMetadataService: ModelMetadataService,
20
+ readonly moduleMetadataService: ModuleMetadataService,
21
+ readonly configService: ConfigService,
22
+ readonly fileService: FileService,
23
+ readonly discoveryService: DiscoveryService,
24
+ readonly crudHelperService: CrudHelperService,
25
+ @InjectEntityManager()
26
+ readonly entityManager: EntityManager,
27
+ @InjectRepository(ScheduledJob)
28
+ readonly repo: Repository<ScheduledJob>,
29
+ readonly moduleRef: ModuleRef
30
+
31
+ ) {
32
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'scheduledJob', 'solid-core', moduleRef);
33
+ }
34
+ }
@@ -0,0 +1,5 @@
1
+ import { ScheduledJob } from "src/entities/scheduled-job.entity";
2
+
3
+ export interface IScheduledJob {
4
+ executeReminder(reminder: ScheduledJob): Promise<void>;
5
+ }
@@ -0,0 +1,3 @@
1
+ export interface ISchedulerService {
2
+ runScheduledJobs(): Promise<void>;
3
+ }
@@ -0,0 +1,165 @@
1
+ import { Injectable, Logger, Inject } from '@nestjs/common';
2
+ import { InjectRepository } from '@nestjs/typeorm';
3
+ import { LessThanOrEqual, Repository } from 'typeorm';
4
+
5
+ import { ISchedulerService } from './scheduler.interface';
6
+ import { SolidRegistry } from 'src/helpers/solid-registry';
7
+ import { ScheduledJob } from 'src/entities/scheduled-job.entity';
8
+ import { IScheduledJob } from './scheduled-job.interface';
9
+ import { Cron, CronExpression } from '@nestjs/schedule';
10
+
11
+ @Injectable()
12
+ export class SchedulerServiceImpl implements ISchedulerService {
13
+ private readonly logger = new Logger(SchedulerServiceImpl.name);
14
+
15
+ constructor(
16
+ @InjectRepository(ScheduledJob)
17
+ private readonly scheduledJobRepo: Repository<ScheduledJob>,
18
+ private readonly solidRegistry: SolidRegistry,
19
+ ) { }
20
+
21
+ // @Cron(CronExpression.EVERY_MINUTE)
22
+ // async runScheduledJobs(): Promise<void> {
23
+ // const now = new Date();
24
+
25
+ // const dueScheduledJobs = await this.scheduledJobRepo.find({
26
+ // where: {
27
+ // isActive: true,
28
+ // nextRunAt: LessThanOrEqual(now),
29
+ // },
30
+ // });
31
+
32
+ // for (const dueScheduledJob of dueScheduledJobs) {
33
+ // try {
34
+ // const jobName = dueScheduledJob.job;
35
+ // // @ts-ignore
36
+ // // const jobHandler = this.jobMap[jobName];
37
+ // // const jobHandler = '';
38
+ // const jobHandler: IScheduledJob | undefined = this.solidRegistry.getScheduledJobProviderInstance(jobName)
39
+
40
+ // if (!jobHandler) {
41
+ // this.logger.warn(`No job service found for: ${jobName}`);
42
+ // continue;
43
+ // }
44
+
45
+ // await jobHandler.executeReminder(dueScheduledJob);
46
+
47
+ // // Update nextRunAt and lastRunAt based on frequency
48
+ // dueScheduledJob.lastRunAt = now;
49
+ // dueScheduledJob.nextRunAt = this.computeNextRunAt(dueScheduledJob);
50
+ // await this.scheduledJobRepo.save(dueScheduledJob);
51
+
52
+ // this.logger.log(`Successfully ran job: ${jobName}`);
53
+ // } catch (err) {
54
+ // this.logger.error(`Failed to run job for reminder ${dueScheduledJob.id}`, err.stack);
55
+ // }
56
+ // }
57
+ // }
58
+
59
+ // private computeNextRunAt(reminder: ScheduledJob): Date {
60
+ // const now = new Date();
61
+ // switch (reminder.frequency) {
62
+ // case 'daily':
63
+ // return new Date(now.getTime() + 24 * 60 * 60 * 1000);
64
+ // case 'weekly':
65
+ // return new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000);
66
+ // case 'monthly':
67
+ // return new Date(now.setMonth(now.getMonth() + 1));
68
+ // default:
69
+ // return new Date(now.getTime() + 24 * 60 * 60 * 1000); // default fallback
70
+ // }
71
+ // }
72
+
73
+ @Cron(CronExpression.EVERY_MINUTE)
74
+ async runScheduledJobs(): Promise<void> {
75
+ const now = new Date();
76
+ const dueJobs = await this.scheduledJobRepo.find({
77
+ where: {
78
+ isActive: true,
79
+ nextRunAt: LessThanOrEqual(now),
80
+ },
81
+ });
82
+
83
+ for (const job of dueJobs) {
84
+ try {
85
+ if (!this.shouldRunNow(job, now)) {
86
+ continue;
87
+ }
88
+
89
+ const handler = this.solidRegistry.getScheduledJobProviderInstance(job.job);
90
+ if (!handler) {
91
+ this.logger.warn(`No job handler found for job: ${job.job}`);
92
+ continue;
93
+ }
94
+
95
+ await handler.executeReminder(job);
96
+ job.isActive = true;
97
+ job.lastRunAt = now;
98
+ job.nextRunAt = this.computeNextRunAt(job, now);
99
+ await this.scheduledJobRepo.save(job);
100
+ this.logger.log(`Successfully ran job: ${job.job}`);
101
+ } catch (err) {
102
+ this.logger.error(`Failed to run job ${job.job}`, err.stack);
103
+ }
104
+ }
105
+ }
106
+
107
+ private shouldRunNow(job: ScheduledJob, now: Date): boolean {
108
+ const today = now.toISOString().split('T')[0]; // yyyy-mm-dd
109
+ const timeNow = now.toTimeString().slice(0, 5); // hh:mm
110
+
111
+ // 1. Check startDate / endDate
112
+ if (job.startDate && new Date(today) < new Date(job.startDate)) return false;
113
+ if (job.endDate && new Date(today) > new Date(job.endDate)) return false;
114
+
115
+ // 2. Check startTime / endTime
116
+ if (job.startTime) {
117
+ const jobStart = job.startTime.toTimeString().slice(0, 5);
118
+ if (timeNow < jobStart) return false;
119
+ }
120
+ if (job.endTime) {
121
+ const jobEnd = job.endTime.toTimeString().slice(0, 5);
122
+ if (timeNow > jobEnd) return false;
123
+ }
124
+
125
+ // 3. Check dayOfWeek (for weekly)
126
+ if (job.frequency.toLowerCase() === 'weekly' && job.dayOfWeek) {
127
+ const todayName = now.toLocaleString('en-US', { weekday: 'long' }); // e.g., "Monday"
128
+ // const days = job.dayOfWeek.split(',').map(d => d.trim());
129
+ const days = JSON.parse(job.dayOfWeek) as string[];
130
+ if (!days.includes(todayName)) return false;
131
+ }
132
+
133
+ // 4. Check dayOfMonth (for monthly)
134
+ if (job.frequency.toLowerCase() === 'monthly' && job.dayOfMonth) {
135
+ const dom = now.getDate();
136
+ if (dom !== job.dayOfMonth) return false;
137
+ }
138
+
139
+ return true;
140
+ }
141
+
142
+ private computeNextRunAt(job: ScheduledJob, from: Date): Date {
143
+ const base = new Date(from);
144
+
145
+ switch (job.frequency.toLowerCase()) {
146
+ case 'once':
147
+ return null; // don't reschedule
148
+ case 'hourly':
149
+ return new Date(base.getTime() + 60 * 60 * 1000);
150
+ case 'daily':
151
+ return new Date(base.getTime() + 24 * 60 * 60 * 1000);
152
+ case 'weekly':
153
+ return new Date(base.getTime() + 7 * 24 * 60 * 60 * 1000);
154
+ case 'monthly':
155
+ const next = new Date(base);
156
+ next.setMonth(base.getMonth() + 1);
157
+ return next;
158
+ case 'custom':
159
+ // Optional: let job handler decide via metadata or registry
160
+ return new Date(base.getTime() + 24 * 60 * 60 * 1000);
161
+ default:
162
+ return new Date(base.getTime() + 24 * 60 * 60 * 1000);
163
+ }
164
+ }
165
+ }
@@ -0,0 +1,40 @@
1
+ import { Injectable } from "@nestjs/common";
2
+ import { SelectionProvider } from "src/decorators/selection-provider.decorator";
3
+ import { ISelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
4
+ import { SolidRegistry } from "src/helpers/solid-registry";
5
+ import { IScheduledJob } from "../scheduled-jobs/scheduled-job.interface";
6
+
7
+
8
+ @SelectionProvider()
9
+ @Injectable()
10
+ export class ListOfScheduledJobsSelectionProvider implements ISelectionProvider<ISelectionProviderContext> {
11
+
12
+ constructor(
13
+ private readonly solidRegistry: SolidRegistry,
14
+ ) {
15
+ }
16
+
17
+ help(): string {
18
+ return "# Allows one to dynamically fetch all scheduled jobs";
19
+ }
20
+
21
+ name(): string {
22
+ return 'ListOfScheduledJobsSelectionProvider';
23
+ }
24
+
25
+ async value(optionValue: string, ctxt: ISelectionProviderContext): Promise<ISelectionProviderValues | any> {
26
+ const jobHandler: IScheduledJob | undefined = this.solidRegistry.getScheduledJobProviderInstance(optionValue);
27
+ if (!jobHandler) {
28
+ return null;
29
+ }
30
+
31
+ return { label: optionValue, value: optionValue };
32
+ }
33
+
34
+ async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {
35
+ const scheduledJobs = this.solidRegistry.getScheduledJobProviders()
36
+ return scheduledJobs.map(i => {
37
+ return { label: i.name, value: i.name };
38
+ });
39
+ }
40
+ }
@@ -2,17 +2,17 @@ import { Logger } from "@nestjs/common";
2
2
  import { ConfigType } from "@nestjs/config";
3
3
  import Handlebars from "handlebars";
4
4
  import commonConfig from "src/config/common.config";
5
- import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
6
5
  import { QueueMessage } from "src/interfaces/mq";
7
6
  import { SmsTemplateService } from "../sms-template.service";
8
- import { RabbitMqPublisher } from "src/services/queues/rabbitmq-publisher.service";
9
7
  import { ISMS } from "../../interfaces";
8
+ import { PublisherFactory } from "../queues/publisher-factory.service";
10
9
 
11
10
  export abstract class Msg91BaseSMSService implements ISMS {
12
11
  protected readonly logger = new Logger(Msg91BaseSMSService.name);
13
12
  constructor(
14
13
  protected readonly commonConfiguration: ConfigType<typeof commonConfig>,
15
- protected readonly smsPublisher: RabbitMqPublisher<any>,
14
+ protected readonly smsPublisher: string,
15
+ protected readonly publisherFactory: PublisherFactory<any>,
16
16
  protected readonly smsTemplateService: SmsTemplateService,
17
17
  ) { }
18
18
 
@@ -71,7 +71,8 @@ export abstract class Msg91BaseSMSService implements ISMS {
71
71
  async sendSMSAsynchronously(message) {
72
72
  const { to } = message.payload;
73
73
  // this.notificationPublisherService.publish(message);
74
- this.smsPublisher.publish(message);
74
+ // this.smsPublisher.publish(message);
75
+ this.publisherFactory.publish(message, this.smsPublisher);
75
76
  this.logger.debug(`Queueing SMS to ${to} with message ${JSON.stringify(message)}`);
76
77
  }
77
78
 
@@ -2,12 +2,11 @@ import { HttpService } from "@nestjs/axios";
2
2
  import { Inject, Injectable } from "@nestjs/common";
3
3
  import { ConfigType } from "@nestjs/config";
4
4
  import commonConfig from "src/config/common.config";
5
- import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
6
5
  import { QueueMessage } from "src/interfaces/mq";
7
6
  import { SmsTemplateService } from "../sms-template.service";
8
7
  import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
9
- import { OTPQueuePublisher } from "src/jobs/otp-publisher.service";
10
8
  import { ISMS } from "../../interfaces";
9
+ import { PublisherFactory } from "../queues/publisher-factory.service";
11
10
 
12
11
  interface OtpParams {
13
12
  otp: string,
@@ -21,16 +20,17 @@ export class Msg91OTPService extends Msg91BaseSMSService implements ISMS {
21
20
  constructor(
22
21
  @Inject(commonConfig.KEY)
23
22
  commonConfiguration: ConfigType<typeof commonConfig>,
24
- smsPublisher: OTPQueuePublisher,
23
+ // smsPublisher: OTPQueuePublisher,
24
+ publisherFactory: PublisherFactory<any>,
25
25
  smsTemplateService: SmsTemplateService,
26
26
  private readonly httpService: HttpService,
27
27
  ) {
28
- super( commonConfiguration, smsPublisher, smsTemplateService )
29
- }
28
+ super(commonConfiguration, 'OTPQueuePublisher', publisherFactory, smsTemplateService);
29
+ }
30
30
 
31
31
  async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {
32
32
  const { to, templateId, otp } = message.payload;
33
- const params = {otp, template_id: templateId, mobile: to, authkey: this.commonConfiguration.msg91Sms.apiKey}
33
+ const params = { otp, template_id: templateId, mobile: to, authkey: this.commonConfiguration.msg91Sms.apiKey }
34
34
  const otpUrl = `${this.commonConfiguration.msg91Sms.url}/otp?${this.paramsToQueryString(params)}`;
35
35
  await this.httpService.axiosRef.post(otpUrl, {});
36
36
  this.logger.debug(`Sending OTP to ${to} with url ${otpUrl}`);
@@ -42,7 +42,7 @@ export class Msg91OTPService extends Msg91BaseSMSService implements ISMS {
42
42
  for (const key of paramKeys) {
43
43
  qsArray.push(`${key}=${encodeURIComponent(params[key])}`)
44
44
  }
45
- const qs = qsArray.join("&");
45
+ const qs = qsArray.join("&");
46
46
  return qs;
47
47
  }
48
48
  }
@@ -2,23 +2,24 @@ import { HttpService } from "@nestjs/axios";
2
2
  import { Inject, Injectable } from "@nestjs/common";
3
3
  import { ConfigType } from "@nestjs/config";
4
4
  import commonConfig from "src/config/common.config";
5
- import { SmsQueuePublisher } from "src/jobs/sms-publisher.service";
6
5
  import { QueueMessage } from "src/interfaces/mq";
7
6
  import { SmsTemplateService } from "../sms-template.service";
8
7
  import { Msg91BaseSMSService } from "./Msg91BaseSMSService";
9
8
  import { ISMS } from "../../interfaces";
9
+ import { PublisherFactory } from "../queues/publisher-factory.service";
10
10
 
11
11
  @Injectable()
12
12
  export class Msg91SMSService extends Msg91BaseSMSService implements ISMS {
13
13
  constructor(
14
14
  @Inject(commonConfig.KEY)
15
15
  commonConfiguration: ConfigType<typeof commonConfig>,
16
- smsPublisher: SmsQueuePublisher,
16
+ // smsPublisher: SmsQueuePublisher,
17
+ publisherFactory: PublisherFactory<any>,
17
18
  smsTemplateService: SmsTemplateService,
18
19
  private readonly httpService: HttpService,
19
20
  ) {
20
- super( commonConfiguration, smsPublisher, smsTemplateService )
21
- }
21
+ super(commonConfiguration, 'SmsQueuePublisher', publisherFactory, smsTemplateService)
22
+ }
22
23
 
23
24
  async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {
24
25
  const { to, templateId, ...templateParams } = message.payload;
@@ -7,6 +7,7 @@ import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorat
7
7
  import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
8
8
  import { SolidRegistry } from 'src/helpers/solid-registry';
9
9
  import { CRUDService } from './crud.service';
10
+ import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
10
11
 
11
12
  @Injectable()
12
13
  export class SolidIntrospectService implements OnApplicationBootstrap {
@@ -81,6 +82,16 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
81
82
  .filter((provider) => this.isModule(provider));
82
83
  this.solidRegistry.registerModules(allModules);
83
84
 
85
+ // Register all IScheduledJob implementations
86
+ const scheduledJobProviders = this.discoveryService
87
+ .getProviders()
88
+ .filter((provider) => this.isScheduledJobProvider(provider));
89
+
90
+ scheduledJobProviders.forEach((scheduledJobProvider) => {
91
+ // @ts-ignore
92
+ this.solidRegistry.registerScheduledJobProvider(scheduledJobProvider);
93
+ });
94
+
84
95
  }
85
96
 
86
97
  // This method identifies a provider as a seeder if it has a seed method i.e duck typing
@@ -119,6 +130,18 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
119
130
  return !!isComputedFieldProvider;
120
131
  }
121
132
 
133
+ private isScheduledJobProvider(provider: InstanceWrapper) {
134
+ const { instance } = provider;
135
+ if (!instance) return false;
136
+
137
+ const isScheduledJobProvider = this.reflector.get<boolean>(
138
+ IS_SCHEDULED_JOB_PROVIDER,
139
+ instance.constructor,
140
+ );
141
+
142
+ return !!isScheduledJobProvider;
143
+ }
144
+
122
145
  private isSolidDatabaseModule(provider: InstanceWrapper) {
123
146
  const { instance } = provider;
124
147
  if (!instance) return false;
@@ -1,5 +1,4 @@
1
- import { Logger } from '@nestjs/common';
2
- import { BadRequestException, Injectable } from '@nestjs/common';
1
+ import { BadRequestException, Injectable, Logger } from '@nestjs/common';
3
2
  import { ConfigService } from '@nestjs/config';
4
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
5
4
  import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
@@ -11,17 +10,16 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
11
10
  import { EntityManager, Repository } from 'typeorm';
12
11
 
13
12
 
13
+ import { classify } from '@angular-devkit/core/src/utils/strings';
14
+ import { Locale } from 'src/entities/locale.entity';
15
+ import { SolidRegistry } from 'src/helpers/solid-registry';
14
16
  import { UpdateViewMetadataDto } from '../dtos/update-view-metadata.dto';
15
17
  import { FieldMetadata } from '../entities/field-metadata.entity';
16
18
  import { ModelMetadata } from '../entities/model-metadata.entity';
17
19
  import { ViewMetadata } from '../entities/view-metadata.entity';
18
20
  import { ActionMetadataService } from './action-metadata.service';
19
21
  import { SolidIntrospectService } from './solid-introspect.service';
20
- import { BasicFilterDto } from 'src/dtos/basic-filters.dto';
21
22
  import { UserViewMetadataService } from './user-view-metadata.service';
22
- import { Locale } from 'src/entities/locale.entity';
23
- import { SolidRegistry } from 'src/helpers/solid-registry';
24
- import { classify } from '@angular-devkit/core/src/utils/strings';
25
23
 
26
24
  @Injectable()
27
25
  export class ViewMetadataService extends CRUDService<ViewMetadata> {
@@ -45,7 +43,7 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
45
43
  private readonly modelMetadataRepo: Repository<ModelMetadata>,
46
44
  readonly moduleRef: ModuleRef
47
45
  ) {
48
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'viewMetadata', 'app-builder', moduleRef);
46
+ super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'viewMetadata', 'solid-core', moduleRef);
49
47
  }
50
48
 
51
49
  private readonly logger = new Logger(ViewMetadataService.name);
@@ -57,60 +55,60 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
57
55
  defaultEntityLocaleIdFromQuery?: string
58
56
  ): Promise<{ records: any[], defaultEntityLocaleId: string | null }> {
59
57
  const solidRegistry = await this.moduleRef.get(SolidRegistry, { strict: false });
60
- const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
61
- const currentEntityRepository = this.entityManager.getRepository(currentEntityTarget);
58
+ // const currentEntityTarget = solidRegistry.getEntityTarget(this.entityManager, classify(modelName));
59
+ const currentEntityRepository = this.entityManager.getRepository(classify(modelName));
62
60
 
63
- // Case 1: Creating a new record with no defaultEntityLocaleId to clone
64
- if (id === 'new' && !defaultEntityLocaleIdFromQuery) {
65
- this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);
66
- return { records: [], defaultEntityLocaleId: null };
67
- }
61
+ // Case 1: Creating a new record with no defaultEntityLocaleId to clone
62
+ if (id === 'new' && !defaultEntityLocaleIdFromQuery) {
63
+ this.logger.debug(`Creating new record without cloning from any defaultEntityLocaleId.`);
64
+ return { records: [], defaultEntityLocaleId: null };
65
+ }
68
66
 
69
- // Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId
70
- if (id === 'new' && defaultEntityLocaleIdFromQuery) {
71
- this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);
67
+ // Case 2: Creating a new record and cloning from an existing defaultEntityLocaleId
68
+ if (id === 'new' && defaultEntityLocaleIdFromQuery) {
69
+ this.logger.debug(`Creating new record by cloning translations from defaultEntityLocaleId: ${defaultEntityLocaleIdFromQuery}`);
72
70
 
73
- const records = await currentEntityRepository.find({
74
- where: [
75
- { defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },
76
- { id: defaultEntityLocaleIdFromQuery }
77
- ]
78
- });
71
+ const records = await currentEntityRepository.find({
72
+ where: [
73
+ { defaultEntityLocaleId: defaultEntityLocaleIdFromQuery },
74
+ { id: defaultEntityLocaleIdFromQuery }
75
+ ]
76
+ });
79
77
 
80
- this.logger.debug(`Found ${records.length} cloned records for new entity.`);
81
- return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };
82
- }
78
+ this.logger.debug(`Found ${records.length} cloned records for new entity.`);
79
+ return { records, defaultEntityLocaleId: defaultEntityLocaleIdFromQuery };
80
+ }
83
81
 
84
- // Case 3: Editing an existing entity
85
- const entityRecord = await currentEntityRepository.findOne({ where: { id } });
82
+ // Case 3: Editing an existing entity
83
+ const entityRecord = await currentEntityRepository.findOne({ where: { id } });
86
84
 
87
- if (!entityRecord) {
88
- this.logger.warn(`No entity found for id ${id}`);
89
- return { records: [], defaultEntityLocaleId: null };
90
- }
85
+ if (!entityRecord) {
86
+ this.logger.warn(`No entity found for id ${id}`);
87
+ return { records: [], defaultEntityLocaleId: null };
88
+ }
91
89
 
92
- const defaultLocale = await this.entityManager.getRepository(Locale).findOne({ where: { isDefault: true } });
90
+ const defaultLocale = await this.entityManager.getRepository(Locale).findOne({ where: { isDefault: true } });
93
91
 
94
- let defaultEntityLocaleId: string;
95
- if (entityRecord.localeName === defaultLocale?.locale) {
96
- defaultEntityLocaleId = entityRecord.id;
97
- this.logger.debug(`Editing default locale record with id ${defaultEntityLocaleId}`);
98
- } else {
99
- defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;
100
- this.logger.debug(`Editing non-default locale record. DefaultEntityLocaleId: ${defaultEntityLocaleId}`);
101
- }
92
+ let defaultEntityLocaleId: string;
93
+ if (entityRecord.localeName === defaultLocale?.locale) {
94
+ defaultEntityLocaleId = entityRecord.id;
95
+ this.logger.debug(`Editing default locale record with id ${defaultEntityLocaleId}`);
96
+ } else {
97
+ defaultEntityLocaleId = entityRecord.defaultEntityLocaleId;
98
+ this.logger.debug(`Editing non-default locale record. DefaultEntityLocaleId: ${defaultEntityLocaleId}`);
99
+ }
102
100
 
103
- const records = await currentEntityRepository.find({
104
- where: [
105
- { defaultEntityLocaleId: defaultEntityLocaleId },
106
- { id: defaultEntityLocaleId }
107
- ]
108
- });
101
+ const records = await currentEntityRepository.find({
102
+ where: [
103
+ { defaultEntityLocaleId: defaultEntityLocaleId },
104
+ { id: defaultEntityLocaleId }
105
+ ]
106
+ });
109
107
 
110
- this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);
108
+ this.logger.debug(`Found ${records.length} records in all locales for existing entity.`);
111
109
 
112
- return { records, defaultEntityLocaleId };
113
- }
110
+ return { records, defaultEntityLocaleId };
111
+ }
114
112
 
115
113
  // START: Custom Service Methods
116
114
  async getLayout(query, activeUser) {
@@ -311,10 +309,10 @@ export class ViewMetadataService extends CRUDService<ViewMetadata> {
311
309
  // }
312
310
  // }
313
311
  // }
314
- if(entity.model.internationalisation){
312
+ if (entity.model.internationalisation) {
315
313
  const defaultEntityLocaleIdFromQuery = query?.defaultEntityLocaleId;
316
314
  const { records: entityRecordsInAllLocales, defaultEntityLocaleId } =
317
- await this.getEntityRecordsInAllLocales(modelName, id, defaultEntityLocaleIdFromQuery);
315
+ await this.getEntityRecordsInAllLocales(modelName, id, defaultEntityLocaleIdFromQuery);
318
316
  const allLocales = await this.entityManager.getRepository(Locale).find({});
319
317
  for (const locale of allLocales) {
320
318
  const matchingRecord = entityRecordsInAllLocales.find(record => record.localeName === locale.locale);
@@ -2,11 +2,11 @@ import { HttpService } from '@nestjs/axios';
2
2
  import { Inject, Injectable, Logger } from '@nestjs/common';
3
3
  import { ConfigType } from '@nestjs/config';
4
4
  import commonConfig from 'src/config/common.config';
5
- import { WhatsappQueuePublisher } from 'src/jobs/whatsapp-publisher.service';
6
5
  import { QueueMessage } from 'src/interfaces/mq';
7
6
  import { SmsTemplateService } from '../sms-template.service';
8
7
  import { Msg91BaseSMSService } from '../sms/Msg91BaseSMSService';
9
8
  import { ISMS } from "../../interfaces";
9
+ import { PublisherFactory } from '../queues/publisher-factory.service';
10
10
 
11
11
  enum Msg91WhatsappParameterHeaderType {
12
12
  image,
@@ -57,11 +57,12 @@ export class Msg91WhatsappService extends Msg91BaseSMSService implements ISMS {
57
57
  constructor(
58
58
  @Inject(commonConfig.KEY)
59
59
  commonConfiguration: ConfigType<typeof commonConfig>,
60
- whatsappPublisher: WhatsappQueuePublisher,
60
+ // whatsappPublisher: WhatsappQueuePublisher,
61
+ publisherFactory: PublisherFactory<any>,
61
62
  smsTemplateService: SmsTemplateService,
62
63
  private readonly httpService: HttpService,
63
64
  ) {
64
- super(commonConfiguration, whatsappPublisher, smsTemplateService);
65
+ super(commonConfiguration, 'WhatsappQueuePublisher', publisherFactory, smsTemplateService);
65
66
  }
66
67
 
67
68
  async sendSMSSynchronously(message: QueueMessage<any>): Promise<void> {