@solidstarters/solid-core 1.2.204 → 1.2.206

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 (500) hide show
  1. package/dist/commands/info.command.d.ts +19 -0
  2. package/dist/commands/info.command.d.ts.map +1 -0
  3. package/dist/commands/info.command.js +98 -0
  4. package/dist/commands/info.command.js.map +1 -0
  5. package/dist/commands/mcp.command.d.ts.map +1 -1
  6. package/dist/commands/mcp.command.js +2 -10
  7. package/dist/commands/mcp.command.js.map +1 -1
  8. package/dist/commands/seed.command.d.ts.map +1 -1
  9. package/dist/commands/seed.command.js +2 -11
  10. package/dist/commands/seed.command.js.map +1 -1
  11. package/dist/controllers/email-template.controller.d.ts +3 -1
  12. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  13. package/dist/controllers/email-template.controller.js +7 -4
  14. package/dist/controllers/email-template.controller.js.map +1 -1
  15. package/dist/controllers/google-authentication.controller.d.ts +4 -5
  16. package/dist/controllers/google-authentication.controller.d.ts.map +1 -1
  17. package/dist/controllers/google-authentication.controller.js +21 -14
  18. package/dist/controllers/google-authentication.controller.js.map +1 -1
  19. package/dist/controllers/otp-authentication.controller.d.ts +10 -0
  20. package/dist/controllers/otp-authentication.controller.d.ts.map +1 -1
  21. package/dist/controllers/otp-authentication.controller.js +1 -1
  22. package/dist/controllers/setting.controller.d.ts +2 -34
  23. package/dist/controllers/setting.controller.d.ts.map +1 -1
  24. package/dist/controllers/setting.controller.js +4 -130
  25. package/dist/controllers/setting.controller.js.map +1 -1
  26. package/dist/decorators/settings-provider.decorator.d.ts +3 -0
  27. package/dist/decorators/settings-provider.decorator.d.ts.map +1 -0
  28. package/dist/decorators/settings-provider.decorator.js +8 -0
  29. package/dist/decorators/settings-provider.decorator.js.map +1 -0
  30. package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
  31. package/dist/decorators/solid-password.decorator.js +3 -3
  32. package/dist/decorators/solid-password.decorator.js.map +1 -1
  33. package/dist/dtos/create-role-metadata.dto.d.ts +3 -4
  34. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  35. package/dist/dtos/create-role-metadata.dto.js +4 -51
  36. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  37. package/dist/dtos/create-setting.dto.d.ts +3 -0
  38. package/dist/dtos/create-setting.dto.d.ts.map +1 -1
  39. package/dist/dtos/create-setting.dto.js +20 -2
  40. package/dist/dtos/create-setting.dto.js.map +1 -1
  41. package/dist/dtos/update-setting.dto.d.ts +3 -0
  42. package/dist/dtos/update-setting.dto.d.ts.map +1 -1
  43. package/dist/dtos/update-setting.dto.js +19 -1
  44. package/dist/dtos/update-setting.dto.js.map +1 -1
  45. package/dist/entities/setting.entity.d.ts +3 -0
  46. package/dist/entities/setting.entity.d.ts.map +1 -1
  47. package/dist/entities/setting.entity.js +13 -1
  48. package/dist/entities/setting.entity.js.map +1 -1
  49. package/dist/factories/mail.factory.d.ts +3 -4
  50. package/dist/factories/mail.factory.d.ts.map +1 -1
  51. package/dist/factories/mail.factory.js +6 -12
  52. package/dist/factories/mail.factory.js.map +1 -1
  53. package/dist/factories/sms.factory.d.ts +3 -4
  54. package/dist/factories/sms.factory.d.ts.map +1 -1
  55. package/dist/factories/sms.factory.js +6 -12
  56. package/dist/factories/sms.factory.js.map +1 -1
  57. package/dist/factories/whatsapp.factory.d.ts +3 -4
  58. package/dist/factories/whatsapp.factory.d.ts.map +1 -1
  59. package/dist/factories/whatsapp.factory.js +6 -12
  60. package/dist/factories/whatsapp.factory.js.map +1 -1
  61. package/dist/guards/access-token.guard.d.ts +3 -4
  62. package/dist/guards/access-token.guard.d.ts.map +1 -1
  63. package/dist/guards/access-token.guard.js +14 -9
  64. package/dist/guards/access-token.guard.js.map +1 -1
  65. package/dist/helpers/cors.helper.d.ts +1 -2
  66. package/dist/helpers/cors.helper.d.ts.map +1 -1
  67. package/dist/helpers/cors.helper.js +2 -2
  68. package/dist/helpers/cors.helper.js.map +1 -1
  69. package/dist/helpers/error-mapper.service.d.ts.map +1 -1
  70. package/dist/helpers/error-mapper.service.js.map +1 -1
  71. package/dist/helpers/google-oauth.helper.d.ts +7 -3
  72. package/dist/helpers/google-oauth.helper.d.ts.map +1 -1
  73. package/dist/helpers/google-oauth.helper.js +1 -2
  74. package/dist/helpers/google-oauth.helper.js.map +1 -1
  75. package/dist/helpers/module.helper.js +0 -2
  76. package/dist/helpers/module.helper.js.map +1 -1
  77. package/dist/helpers/solid-registry.d.ts +8 -3
  78. package/dist/helpers/solid-registry.d.ts.map +1 -1
  79. package/dist/helpers/solid-registry.js +32 -9
  80. package/dist/helpers/solid-registry.js.map +1 -1
  81. package/dist/index.d.ts +2 -4
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +3 -6
  84. package/dist/index.js.map +1 -1
  85. package/dist/interfaces.d.ts +21 -0
  86. package/dist/interfaces.d.ts.map +1 -1
  87. package/dist/interfaces.js +8 -1
  88. package/dist/interfaces.js.map +1 -1
  89. package/dist/passport-strategies/google-oauth.strategy.d.ts +1 -4
  90. package/dist/passport-strategies/google-oauth.strategy.d.ts.map +1 -1
  91. package/dist/passport-strategies/google-oauth.strategy.js +12 -12
  92. package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
  93. package/dist/seeders/email-template-seeder.service.d.ts +3 -4
  94. package/dist/seeders/email-template-seeder.service.d.ts.map +1 -1
  95. package/dist/seeders/email-template-seeder.service.js +7 -12
  96. package/dist/seeders/email-template-seeder.service.js.map +1 -1
  97. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -5
  98. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  99. package/dist/seeders/module-metadata-seeder.service.js +23 -23
  100. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  101. package/dist/seeders/seed-data/solid-core-metadata.json +98 -4
  102. package/dist/seeders/sms-template-seeder.service.d.ts +3 -4
  103. package/dist/seeders/sms-template-seeder.service.d.ts.map +1 -1
  104. package/dist/seeders/sms-template-seeder.service.js +7 -12
  105. package/dist/seeders/sms-template-seeder.service.js.map +1 -1
  106. package/dist/services/action-metadata.service.d.ts +2 -13
  107. package/dist/services/action-metadata.service.d.ts.map +1 -1
  108. package/dist/services/action-metadata.service.js +4 -22
  109. package/dist/services/action-metadata.service.js.map +1 -1
  110. package/dist/services/ai-interaction.service.d.ts +2 -13
  111. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  112. package/dist/services/ai-interaction.service.js +6 -24
  113. package/dist/services/ai-interaction.service.js.map +1 -1
  114. package/dist/services/authentication.service.d.ts +14 -10
  115. package/dist/services/authentication.service.d.ts.map +1 -1
  116. package/dist/services/authentication.service.js +159 -114
  117. package/dist/services/authentication.service.js.map +1 -1
  118. package/dist/services/bcrypt.service.d.ts +3 -5
  119. package/dist/services/bcrypt.service.d.ts.map +1 -1
  120. package/dist/services/bcrypt.service.js +10 -14
  121. package/dist/services/bcrypt.service.js.map +1 -1
  122. package/dist/services/chatter-message-details.service.d.ts +2 -13
  123. package/dist/services/chatter-message-details.service.d.ts.map +1 -1
  124. package/dist/services/chatter-message-details.service.js +4 -22
  125. package/dist/services/chatter-message-details.service.js.map +1 -1
  126. package/dist/services/chatter-message.service.d.ts +2 -13
  127. package/dist/services/chatter-message.service.d.ts.map +1 -1
  128. package/dist/services/chatter-message.service.js +5 -23
  129. package/dist/services/chatter-message.service.js.map +1 -1
  130. package/dist/services/crud.service.d.ts +12 -12
  131. package/dist/services/crud.service.d.ts.map +1 -1
  132. package/dist/services/crud.service.js +25 -17
  133. package/dist/services/crud.service.js.map +1 -1
  134. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -13
  135. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
  136. package/dist/services/dashboard-question-sql-dataset-config.service.js +4 -21
  137. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
  138. package/dist/services/dashboard-question.service.d.ts +2 -13
  139. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  140. package/dist/services/dashboard-question.service.js +4 -21
  141. package/dist/services/dashboard-question.service.js.map +1 -1
  142. package/dist/services/dashboard-variable.service.d.ts +2 -13
  143. package/dist/services/dashboard-variable.service.d.ts.map +1 -1
  144. package/dist/services/dashboard-variable.service.js +4 -21
  145. package/dist/services/dashboard-variable.service.js.map +1 -1
  146. package/dist/services/dashboard.service.d.ts +2 -13
  147. package/dist/services/dashboard.service.d.ts.map +1 -1
  148. package/dist/services/dashboard.service.js +4 -21
  149. package/dist/services/dashboard.service.js.map +1 -1
  150. package/dist/services/email-template.service.d.ts +2 -13
  151. package/dist/services/email-template.service.d.ts.map +1 -1
  152. package/dist/services/email-template.service.js +4 -22
  153. package/dist/services/email-template.service.js.map +1 -1
  154. package/dist/services/export-template.service.d.ts +2 -13
  155. package/dist/services/export-template.service.d.ts.map +1 -1
  156. package/dist/services/export-template.service.js +4 -21
  157. package/dist/services/export-template.service.js.map +1 -1
  158. package/dist/services/export-transaction.service.d.ts +2 -13
  159. package/dist/services/export-transaction.service.d.ts.map +1 -1
  160. package/dist/services/export-transaction.service.js +4 -21
  161. package/dist/services/export-transaction.service.js.map +1 -1
  162. package/dist/services/field-metadata.service.d.ts +11 -0
  163. package/dist/services/field-metadata.service.d.ts.map +1 -1
  164. package/dist/services/field-metadata.service.js +3 -0
  165. package/dist/services/field-metadata.service.js.map +1 -1
  166. package/dist/services/file/file-service.interface.d.ts +22 -0
  167. package/dist/services/file/file-service.interface.d.ts.map +1 -0
  168. package/dist/services/file/file-service.interface.js +5 -0
  169. package/dist/services/file/file-service.interface.js.map +1 -0
  170. package/dist/services/file.service.d.ts +1 -4
  171. package/dist/services/file.service.d.ts.map +1 -1
  172. package/dist/services/file.service.js +11 -12
  173. package/dist/services/file.service.js.map +1 -1
  174. package/dist/services/genai/r2r-helper.service.d.ts +3 -1
  175. package/dist/services/genai/r2r-helper.service.d.ts.map +1 -1
  176. package/dist/services/genai/r2r-helper.service.js +11 -7
  177. package/dist/services/genai/r2r-helper.service.js.map +1 -1
  178. package/dist/services/import-transaction-error-log.service.d.ts +2 -13
  179. package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
  180. package/dist/services/import-transaction-error-log.service.js +4 -22
  181. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  182. package/dist/services/import-transaction.service.d.ts +2 -13
  183. package/dist/services/import-transaction.service.d.ts.map +1 -1
  184. package/dist/services/import-transaction.service.js +4 -22
  185. package/dist/services/import-transaction.service.js.map +1 -1
  186. package/dist/services/list-of-values.service.d.ts +2 -13
  187. package/dist/services/list-of-values.service.d.ts.map +1 -1
  188. package/dist/services/list-of-values.service.js +4 -22
  189. package/dist/services/list-of-values.service.js.map +1 -1
  190. package/dist/services/locale.service.d.ts +2 -13
  191. package/dist/services/locale.service.d.ts.map +1 -1
  192. package/dist/services/locale.service.js +4 -22
  193. package/dist/services/locale.service.js.map +1 -1
  194. package/dist/services/mail/elastic-email.service.d.ts +4 -5
  195. package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
  196. package/dist/services/mail/elastic-email.service.js +10 -13
  197. package/dist/services/mail/elastic-email.service.js.map +1 -1
  198. package/dist/services/mail/smtp-email.service.d.ts +3 -4
  199. package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
  200. package/dist/services/mail/smtp-email.service.js +19 -17
  201. package/dist/services/mail/smtp-email.service.js.map +1 -1
  202. package/dist/services/media-storage-provider-metadata.service.d.ts +11 -0
  203. package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
  204. package/dist/services/media-storage-provider-metadata.service.js +3 -0
  205. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  206. package/dist/services/media.service.d.ts +2 -9
  207. package/dist/services/media.service.d.ts.map +1 -1
  208. package/dist/services/media.service.js +17 -28
  209. package/dist/services/media.service.js.map +1 -1
  210. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +2 -4
  211. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  212. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -11
  213. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  214. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -1
  215. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  216. package/dist/services/mediaStorageProviders/file-storage-provider.js +16 -12
  217. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  218. package/dist/services/mediaStorageProviders/index.d.ts +1 -1
  219. package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
  220. package/dist/services/mediaStorageProviders/index.js +1 -1
  221. package/dist/services/mediaStorageProviders/index.js.map +1 -1
  222. package/dist/services/menu-item-metadata.service.d.ts +2 -13
  223. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  224. package/dist/services/menu-item-metadata.service.js +4 -22
  225. package/dist/services/menu-item-metadata.service.js.map +1 -1
  226. package/dist/services/model-metadata.service.d.ts +11 -0
  227. package/dist/services/model-metadata.service.d.ts.map +1 -1
  228. package/dist/services/model-metadata.service.js +3 -0
  229. package/dist/services/model-metadata.service.js.map +1 -1
  230. package/dist/services/model-sequence.service.d.ts +2 -13
  231. package/dist/services/model-sequence.service.d.ts.map +1 -1
  232. package/dist/services/model-sequence.service.js +4 -21
  233. package/dist/services/model-sequence.service.js.map +1 -1
  234. package/dist/services/module-metadata.service.d.ts +14 -1
  235. package/dist/services/module-metadata.service.d.ts.map +1 -1
  236. package/dist/services/module-metadata.service.js +13 -6
  237. package/dist/services/module-metadata.service.js.map +1 -1
  238. package/dist/services/mq-message-queue.service.d.ts +2 -13
  239. package/dist/services/mq-message-queue.service.d.ts.map +1 -1
  240. package/dist/services/mq-message-queue.service.js +4 -22
  241. package/dist/services/mq-message-queue.service.js.map +1 -1
  242. package/dist/services/mq-message.service.d.ts +2 -13
  243. package/dist/services/mq-message.service.d.ts.map +1 -1
  244. package/dist/services/mq-message.service.js +4 -22
  245. package/dist/services/mq-message.service.js.map +1 -1
  246. package/dist/services/permission-metadata.service.d.ts +2 -13
  247. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  248. package/dist/services/permission-metadata.service.js +4 -22
  249. package/dist/services/permission-metadata.service.js.map +1 -1
  250. package/dist/services/role-metadata.service.d.ts +2 -13
  251. package/dist/services/role-metadata.service.d.ts.map +1 -1
  252. package/dist/services/role-metadata.service.js +4 -23
  253. package/dist/services/role-metadata.service.js.map +1 -1
  254. package/dist/services/saved-filters.service.d.ts +2 -13
  255. package/dist/services/saved-filters.service.d.ts.map +1 -1
  256. package/dist/services/saved-filters.service.js +4 -21
  257. package/dist/services/saved-filters.service.js.map +1 -1
  258. package/dist/services/scheduled-job.service.d.ts +2 -13
  259. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  260. package/dist/services/scheduled-job.service.js +4 -22
  261. package/dist/services/scheduled-job.service.js.map +1 -1
  262. package/dist/services/security-rule.service.d.ts +2 -13
  263. package/dist/services/security-rule.service.d.ts.map +1 -1
  264. package/dist/services/security-rule.service.js +5 -23
  265. package/dist/services/security-rule.service.js.map +1 -1
  266. package/dist/services/setting.service.d.ts +23 -30
  267. package/dist/services/setting.service.d.ts.map +1 -1
  268. package/dist/services/setting.service.js +147 -196
  269. package/dist/services/setting.service.js.map +1 -1
  270. package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
  271. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
  272. package/dist/services/settings/default-settings-provider.service.js +139 -0
  273. package/dist/services/settings/default-settings-provider.service.js.map +1 -0
  274. package/dist/services/short-url/tiny-url.service.d.ts +3 -4
  275. package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
  276. package/dist/services/short-url/tiny-url.service.js +10 -13
  277. package/dist/services/short-url/tiny-url.service.js.map +1 -1
  278. package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
  279. package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
  280. package/dist/services/sms/Msg91BaseSMSService.js +3 -3
  281. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  282. package/dist/services/sms/Msg91OTPService.d.ts +2 -3
  283. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  284. package/dist/services/sms/Msg91OTPService.js +7 -13
  285. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  286. package/dist/services/sms/Msg91SMSService.d.ts +2 -3
  287. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  288. package/dist/services/sms/Msg91SMSService.js +7 -13
  289. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  290. package/dist/services/sms/TwilioSMSService.d.ts +3 -4
  291. package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
  292. package/dist/services/sms/TwilioSMSService.js +13 -16
  293. package/dist/services/sms/TwilioSMSService.js.map +1 -1
  294. package/dist/services/sms-template.service.d.ts +2 -13
  295. package/dist/services/sms-template.service.d.ts.map +1 -1
  296. package/dist/services/sms-template.service.js +4 -22
  297. package/dist/services/sms-template.service.js.map +1 -1
  298. package/dist/services/solid-introspect.service.d.ts +4 -1
  299. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  300. package/dist/services/solid-introspect.service.js +33 -47
  301. package/dist/services/solid-introspect.service.js.map +1 -1
  302. package/dist/services/textract.service.d.ts +1 -4
  303. package/dist/services/textract.service.d.ts.map +1 -1
  304. package/dist/services/textract.service.js +14 -18
  305. package/dist/services/textract.service.js.map +1 -1
  306. package/dist/services/user-activity-history.service.d.ts +2 -13
  307. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  308. package/dist/services/user-activity-history.service.js +4 -22
  309. package/dist/services/user-activity-history.service.js.map +1 -1
  310. package/dist/services/user-view-metadata.service.d.ts +2 -13
  311. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  312. package/dist/services/user-view-metadata.service.js +4 -22
  313. package/dist/services/user-view-metadata.service.js.map +1 -1
  314. package/dist/services/user.service.d.ts +2 -15
  315. package/dist/services/user.service.d.ts.map +1 -1
  316. package/dist/services/user.service.js +7 -28
  317. package/dist/services/user.service.js.map +1 -1
  318. package/dist/services/view-metadata.service.d.ts +2 -13
  319. package/dist/services/view-metadata.service.d.ts.map +1 -1
  320. package/dist/services/view-metadata.service.js +5 -23
  321. package/dist/services/view-metadata.service.js.map +1 -1
  322. package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
  323. package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
  324. package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
  325. package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
  326. package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
  327. package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
  328. package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
  329. package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
  330. package/dist/solid-core.module.d.ts.map +1 -1
  331. package/dist/solid-core.module.js +9 -47
  332. package/dist/solid-core.module.js.map +1 -1
  333. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  334. package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
  335. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  336. package/dist/tsconfig.tsbuildinfo +1 -1
  337. package/package.json +1 -1
  338. package/src/commands/info.command.ts +101 -0
  339. package/src/commands/mcp.command.ts +3 -17
  340. package/src/commands/seed.command.ts +4 -16
  341. package/src/controllers/email-template.controller.ts +9 -4
  342. package/src/controllers/google-authentication.controller.ts +19 -12
  343. package/src/controllers/setting.controller.ts +6 -81
  344. package/src/decorators/settings-provider.decorator.ts +7 -0
  345. package/src/decorators/solid-password.decorator.ts +43 -43
  346. package/src/dtos/create-role-metadata.dto.ts +4 -81
  347. package/src/dtos/create-setting.dto.ts +14 -1
  348. package/src/dtos/update-setting.dto.ts +14 -0
  349. package/src/entities/setting.entity.ts +15 -1
  350. package/src/factories/mail.factory.ts +4 -4
  351. package/src/factories/sms.factory.ts +9 -7
  352. package/src/factories/whatsapp.factory.ts +4 -4
  353. package/src/guards/access-token.guard.ts +12 -5
  354. package/src/helpers/cors.helper.ts +3 -3
  355. package/src/helpers/error-mapper.service.ts +0 -1
  356. package/src/helpers/google-oauth.helper.ts +11 -7
  357. package/src/helpers/module.helper.ts +2 -2
  358. package/src/helpers/solid-registry.ts +45 -16
  359. package/src/index.ts +2 -4
  360. package/src/interfaces.ts +29 -0
  361. package/src/passport-strategies/google-oauth.strategy.ts +11 -8
  362. package/src/seeders/email-template-seeder.service.ts +6 -4
  363. package/src/seeders/module-metadata-seeder.service.ts +40 -28
  364. package/src/seeders/seed-data/solid-core-metadata.json +99 -5
  365. package/src/seeders/sms-template-seeder.service.ts +6 -4
  366. package/src/services/action-metadata.service.ts +4 -16
  367. package/src/services/ai-interaction.service.ts +6 -17
  368. package/src/services/authentication.service.ts +173 -111
  369. package/src/services/bcrypt.service.ts +9 -9
  370. package/src/services/chatter-message-details.service.ts +5 -17
  371. package/src/services/chatter-message.service.ts +2 -14
  372. package/src/services/crud.service.ts +36 -28
  373. package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
  374. package/src/services/dashboard-question.service.ts +4 -17
  375. package/src/services/dashboard-variable.service.ts +4 -16
  376. package/src/services/dashboard.service.ts +2 -13
  377. package/src/services/email-template.service.ts +3 -15
  378. package/src/services/export-template.service.ts +4 -18
  379. package/src/services/export-transaction.service.ts +4 -19
  380. package/src/services/field-metadata.service.ts +5 -1
  381. package/src/services/file/file-service.interface.ts +74 -0
  382. package/src/services/file.service.ts +10 -7
  383. package/src/services/genai/r2r-helper.service.ts +10 -6
  384. package/src/services/import-transaction-error-log.service.ts +5 -17
  385. package/src/services/import-transaction.service.ts +3 -15
  386. package/src/services/list-of-values.service.ts +3 -16
  387. package/src/services/locale.service.ts +3 -15
  388. package/src/services/mail/elastic-email.service.ts +7 -7
  389. package/src/services/mail/smtp-email.service.ts +19 -11
  390. package/src/services/media-storage-provider-metadata.service.ts +4 -0
  391. package/src/services/media.service.ts +39 -22
  392. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
  393. package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
  394. package/src/services/mediaStorageProviders/index.ts +1 -1
  395. package/src/services/menu-item-metadata.service.ts +5 -17
  396. package/src/services/model-metadata.service.ts +4 -0
  397. package/src/services/model-sequence.service.ts +4 -15
  398. package/src/services/module-metadata.service.ts +13 -4
  399. package/src/services/mq-message-queue.service.ts +5 -17
  400. package/src/services/mq-message.service.ts +5 -17
  401. package/src/services/permission-metadata.service.ts +4 -16
  402. package/src/services/role-metadata.service.ts +3 -16
  403. package/src/services/saved-filters.service.ts +2 -13
  404. package/src/services/scheduled-job.service.ts +3 -15
  405. package/src/services/security-rule.service.ts +4 -16
  406. package/src/services/setting.service.ts +223 -212
  407. package/src/services/settings/default-settings-provider.service.ts +157 -0
  408. package/src/services/short-url/tiny-url.service.ts +9 -7
  409. package/src/services/sms/Msg91BaseSMSService.ts +6 -4
  410. package/src/services/sms/Msg91OTPService.ts +7 -7
  411. package/src/services/sms/Msg91SMSService.ts +7 -6
  412. package/src/services/sms/TwilioSMSService.ts +18 -19
  413. package/src/services/sms-template.service.ts +3 -15
  414. package/src/services/solid-introspect.service.ts +45 -66
  415. package/src/services/textract.service.ts +13 -10
  416. package/src/services/user-activity-history.service.ts +5 -17
  417. package/src/services/user-view-metadata.service.ts +5 -17
  418. package/src/services/user.service.ts +7 -22
  419. package/src/services/view-metadata.service.ts +3 -15
  420. package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
  421. package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
  422. package/src/solid-core.module.ts +17 -49
  423. package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
  424. package/dist/config/app-builder.config.d.ts +0 -11
  425. package/dist/config/app-builder.config.d.ts.map +0 -1
  426. package/dist/config/app-builder.config.js +0 -13
  427. package/dist/config/app-builder.config.js.map +0 -1
  428. package/dist/config/common.config.d.ts +0 -96
  429. package/dist/config/common.config.d.ts.map +0 -1
  430. package/dist/config/common.config.js +0 -51
  431. package/dist/config/common.config.js.map +0 -1
  432. package/dist/config/iam.config.d.ts +0 -56
  433. package/dist/config/iam.config.d.ts.map +0 -1
  434. package/dist/config/iam.config.js +0 -35
  435. package/dist/config/iam.config.js.map +0 -1
  436. package/dist/config/jwt.config.d.ts +0 -14
  437. package/dist/config/jwt.config.d.ts.map +0 -1
  438. package/dist/config/jwt.config.js +0 -15
  439. package/dist/config/jwt.config.js.map +0 -1
  440. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
  441. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
  442. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
  443. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
  444. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
  445. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
  446. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
  447. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
  448. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
  449. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
  450. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
  451. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
  452. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
  453. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
  454. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
  455. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
  456. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
  457. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
  458. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
  459. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
  460. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
  461. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
  462. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
  463. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
  464. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
  465. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
  466. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
  467. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
  468. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
  469. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
  470. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
  471. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
  472. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
  473. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
  474. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
  475. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
  476. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
  477. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
  478. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
  479. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
  480. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
  481. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
  482. package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
  483. package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
  484. package/src/config/app-builder.config.ts +0 -12
  485. package/src/config/common.config.ts +0 -55
  486. package/src/config/iam.config.ts +0 -32
  487. package/src/config/jwt.config.ts +0 -13
  488. package/src/services/export_issues.txt +0 -10
  489. package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
  490. package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
  491. package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
  492. package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
  493. package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
  494. package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
  495. package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
  496. package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
  497. package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
  498. package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
  499. package/src/services/groupBy.json +0 -92
  500. package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
@@ -0,0 +1,74 @@
1
+ import { Readable } from 'stream';
2
+
3
+ export interface WriteOptions {
4
+ contentType?: string;
5
+ }
6
+
7
+ export interface CopyOptions {
8
+ contentType?: string;
9
+ /** Whether to overwrite existing file (default: true) */
10
+ overwrite?: boolean;
11
+ }
12
+
13
+ export interface UrlOptions {
14
+ /** Expiry time in seconds (relevant for S3 signed URLs) */
15
+ expiresIn?: number;
16
+ }
17
+
18
+ /**
19
+ * Unified interface for file operations.
20
+ * Implementations: DiskFileService, S3FileService
21
+ */
22
+ export interface IFileService {
23
+ /**
24
+ * Read file contents as Buffer
25
+ * @param path - File path (disk) or key (S3)
26
+ */
27
+ read(path: string): Promise<Buffer>;
28
+
29
+ /**
30
+ * Write data to a file
31
+ * @param path - File path (disk) or key (S3)
32
+ * @param data - Content to write
33
+ * @param options - Optional write options (e.g., contentType for S3)
34
+ */
35
+ write(path: string, data: Buffer | string, options?: WriteOptions): Promise<void>;
36
+
37
+ /**
38
+ * Write a stream to a file
39
+ * @param path - File path (disk) or key (S3)
40
+ * @param stream - Readable stream
41
+ * @param options - Optional write options (e.g., contentType for S3)
42
+ */
43
+ writeStream(path: string, stream: Readable, options?: WriteOptions): Promise<void>;
44
+
45
+ /**
46
+ * Delete a file
47
+ * @param path - File path (disk) or key (S3)
48
+ */
49
+ delete(path: string): Promise<void>;
50
+
51
+ /**
52
+ * Check if file exists
53
+ * @param path - File path (disk) or key (S3)
54
+ */
55
+ exists(path: string): Promise<boolean>;
56
+
57
+ /**
58
+ * Copy a file from source to destination
59
+ * @param sourcePath - Source file path
60
+ * @param destinationPath - Destination file path
61
+ * @param options - Optional copy options
62
+ */
63
+ copy(sourcePath: string, destinationPath: string, options?: CopyOptions): Promise<void>;
64
+
65
+ /**
66
+ * Get an accessible URL for the file
67
+ * For S3: returns signed URL; For disk: returns the file path
68
+ * @param path - File path (disk) or key (S3)
69
+ * @param options - URL options (e.g., expiresIn for S3)
70
+ */
71
+ getUrl(path: string, options?: UrlOptions): Promise<string>;
72
+ }
73
+
74
+ export const FILE_SERVICE = Symbol('FILE_SERVICE');
@@ -3,11 +3,11 @@ import * as fs from 'fs';
3
3
  // import * as AWS from 'aws-sdk';
4
4
  import { S3Client, PutObjectCommand, DeleteObjectCommand, ObjectCannedACL, GetObjectCommand } from '@aws-sdk/client-s3';
5
5
  import { ConfigType } from '@nestjs/config';
6
- import commonConfig, { AwsS3Config } from '../config/common.config';
7
6
  import path from 'path';
8
7
  import { Readable } from 'stream';
9
8
  import { getSignedUrl as awsGetSignedUrl } from '@aws-sdk/s3-request-presigner';
10
9
  import { ERROR_MESSAGES } from 'src/constants/error-messages';
10
+ import { AwsS3Config } from 'src/interfaces';
11
11
 
12
12
  @Injectable()
13
13
  export class FileService {
@@ -16,16 +16,19 @@ export class FileService {
16
16
  private readonly logger = new Logger(FileService.name);
17
17
 
18
18
  constructor(
19
- @Inject(commonConfig.KEY)
20
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
21
19
 
22
20
  ) {
23
- if (!this.isValidS3Config(this.commonConfiguration.awsS3Credentials)) { return }
21
+ const awsS3Credentials = {
22
+ S3_AWS_ACCESS_KEY: process.env.S3_AWS_ACCESS_KEY,
23
+ S3_AWS_SECRET_KEY: process.env.S3_AWS_SECRET_KEY,
24
+ S3_AWS_REGION_NAME: process.env.S3_AWS_REGION_NAME
25
+ }
26
+ if (!this.isValidS3Config(awsS3Credentials)) { return }
24
27
  this.s3Client = new S3Client({
25
- region: this.commonConfiguration.awsS3Credentials.S3_AWS_REGION_NAME,
28
+ region: process.env.S3_AWS_REGION_NAME,
26
29
  credentials: {
27
- accessKeyId: this.commonConfiguration.awsS3Credentials.S3_AWS_ACCESS_KEY,
28
- secretAccessKey: this.commonConfiguration.awsS3Credentials.S3_AWS_SECRET_KEY,
30
+ accessKeyId: process.env.S3_AWS_ACCESS_KEY,
31
+ secretAccessKey: process.env.S3_AWS_SECRET_KEY,
29
32
  },
30
33
  });
31
34
  }
@@ -1,6 +1,8 @@
1
1
  import { Injectable, Logger } from '@nestjs/common';
2
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
2
3
 
3
4
  import { r2rClient } from 'r2r-js';
5
+ import { SettingService } from '../setting.service';
4
6
 
5
7
 
6
8
 
@@ -8,17 +10,19 @@ import { r2rClient } from 'r2r-js';
8
10
  export class R2RHelperService {
9
11
  private readonly logger = new Logger(R2RHelperService.name);
10
12
 
11
- constructor() { }
13
+ constructor(private readonly settingService: SettingService) { }
12
14
 
13
15
  async getClient() {
14
- this.logger.debug(`Attempting to create RAG client with url: ${process.env.GENAI_RAG_SERVER_URL}`);
15
- const client = new r2rClient(process.env.GENAI_RAG_SERVER_URL);
16
+ const ragServerUrl = this.settingService.getConfigValue<SolidCoreSetting>('ragServerUrl');
17
+ this.logger.debug(`Attempting to create RAG client with url: ${ragServerUrl}`);
18
+ const client = new r2rClient(ragServerUrl);
16
19
 
20
+ const ragServerLogin = this.settingService.getConfigValue<SolidCoreSetting>('ragServerLogin');
17
21
  // @ts-ignore
18
- this.logger.debug(`Attempting to login to our RAG server with user ${process.env.GENAI_RAG_SERVER_LOGIN}`)
22
+ this.logger.debug(`Attempting to login to our RAG server with user ${ragServerLogin}`)
19
23
  await client.users.login({
20
- email: process.env.GENAI_RAG_SERVER_LOGIN,
21
- password: process.env.GENAI_RAG_SERVER_PASSWORD
24
+ email: ragServerLogin,
25
+ password: this.settingService.getConfigValue<SolidCoreSetting>('ragServerPassword')
22
26
  });
23
27
 
24
28
  return client;
@@ -1,14 +1,9 @@
1
- import { forwardRef, Inject, Injectable } from '@nestjs/common';
2
- import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
- import { EntityManager, Repository } from 'typeorm';
1
+ import { Injectable } from '@nestjs/common';
2
+ import { InjectEntityManager } from '@nestjs/typeorm';
3
+ import { ModuleRef } from "@nestjs/core";
4
+ import { EntityManager } from 'typeorm';
5
5
 
6
6
  import { CRUDService } from 'src/services/crud.service';
7
- import { ModelMetadataService } from 'src/services/model-metadata.service';
8
- import { ModuleMetadataService } from 'src/services/module-metadata.service';
9
- import { ConfigService } from '@nestjs/config';
10
- import { FileService } from 'src/services/file.service';
11
- import { CrudHelperService } from 'src/services/crud-helper.service';
12
7
 
13
8
 
14
9
  import { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';
@@ -17,13 +12,6 @@ import { ImportTransactionErrorLogRepository } from 'src/repository/import-trans
17
12
  @Injectable()
18
13
  export class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{
19
14
  constructor(
20
- @Inject(forwardRef(() => ModelMetadataService))
21
- readonly modelMetadataService: ModelMetadataService,
22
- readonly moduleMetadataService: ModuleMetadataService,
23
- readonly configService: ConfigService,
24
- readonly fileService: FileService,
25
- readonly discoveryService: DiscoveryService,
26
- readonly crudHelperService: CrudHelperService,
27
15
  @InjectEntityManager()
28
16
  readonly entityManager: EntityManager,
29
17
  // @InjectRepository(ImportTransactionErrorLog, 'default')
@@ -32,6 +20,6 @@ export class ImportTransactionErrorLogService extends CRUDService<ImportTransact
32
20
  readonly moduleRef: ModuleRef
33
21
 
34
22
  ) {
35
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService,entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);
23
+ super(entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);
36
24
  }
37
25
  }
@@ -1,14 +1,9 @@
1
- import { BadRequestException, ForbiddenException, forwardRef, Inject, Injectable, Logger } from '@nestjs/common';
2
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
1
+ import { BadRequestException, ForbiddenException, Injectable, Logger } from '@nestjs/common';
2
+ import { ModuleRef } from "@nestjs/core";
3
3
  import { InjectEntityManager } from '@nestjs/typeorm';
4
4
  import { EntityManager } from 'typeorm';
5
5
 
6
- import { ConfigService } from '@nestjs/config';
7
- import { CrudHelperService } from 'src/services/crud-helper.service';
8
6
  import { CRUDService } from 'src/services/crud.service';
9
- import { FileService } from 'src/services/file.service';
10
- import { ModelMetadataService } from 'src/services/model-metadata.service';
11
- import { ModuleMetadataService } from 'src/services/module-metadata.service';
12
7
 
13
8
 
14
9
  import { classify } from '@angular-devkit/core/src/utils/strings';
@@ -94,13 +89,6 @@ interface ImportRecordsResult {
94
89
  @Injectable()
95
90
  export class ImportTransactionService extends CRUDService<ImportTransaction> {
96
91
  constructor(
97
- @Inject(forwardRef(() => ModelMetadataService))
98
- readonly modelMetadataService: ModelMetadataService,
99
- readonly moduleMetadataService: ModuleMetadataService,
100
- readonly configService: ConfigService,
101
- readonly fileService: FileService,
102
- readonly discoveryService: DiscoveryService,
103
- readonly crudHelperService: CrudHelperService,
104
92
  @InjectEntityManager()
105
93
  readonly entityManager: EntityManager,
106
94
  // @InjectRepository(ImportTransaction, 'default')
@@ -114,7 +102,7 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
114
102
  private readonly modelMetadataHelperService: ModelMetadataHelperService,
115
103
  // readonly fieldMetadataService: FieldMetadataService,
116
104
  ) {
117
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
105
+ super(entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
118
106
  }
119
107
 
120
108
  private readonly logger = new Logger(ImportTransactionService.name);
@@ -1,14 +1,9 @@
1
- import { forwardRef, Inject, Injectable } from '@nestjs/common';
2
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
1
+ import { Injectable } from '@nestjs/common';
2
+ import { ModuleRef } from "@nestjs/core";
3
3
  import { InjectEntityManager } from '@nestjs/typeorm';
4
4
  import { EntityManager } from 'typeorm';
5
5
 
6
- import { ConfigService } from '@nestjs/config';
7
- import { CrudHelperService } from 'src/services/crud-helper.service';
8
6
  import { CRUDService } from 'src/services/crud.service';
9
- import { FileService } from 'src/services/file.service';
10
- import { ModelMetadataService } from 'src/services/model-metadata.service';
11
- import { ModuleMetadataService } from 'src/services/module-metadata.service';
12
7
 
13
8
 
14
9
  import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
@@ -24,14 +19,6 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
24
19
  // moduleMetadataHelperService: any;
25
20
  // listOfValuesMapper: any;
26
21
  constructor(
27
- @Inject(forwardRef(() => ModelMetadataService))
28
- readonly modelMetadataService: ModelMetadataService,
29
- readonly moduleMetadataService: ModuleMetadataService,
30
- readonly configService: ConfigService,
31
- readonly fileService: FileService,
32
- readonly discoveryService: DiscoveryService,
33
- readonly crudHelperService: CrudHelperService,
34
-
35
22
  @InjectEntityManager()
36
23
  readonly entityManager: EntityManager,
37
24
  // @InjectRepository(ListOfValues, 'default')
@@ -42,7 +29,7 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
42
29
  readonly listOfValuesMapper: ListOfValuesMapper,
43
30
 
44
31
  ) {
45
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'listOfValues', 'solid-core', moduleRef);
32
+ super(entityManager, repo, 'listOfValues', 'solid-core', moduleRef);
46
33
  }
47
34
  async findOneByValueAndType(lovValue: string, lovType: string) {
48
35
  return await this.repo.findOne({
@@ -1,28 +1,16 @@
1
- import { forwardRef, Inject, Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
2
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
1
+ import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
2
+ import { ModuleRef } from "@nestjs/core";
3
3
  import { InjectEntityManager } from '@nestjs/typeorm';
4
4
  import { EntityManager } from 'typeorm';
5
5
 
6
- import { ConfigService } from '@nestjs/config';
7
6
  import { Locale } from 'src/entities/locale.entity';
8
7
  import { SolidRegistry } from 'src/helpers/solid-registry';
9
8
  import { LocaleRepository } from 'src/repository/locale.repository';
10
- import { CrudHelperService } from 'src/services/crud-helper.service';
11
9
  import { CRUDService } from 'src/services/crud.service';
12
- import { FileService } from 'src/services/file.service';
13
- import { ModelMetadataService } from 'src/services/model-metadata.service';
14
- import { ModuleMetadataService } from 'src/services/module-metadata.service';
15
10
  import { RequestContextService } from './request-context.service';
16
11
  @Injectable()
17
12
  export class LocaleService extends CRUDService<Locale> implements OnApplicationBootstrap{
18
13
  constructor(
19
- @Inject(forwardRef(() => ModelMetadataService))
20
- readonly modelMetadataService: ModelMetadataService,
21
- readonly moduleMetadataService: ModuleMetadataService,
22
- readonly configService: ConfigService,
23
- readonly fileService: FileService,
24
- readonly discoveryService: DiscoveryService,
25
- readonly crudHelperService: CrudHelperService,
26
14
  @InjectEntityManager()
27
15
  readonly entityManager: EntityManager,
28
16
  // @InjectRepository(Locale, 'default')
@@ -36,7 +24,7 @@ export class LocaleService extends CRUDService<Locale> implements OnApplicationB
36
24
  readonly requestContextService: RequestContextService,
37
25
  readonly solidRegistry: SolidRegistry,
38
26
  ) {
39
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService,entityManager, repo, 'locale', 'solid-core', moduleRef);
27
+ super(entityManager, repo, 'locale', 'solid-core', moduleRef);
40
28
  }
41
29
  private readonly logger = new Logger(LocaleService.name)
42
30
  onApplicationBootstrap() {
@@ -1,7 +1,6 @@
1
1
  import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigType } from '@nestjs/config';
3
3
  import Handlebars from "handlebars";
4
- import commonConfig from 'src/config/common.config';
5
4
  import { EmailAttachment } from 'src/entities/email-attachment.entity';
6
5
  import { QueueMessage } from 'src/interfaces/mq';
7
6
  import { EmailTemplateService } from '../email-template.service';
@@ -10,6 +9,8 @@ import { FileService } from '../file.service';
10
9
  import { IMail, MailAttachment, MailAttachmentWrapper } from "../../interfaces";
11
10
  import { PublisherFactory } from '../queues/publisher-factory.service';
12
11
  import { MailProvider } from 'src/decorators/mail-provider.decorator';
12
+ import { SettingService } from '../setting.service';
13
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
13
14
 
14
15
  const ElasticEmail = require('@elasticemail/elasticemail-client');
15
16
 
@@ -20,17 +21,16 @@ export class ElasticEmailService implements IMail {
20
21
  private readonly emailsApi;
21
22
 
22
23
  constructor(
23
- @Inject(commonConfig.KEY)
24
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
25
24
  // private readonly emailPublisher: ApiEmailQueuePublisher,
26
25
  private readonly publisherFactory: PublisherFactory<any>,
27
26
  private readonly emailTemplateService: EmailTemplateService,
28
27
  private readonly pdfService: PdfService,
29
28
  private readonly fileService: FileService,
29
+ private readonly settingService: SettingService
30
30
  ) {
31
31
  const client = ElasticEmail.ApiClient.instance;
32
32
  const apikey = client.authentications['apikey'];
33
- apikey.apiKey = commonConfiguration.apiMail.key;
33
+ apikey.apiKey = process.env.COMMON_API_EMAIL_KEY;
34
34
  this.emailsApi = new ElasticEmail.EmailsApi();
35
35
  }
36
36
 
@@ -64,7 +64,7 @@ export class ElasticEmailService implements IMail {
64
64
  async sendEmail(to: string, subject: string, body: string, shouldQueueEmails = false, parentEntity = null, parentEntityId = null, wrapperAttachments: MailAttachmentWrapper[] = []): Promise<void> {
65
65
  const message = {
66
66
  payload: {
67
- from: this.commonConfiguration.smtpMail.from,
67
+ from: this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom"),
68
68
  to: to,
69
69
  subject: subject,
70
70
  body: body,
@@ -79,7 +79,7 @@ export class ElasticEmailService implements IMail {
79
79
  this.sendEmailAsynchronously(message);
80
80
  }
81
81
  // If developer has not, however system config mandates that we send using queue, still we send.
82
- else if (shouldQueueEmails == false && this.commonConfiguration.shouldQueueEmails === true) {
82
+ else if (shouldQueueEmails == false && this.settingService.getConfigValue<SolidCoreSetting>("shouldQueueEmails") === true) {
83
83
  this.sendEmailAsynchronously(message);
84
84
  }
85
85
  // Else we send synch
@@ -88,7 +88,7 @@ export class ElasticEmailService implements IMail {
88
88
  }
89
89
  }
90
90
 
91
- async sendEmailAsynchronously(message: QueueMessage<any>) {
91
+ sendEmailAsynchronously(message: QueueMessage<any>) {
92
92
  const { to, subject, body } = message.payload;
93
93
  // this.notificationPublisherService.publish(message);
94
94
  // this.emailPublisher.publish(message);
@@ -1,12 +1,13 @@
1
1
  import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigType } from '@nestjs/config';
3
3
  import Handlebars from "handlebars";
4
- import commonConfig from 'src/config/common.config';
5
4
  import { MailProvider } from 'src/decorators/mail-provider.decorator';
6
5
  import { QueueMessage } from 'src/interfaces/mq';
7
6
  import { IMail, MailAttachment, MailAttachmentWrapper } from "../../interfaces";
8
7
  import { EmailTemplateService } from '../email-template.service';
9
8
  import { PublisherFactory } from '../queues/publisher-factory.service';
9
+ import { SettingService } from '../setting.service';
10
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
10
11
 
11
12
  const nodemailer = require("nodemailer");
12
13
 
@@ -17,20 +18,27 @@ export class SMTPEMailService implements IMail {
17
18
  private readonly transporter: any;
18
19
 
19
20
  constructor(
20
- @Inject(commonConfig.KEY)
21
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
22
21
  // private readonly emailPublisher: EmailQueuePublisher,
23
22
  // private readonly emailDbPublisher: EmailQueueDbPublisher,
24
23
  private readonly publisherFactory: PublisherFactory<any>,
25
24
  private readonly emailTemplateService: EmailTemplateService,
25
+ private readonly settingService: SettingService
26
+
26
27
  ) {
28
+
29
+ const host = process.env.COMMON_SMTP_EMAIL_SMTP_HOST;
30
+ const port = +(process.env.COMMON_SMTP_EMAIL_SMTP_PORT ?? 587);
31
+ const username = process.env.COMMON_SMTP_EMAIL_USERNAME;
32
+ const password = process.env.COMMON_SMTP_EMAIL_PASSWORD;
33
+ const from = process.env.COMMON_SMTP_EMAIL_FROM ?? process.env.COMMON_EMAIL_FROM;
34
+
27
35
  this.transporter = nodemailer.createTransport({
28
- host: this.commonConfiguration.smtpMail.host,
29
- port: this.commonConfiguration.smtpMail.port,
30
- secure: this.commonConfiguration.smtpMail.port === 465,
36
+ host: host,
37
+ port: port,
38
+ secure: port === 465,
31
39
  auth: {
32
- user: this.commonConfiguration.smtpMail.username,
33
- pass: this.commonConfiguration.smtpMail.password
40
+ user: username,
41
+ pass: password
34
42
  }
35
43
  });
36
44
  }
@@ -81,7 +89,7 @@ export class SMTPEMailService implements IMail {
81
89
  ) {
82
90
  const message = {
83
91
  payload: {
84
- from: from || this.commonConfiguration.smtpMail.from,
92
+ from: from || this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom"),
85
93
  to: to,
86
94
  subject: subject,
87
95
  body: body,
@@ -98,7 +106,7 @@ export class SMTPEMailService implements IMail {
98
106
  return this.sendEmailAsynchronously(message);
99
107
  }
100
108
  // If developer has not, however system config mandates that we send using queue, still we send.
101
- else if (shouldQueueEmails == false && this.commonConfiguration.shouldQueueEmails === true) {
109
+ else if (shouldQueueEmails == false && this.settingService.getConfigValue<SolidCoreSetting>("shouldQueueEmails") === true) {
102
110
  return this.sendEmailAsynchronously(message);
103
111
  }
104
112
  // Else we send synchronously
@@ -117,7 +125,7 @@ export class SMTPEMailService implements IMail {
117
125
  let from;
118
126
  const { to, subject, body, attachments = [], cc, bcc } = message.payload;
119
127
 
120
- const envFrom = this.commonConfiguration.smtpMail.from;
128
+ const envFrom = this.settingService.getConfigValue<SolidCoreSetting>("smtpMailFrom");
121
129
  if (envFrom) {
122
130
  from = envFrom;
123
131
  }
@@ -16,6 +16,10 @@ export class MediaStorageProviderMetadataService {
16
16
  private readonly crudHelperService: CrudHelperService
17
17
  ) { }
18
18
 
19
+ async find(basicFilterDto: BasicFilterDto) {
20
+ return this.findMany(basicFilterDto);
21
+ }
22
+
19
23
  async findMany(basicFilterDto: BasicFilterDto) {
20
24
  const alias = 'mediaStorageProviderMetadata';
21
25
  // Extract the required keys from the input query
@@ -1,14 +1,12 @@
1
1
  import { forwardRef, Inject, Injectable, NotFoundException } from '@nestjs/common';
2
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
2
+ import { ModuleRef } from "@nestjs/core";
3
3
  import { InjectEntityManager } from '@nestjs/typeorm';
4
4
  import { EntityManager, In } from 'typeorm';
5
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
5
6
 
6
7
  import { ConfigService } from '@nestjs/config';
7
- import { CrudHelperService } from 'src/services/crud-helper.service';
8
8
  import { CRUDService } from 'src/services/crud.service';
9
9
  import { FileService } from 'src/services/file.service';
10
- import { ModelMetadataService } from 'src/services/model-metadata.service';
11
- import { ModuleMetadataService } from 'src/services/module-metadata.service';
12
10
 
13
11
 
14
12
  import { ERROR_MESSAGES } from 'src/constants/error-messages';
@@ -25,13 +23,8 @@ import { getMediaStorageProvider } from "./mediaStorageProviders";
25
23
  @Injectable()
26
24
  export class MediaService extends CRUDService<Media> {
27
25
  constructor(
28
- @Inject(forwardRef(() => ModelMetadataService))
29
- readonly modelMetadataService: ModelMetadataService,
30
- readonly moduleMetadataService: ModuleMetadataService,
31
26
  readonly configService: ConfigService,
32
27
  readonly fileService: FileService,
33
- readonly discoveryService: DiscoveryService,
34
- readonly crudHelperService: CrudHelperService,
35
28
  @InjectEntityManager()
36
29
  readonly entityManager: EntityManager,
37
30
  // @InjectRepository(Media, 'default')
@@ -49,15 +42,16 @@ export class MediaService extends CRUDService<Media> {
49
42
  private readonly fieldMetadataRepo: FieldMetadataRepository,
50
43
  readonly moduleRef: ModuleRef,
51
44
  ) {
52
- super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'media', 'solid-core', moduleRef);
45
+ super(entityManager, repo, 'media', 'solid-core', moduleRef);
53
46
  }
54
47
 
55
48
  async find(basicFilterDto: BasicFilterDto, solidRequestContext: any = {}) {
56
49
  const data = await super.find(basicFilterDto, solidRequestContext);
57
50
  if (data.records) {
58
- data.records.forEach((media: Media) => {
51
+
52
+ for (const media of data.records) {
59
53
  if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
60
- media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
54
+ media.relativeUri = `${this.settingService.getConfigValue<SolidCoreSetting>("baseUrl")}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
61
55
  } else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
62
56
  media.relativeUri = this.getAwsS3FullFilePath(
63
57
  media.relativeUri,
@@ -65,19 +59,42 @@ export class MediaService extends CRUDService<Media> {
65
59
  media.mediaStorageProviderMetadata.region
66
60
  );
67
61
  }
68
- });
62
+ }
63
+ // data.records.forEach((media: Media) => {
64
+ // if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
65
+ // media.relativeUri = `${process.env.BASE_URL}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
66
+ // } else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
67
+ // media.relativeUri = this.getAwsS3FullFilePath(
68
+ // media.relativeUri,
69
+ // media.mediaStorageProviderMetadata.bucketName,
70
+ // media.mediaStorageProviderMetadata.region
71
+ // );
72
+ // }
73
+ // });
69
74
  }
70
75
  if (data.groupRecords) {
71
- data.groupRecords.forEach((group) => {
72
- group.groupData.records.forEach((media) => {
76
+
77
+ for (const group of data.groupRecords) {
78
+ for (const media of group.groupData.records) {
73
79
  if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
74
- media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
80
+ media.relativeUri = `${this.settingService.getConfigValue<SolidCoreSetting>("baseUrl")}/${await this.getFileSysytemFullFilePath(media.relativeUri)}`;
75
81
  }
76
82
  else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
77
83
  media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
78
84
  }
79
- });
80
- });
85
+ }
86
+ }
87
+
88
+ // data.groupRecords.forEach((group) => {
89
+ // group.groupData.records.forEach((media) => {
90
+ // if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.Filesystem) {
91
+ // media.relativeUri = `${process.env.BASE_URL}/${this.getFileSysytemFullFilePath(media.relativeUri)}`;
92
+ // }
93
+ // else if (media.mediaStorageProviderMetadata?.type === MediaStorageProviderType.AwsS3) {
94
+ // media.relativeUri = this.getAwsS3FullFilePath(media.relativeUri, media.mediaStorageProviderMetadata.bucketName, media.mediaStorageProviderMetadata.region);
95
+ // }
96
+ // });
97
+ // });
81
98
  }
82
99
  return data
83
100
  }
@@ -111,7 +128,7 @@ export class MediaService extends CRUDService<Media> {
111
128
 
112
129
  switch (createDto.mediaStorageProviderMetadata.type) {
113
130
  case MediaStorageProviderType.Filesystem:
114
- const fileStoragePath = this.getFileSysytemFullFilePath(this.getFileName(file));
131
+ const fileStoragePath = await this.getFileSysytemFullFilePath(this.getFileName(file));
115
132
  await this.fileService.copyFile(file.path, fileStoragePath);
116
133
  createDto['relativeUri'] = this.getFileName(file);
117
134
  break;
@@ -171,11 +188,11 @@ export class MediaService extends CRUDService<Media> {
171
188
  }
172
189
  //TODO: Move this to a app builder config
173
190
 
174
- private getFileSysytemFullFilePath(fileName: string): string {
175
- return `${this.configService.get('app-builder.fileStorageDir')}/${fileName}`;
191
+ private async getFileSysytemFullFilePath(fileName: string): Promise<string> {
192
+ const fileStorageDir = this.settingService.getConfigValue<SolidCoreSetting>("fileStorageDir");
193
+ return `${fileStorageDir}/${fileName}`;
176
194
  }
177
195
 
178
-
179
196
  private getAwsS3FullFilePath(awsMediaurl: string, bucketName: string, regionName: string): string {
180
197
  // https://lunarismedia.s3.ap-south-1.amazonaws.com/LUNARIS_CP_REGISTRATION_CREATIVE.jpg
181
198
  return `https://${bucketName}.s3.${regionName}.amazonaws.com/${awsMediaurl}`;
@@ -9,7 +9,6 @@ import { MediaStorageProvider } from "src/interfaces";
9
9
  import { FileService } from "src/services/file.service";
10
10
  import { Readable } from "stream";
11
11
  import { MediaRepository } from "src/repository/media.repository";
12
- import commonConfig from "src/config/common.config";
13
12
 
14
13
  @Injectable()
15
14
  export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
@@ -21,8 +20,6 @@ export class FileS3StorageProvider<T> implements MediaStorageProvider<T> {
21
20
  private readonly configService: ConfigService,
22
21
  readonly fileService: FileService,
23
22
  readonly mediaRepository: MediaRepository,
24
- @Inject(commonConfig.KEY)
25
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
26
23
  ) { }
27
24
 
28
25
  storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {