@solidstarters/solid-core 1.2.203 → 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 (505) 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/selection-providers/list-of-roles-selectionproviders.service.d.ts +15 -0
  267. package/dist/services/selection-providers/list-of-roles-selectionproviders.service.d.ts.map +1 -0
  268. package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js +59 -0
  269. package/dist/services/selection-providers/list-of-roles-selectionproviders.service.js.map +1 -0
  270. package/dist/services/setting.service.d.ts +23 -30
  271. package/dist/services/setting.service.d.ts.map +1 -1
  272. package/dist/services/setting.service.js +147 -196
  273. package/dist/services/setting.service.js.map +1 -1
  274. package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
  275. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
  276. package/dist/services/settings/default-settings-provider.service.js +139 -0
  277. package/dist/services/settings/default-settings-provider.service.js.map +1 -0
  278. package/dist/services/short-url/tiny-url.service.d.ts +3 -4
  279. package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
  280. package/dist/services/short-url/tiny-url.service.js +10 -13
  281. package/dist/services/short-url/tiny-url.service.js.map +1 -1
  282. package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
  283. package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
  284. package/dist/services/sms/Msg91BaseSMSService.js +3 -3
  285. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  286. package/dist/services/sms/Msg91OTPService.d.ts +2 -3
  287. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  288. package/dist/services/sms/Msg91OTPService.js +7 -13
  289. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  290. package/dist/services/sms/Msg91SMSService.d.ts +2 -3
  291. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  292. package/dist/services/sms/Msg91SMSService.js +7 -13
  293. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  294. package/dist/services/sms/TwilioSMSService.d.ts +3 -4
  295. package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
  296. package/dist/services/sms/TwilioSMSService.js +13 -16
  297. package/dist/services/sms/TwilioSMSService.js.map +1 -1
  298. package/dist/services/sms-template.service.d.ts +2 -13
  299. package/dist/services/sms-template.service.d.ts.map +1 -1
  300. package/dist/services/sms-template.service.js +4 -22
  301. package/dist/services/sms-template.service.js.map +1 -1
  302. package/dist/services/solid-introspect.service.d.ts +4 -1
  303. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  304. package/dist/services/solid-introspect.service.js +33 -47
  305. package/dist/services/solid-introspect.service.js.map +1 -1
  306. package/dist/services/textract.service.d.ts +1 -4
  307. package/dist/services/textract.service.d.ts.map +1 -1
  308. package/dist/services/textract.service.js +14 -18
  309. package/dist/services/textract.service.js.map +1 -1
  310. package/dist/services/user-activity-history.service.d.ts +2 -13
  311. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  312. package/dist/services/user-activity-history.service.js +4 -22
  313. package/dist/services/user-activity-history.service.js.map +1 -1
  314. package/dist/services/user-view-metadata.service.d.ts +2 -13
  315. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  316. package/dist/services/user-view-metadata.service.js +4 -22
  317. package/dist/services/user-view-metadata.service.js.map +1 -1
  318. package/dist/services/user.service.d.ts +2 -15
  319. package/dist/services/user.service.d.ts.map +1 -1
  320. package/dist/services/user.service.js +7 -28
  321. package/dist/services/user.service.js.map +1 -1
  322. package/dist/services/view-metadata.service.d.ts +2 -13
  323. package/dist/services/view-metadata.service.d.ts.map +1 -1
  324. package/dist/services/view-metadata.service.js +5 -23
  325. package/dist/services/view-metadata.service.js.map +1 -1
  326. package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
  327. package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
  328. package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
  329. package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
  330. package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
  331. package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
  332. package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
  333. package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
  334. package/dist/solid-core.module.d.ts.map +1 -1
  335. package/dist/solid-core.module.js +11 -47
  336. package/dist/solid-core.module.js.map +1 -1
  337. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  338. package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
  339. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  340. package/dist/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +1 -1
  342. package/src/commands/info.command.ts +101 -0
  343. package/src/commands/mcp.command.ts +3 -17
  344. package/src/commands/seed.command.ts +4 -16
  345. package/src/controllers/email-template.controller.ts +9 -4
  346. package/src/controllers/google-authentication.controller.ts +19 -12
  347. package/src/controllers/setting.controller.ts +6 -81
  348. package/src/decorators/settings-provider.decorator.ts +7 -0
  349. package/src/decorators/solid-password.decorator.ts +43 -43
  350. package/src/dtos/create-role-metadata.dto.ts +4 -81
  351. package/src/dtos/create-setting.dto.ts +14 -1
  352. package/src/dtos/update-setting.dto.ts +14 -0
  353. package/src/entities/setting.entity.ts +15 -1
  354. package/src/factories/mail.factory.ts +4 -4
  355. package/src/factories/sms.factory.ts +9 -7
  356. package/src/factories/whatsapp.factory.ts +4 -4
  357. package/src/guards/access-token.guard.ts +12 -5
  358. package/src/helpers/cors.helper.ts +3 -3
  359. package/src/helpers/error-mapper.service.ts +0 -1
  360. package/src/helpers/google-oauth.helper.ts +11 -7
  361. package/src/helpers/module.helper.ts +2 -2
  362. package/src/helpers/solid-registry.ts +45 -16
  363. package/src/index.ts +2 -4
  364. package/src/interfaces.ts +29 -0
  365. package/src/passport-strategies/google-oauth.strategy.ts +11 -8
  366. package/src/seeders/email-template-seeder.service.ts +6 -4
  367. package/src/seeders/module-metadata-seeder.service.ts +40 -28
  368. package/src/seeders/seed-data/solid-core-metadata.json +99 -5
  369. package/src/seeders/sms-template-seeder.service.ts +6 -4
  370. package/src/services/action-metadata.service.ts +4 -16
  371. package/src/services/ai-interaction.service.ts +6 -17
  372. package/src/services/authentication.service.ts +173 -111
  373. package/src/services/bcrypt.service.ts +9 -9
  374. package/src/services/chatter-message-details.service.ts +5 -17
  375. package/src/services/chatter-message.service.ts +2 -14
  376. package/src/services/crud.service.ts +36 -28
  377. package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
  378. package/src/services/dashboard-question.service.ts +4 -17
  379. package/src/services/dashboard-variable.service.ts +4 -16
  380. package/src/services/dashboard.service.ts +2 -13
  381. package/src/services/email-template.service.ts +3 -15
  382. package/src/services/export-template.service.ts +4 -18
  383. package/src/services/export-transaction.service.ts +4 -19
  384. package/src/services/field-metadata.service.ts +5 -1
  385. package/src/services/file/file-service.interface.ts +74 -0
  386. package/src/services/file.service.ts +10 -7
  387. package/src/services/genai/r2r-helper.service.ts +10 -6
  388. package/src/services/import-transaction-error-log.service.ts +5 -17
  389. package/src/services/import-transaction.service.ts +3 -15
  390. package/src/services/list-of-values.service.ts +3 -16
  391. package/src/services/locale.service.ts +3 -15
  392. package/src/services/mail/elastic-email.service.ts +7 -7
  393. package/src/services/mail/smtp-email.service.ts +19 -11
  394. package/src/services/media-storage-provider-metadata.service.ts +4 -0
  395. package/src/services/media.service.ts +39 -22
  396. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
  397. package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
  398. package/src/services/mediaStorageProviders/index.ts +1 -1
  399. package/src/services/menu-item-metadata.service.ts +5 -17
  400. package/src/services/model-metadata.service.ts +4 -0
  401. package/src/services/model-sequence.service.ts +4 -15
  402. package/src/services/module-metadata.service.ts +13 -4
  403. package/src/services/mq-message-queue.service.ts +5 -17
  404. package/src/services/mq-message.service.ts +5 -17
  405. package/src/services/permission-metadata.service.ts +4 -16
  406. package/src/services/role-metadata.service.ts +3 -16
  407. package/src/services/saved-filters.service.ts +2 -13
  408. package/src/services/scheduled-job.service.ts +3 -15
  409. package/src/services/security-rule.service.ts +4 -16
  410. package/src/services/selection-providers/list-of-roles-selectionproviders.service.ts +69 -0
  411. package/src/services/setting.service.ts +223 -212
  412. package/src/services/settings/default-settings-provider.service.ts +157 -0
  413. package/src/services/short-url/tiny-url.service.ts +9 -7
  414. package/src/services/sms/Msg91BaseSMSService.ts +6 -4
  415. package/src/services/sms/Msg91OTPService.ts +7 -7
  416. package/src/services/sms/Msg91SMSService.ts +7 -6
  417. package/src/services/sms/TwilioSMSService.ts +18 -19
  418. package/src/services/sms-template.service.ts +3 -15
  419. package/src/services/solid-introspect.service.ts +45 -66
  420. package/src/services/textract.service.ts +13 -10
  421. package/src/services/user-activity-history.service.ts +5 -17
  422. package/src/services/user-view-metadata.service.ts +5 -17
  423. package/src/services/user.service.ts +7 -22
  424. package/src/services/view-metadata.service.ts +3 -15
  425. package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
  426. package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
  427. package/src/solid-core.module.ts +19 -49
  428. package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
  429. package/dist/config/app-builder.config.d.ts +0 -11
  430. package/dist/config/app-builder.config.d.ts.map +0 -1
  431. package/dist/config/app-builder.config.js +0 -13
  432. package/dist/config/app-builder.config.js.map +0 -1
  433. package/dist/config/common.config.d.ts +0 -96
  434. package/dist/config/common.config.d.ts.map +0 -1
  435. package/dist/config/common.config.js +0 -51
  436. package/dist/config/common.config.js.map +0 -1
  437. package/dist/config/iam.config.d.ts +0 -56
  438. package/dist/config/iam.config.d.ts.map +0 -1
  439. package/dist/config/iam.config.js +0 -35
  440. package/dist/config/iam.config.js.map +0 -1
  441. package/dist/config/jwt.config.d.ts +0 -14
  442. package/dist/config/jwt.config.d.ts.map +0 -1
  443. package/dist/config/jwt.config.js +0 -15
  444. package/dist/config/jwt.config.js.map +0 -1
  445. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
  446. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
  447. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
  448. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
  449. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
  450. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
  451. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
  452. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
  453. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
  454. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
  455. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
  456. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
  457. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
  458. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
  459. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
  460. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
  461. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
  462. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
  463. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
  464. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
  465. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
  466. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
  467. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
  468. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
  469. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
  470. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
  471. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
  472. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
  473. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
  474. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
  475. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
  476. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
  477. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
  478. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
  479. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
  480. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
  481. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
  482. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
  483. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
  484. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
  485. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
  486. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
  487. package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
  488. package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
  489. package/src/config/app-builder.config.ts +0 -12
  490. package/src/config/common.config.ts +0 -55
  491. package/src/config/iam.config.ts +0 -32
  492. package/src/config/jwt.config.ts +0 -13
  493. package/src/services/export_issues.txt +0 -10
  494. package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
  495. package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
  496. package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
  497. package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
  498. package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
  499. package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
  500. package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
  501. package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
  502. package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
  503. package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
  504. package/src/services/groupBy.json +0 -92
  505. package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidstarters/solid-core",
3
- "version": "1.2.203",
3
+ "version": "1.2.206",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -0,0 +1,101 @@
1
+ import { Logger } from '@nestjs/common';
2
+ import { Command, CommandRunner, Option } from 'nest-commander';
3
+ import * as fs from 'fs';
4
+ import * as path from 'path';
5
+ import { ISolidDatabaseModule } from 'src/interfaces';
6
+ import { getDynamicModuleNames } from 'src/helpers/module.helper';
7
+ import { SolidRegistry } from 'src/helpers/solid-registry';
8
+ import { SettingService } from 'src/services/setting.service';
9
+
10
+ interface InfoCommandOptions {
11
+ detailed?: boolean;
12
+ }
13
+
14
+ @Command({ name: 'info', description: 'Prints information about the consuming project' })
15
+ export class InfoCommand extends CommandRunner {
16
+ private readonly logger = new Logger(InfoCommand.name);
17
+
18
+ constructor(
19
+ private readonly solidRegistry: SolidRegistry,
20
+ private readonly settingService: SettingService,
21
+ ) {
22
+ super();
23
+ }
24
+
25
+ async run(passedParam: string[], options?: InfoCommandOptions): Promise<void> {
26
+ const enabledModules = getDynamicModuleNames();
27
+ const dataSources = this.getDataSources();
28
+
29
+ const output: Record<string, any> = {
30
+ modules: {
31
+ count: enabledModules.length,
32
+ names: enabledModules,
33
+ },
34
+ dataSources: {
35
+ count: dataSources.length,
36
+ items: dataSources,
37
+ },
38
+ };
39
+
40
+ if (options?.detailed) {
41
+ output.registry = this.getRegistryDetails();
42
+ }
43
+
44
+ console.log(JSON.stringify(output, null, 2));
45
+ }
46
+
47
+ private getRegistryDetails(): Record<string, unknown> {
48
+ const info = {
49
+ settings: this.settingService.getAllSettings(),
50
+ seeders: this.getWrapperNames(this.solidRegistry.getSeeders()),
51
+ scheduledJobProviders: this.getWrapperNames(this.solidRegistry.getScheduledJobProviders()),
52
+ selectionProviders: this.getWrapperNames(this.solidRegistry.getSelectionProviders()),
53
+ computedFieldProviders: this.getWrapperNames(this.solidRegistry.getComputedFieldProviders()),
54
+ solidDatabaseModules: this.getWrapperNames(this.solidRegistry.getSolidDatabaseModules()),
55
+ dashboardVariableSelectionProviders: this.getWrapperNames(this.solidRegistry.getDashboardVariableSelectionProviders()),
56
+ dashboardQuestionDataProviders: this.getWrapperNames(this.solidRegistry.getDashboardQuestionDataProviders()),
57
+ mailProviders: this.getWrapperNames(this.solidRegistry.getMailProviders()),
58
+ whatsappProviders: this.getWrapperNames(this.solidRegistry.getWhatsappProviders()),
59
+ smsProviders: this.getWrapperNames(this.solidRegistry.getSmsProviders()),
60
+ securityRuleConfigProviders: this.getWrapperNames(this.solidRegistry.getSecurityRuleConfigProviders()),
61
+ errorCodeProviders: this.getWrapperNames(this.solidRegistry.getErrorCodeProviders()),
62
+ controllers: this.solidRegistry.getControllers().map((controller) => controller.name),
63
+ // modules: this.getWrapperNames(this.solidRegistry.getModules()),
64
+ // computedFieldMetadata: {
65
+ // count: this.solidRegistry.getComputedFieldMetadata().length,
66
+ // },
67
+ // defaultLocale: this.solidRegistry.getDefaultLocale()?.locale ?? null,
68
+ };
69
+
70
+ return info;
71
+ }
72
+
73
+ private getWrapperNames(wrappers: Array<{ name?: string; instance?: any }>): string[] {
74
+ return wrappers
75
+ .map((wrapper) => wrapper.name || wrapper.instance?.constructor?.name)
76
+ .filter((name): name is string => !!name);
77
+ }
78
+
79
+ private getDataSources(): Array<{ name: string; type: string | null }> {
80
+ const fromRegistry = this.solidRegistry
81
+ .getSolidDatabaseModules()
82
+ .map((wrapper) => wrapper.instance as ISolidDatabaseModule)
83
+ .filter((module): module is ISolidDatabaseModule => !!module)
84
+ .map((module) => ({
85
+ name: module.name?.(),
86
+ type: module.type?.() ?? null,
87
+ }))
88
+ .filter((item) => !!item.name);
89
+
90
+
91
+ return fromRegistry;
92
+
93
+ }
94
+
95
+ // Flags
96
+ @Option({ flags: '-d, --detailed [boolean]', description: 'Print more details about the consuming project', required: false, defaultValue: false })
97
+ parseDetached(val: string): boolean {
98
+ if (val === undefined) return false;
99
+ return val === 'true' || val === '1';
100
+ }
101
+ }
@@ -167,12 +167,7 @@ export class McpCommand extends CommandRunner {
167
167
  return path.resolve(inputPath);
168
168
  }
169
169
 
170
- private runDockerCommand(
171
- cmd: string,
172
- args: string[],
173
- cwd: string,
174
- env: NodeJS.ProcessEnv,
175
- ): Promise<void> {
170
+ private runDockerCommand(cmd: string, args: string[], cwd: string, env: NodeJS.ProcessEnv): Promise<void> {
176
171
  return new Promise((resolve, reject) => {
177
172
  const child = spawn(cmd, args, {
178
173
  cwd,
@@ -193,22 +188,13 @@ export class McpCommand extends CommandRunner {
193
188
  }
194
189
 
195
190
  // Flags
196
-
197
- @Option({
198
- flags: '-d, --detached [boolean]',
199
- description: 'Run containers in detached mode (only for start, default: false)',
200
- required: false,
201
- })
191
+ @Option({ flags: '-d, --detached [boolean]', description: 'Run containers in detached mode (only for start, default: false)', required: false, })
202
192
  parseDetached(val: string): boolean {
203
193
  if (val === undefined) return false;
204
194
  return val === 'true' || val === '1';
205
195
  }
206
196
 
207
- @Option({
208
- flags: '-p, --repo-path [path]',
209
- description: 'Path to the SolidX MCP Server repo containing docker-compose.yml',
210
- required: false,
211
- })
197
+ @Option({ flags: '-p, --repo-path [path]', description: 'Path to the SolidX MCP Server repo containing docker-compose.yml', required: false, })
212
198
  parseRepoPath(val: string): string {
213
199
  return val;
214
200
  }
@@ -16,8 +16,8 @@ export class SeedCommand extends CommandRunner {
16
16
  }
17
17
 
18
18
  async run(passedParam: string[], options?: SeedCommandOptions): Promise<void> {
19
- // TODO: check if options.conf is non empty and a valid json string only is -c flag is passed.
20
- // TODO: convert to json object JSON.parse
19
+ // check if options.conf is non empty and a valid json string only is -c flag is passed.
20
+ // convert to json object JSON.parse
21
21
  let parsedConf: any = null;
22
22
 
23
23
  // Parse conf only if provided
@@ -33,8 +33,6 @@ export class SeedCommand extends CommandRunner {
33
33
  this.logger.log('No --conf flag provided. Running with default seeder behavior.');
34
34
  }
35
35
 
36
-
37
-
38
36
  const seeder = this.solidRegistry
39
37
  .getSeeders()
40
38
  .filter((seeder) => seeder.name === options.seeder)
@@ -48,26 +46,16 @@ export class SeedCommand extends CommandRunner {
48
46
  await seeder.seed(parsedConf);
49
47
  }
50
48
 
51
- @Option({
52
- flags: '-c, --conf [configuration json]',
53
- description: 'A configuration json, pass a valid json string.',
54
- required: false
55
- })
56
49
  /**
57
- * TODO
58
50
  * This parameter will be useful, to support seeders with the same name in different modules
59
51
  * Currently the seeder service won't support seeder with same classname within a module
60
52
  **/
53
+ @Option({ flags: '-c, --conf [configuration json]', description: 'A configuration json, pass a valid json string.', required: false })
61
54
  parseConf(val: string): string {
62
55
  return val;
63
56
  }
64
57
 
65
- @Option({
66
- flags: '-s, --seeder [seeder name]',
67
- description: 'The seeder to run.',
68
- required: true,
69
- defaultValue: 'ModuleMetadataSeederService'
70
- })
58
+ @Option({ flags: '-s, --seeder [seeder name]', description: 'The seeder to run.', required: true, defaultValue: 'ModuleMetadataSeederService' })
71
59
  parseString(val: string): string {
72
60
  return val;
73
61
  }
@@ -4,15 +4,20 @@ import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
4
4
  import { CreateEmailTemplateDto } from '../dtos/create-email-template.dto';
5
5
  import { UpdateEmailTemplateDto } from '../dtos/update-email-template.dto';
6
6
  import { EmailTemplateService } from '../services/email-template.service';
7
+ import { SettingService } from '../services/setting.service';
8
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
7
9
 
8
- // TODO: esInterop not working somehow, defaulted to using the require syntax to import Mailgen. Figure a better way to do this.
10
+ // TODO: esInterop not working somehow, defaulted to using the require syntax to import Mailgen. Figure a better way to do this.
9
11
  import Mailgen = require('mailgen');
10
12
 
11
13
 
12
14
  @Controller('email-template')
13
15
  @ApiTags("Solid Core")
14
16
  export class EmailTemplateController {
15
- constructor(private readonly service: EmailTemplateService) { }
17
+ constructor(
18
+ private readonly service: EmailTemplateService,
19
+ private readonly settingService: SettingService,
20
+ ) { }
16
21
 
17
22
  @ApiBearerAuth("jwt")
18
23
  @Post()
@@ -73,8 +78,8 @@ export class EmailTemplateController {
73
78
  @Get('mailgen-template/:templateType')
74
79
  @Header('content-type', 'text/html')
75
80
  generateMailgenTemplate(@Param('templateType') templateType: string) {
76
- const appName = process.env.SOLID_APP_NAME;
77
- const appUrl = process.env.SOLID_APP_WEBSITE_URL;
81
+ const appName = this.settingService.getConfigValue<SolidCoreSetting>('appTitle');
82
+ const appUrl = this.settingService.getConfigValue<SolidCoreSetting>('solidAppWebsiteUrl');
78
83
 
79
84
  // Configure mailgen by setting a theme and your product info
80
85
  var mailGenerator = new Mailgen({
@@ -2,14 +2,15 @@ import { Controller, Get, Inject, InternalServerErrorException, Query, Req, Res,
2
2
  import { ConfigType } from '@nestjs/config';
3
3
  import { ApiQuery, ApiTags } from '@nestjs/swagger';
4
4
  import { Request, Response } from 'express';
5
- import { isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
6
- import { iamConfig } from '../config/iam.config';
5
+ import { GoogleAuthConfiguration, isGoogleOAuthConfigured } from 'src/helpers/google-oauth.helper';
7
6
  import { Auth } from '../decorators/auth.decorator';
8
7
  import { Public } from '../decorators/public.decorator';
9
8
  import { AuthType } from '../enums/auth-type.enum';
10
9
  import { GoogleOauthGuard } from '../passport-strategies/google-oauth.strategy';
11
10
  import { AuthenticationService } from '../services/authentication.service';
12
11
  import { UserService } from '../services/user.service';
12
+ import { SettingService } from 'src/services/setting.service';
13
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
13
14
 
14
15
 
15
16
 
@@ -20,8 +21,8 @@ import { UserService } from '../services/user.service';
20
21
  // @SkipThrottle({ login: false, short: false, burst: true, sustained: true }) //Enable the login throttle only
21
22
  export class GoogleAuthenticationController {
22
23
  constructor(
23
- @Inject(iamConfig.KEY) private iamConfiguration: ConfigType<typeof iamConfig>,
24
24
  private readonly userService: UserService,
25
+ private readonly settingService: SettingService,
25
26
  private readonly authService: AuthenticationService,
26
27
  ) { }
27
28
 
@@ -29,11 +30,17 @@ export class GoogleAuthenticationController {
29
30
  @UseGuards(GoogleOauthGuard)
30
31
  @Get('connect')
31
32
  async connect() {
32
- this.validateConfiguration();
33
+ await this.validateConfiguration();
33
34
  }
34
35
 
35
- private validateConfiguration() {
36
- if (!isGoogleOAuthConfigured(this.iamConfiguration)) {
36
+ private async validateConfiguration() {
37
+ const googleOauth: GoogleAuthConfiguration = {
38
+ clientID: this.settingService.getConfigValue<SolidCoreSetting>("clientID"),
39
+ clientSecret: this.settingService.getConfigValue<SolidCoreSetting>("clientSecret"),
40
+ callbackURL: this.settingService.getConfigValue<SolidCoreSetting>("callbackURL"),
41
+ redirectURL: this.settingService.getConfigValue<SolidCoreSetting>("redirectURL"),
42
+ }
43
+ if (!isGoogleOAuthConfigured(googleOauth)) {
37
44
  throw new InternalServerErrorException('Google OAuth is not configured');
38
45
  }
39
46
  }
@@ -41,10 +48,10 @@ export class GoogleAuthenticationController {
41
48
  @Public()
42
49
  @Get('connect/callback')
43
50
  @UseGuards(GoogleOauthGuard)
44
- googleAuthCallback(@Req() req: Request, @Res() res: Response) {
45
- this.validateConfiguration();
51
+ async googleAuthCallback(@Req() req: Request, @Res() res: Response) {
52
+ await this.validateConfiguration();
46
53
  const user = req.user;
47
-
54
+ const googleOauthRedirectURL = await this.settingService.getConfigValue<SolidCoreSetting>("redirectURL");
48
55
  // console.log(`Found user: ${JSON.stringify(user)}`);
49
56
  // const token = await this.authService.signIn(req.user);
50
57
  // res.cookie('access_token', token, {
@@ -55,7 +62,7 @@ export class GoogleAuthenticationController {
55
62
  // return req.user;
56
63
  // return res;
57
64
 
58
- return res.redirect(`${this.iamConfiguration.googleOauth.redirectURL}?accessCode=${user['accessCode']}`);
65
+ return res.redirect(`${googleOauthRedirectURL}?accessCode=${user['accessCode']}`);
59
66
  }
60
67
 
61
68
  /**
@@ -68,7 +75,7 @@ export class GoogleAuthenticationController {
68
75
  @Public()
69
76
  @Get('dummy-redirect')
70
77
  async dummyGoogleAuthRedirect(@Query('accessCode') accessCode) {
71
- this.validateConfiguration();
78
+ await this.validateConfiguration();
72
79
  const user = await this.userService.findOneByAccessCode(accessCode);
73
80
 
74
81
  delete user['password'];
@@ -86,7 +93,7 @@ export class GoogleAuthenticationController {
86
93
  @Get('authenticate')
87
94
  @ApiQuery({ name: 'accessCode', required: true, type: String })
88
95
  async googleAuth(@Query('accessCode') accessCode) {
89
- this.validateConfiguration();
96
+ await this.validateConfiguration();
90
97
  return this.authService.signInUsingGoogle(accessCode);
91
98
  }
92
99
  }
@@ -1,32 +1,17 @@
1
- import { BadRequestException, Body, Controller, Delete, Get, Param, Patch, Post, Put, Query, UploadedFiles, UseInterceptors } from '@nestjs/common';
1
+ import { BadRequestException, Body, Controller, Get, Put, Query, UploadedFiles, UseInterceptors } from '@nestjs/common';
2
2
  import { AnyFilesInterceptor } from "@nestjs/platform-express";
3
3
  import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
4
4
  import { Public } from 'src/decorators/public.decorator';
5
5
  import { SolidRequestContextDecorator } from 'src/decorators/solid-request-context.decorator';
6
6
  import { SolidRequestContextDto } from 'src/dtos/solid-request-context.dto';
7
7
  import { CreateSettingDto } from '../dtos/create-setting.dto';
8
- import { UpdateSettingDto } from '../dtos/update-setting.dto';
9
8
  import { SettingService } from '../services/setting.service';
10
9
 
11
10
  @ApiTags('Solid Core')
12
- @Controller('setting') //FIXME: Change this to the model plural name
11
+ @Controller('setting')
13
12
  export class SettingController {
14
13
  constructor(private readonly service: SettingService) { }
15
14
 
16
- @ApiBearerAuth("jwt")
17
- @Post()
18
- @UseInterceptors(AnyFilesInterceptor())
19
- create(@Body() createDto: CreateSettingDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
20
- return this.service.create(createDto, files, solidRequestContext);
21
- }
22
-
23
- @ApiBearerAuth("jwt")
24
- @Post('/bulk')
25
- @UseInterceptors(AnyFilesInterceptor())
26
- insertMany(@Body() createDtos: CreateSettingDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = [], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
27
- return this.service.insertMany(createDtos, filesArray, solidRequestContext);
28
- }
29
-
30
15
  /**
31
16
  * Important to keep this method just above the @Put(':id') definition that follows as otherwise it will conflict.
32
17
  *
@@ -48,30 +33,16 @@ export class SettingController {
48
33
  return this.service.updateSettings(settings, files);
49
34
  }
50
35
 
51
- @ApiBearerAuth("jwt")
52
- @Put(':id')
53
- @UseInterceptors(AnyFilesInterceptor())
54
- update(@Param('id') id: number, @Body() updateDto: UpdateSettingDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
55
- return this.service.update(id, updateDto, files, false, solidRequestContext);
56
- }
57
-
58
- @ApiBearerAuth("jwt")
59
- @Patch(':id')
60
- @UseInterceptors(AnyFilesInterceptor())
61
- partialUpdate(@Param('id') id: number, @Body() updateDto: UpdateSettingDto, @UploadedFiles() files: Array<Express.Multer.File>, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
62
- return this.service.update(id, updateDto, files, true, solidRequestContext);
63
- }
64
-
65
- @ApiBearerAuth("jwt")
66
36
  @Get('/wrapped')
67
37
  @Public()
68
38
  async wrapSettings() {
69
- return this.service.wrapSettings();
39
+ return this.service.getSystemAdminReadonlyAndAboveSettings();
70
40
  }
71
41
 
42
+ @ApiBearerAuth("jwt")
72
43
  @Get()
73
44
  async getAllSettings() {
74
- return this.service.getAllSettings();
45
+ return this.service.getSystemAdminReadonlyAndAboveSettings();
75
46
  }
76
47
 
77
48
  @ApiBearerAuth("jwt")
@@ -83,50 +54,4 @@ export class SettingController {
83
54
 
84
55
  }
85
56
 
86
- @ApiBearerAuth("jwt")
87
- @ApiQuery({ name: 'showSoftDeleted', required: false, type: Boolean })
88
- @ApiQuery({ name: 'showOnlySoftDeleted', required: false, type: Boolean })
89
- @ApiQuery({ name: 'limit', required: false, type: Number })
90
- @ApiQuery({ name: 'offset', required: false, type: Number })
91
- @ApiQuery({ name: 'fields', required: false, type: Array })
92
- @ApiQuery({ name: 'sort', required: false, type: Array })
93
- @ApiQuery({ name: 'groupBy', required: false, type: Array })
94
- @ApiQuery({ name: 'populate', required: false, type: Array })
95
- @ApiQuery({ name: 'populateMedia', required: false, type: Array })
96
- @ApiQuery({ name: 'filters', required: false, type: Array })
97
- @Get()
98
- async findMany(@Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
99
- return this.service.find(query, solidRequestContext);
100
- }
101
-
102
- @ApiBearerAuth("jwt")
103
- @Get(':id')
104
- async findOne(@Param('id') id: string, @Query() query: any, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
105
- return this.service.findOne(+id, query, solidRequestContext);
106
- }
107
-
108
- @Delete('/bulk')
109
- async deleteMany(@Body() ids: number[], @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
110
- return this.service.deleteMany(ids, solidRequestContext);
111
- }
112
-
113
- @ApiBearerAuth("jwt")
114
- @Delete(':id')
115
- async delete(@Param('id') id: number, @SolidRequestContextDecorator() solidRequestContext: SolidRequestContextDto) {
116
- return this.service.delete(id, solidRequestContext);
117
- }
118
-
119
- // @ApiBearerAuth("jwt")
120
- // @Post('/bulk/user')
121
- // @UseInterceptors(AnyFilesInterceptor())
122
- // async updateUserSettings(@Body() body: any, @UploadedFiles() files: Array<Express.Multer.File>) {
123
- // let settings: CreateSettingDto[] = [];
124
- // try {
125
- // settings = typeof body.settings === 'string' ? JSON.parse(body.settings) : body.settings;
126
- // } catch (e) {
127
- // throw new BadRequestException('Invalid settings payload');
128
- // }
129
- // return this.service.updateSettings(settings, files);
130
- // }
131
-
132
- }
57
+ }
@@ -0,0 +1,7 @@
1
+ import { SetMetadata } from "@nestjs/common";
2
+
3
+ export const IS_SETTINGS_PROVIDER = 'IS_SETTINGS_PROVIDER';
4
+
5
+
6
+ export const SettingsProvider = () => SetMetadata(IS_SETTINGS_PROVIDER, true);
7
+
@@ -1,59 +1,59 @@
1
1
  // solid-password.decorator.ts
2
+ import type { SolidCoreSetting } from "src/services/settings/default-settings-provider.service";
2
3
  import {
3
- registerDecorator,
4
- ValidationArguments,
5
- ValidationOptions,
6
- ValidatorConstraint,
7
- ValidatorConstraintInterface,
4
+ registerDecorator,
5
+ ValidationArguments,
6
+ ValidationOptions,
7
+ ValidatorConstraint,
8
+ ValidatorConstraintInterface,
8
9
  } from 'class-validator';
9
10
  import { Injectable } from '@nestjs/common';
10
- import { iamConfig } from '../config/iam.config';
11
11
  import { SettingService } from 'src/services/setting.service';
12
12
 
13
13
  interface SolidPasswordOptions extends ValidationOptions {
14
- regex?: RegExp | string;
15
- message?: string;
14
+ regex?: RegExp | string;
15
+ message?: string;
16
16
  }
17
17
 
18
- @ValidatorConstraint({ async: false })
18
+ @ValidatorConstraint({ async: true })
19
19
  @Injectable()
20
20
  export class SolidPasswordConstraint implements ValidatorConstraintInterface {
21
- private lastMessage = 'Password does not meet complexity requirements';
22
-
23
- constructor(private readonly settingService: SettingService) {}
24
-
25
- async validate(value: string, args: ValidationArguments) {
26
- if (!value) return false;
27
-
28
- const opts = args.constraints[0] as SolidPasswordOptions;
29
-
30
- // Regex source
31
- let regex = opts?.regex;
32
- if (!regex) {
33
- regex = await this.settingService.getConfigValue('authenticationPasswordRegex');
34
- }
35
-
36
- // Message source
37
- this.lastMessage =
38
- opts?.message || await this.settingService.getConfigValue('authenticationPasswordRegexErrorMessage');
39
-
40
- return new RegExp(regex).test(value);
41
- }
42
-
43
- defaultMessage(args?: ValidationArguments): string {
44
- return this.lastMessage;
21
+ private lastMessage = 'Password does not meet complexity requirements';
22
+
23
+ constructor(private readonly settingService: SettingService) { }
24
+
25
+ async validate(value: string, args: ValidationArguments) {
26
+ if (!value) return false;
27
+
28
+ const opts = args.constraints[0] as SolidPasswordOptions;
29
+
30
+ // Regex source
31
+ let regex = opts?.regex;
32
+ if (!regex) {
33
+ regex = this.settingService.getConfigValue<SolidCoreSetting>('authenticationPasswordRegex');
45
34
  }
35
+
36
+ // Message source
37
+ this.lastMessage =
38
+ opts?.message || this.settingService.getConfigValue<SolidCoreSetting>('authenticationPasswordRegexErrorMessage');
39
+
40
+ return new RegExp(regex).test(value);
46
41
  }
42
+
43
+ defaultMessage(args?: ValidationArguments): string {
44
+ return this.lastMessage;
45
+ }
46
+ }
47
47
  export function SolidPasswordRegex(
48
- options?: SolidPasswordOptions,
48
+ options?: SolidPasswordOptions,
49
49
  ): PropertyDecorator {
50
- return (object: Object, propertyName: string) => {
51
- registerDecorator({
52
- target: object.constructor,
53
- propertyName,
54
- options,
55
- constraints: [options],
56
- validator: SolidPasswordConstraint,
57
- });
58
- };
50
+ return (object: Object, propertyName: string) => {
51
+ registerDecorator({
52
+ target: object.constructor,
53
+ propertyName,
54
+ options,
55
+ constraints: [options],
56
+ validator: SolidPasswordConstraint,
57
+ });
58
+ };
59
59
  }
@@ -6,6 +6,10 @@ import { UpdateUserDto } from 'src/dtos/update-user.dto';
6
6
  import { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';
7
7
  import { ApiProperty } from '@nestjs/swagger';
8
8
 
9
+ export const ADMIN_ROLE_NAME = 'Admin';
10
+ export const INTERNAL_ROLE_NAME = 'Internal User';
11
+ export const PUBLIC_ROLE_NAME = 'Public';
12
+
9
13
  export class CreateRoleMetadataDto {
10
14
  @IsNotEmpty()
11
15
  @IsString()
@@ -54,84 +58,3 @@ export class CreateRoleMetadataDto {
54
58
  @ApiProperty()
55
59
  menuItemsCommand: string;
56
60
  }
57
-
58
- export const ADMIN_ROLE_NAME = 'Admin';
59
-
60
- export const INTERNAL_ROLE_NAME = 'Internal User';
61
-
62
- export const PUBLIC_ROLE_NAME = 'Public';
63
-
64
- export const INTERNAL_ROLE_PERMISSIONS = [
65
- // User permissions
66
- 'UserController.findMany', //Why do we need this?
67
- 'UserController.checkIfPermissionExists',
68
- 'UserController.findOne',
69
-
70
- // Menu permissions
71
- 'MenuItemMetadataController.findMany',
72
- 'MenuItemMetadataController.findUserMenus',
73
- 'MenuItemMetadataController.findOne',
74
-
75
- // View metadata permissions
76
- 'ViewMetadataController.getLayout',
77
- 'ViewMetadataController.findMany',
78
- 'ViewMetadataController.findOne',
79
-
80
- // Action metadata permissions
81
- 'ActionMetadataController.findMany',
82
- 'ActionMetadataController.findOne',
83
-
84
- // User View metadata permissions
85
- 'UserViewMetadataController.upsert',
86
- 'UserViewMetadataController.findMany',
87
- 'UserViewMetadataController.findOne',
88
-
89
- // IAM permissions
90
- 'AuthenticationController.changePassword',
91
- 'AuthenticationController.logout',
92
- 'AuthenticationController.me',
93
-
94
- // Field Metadata permissions
95
- 'ModelMetadataController.navigation',
96
-
97
- // Field Metadata permissions
98
- 'FieldMetadataController.getSelectionDynamicValues',
99
- 'FieldMetadataController.getSelectionDynamicValue',
100
- 'FieldMetadataController.findFieldDefaultMetaData',
101
-
102
- // Saved Filters permissions
103
- 'SavedFiltersController.delete',
104
- 'SavedFiltersController.deleteMany',
105
- 'SavedFiltersController.findOne',
106
- 'SavedFiltersController.findMany',
107
- 'SavedFiltersController.recover',
108
- 'SavedFiltersController.recoverMany',
109
- 'SavedFiltersController.partialUpdate',
110
- 'SavedFiltersController.update',
111
- 'SavedFiltersController.insertMany',
112
- 'SavedFiltersController.create',
113
-
114
- // Other permissions can be added here as required.
115
- // Chatter permissions
116
- 'ChatterMessageController.create',
117
- 'ChatterMessageController.getChatterMessages',
118
- 'ChatterMessageController.postMessage',
119
- 'ChatterMessageController.findMany',
120
-
121
- // Import
122
- 'ImportTransactionController.getImportTemplate',
123
- 'ImportTransactionController.getImportInstructions',
124
- 'ImportTransactionController.getImportMappingInfo',
125
- 'ImportTransactionController.startImportSync',
126
- 'ImportTransactionController.startImportAsync',
127
- 'ImportTransactionController.exportFailedImportedImports',
128
-
129
- // Export permissions
130
- 'ExportTemplateController.startExportSync',
131
- 'ExportTemplateController.startExportAsync',
132
-
133
- // List of values
134
- 'ListOfValuesController.findMany',
135
- 'ListOfValuesController.findOne',
136
- // Media // [Not required], since media is always populated as part of a model
137
- ]