@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
@@ -16,11 +16,24 @@ export class CreateSettingDto {
16
16
  @ApiProperty()
17
17
  type: string;
18
18
  @IsOptional()
19
+ @IsString()
20
+ @ApiProperty()
21
+ level: string;
22
+ @IsOptional()
19
23
  @IsInt()
20
24
  @ApiProperty({ description: "This is the user id field" })
21
25
  userId: number;
22
26
  @IsString()
23
27
  @IsOptional()
24
- @ApiProperty({ description: "This is the user id field" })
28
+ @ApiProperty({ description: "This is the user userkey field" })
25
29
  userUserKey: string;
30
+
31
+ @IsOptional()
32
+ @IsInt()
33
+ @ApiProperty({ description: "This is the moduleMetadata id field" })
34
+ moduleMetadataId: number;
35
+ @IsString()
36
+ @IsOptional()
37
+ @ApiProperty({ description: "This is the moduleMetadata userkey field" })
38
+ moduleMetadataUserKey: string;
26
39
  }
@@ -18,6 +18,10 @@ export class UpdateSettingDto {
18
18
  @ApiProperty()
19
19
  type: string;
20
20
  @IsOptional()
21
+ @IsString()
22
+ @ApiProperty()
23
+ level: string;
24
+ @IsOptional()
21
25
  @IsInt()
22
26
  @ApiProperty({ description: "This is the user id field" })
23
27
  userId: number;
@@ -25,4 +29,14 @@ export class UpdateSettingDto {
25
29
  @IsOptional()
26
30
  @ApiProperty({ description: "This is the user id field" })
27
31
  userUserKey: string;
32
+
33
+ @IsOptional()
34
+ @IsInt()
35
+ @ApiProperty({ description: "This is the moduleMetadata id field" })
36
+ moduleMetadataId: number;
37
+ @IsString()
38
+ @IsOptional()
39
+ @ApiProperty({ description: "This is the moduleMetadata userkey field" })
40
+ moduleMetadataUserKey: string;
41
+
28
42
  }
@@ -1,17 +1,31 @@
1
1
  import { CommonEntity } from 'src/entities/common.entity'
2
2
  import { Entity, Column, Index, JoinColumn, ManyToOne } from 'typeorm';
3
3
  import { User } from 'src/entities/user.entity'
4
+ import { ModuleMetadata } from './module-metadata.entity';
4
5
 
5
6
  @Entity("ss_setting")
6
7
  export class Setting extends CommonEntity {
8
+
7
9
  @Index({ unique: true })
8
10
  @Column({ type: "varchar", nullable: false })
9
11
  key: string;
12
+
10
13
  @Column({ type: "varchar", nullable: true })
11
14
  value: string;
15
+
12
16
  @Column({ name: "type", type: "varchar", nullable: true })
13
17
  type: string;
18
+
19
+ @Column({ name: "level", type: "varchar", nullable: true })
20
+ level: string;
21
+
22
+ @Index()
14
23
  @ManyToOne(() => User, { nullable: true })
15
24
  @JoinColumn()
16
25
  user: User;
17
- }
26
+
27
+ @Index()
28
+ @ManyToOne(() => ModuleMetadata, { nullable: true })
29
+ @JoinColumn()
30
+ moduleMetadata: ModuleMetadata;
31
+ }
@@ -1,9 +1,10 @@
1
1
  import { Inject, Injectable, Logger } from "@nestjs/common";
2
2
  import { ConfigType } from "@nestjs/config";
3
3
  import { ModuleRef } from "@nestjs/core";
4
- import commonConfig from "src/config/common.config";
5
4
  import { SolidRegistry } from "src/helpers/solid-registry";
6
5
  import { IMail } from "src/interfaces";
6
+ import { SettingService } from "src/services/setting.service";
7
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
7
8
 
8
9
  function norm(s?: string) {
9
10
  return s?.trim().toLowerCase();
@@ -16,12 +17,11 @@ export class MailFactory {
16
17
  constructor(
17
18
  private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service
18
19
  private readonly solidRegistry: SolidRegistry,
19
- @Inject(commonConfig.KEY)
20
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
20
+ private readonly settingService: SettingService,
21
21
  ) { }
22
22
 
23
23
  getMailService(): IMail {
24
- const mailServiceName = this.commonConfiguration.emailProvider;
24
+ const mailServiceName = this.settingService.getConfigValue<SolidCoreSetting>("emailProvider") ?? "SMTPEMailService";
25
25
  const mailProviders = this.solidRegistry.getMailProviders();
26
26
  // Return the instance which matches the mailServiceName
27
27
  if (!mailProviders.length) {
@@ -1,9 +1,9 @@
1
- import { Inject, Injectable, Logger } from "@nestjs/common";
2
- import { ConfigType } from "@nestjs/config";
1
+ import { Injectable, Logger } from "@nestjs/common";
3
2
  import { ModuleRef } from "@nestjs/core";
4
- import commonConfig from "src/config/common.config";
5
3
  import { SolidRegistry } from "src/helpers/solid-registry";
6
4
  import { ISMS } from "src/interfaces";
5
+ import { SettingService } from "src/services/setting.service";
6
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
7
7
 
8
8
  function norm(s?: string) {
9
9
  return s?.trim().toLowerCase();
@@ -17,13 +17,15 @@ export class SmsFactory {
17
17
  constructor(
18
18
  private readonly moduleRef: ModuleRef,
19
19
  private readonly solidRegistry: SolidRegistry,
20
- @Inject(commonConfig.KEY)
21
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
20
+ private readonly settingService: SettingService,
21
+ // @Inject(commonConfig.KEY)
22
+ // private readonly commonConfiguration: ConfigType<typeof commonConfig>,
22
23
  ) { }
23
24
 
24
25
  getSmsService(name: string = null): ISMS {
25
26
  // This is the default provider
26
- const smsServiceName = name || this.commonConfiguration.smsProvider;
27
+ // const smsServiceName = name || this.commonConfiguration.smsProvider;
28
+ const smsServiceName = this.settingService.getConfigValue<SolidCoreSetting>('smsProvider');
27
29
  if (!smsServiceName) {
28
30
  throw new Error("Unable to resolve sms provider")
29
31
  }
@@ -40,4 +42,4 @@ export class SmsFactory {
40
42
  return smsServiceProvider.instance as ISMS;
41
43
  }
42
44
 
43
- }
45
+ }
@@ -1,9 +1,10 @@
1
1
  import { Inject, Injectable, Logger } from "@nestjs/common";
2
2
  import { ConfigType } from "@nestjs/config";
3
3
  import { ModuleRef } from "@nestjs/core";
4
- import commonConfig from "src/config/common.config";
5
4
  import { SolidRegistry } from "src/helpers/solid-registry";
6
5
  import { IWhatsAppTransport } from "src/interfaces";
6
+ import { SettingService } from "src/services/setting.service";
7
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
7
8
 
8
9
  function norm(s?: string) {
9
10
  return s?.trim().toLowerCase();
@@ -16,13 +17,12 @@ export class WhatsAppFactory {
16
17
  constructor(
17
18
  private readonly moduleRef: ModuleRef, // Use the module ref to dynamically resolve the mail service
18
19
  private readonly solidRegistry: SolidRegistry,
19
- @Inject(commonConfig.KEY)
20
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
20
+ private readonly settingService: SettingService,
21
21
  ) { }
22
22
 
23
23
  getWhatsappService(name: string = null): IWhatsAppTransport {
24
24
  // This is the default provider
25
- const whatsappServiceName = name || this.commonConfiguration.whatsappProvider;
25
+ const whatsappServiceName = name || this.settingService.getConfigValue<SolidCoreSetting>("whatsappProvider");
26
26
  if (!whatsappServiceName) {
27
27
  throw new Error("Unable to resolve whatsapp provider")
28
28
  }
@@ -1,3 +1,4 @@
1
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
1
2
  import {
2
3
  CanActivate,
3
4
  ExecutionContext,
@@ -5,22 +6,20 @@ import {
5
6
  Injectable,
6
7
  UnauthorizedException,
7
8
  } from '@nestjs/common';
8
- import { ConfigType } from '@nestjs/config';
9
9
  import { JwtService } from '@nestjs/jwt';
10
10
  import { Request } from 'express';
11
11
  import { ActiveUserData } from '../interfaces/active-user-data.interface';
12
- import { jwtConfig } from 'src/config/jwt.config';
13
12
  import { REQUEST_USER_KEY } from "../constants";
14
13
  import { PermissionMetadataService } from '../services/permission-metadata.service';
15
14
  import { ClsService } from 'nestjs-cls';
15
+ import { SettingService } from '../services/setting.service';
16
16
 
17
17
  @Injectable()
18
18
  export class AccessTokenGuard implements CanActivate {
19
19
  constructor(
20
20
  private readonly jwtService: JwtService,
21
- @Inject(jwtConfig.KEY)
22
- private readonly jwtConfiguration: ConfigType<typeof jwtConfig>,
23
21
  private readonly permissionsService: PermissionMetadataService,
22
+ private readonly settingService: SettingService,
24
23
  private readonly cls: ClsService
25
24
  ) { }
26
25
 
@@ -32,9 +31,17 @@ export class AccessTokenGuard implements CanActivate {
32
31
  throw new UnauthorizedException();
33
32
  }
34
33
  try {
34
+
35
+ const jwtConfiguration = {
36
+ secret: this.settingService.getConfigValue<SolidCoreSetting>("secret"),
37
+ audience: this.settingService.getConfigValue<SolidCoreSetting>("audience"),
38
+ issuer: this.settingService.getConfigValue<SolidCoreSetting>("issuer"),
39
+ accessTokenTtl: this.settingService.getConfigValue<SolidCoreSetting>("accessTokenTtl"),
40
+ refreshTokenTtl: this.settingService.getConfigValue<SolidCoreSetting>("refreshTokenTtl")
41
+ }
35
42
  const payload: ActiveUserData = await this.jwtService.verifyAsync(
36
43
  token,
37
- this.jwtConfiguration,
44
+ jwtConfiguration
38
45
  );
39
46
 
40
47
  // Load permissions given the user.
@@ -1,9 +1,9 @@
1
1
  import { CorsOptions } from 'cors';
2
- import { ConfigService } from '@nestjs/config';
3
2
 
4
3
  /** Build CorsOptions from env; supports wildcards like https://*.example.com */
5
- export function buildDefaultCorsOptions(configService: ConfigService): CorsOptions {
6
- const rawOrigins = configService.get<string>('SECURITY_CORS_ORIGINS') ?? '*';
4
+ export function buildDefaultCorsOptions(): CorsOptions {
5
+ const rawOrigins = process.env.SECURITY_CORS_ORIGINS ?? '*';
6
+
7
7
  const allowed = rawOrigins.split(',').map(s => s.trim()).filter(Boolean);
8
8
 
9
9
  const escapeRx = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
@@ -68,7 +68,6 @@ export class ErrorMapperService {
68
68
  for (const p of providers) {
69
69
  try {
70
70
  const rules = p.rules() ?? [];
71
- // Optional: namespace collision check can be added here if desired
72
71
  all.push(...rules);
73
72
  } catch (e) {
74
73
  this.logger.warn(`ErrorCodeProvider.rules() failed for ${p.name?.()}: ${e}`);
@@ -1,9 +1,13 @@
1
- import { ConfigType } from "@nestjs/config";
2
- import { iamConfig } from "src/config/iam.config";
3
1
 
4
- export function isGoogleOAuthConfigured(iamConfiguration: ConfigType<typeof iamConfig>): boolean {
5
- const googleOauthConfig = iamConfiguration.googleOauth;
6
-
7
- return !!googleOauthConfig.clientID
2
+ export type GoogleAuthConfiguration = {
3
+ clientID: String,
4
+ clientSecret: String,
5
+ callbackURL: String,
6
+ redirectURL: String
7
+ }
8
+
9
+ export function isGoogleOAuthConfigured(googleOauthConfig: GoogleAuthConfiguration): boolean {
10
+
11
+ return !!googleOauthConfig.clientID
8
12
  && !!googleOauthConfig.clientSecret && !!googleOauthConfig.callbackURL && !!googleOauthConfig.redirectURL;
9
- }
13
+ }
@@ -32,7 +32,7 @@ export const getDynamicModuleNames = (): string[] => {
32
32
  .map(dirent => dirent.name);
33
33
 
34
34
  // logger.debug(`Enabled dynamic modules:`, enabledModules);
35
- console.log(`Dynamic Modules Are:`, enabledModules);
35
+ // console.log(`Dynamic Modules Are:`, enabledModules);
36
36
 
37
37
  return enabledModules;
38
38
  }
@@ -67,7 +67,7 @@ export const getDynamicModuleNamesBasedOnMetadata = (): string[] => {
67
67
  .map(dirent => dirent.name);
68
68
 
69
69
  // logger.debug(`Enabled dynamic modules basis src:`, enabledModules);
70
- console.log(`Src Based Dynamic Modules Are:`, enabledModules);
70
+ // console.log(`Src Based Dynamic Modules Are:`, enabledModules);
71
71
  return enabledModules;
72
72
  }
73
73
 
@@ -5,11 +5,12 @@ import { CommonEntity } from 'src/entities/common.entity';
5
5
  import { Locale } from 'src/entities/locale.entity';
6
6
  import { SecurityRule } from 'src/entities/security-rule.entity';
7
7
  import { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';
8
- import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
8
+ import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule, ISettingsProvider, SettingDefinition } from "../interfaces";
9
9
  import { DatasourceType } from 'src/dtos/create-model-metadata.dto';
10
10
  import { ObjectLiteral } from 'typeorm';
11
11
  import { ColumnMetadata } from 'typeorm/metadata/ColumnMetadata';
12
12
  import { RelationMetadata } from 'typeorm/metadata/RelationMetadata';
13
+ import { Setting } from 'src/entities/setting.entity';
13
14
 
14
15
  type ControllerMetadata = {
15
16
  name: string;
@@ -84,6 +85,7 @@ export class SolidRegistry {
84
85
  private smsProviders: Set<InstanceWrapper> = new Set();
85
86
  private securityRuleConfigProviders: Set<InstanceWrapper> = new Set();
86
87
  private errorCodeProviders: Set<InstanceWrapper> = new Set();
88
+ private settingsProviders: Set<InstanceWrapper> = new Set();
87
89
 
88
90
  registerErrorCodeProvider(errorCodeProvider: InstanceWrapper): void {
89
91
  this.errorCodeProviders.add(errorCodeProvider);
@@ -145,6 +147,37 @@ export class SolidRegistry {
145
147
  this.modules = new Set(modules);
146
148
  }
147
149
 
150
+ registerSettingsProvider(provider: InstanceWrapper) {
151
+ this.settingsProviders.add(provider);
152
+ }
153
+
154
+ registerSecurityRules(securityRules: SecurityRule[]) {
155
+ this.securityRules = securityRules;
156
+ }
157
+
158
+ registerlocales(locales: Locale[]) {
159
+ this.locales = locales;
160
+ }
161
+
162
+ registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {
163
+ this.computedFieldMetadata = computedFieldMetadata;
164
+ }
165
+
166
+ getSettingsProviders(): InstanceWrapper[] {
167
+ return Array.from(this.settingsProviders);
168
+ }
169
+
170
+ getSettingsProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {
171
+ const settingsProviders = this.getSettingsProviders();
172
+
173
+ for (let i = 0; i < settingsProviders.length; i++) {
174
+ const settingsProvider = settingsProviders[i];
175
+ if (settingsProvider.instance.name() === name) {
176
+ return settingsProvider.instance;
177
+ }
178
+ }
179
+ }
180
+
148
181
  getMailProviders(): Array<InstanceWrapper> {
149
182
  return Array.from(this.mailProviders);
150
183
  }
@@ -236,10 +269,8 @@ export class SolidRegistry {
236
269
  return dasbhoardQuestionDataProvider.instance;
237
270
  }
238
271
  }
239
-
240
272
  }
241
273
 
242
-
243
274
  getComputedFieldProviders(): Array<InstanceWrapper> {
244
275
  return Array.from(this.computedFieldProviders);
245
276
  }
@@ -291,18 +322,6 @@ export class SolidRegistry {
291
322
  return module
292
323
  }
293
324
 
294
- registerSecurityRules(securityRules: SecurityRule[]) {
295
- this.securityRules = securityRules;
296
- }
297
-
298
- registerlocales(locales: Locale[]) {
299
- this.locales = locales;
300
- }
301
-
302
- registerComputedFieldMetadata(computedFieldMetadata: ComputedFieldMetadata[]) {
303
- this.computedFieldMetadata = computedFieldMetadata;
304
- }
305
-
306
325
  getComputedFieldMetadata(): ComputedFieldMetadata[] {
307
326
  return this.computedFieldMetadata;
308
327
  }
@@ -328,4 +347,14 @@ export class SolidRegistry {
328
347
  // return Reflect.getMetadataKeys(CommonEntity.prototype) as (keyof CommonEntity)[];
329
348
  }
330
349
 
331
- }
350
+
351
+ getAllSettingsProviderInstance<T extends ISelectionProviderContext>(): ISelectionProvider<T> {
352
+ const settingsProviders = this.getSettingsProviders();
353
+
354
+ for (let i = 0; i < settingsProviders.length; i++) {
355
+ const settingsProvider = settingsProviders[i];
356
+ return settingsProvider.instance;
357
+ }
358
+ }
359
+ }
360
+
package/src/index.ts CHANGED
@@ -4,9 +4,6 @@ export * from './commands/refresh-module.command'
4
4
  export * from './commands/remove-fields.command'
5
5
  export * from './commands/seed.command'
6
6
 
7
- export * from './config/app-builder.config'
8
- export {default as commonConfig} from './config/common.config'
9
- export * from './config/iam.config'
10
7
  export * from './config/cache.options'
11
8
 
12
9
  export * from './decorators/active-user.decorator'
@@ -25,6 +22,7 @@ export * from './decorators/solid-service.decorator'
25
22
  export * from './decorators/mail-provider.decorator'
26
23
  export * from './decorators/security-rule-config-provider.decorator'
27
24
  export * from './decorators/sms-provider.decorator'
25
+ export * from './decorators/settings-provider.decorator'
28
26
 
29
27
  export * from './dtos/post-chatter-message.dto'
30
28
  export * from './dtos/security-rule-config.dto'
@@ -236,7 +234,6 @@ export * from './services/hashing.service'
236
234
  export * from './services/list-of-values.service'
237
235
  export * from './services/mail/elastic-email.service'
238
236
  export * from './services/mail/smtp-email.service'
239
- export * from './services/media-storage-provider-metadata-seeder.service'
240
237
  export * from './services/media-storage-provider-metadata.service'
241
238
  export * from './services/media.service'
242
239
  export * from './services/mediaStorageProviders/file-s3-storage-provider'
@@ -267,6 +264,7 @@ export * from './services/user.service'
267
264
  export * from './services/view-metadata.service'
268
265
  export * from './services/whatsapp/Msg91WhatsappService' //rename
269
266
  export * from './services/setting.service'
267
+ export * from './services/settings/default-settings-provider.service'
270
268
  export * from './services/security-rule.service'
271
269
  export * from './services/request-context.service'
272
270
  export * from './services/chatter-message.service'
package/src/interfaces.ts CHANGED
@@ -58,6 +58,25 @@ export interface ModuleMetadataConfiguration {
58
58
  dashboards?: CreateDashboardDto[],
59
59
  }
60
60
 
61
+ export enum SettingLevel {
62
+ SystemEnv = 'system-env',
63
+ SystemAdminReadonly = 'system-admin-readonly',
64
+ SystemAdminEditable = 'system-admin-editable',
65
+ InternalUser = "internal-user"
66
+ }
67
+
68
+ export interface SettingDefinition<T = any> {
69
+ moduleName: string;
70
+ key: string;
71
+ value: T;
72
+ level: SettingLevel;
73
+ }
74
+
75
+ // solid-core/settings/settings-provider.interface.ts
76
+ export interface ISettingsProvider {
77
+ getSettings(): SettingDefinition[];
78
+ }
79
+
61
80
  export interface CodeGenerationOptions {
62
81
  moduleId?: number;
63
82
  moduleUserKey?: string;
@@ -355,3 +374,13 @@ export interface McpComputedProviderResponse {
355
374
  export interface ISecurityRuleConfigProvider {
356
375
  securityRuleConfig(activeUser: ActiveUserData, securityRule: SecurityRule): Promise<SecurityRuleConfig>;
357
376
  }
377
+
378
+
379
+ export interface AwsS3Config {
380
+ S3_AWS_ACCESS_KEY: string;
381
+ S3_AWS_SECRET_KEY: string;
382
+ S3_AWS_REGION_NAME: string;
383
+ }
384
+
385
+ // Prevents inference so callers must provide explicit type arguments; reusable for other APIs.
386
+ export type NoInfer<T> = [T][T extends any ? 0 : never];
@@ -2,9 +2,8 @@ import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import { ConfigType } from '@nestjs/config';
3
3
  import { AuthGuard, PassportStrategy } from '@nestjs/passport';
4
4
  import { Strategy, VerifyCallback } from 'passport-google-oauth2';
5
- import { isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
5
+ import { GoogleAuthConfiguration, isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
6
6
  import { v4 as uuid } from 'uuid';
7
- import { iamConfig } from '../config/iam.config';
8
7
  import { UserService } from '../services/user.service';
9
8
 
10
9
  const DUMMY_CLIENT_ID = 'DUMMY_CLIENT_ID';
@@ -19,19 +18,23 @@ export class GoogleOauthGuard extends AuthGuard('google') { }
19
18
  export class GoogleOauthStrategy extends PassportStrategy(Strategy, 'google') {
20
19
  private readonly logger = new Logger(GoogleOauthStrategy.name);
21
20
  constructor(
22
- @Inject(iamConfig.KEY) private iamConfiguration: ConfigType<typeof iamConfig>,
23
21
  private readonly userService: UserService
24
22
  ) {
25
23
  // TODO: Have added default dummy values for the configuration, since the configuration is not mandatory.
26
24
  // Perhaps a cleaner way needs to be figured out
27
25
  super({
28
- clientID: iamConfiguration.googleOauth.clientID ?? DUMMY_CLIENT_ID,
29
- clientSecret: iamConfiguration.googleOauth.clientSecret ?? DUMMY_CLIENT_SECRET,
30
- callbackURL: iamConfiguration.googleOauth.callbackURL ?? DUMMY_CALLBACK_URL,
26
+ clientID: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID ?? DUMMY_CLIENT_ID,
27
+ clientSecret: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET ?? DUMMY_CLIENT_SECRET,
28
+ callbackURL: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL ?? DUMMY_CALLBACK_URL,
31
29
  scope: ['profile', 'email'],
32
30
  });
33
-
34
- if (!isGoogleOAuthConfigured(iamConfiguration)) {
31
+ const googleOauth: GoogleAuthConfiguration = {
32
+ clientID: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,
33
+ clientSecret: process.env.IAM_GOOGLE_OAUTH_CLIENT_SECRET,
34
+ callbackURL: process.env.IAM_GOOGLE_OAUTH_CALLBACK_URL,
35
+ redirectURL: process.env.IAM_GOOGLE_OAUTH_REDIRECT_URL,
36
+ }
37
+ if (!isGoogleOAuthConfigured(googleOauth)) {
35
38
  this.logger.debug('Google OAuth strategy is not configured');
36
39
  }
37
40
  }
@@ -1,11 +1,12 @@
1
1
  import { Inject, Injectable, Logger } from '@nestjs/common';
2
2
  import * as fs from 'fs';
3
3
  import * as path from 'path';
4
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
4
5
 
5
6
  import { ConfigType } from '@nestjs/config';
6
7
  import { EmailTemplateService } from '../services/email-template.service';
7
- import commonConfig from '../config/common.config';
8
8
  import { CreateEmailTemplateDto } from '../dtos/create-email-template.dto';
9
+ import { SettingService } from 'src/services/setting.service';
9
10
 
10
11
  @Injectable()
11
12
  export class EmailTemplateSeederService {
@@ -13,13 +14,14 @@ export class EmailTemplateSeederService {
13
14
 
14
15
  constructor(
15
16
  private readonly emailTemplateService: EmailTemplateService,
16
- @Inject(commonConfig.KEY)
17
- private readonly commonConfiguration: ConfigType<typeof commonConfig>,
17
+ private readonly settingService: SettingService
18
18
  ) { }
19
19
 
20
20
  async seed() {
21
21
  // Read the module metadata from a file specified in the .env
22
- const seedDataFiles = this.commonConfiguration.emailTemplateSeederFiles.split(',');
22
+ const seedDataFileVariable = this.settingService.getConfigValue<SolidCoreSetting>("emailTemplateSeederFiles");
23
+ const seedDataFiles = seedDataFileVariable.split(',');
24
+
23
25
  for (let i = 0; i < seedDataFiles.length; i++) {
24
26
  const seedDataFile = seedDataFiles[i];
25
27
  const fullPath = path.join(process.cwd(), seedDataFile);