@solidstarters/solid-core 1.2.204 → 1.2.207

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 (542) 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 +3 -12
  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/controllers/test.controller.d.ts.map +1 -1
  27. package/dist/controllers/test.controller.js.map +1 -1
  28. package/dist/decorators/settings-provider.decorator.d.ts +3 -0
  29. package/dist/decorators/settings-provider.decorator.d.ts.map +1 -0
  30. package/dist/decorators/settings-provider.decorator.js +8 -0
  31. package/dist/decorators/settings-provider.decorator.js.map +1 -0
  32. package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
  33. package/dist/decorators/solid-password.decorator.js +3 -3
  34. package/dist/decorators/solid-password.decorator.js.map +1 -1
  35. package/dist/dtos/create-role-metadata.dto.d.ts +3 -4
  36. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  37. package/dist/dtos/create-role-metadata.dto.js +4 -51
  38. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  39. package/dist/dtos/create-scheduled-job.dto.d.ts +1 -0
  40. package/dist/dtos/create-scheduled-job.dto.d.ts.map +1 -1
  41. package/dist/dtos/create-scheduled-job.dto.js +7 -1
  42. package/dist/dtos/create-scheduled-job.dto.js.map +1 -1
  43. package/dist/dtos/create-setting.dto.d.ts +3 -0
  44. package/dist/dtos/create-setting.dto.d.ts.map +1 -1
  45. package/dist/dtos/create-setting.dto.js +20 -2
  46. package/dist/dtos/create-setting.dto.js.map +1 -1
  47. package/dist/dtos/update-scheduled-job.dto.d.ts +1 -0
  48. package/dist/dtos/update-scheduled-job.dto.d.ts.map +1 -1
  49. package/dist/dtos/update-scheduled-job.dto.js +7 -1
  50. package/dist/dtos/update-scheduled-job.dto.js.map +1 -1
  51. package/dist/dtos/update-setting.dto.d.ts +3 -0
  52. package/dist/dtos/update-setting.dto.d.ts.map +1 -1
  53. package/dist/dtos/update-setting.dto.js +19 -1
  54. package/dist/dtos/update-setting.dto.js.map +1 -1
  55. package/dist/entities/scheduled-job.entity.d.ts +1 -0
  56. package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
  57. package/dist/entities/scheduled-job.entity.js +5 -1
  58. package/dist/entities/scheduled-job.entity.js.map +1 -1
  59. package/dist/entities/setting.entity.d.ts +3 -0
  60. package/dist/entities/setting.entity.d.ts.map +1 -1
  61. package/dist/entities/setting.entity.js +13 -1
  62. package/dist/entities/setting.entity.js.map +1 -1
  63. package/dist/factories/mail.factory.d.ts +3 -4
  64. package/dist/factories/mail.factory.d.ts.map +1 -1
  65. package/dist/factories/mail.factory.js +6 -12
  66. package/dist/factories/mail.factory.js.map +1 -1
  67. package/dist/factories/sms.factory.d.ts +3 -4
  68. package/dist/factories/sms.factory.d.ts.map +1 -1
  69. package/dist/factories/sms.factory.js +6 -12
  70. package/dist/factories/sms.factory.js.map +1 -1
  71. package/dist/factories/whatsapp.factory.d.ts +3 -4
  72. package/dist/factories/whatsapp.factory.d.ts.map +1 -1
  73. package/dist/factories/whatsapp.factory.js +6 -12
  74. package/dist/factories/whatsapp.factory.js.map +1 -1
  75. package/dist/guards/access-token.guard.d.ts +3 -4
  76. package/dist/guards/access-token.guard.d.ts.map +1 -1
  77. package/dist/guards/access-token.guard.js +14 -9
  78. package/dist/guards/access-token.guard.js.map +1 -1
  79. package/dist/helpers/command.service.d.ts +5 -1
  80. package/dist/helpers/command.service.d.ts.map +1 -1
  81. package/dist/helpers/command.service.js +26 -11
  82. package/dist/helpers/command.service.js.map +1 -1
  83. package/dist/helpers/cors.helper.d.ts +1 -2
  84. package/dist/helpers/cors.helper.d.ts.map +1 -1
  85. package/dist/helpers/cors.helper.js +2 -2
  86. package/dist/helpers/cors.helper.js.map +1 -1
  87. package/dist/helpers/error-mapper.service.d.ts.map +1 -1
  88. package/dist/helpers/error-mapper.service.js.map +1 -1
  89. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js +2 -2
  90. package/dist/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.js.map +1 -1
  91. package/dist/helpers/google-oauth.helper.d.ts +7 -3
  92. package/dist/helpers/google-oauth.helper.d.ts.map +1 -1
  93. package/dist/helpers/google-oauth.helper.js +1 -2
  94. package/dist/helpers/google-oauth.helper.js.map +1 -1
  95. package/dist/helpers/module.helper.js +0 -2
  96. package/dist/helpers/module.helper.js.map +1 -1
  97. package/dist/helpers/schematic.service.d.ts +3 -2
  98. package/dist/helpers/schematic.service.d.ts.map +1 -1
  99. package/dist/helpers/schematic.service.js +32 -27
  100. package/dist/helpers/schematic.service.js.map +1 -1
  101. package/dist/helpers/solid-registry.d.ts +8 -3
  102. package/dist/helpers/solid-registry.d.ts.map +1 -1
  103. package/dist/helpers/solid-registry.js +32 -9
  104. package/dist/helpers/solid-registry.js.map +1 -1
  105. package/dist/index.d.ts +2 -4
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +3 -6
  108. package/dist/index.js.map +1 -1
  109. package/dist/interfaces.d.ts +21 -0
  110. package/dist/interfaces.d.ts.map +1 -1
  111. package/dist/interfaces.js +8 -1
  112. package/dist/interfaces.js.map +1 -1
  113. package/dist/passport-strategies/google-oauth.strategy.d.ts +1 -4
  114. package/dist/passport-strategies/google-oauth.strategy.d.ts.map +1 -1
  115. package/dist/passport-strategies/google-oauth.strategy.js +12 -12
  116. package/dist/passport-strategies/google-oauth.strategy.js.map +1 -1
  117. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  118. package/dist/repository/scheduled-job.repository.js +1 -0
  119. package/dist/repository/scheduled-job.repository.js.map +1 -1
  120. package/dist/seeders/email-template-seeder.service.d.ts +3 -4
  121. package/dist/seeders/email-template-seeder.service.d.ts.map +1 -1
  122. package/dist/seeders/email-template-seeder.service.js +7 -12
  123. package/dist/seeders/email-template-seeder.service.js.map +1 -1
  124. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -5
  125. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  126. package/dist/seeders/module-metadata-seeder.service.js +24 -24
  127. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  128. package/dist/seeders/seed-data/solid-core-metadata.json +119 -5
  129. package/dist/seeders/sms-template-seeder.service.d.ts +3 -4
  130. package/dist/seeders/sms-template-seeder.service.d.ts.map +1 -1
  131. package/dist/seeders/sms-template-seeder.service.js +7 -12
  132. package/dist/seeders/sms-template-seeder.service.js.map +1 -1
  133. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  134. package/dist/seeders/system-fields-seeder.service.js +3 -0
  135. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  136. package/dist/services/action-metadata.service.d.ts +2 -13
  137. package/dist/services/action-metadata.service.d.ts.map +1 -1
  138. package/dist/services/action-metadata.service.js +4 -22
  139. package/dist/services/action-metadata.service.js.map +1 -1
  140. package/dist/services/ai-interaction.service.d.ts +2 -13
  141. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  142. package/dist/services/ai-interaction.service.js +6 -24
  143. package/dist/services/ai-interaction.service.js.map +1 -1
  144. package/dist/services/authentication.service.d.ts +14 -10
  145. package/dist/services/authentication.service.d.ts.map +1 -1
  146. package/dist/services/authentication.service.js +158 -116
  147. package/dist/services/authentication.service.js.map +1 -1
  148. package/dist/services/bcrypt.service.d.ts +3 -5
  149. package/dist/services/bcrypt.service.d.ts.map +1 -1
  150. package/dist/services/bcrypt.service.js +10 -14
  151. package/dist/services/bcrypt.service.js.map +1 -1
  152. package/dist/services/chatter-message-details.service.d.ts +2 -13
  153. package/dist/services/chatter-message-details.service.d.ts.map +1 -1
  154. package/dist/services/chatter-message-details.service.js +4 -22
  155. package/dist/services/chatter-message-details.service.js.map +1 -1
  156. package/dist/services/chatter-message.service.d.ts +2 -13
  157. package/dist/services/chatter-message.service.d.ts.map +1 -1
  158. package/dist/services/chatter-message.service.js +5 -23
  159. package/dist/services/chatter-message.service.js.map +1 -1
  160. package/dist/services/crud.service.d.ts +12 -12
  161. package/dist/services/crud.service.d.ts.map +1 -1
  162. package/dist/services/crud.service.js +25 -17
  163. package/dist/services/crud.service.js.map +1 -1
  164. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +2 -13
  165. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
  166. package/dist/services/dashboard-question-sql-dataset-config.service.js +4 -21
  167. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
  168. package/dist/services/dashboard-question.service.d.ts +2 -13
  169. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  170. package/dist/services/dashboard-question.service.js +4 -21
  171. package/dist/services/dashboard-question.service.js.map +1 -1
  172. package/dist/services/dashboard-variable.service.d.ts +2 -13
  173. package/dist/services/dashboard-variable.service.d.ts.map +1 -1
  174. package/dist/services/dashboard-variable.service.js +4 -21
  175. package/dist/services/dashboard-variable.service.js.map +1 -1
  176. package/dist/services/dashboard.service.d.ts +2 -13
  177. package/dist/services/dashboard.service.d.ts.map +1 -1
  178. package/dist/services/dashboard.service.js +4 -21
  179. package/dist/services/dashboard.service.js.map +1 -1
  180. package/dist/services/email-template.service.d.ts +2 -13
  181. package/dist/services/email-template.service.d.ts.map +1 -1
  182. package/dist/services/email-template.service.js +4 -22
  183. package/dist/services/email-template.service.js.map +1 -1
  184. package/dist/services/export-template.service.d.ts +2 -13
  185. package/dist/services/export-template.service.d.ts.map +1 -1
  186. package/dist/services/export-template.service.js +4 -21
  187. package/dist/services/export-template.service.js.map +1 -1
  188. package/dist/services/export-transaction.service.d.ts +2 -13
  189. package/dist/services/export-transaction.service.d.ts.map +1 -1
  190. package/dist/services/export-transaction.service.js +4 -21
  191. package/dist/services/export-transaction.service.js.map +1 -1
  192. package/dist/services/field-metadata.service.d.ts +11 -0
  193. package/dist/services/field-metadata.service.d.ts.map +1 -1
  194. package/dist/services/field-metadata.service.js +3 -0
  195. package/dist/services/field-metadata.service.js.map +1 -1
  196. package/dist/services/file.service.d.ts +1 -4
  197. package/dist/services/file.service.d.ts.map +1 -1
  198. package/dist/services/file.service.js +12 -13
  199. package/dist/services/file.service.js.map +1 -1
  200. package/dist/services/genai/r2r-helper.service.d.ts +3 -1
  201. package/dist/services/genai/r2r-helper.service.d.ts.map +1 -1
  202. package/dist/services/genai/r2r-helper.service.js +11 -7
  203. package/dist/services/genai/r2r-helper.service.js.map +1 -1
  204. package/dist/services/import-transaction-error-log.service.d.ts +2 -13
  205. package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
  206. package/dist/services/import-transaction-error-log.service.js +4 -22
  207. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  208. package/dist/services/import-transaction.service.d.ts +2 -13
  209. package/dist/services/import-transaction.service.d.ts.map +1 -1
  210. package/dist/services/import-transaction.service.js +4 -22
  211. package/dist/services/import-transaction.service.js.map +1 -1
  212. package/dist/services/list-of-values.service.d.ts +2 -13
  213. package/dist/services/list-of-values.service.d.ts.map +1 -1
  214. package/dist/services/list-of-values.service.js +4 -22
  215. package/dist/services/list-of-values.service.js.map +1 -1
  216. package/dist/services/locale.service.d.ts +2 -13
  217. package/dist/services/locale.service.d.ts.map +1 -1
  218. package/dist/services/locale.service.js +4 -22
  219. package/dist/services/locale.service.js.map +1 -1
  220. package/dist/services/mail/elastic-email.service.d.ts +4 -5
  221. package/dist/services/mail/elastic-email.service.d.ts.map +1 -1
  222. package/dist/services/mail/elastic-email.service.js +10 -13
  223. package/dist/services/mail/elastic-email.service.js.map +1 -1
  224. package/dist/services/mail/smtp-email.service.d.ts +3 -4
  225. package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
  226. package/dist/services/mail/smtp-email.service.js +19 -17
  227. package/dist/services/mail/smtp-email.service.js.map +1 -1
  228. package/dist/services/media-storage-provider-metadata.service.d.ts +11 -0
  229. package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
  230. package/dist/services/media-storage-provider-metadata.service.js +3 -0
  231. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  232. package/dist/services/media.service.d.ts +2 -9
  233. package/dist/services/media.service.d.ts.map +1 -1
  234. package/dist/services/media.service.js +17 -28
  235. package/dist/services/media.service.js.map +1 -1
  236. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +2 -4
  237. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  238. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +2 -11
  239. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  240. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +3 -1
  241. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  242. package/dist/services/mediaStorageProviders/file-storage-provider.js +16 -12
  243. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  244. package/dist/services/mediaStorageProviders/index.d.ts +1 -1
  245. package/dist/services/mediaStorageProviders/index.d.ts.map +1 -1
  246. package/dist/services/mediaStorageProviders/index.js +1 -1
  247. package/dist/services/mediaStorageProviders/index.js.map +1 -1
  248. package/dist/services/menu-item-metadata.service.d.ts +2 -13
  249. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  250. package/dist/services/menu-item-metadata.service.js +4 -22
  251. package/dist/services/menu-item-metadata.service.js.map +1 -1
  252. package/dist/services/model-metadata.service.d.ts +11 -0
  253. package/dist/services/model-metadata.service.d.ts.map +1 -1
  254. package/dist/services/model-metadata.service.js +3 -0
  255. package/dist/services/model-metadata.service.js.map +1 -1
  256. package/dist/services/model-sequence.service.d.ts +2 -13
  257. package/dist/services/model-sequence.service.d.ts.map +1 -1
  258. package/dist/services/model-sequence.service.js +4 -21
  259. package/dist/services/model-sequence.service.js.map +1 -1
  260. package/dist/services/module-metadata.service.d.ts +14 -1
  261. package/dist/services/module-metadata.service.d.ts.map +1 -1
  262. package/dist/services/module-metadata.service.js +13 -6
  263. package/dist/services/module-metadata.service.js.map +1 -1
  264. package/dist/services/mq-message-queue.service.d.ts +2 -13
  265. package/dist/services/mq-message-queue.service.d.ts.map +1 -1
  266. package/dist/services/mq-message-queue.service.js +4 -22
  267. package/dist/services/mq-message-queue.service.js.map +1 -1
  268. package/dist/services/mq-message.service.d.ts +2 -13
  269. package/dist/services/mq-message.service.d.ts.map +1 -1
  270. package/dist/services/mq-message.service.js +4 -22
  271. package/dist/services/mq-message.service.js.map +1 -1
  272. package/dist/services/permission-metadata.service.d.ts +2 -13
  273. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  274. package/dist/services/permission-metadata.service.js +4 -22
  275. package/dist/services/permission-metadata.service.js.map +1 -1
  276. package/dist/services/role-metadata.service.d.ts +2 -13
  277. package/dist/services/role-metadata.service.d.ts.map +1 -1
  278. package/dist/services/role-metadata.service.js +4 -23
  279. package/dist/services/role-metadata.service.js.map +1 -1
  280. package/dist/services/saved-filters.service.d.ts +2 -13
  281. package/dist/services/saved-filters.service.d.ts.map +1 -1
  282. package/dist/services/saved-filters.service.js +4 -21
  283. package/dist/services/saved-filters.service.js.map +1 -1
  284. package/dist/services/scheduled-job.service.d.ts +2 -13
  285. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  286. package/dist/services/scheduled-job.service.js +4 -22
  287. package/dist/services/scheduled-job.service.js.map +1 -1
  288. package/dist/services/scheduled-jobs/scheduler.service.d.ts +1 -0
  289. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  290. package/dist/services/scheduled-jobs/scheduler.service.js +29 -0
  291. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  292. package/dist/services/security-rule.service.d.ts +2 -13
  293. package/dist/services/security-rule.service.d.ts.map +1 -1
  294. package/dist/services/security-rule.service.js +5 -23
  295. package/dist/services/security-rule.service.js.map +1 -1
  296. package/dist/services/setting.service.d.ts +23 -30
  297. package/dist/services/setting.service.d.ts.map +1 -1
  298. package/dist/services/setting.service.js +147 -196
  299. package/dist/services/setting.service.js.map +1 -1
  300. package/dist/services/settings/default-settings-provider.service.d.ts +1058 -0
  301. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -0
  302. package/dist/services/settings/default-settings-provider.service.js +139 -0
  303. package/dist/services/settings/default-settings-provider.service.js.map +1 -0
  304. package/dist/services/short-url/tiny-url.service.d.ts +3 -4
  305. package/dist/services/short-url/tiny-url.service.d.ts.map +1 -1
  306. package/dist/services/short-url/tiny-url.service.js +10 -13
  307. package/dist/services/short-url/tiny-url.service.js.map +1 -1
  308. package/dist/services/sms/Msg91BaseSMSService.d.ts +3 -4
  309. package/dist/services/sms/Msg91BaseSMSService.d.ts.map +1 -1
  310. package/dist/services/sms/Msg91BaseSMSService.js +3 -3
  311. package/dist/services/sms/Msg91BaseSMSService.js.map +1 -1
  312. package/dist/services/sms/Msg91OTPService.d.ts +2 -3
  313. package/dist/services/sms/Msg91OTPService.d.ts.map +1 -1
  314. package/dist/services/sms/Msg91OTPService.js +7 -13
  315. package/dist/services/sms/Msg91OTPService.js.map +1 -1
  316. package/dist/services/sms/Msg91SMSService.d.ts +2 -3
  317. package/dist/services/sms/Msg91SMSService.d.ts.map +1 -1
  318. package/dist/services/sms/Msg91SMSService.js +7 -13
  319. package/dist/services/sms/Msg91SMSService.js.map +1 -1
  320. package/dist/services/sms/TwilioSMSService.d.ts +3 -4
  321. package/dist/services/sms/TwilioSMSService.d.ts.map +1 -1
  322. package/dist/services/sms/TwilioSMSService.js +13 -16
  323. package/dist/services/sms/TwilioSMSService.js.map +1 -1
  324. package/dist/services/sms-template.service.d.ts +2 -13
  325. package/dist/services/sms-template.service.d.ts.map +1 -1
  326. package/dist/services/sms-template.service.js +4 -22
  327. package/dist/services/sms-template.service.js.map +1 -1
  328. package/dist/services/solid-introspect.service.d.ts +4 -1
  329. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  330. package/dist/services/solid-introspect.service.js +33 -47
  331. package/dist/services/solid-introspect.service.js.map +1 -1
  332. package/dist/services/textract.service.d.ts +1 -4
  333. package/dist/services/textract.service.d.ts.map +1 -1
  334. package/dist/services/textract.service.js +14 -18
  335. package/dist/services/textract.service.js.map +1 -1
  336. package/dist/services/user-activity-history.service.d.ts +2 -13
  337. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  338. package/dist/services/user-activity-history.service.js +4 -22
  339. package/dist/services/user-activity-history.service.js.map +1 -1
  340. package/dist/services/user-view-metadata.service.d.ts +2 -13
  341. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  342. package/dist/services/user-view-metadata.service.js +4 -22
  343. package/dist/services/user-view-metadata.service.js.map +1 -1
  344. package/dist/services/user.service.d.ts +2 -15
  345. package/dist/services/user.service.d.ts.map +1 -1
  346. package/dist/services/user.service.js +7 -28
  347. package/dist/services/user.service.js.map +1 -1
  348. package/dist/services/view-metadata.service.d.ts +2 -13
  349. package/dist/services/view-metadata.service.d.ts.map +1 -1
  350. package/dist/services/view-metadata.service.js +5 -23
  351. package/dist/services/view-metadata.service.js.map +1 -1
  352. package/dist/services/whatsapp/Msg91WhatsappService.d.ts +3 -4
  353. package/dist/services/whatsapp/Msg91WhatsappService.d.ts.map +1 -1
  354. package/dist/services/whatsapp/Msg91WhatsappService.js +12 -18
  355. package/dist/services/whatsapp/Msg91WhatsappService.js.map +1 -1
  356. package/dist/services/whatsapp/Three60WhatsappService.d.ts +1 -4
  357. package/dist/services/whatsapp/Three60WhatsappService.d.ts.map +1 -1
  358. package/dist/services/whatsapp/Three60WhatsappService.js +2 -11
  359. package/dist/services/whatsapp/Three60WhatsappService.js.map +1 -1
  360. package/dist/solid-core.module.d.ts.map +1 -1
  361. package/dist/solid-core.module.js +9 -47
  362. package/dist/solid-core.module.js.map +1 -1
  363. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  364. package/dist/transformers/typeorm/local-date-time-transformer.js +4 -2
  365. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  366. package/dist/tsconfig.tsbuildinfo +1 -1
  367. package/docs/type-declaration-import-issue.md +24 -0
  368. package/package.json +2 -1
  369. package/src/commands/info.command.ts +101 -0
  370. package/src/commands/mcp.command.ts +3 -17
  371. package/src/commands/seed.command.ts +5 -17
  372. package/src/controllers/email-template.controller.ts +9 -4
  373. package/src/controllers/google-authentication.controller.ts +19 -12
  374. package/src/controllers/setting.controller.ts +6 -81
  375. package/src/controllers/test.controller.ts +0 -18
  376. package/src/decorators/settings-provider.decorator.ts +7 -0
  377. package/src/decorators/solid-password.decorator.ts +43 -43
  378. package/src/dtos/create-role-metadata.dto.ts +4 -81
  379. package/src/dtos/create-scheduled-job.dto.ts +4 -0
  380. package/src/dtos/create-setting.dto.ts +14 -1
  381. package/src/dtos/update-scheduled-job.dto.ts +4 -0
  382. package/src/dtos/update-setting.dto.ts +14 -0
  383. package/src/entities/scheduled-job.entity.ts +2 -0
  384. package/src/entities/setting.entity.ts +15 -1
  385. package/src/factories/mail.factory.ts +4 -4
  386. package/src/factories/sms.factory.ts +9 -7
  387. package/src/factories/whatsapp.factory.ts +4 -4
  388. package/src/guards/access-token.guard.ts +12 -5
  389. package/src/helpers/command.service.ts +44 -12
  390. package/src/helpers/cors.helper.ts +3 -3
  391. package/src/helpers/error-mapper.service.ts +0 -1
  392. package/src/helpers/field-crud-managers/ManyToOneRelationFieldCrudManager.ts +2 -2
  393. package/src/helpers/google-oauth.helper.ts +11 -7
  394. package/src/helpers/module.helper.ts +2 -2
  395. package/src/helpers/schematic.service.ts +41 -35
  396. package/src/helpers/solid-registry.ts +45 -16
  397. package/src/index.ts +2 -4
  398. package/src/interfaces.ts +29 -0
  399. package/src/passport-strategies/google-oauth.strategy.ts +11 -8
  400. package/src/repository/scheduled-job.repository.ts +1 -0
  401. package/src/seeders/email-template-seeder.service.ts +6 -4
  402. package/src/seeders/module-metadata-seeder.service.ts +41 -29
  403. package/src/seeders/seed-data/solid-core-metadata.json +120 -6
  404. package/src/seeders/sms-template-seeder.service.ts +6 -4
  405. package/src/seeders/system-fields-seeder.service.ts +3 -0
  406. package/src/services/action-metadata.service.ts +4 -16
  407. package/src/services/ai-interaction.service.ts +6 -17
  408. package/src/services/authentication.service.ts +175 -113
  409. package/src/services/bcrypt.service.ts +9 -9
  410. package/src/services/chatter-message-details.service.ts +5 -17
  411. package/src/services/chatter-message.service.ts +2 -14
  412. package/src/services/crud.service.ts +36 -28
  413. package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -15
  414. package/src/services/dashboard-question.service.ts +4 -17
  415. package/src/services/dashboard-variable.service.ts +4 -16
  416. package/src/services/dashboard.service.ts +2 -13
  417. package/src/services/email-template.service.ts +3 -15
  418. package/src/services/export-template.service.ts +4 -18
  419. package/src/services/export-transaction.service.ts +4 -19
  420. package/src/services/field-metadata.service.ts +5 -1
  421. package/src/services/file.service.ts +14 -12
  422. package/src/services/genai/r2r-helper.service.ts +10 -6
  423. package/src/services/import-transaction-error-log.service.ts +5 -17
  424. package/src/services/import-transaction.service.ts +3 -15
  425. package/src/services/list-of-values.service.ts +3 -16
  426. package/src/services/locale.service.ts +3 -15
  427. package/src/services/mail/elastic-email.service.ts +7 -7
  428. package/src/services/mail/smtp-email.service.ts +19 -11
  429. package/src/services/media-storage-provider-metadata.service.ts +4 -0
  430. package/src/services/media.service.ts +39 -22
  431. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +0 -3
  432. package/src/services/mediaStorageProviders/file-storage-provider.ts +24 -12
  433. package/src/services/mediaStorageProviders/index.ts +1 -1
  434. package/src/services/menu-item-metadata.service.ts +5 -17
  435. package/src/services/model-metadata.service.ts +4 -0
  436. package/src/services/model-sequence.service.ts +4 -15
  437. package/src/services/module-metadata.service.ts +13 -4
  438. package/src/services/mq-message-queue.service.ts +5 -17
  439. package/src/services/mq-message.service.ts +5 -17
  440. package/src/services/permission-metadata.service.ts +4 -16
  441. package/src/services/role-metadata.service.ts +3 -16
  442. package/src/services/saved-filters.service.ts +2 -13
  443. package/src/services/scheduled-job.service.ts +3 -15
  444. package/src/services/scheduled-jobs/scheduler.service.ts +40 -3
  445. package/src/services/security-rule.service.ts +4 -16
  446. package/src/services/setting.service.ts +223 -212
  447. package/src/services/settings/default-settings-provider.service.ts +157 -0
  448. package/src/services/short-url/tiny-url.service.ts +9 -7
  449. package/src/services/sms/Msg91BaseSMSService.ts +6 -4
  450. package/src/services/sms/Msg91OTPService.ts +7 -7
  451. package/src/services/sms/Msg91SMSService.ts +7 -6
  452. package/src/services/sms/TwilioSMSService.ts +18 -19
  453. package/src/services/sms-template.service.ts +3 -15
  454. package/src/services/solid-introspect.service.ts +45 -66
  455. package/src/services/textract.service.ts +13 -10
  456. package/src/services/user-activity-history.service.ts +5 -17
  457. package/src/services/user-view-metadata.service.ts +5 -17
  458. package/src/services/user.service.ts +7 -22
  459. package/src/services/view-metadata.service.ts +3 -15
  460. package/src/services/whatsapp/Msg91WhatsappService.ts +10 -11
  461. package/src/services/whatsapp/Three60WhatsappService.ts +0 -3
  462. package/src/solid-core.module.ts +17 -49
  463. package/src/transformers/typeorm/local-date-time-transformer.ts +10 -5
  464. package/# Password field.md +0 -8
  465. package/dist/config/app-builder.config.d.ts +0 -11
  466. package/dist/config/app-builder.config.d.ts.map +0 -1
  467. package/dist/config/app-builder.config.js +0 -13
  468. package/dist/config/app-builder.config.js.map +0 -1
  469. package/dist/config/common.config.d.ts +0 -96
  470. package/dist/config/common.config.d.ts.map +0 -1
  471. package/dist/config/common.config.js +0 -51
  472. package/dist/config/common.config.js.map +0 -1
  473. package/dist/config/iam.config.d.ts +0 -56
  474. package/dist/config/iam.config.d.ts.map +0 -1
  475. package/dist/config/iam.config.js +0 -35
  476. package/dist/config/iam.config.js.map +0 -1
  477. package/dist/config/jwt.config.d.ts +0 -14
  478. package/dist/config/jwt.config.d.ts.map +0 -1
  479. package/dist/config/jwt.config.js +0 -15
  480. package/dist/config/jwt.config.js.map +0 -1
  481. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts +0 -16
  482. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.d.ts.map +0 -1
  483. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js +0 -151
  484. package/dist/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.js.map +0 -1
  485. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts +0 -17
  486. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.d.ts.map +0 -1
  487. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js +0 -80
  488. package/dist/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.js.map +0 -1
  489. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts +0 -16
  490. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.d.ts.map +0 -1
  491. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js +0 -74
  492. package/dist/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.js.map +0 -1
  493. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts +0 -12
  494. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.d.ts.map +0 -1
  495. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js +0 -47
  496. package/dist/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.js.map +0 -1
  497. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts +0 -16
  498. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.d.ts.map +0 -1
  499. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js +0 -151
  500. package/dist/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.js.map +0 -1
  501. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts +0 -16
  502. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.d.ts.map +0 -1
  503. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js +0 -75
  504. package/dist/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.js.map +0 -1
  505. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts +0 -14
  506. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.d.ts.map +0 -1
  507. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js +0 -73
  508. package/dist/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.js.map +0 -1
  509. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts +0 -14
  510. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.d.ts.map +0 -1
  511. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js +0 -45
  512. package/dist/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.js.map +0 -1
  513. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts +0 -14
  514. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.d.ts.map +0 -1
  515. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js +0 -51
  516. package/dist/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.js.map +0 -1
  517. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts +0 -12
  518. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.d.ts.map +0 -1
  519. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js +0 -38
  520. package/dist/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.js.map +0 -1
  521. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts +0 -8
  522. package/dist/services/media-storage-provider-metadata-seeder.service.d.ts.map +0 -1
  523. package/dist/services/media-storage-provider-metadata-seeder.service.js +0 -43
  524. package/dist/services/media-storage-provider-metadata-seeder.service.js.map +0 -1
  525. package/sql-server-changes.txt +0 -88
  526. package/src/config/app-builder.config.ts +0 -12
  527. package/src/config/common.config.ts +0 -55
  528. package/src/config/iam.config.ts +0 -32
  529. package/src/config/jwt.config.ts +0 -13
  530. package/src/services/export_issues.txt +0 -10
  531. package/src/services/genai/mcp-handlers/solid-add-button-to-form-view-mcp-handler.service.ts +0 -137
  532. package/src/services/genai/mcp-handlers/solid-add-controller-handler-method-mcp-handler.service.ts +0 -81
  533. package/src/services/genai/mcp-handlers/solid-add-custom-service-method-mcp-handler.service.ts +0 -69
  534. package/src/services/genai/mcp-handlers/solid-add-fields-to-model-mcp-handler.service.ts +0 -68
  535. package/src/services/genai/mcp-handlers/solid-add-header-button-or-row-button-to-list-view-mcp-handler.service.ts +0 -141
  536. package/src/services/genai/mcp-handlers/solid-create-computed-provider-mcp-handler.service.ts +0 -71
  537. package/src/services/genai/mcp-handlers/solid-create-custom-form-view-widget-mcp-handler.service.ts +0 -72
  538. package/src/services/genai/mcp-handlers/solid-create-model-with-fields-mcp-handler.service.ts +0 -45
  539. package/src/services/genai/mcp-handlers/solid-create-module-mcp-handler.service.ts +0 -58
  540. package/src/services/genai/mcp-handlers/solid-update-layout-mcp-handler.service.ts +0 -40
  541. package/src/services/groupBy.json +0 -92
  542. package/src/services/media-storage-provider-metadata-seeder.service.ts +0 -33
@@ -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
- ]
@@ -52,6 +52,10 @@ export class CreateScheduledJobDto {
52
52
  @ApiProperty()
53
53
  job: string;
54
54
  @IsOptional()
55
+ @IsString()
56
+ @ApiProperty()
57
+ cronExpression: string;
58
+ @IsOptional()
55
59
  @IsInt()
56
60
  @ApiProperty()
57
61
  moduleId: number;
@@ -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
  }
@@ -58,6 +58,10 @@ export class UpdateScheduledJobDto {
58
58
  @ApiProperty()
59
59
  job: string;
60
60
  @IsOptional()
61
+ @IsString()
62
+ @ApiProperty()
63
+ cronExpression: string;
64
+ @IsOptional()
61
65
  @IsInt()
62
66
  @ApiProperty()
63
67
  moduleId: number;
@@ -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
  }
@@ -29,6 +29,8 @@ export class ScheduledJob extends CommonEntity {
29
29
  dayOfWeek: string;
30
30
  @Column({ type: "varchar" })
31
31
  job: string;
32
+ @Column({ type: "varchar", nullable: true })
33
+ cronExpression: string;
32
34
  @Index()
33
35
  @ManyToOne(() => ModuleMetadata, { nullable: false })
34
36
  @JoinColumn({ referencedColumnName: 'id' })
@@ -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,22 +1,54 @@
1
1
  import { Injectable, Logger } from '@nestjs/common';
2
- import { exec } from 'child_process';
2
+ import { spawn } from 'child_process';
3
+
4
+ export type CommandWithArgs = {
5
+ command: string;
6
+ args: string[];
7
+ };
3
8
 
4
9
  @Injectable()
5
10
  export class CommandService {
6
11
  private readonly logger = new Logger(CommandService.name);
7
12
 
8
- async executeCommand(command: string): Promise<string> {
9
- this.logger.debug(`Executing command :${command}`);
13
+ /**
14
+ * Execute a command with arguments array (cross-platform compatible)
15
+ */
16
+ async executeCommandWithArgs(commandWithArgs: CommandWithArgs): Promise<string> {
17
+ const { command, args } = commandWithArgs;
18
+ this.logger.debug(`Executing command: ${command} ${args.join(' ')}`);
19
+
10
20
  return new Promise<string>((resolve, reject) => {
11
- exec(command, (error, stdout, stderr) => {
12
- if (error) {
13
- this.logger.error(`Error executing command :${command}`, error);
14
- reject(error);
15
- return;
16
- }
17
- if (stderr) {
18
- this.logger.error(`Error executing command :${command}`, stderr);
19
- reject(stderr);
21
+ const isWindows = process.platform === 'win32';
22
+
23
+ // On Windows, we need to use cmd /c for commands that might be .cmd files (like npm scripts)
24
+ const spawnCommand = isWindows ? command : command;
25
+ const spawnArgs = args;
26
+
27
+ const child = spawn(spawnCommand, spawnArgs, {
28
+ shell: isWindows, // Use shell on Windows to handle .cmd files
29
+ stdio: ['pipe', 'pipe', 'pipe'],
30
+ });
31
+
32
+ let stdout = '';
33
+ let stderr = '';
34
+
35
+ child.stdout.on('data', (data) => {
36
+ stdout += data.toString();
37
+ });
38
+
39
+ child.stderr.on('data', (data) => {
40
+ stderr += data.toString();
41
+ });
42
+
43
+ child.on('error', (error) => {
44
+ this.logger.error(`Error executing command: ${command}`, error);
45
+ reject(error);
46
+ });
47
+
48
+ child.on('close', (code) => {
49
+ if (code !== 0) {
50
+ this.logger.error(`Command failed with code ${code}: ${command}`, stderr);
51
+ reject(new Error(stderr || `Command failed with exit code ${code}`));
20
52
  return;
21
53
  }
22
54
  resolve(stdout);
@@ -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}`);
@@ -77,13 +77,13 @@ export class ManyToOneRelationFieldCrudManager implements FieldCrudManager {
77
77
  if (isNotEmpty(fieldId)) {
78
78
  dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ id: fieldId });
79
79
  if (this.options.required && isEmpty(dto[this.options.fieldName])) {
80
- throw new Error(`ManyToOneRelationFieldCrudManager: Record with id: ${fieldId} not found in ${this.options.relationCoModelSingularName}`);
80
+ throw new Error(`Field ${this.options.fieldName} resolution failed. Record with id: ${fieldId} not found in ${this.options.relationCoModelSingularName}`);
81
81
  }
82
82
  }
83
83
  else {
84
84
  dto[this.options.fieldName] = await this.options.entityManager.getRepository(coModelEntityName).findOneBy({ [this.options.relationCoModelUserKeyFieldName]: fieldUserKeyValue });
85
85
  if (this.options.required && isEmpty(dto[this.options.fieldName])) {
86
- throw new Error(`ManyToOneRelationFieldCrudManager: Record with userKey: ${this.options.relationCoModelUserKeyFieldName}: ${fieldUserKeyValue} not found in ${this.options.relationCoModelSingularName}`);
86
+ throw new Error(`Field ${this.options.fieldName} resolution failed. Record with userKey: ${this.options.relationCoModelUserKeyFieldName}: ${fieldUserKeyValue} not found in ${this.options.relationCoModelSingularName}`);
87
87
  }
88
88
  }
89
89
 
@@ -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
 
@@ -1,7 +1,7 @@
1
1
  import { Injectable, Logger } from '@nestjs/common';
2
2
  import { snakeCase } from "lodash";
3
3
  import { FieldMetadata } from 'src/entities/field-metadata.entity';
4
- import { CommandService } from './command.service';
4
+ import { CommandService, CommandWithArgs } from './command.service';
5
5
  import { SolidRegistry } from './solid-registry';
6
6
 
7
7
  export const ADD_MODULE_COMMAND = 'add-module';
@@ -17,7 +17,7 @@ type ModelAndFieldGenerationOptions = {
17
17
  table?: string;
18
18
  dataSource: string;
19
19
  modelEnableSoftDelete?: boolean;
20
- parentModel?: string;
20
+ parentModel?: string;
21
21
  parentModule?: string;
22
22
  draftPublishWorkflowEnabled?: boolean;
23
23
  isLegacyTable?: boolean;
@@ -33,6 +33,8 @@ export const REFRESH_MODEL_COMMAND = 'refresh-model';
33
33
  export class SchematicService {
34
34
  private readonly logger = new Logger(SchematicService.name);
35
35
  private readonly SCHEMATIC_PROJECT = '@solidstarters/solid-code-builder';
36
+ private readonly SCHEMATICS_COMMAND = 'schematics';
37
+
36
38
  constructor(private readonly commandService: CommandService, private readonly solidRegistry: SolidRegistry) { }
37
39
 
38
40
  async executeSchematicCommand(
@@ -40,91 +42,95 @@ export class SchematicService {
40
42
  options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
41
43
  debug = false,
42
44
  ): Promise<string> {
43
- return await this.commandService.executeCommand(
44
- this.generateSchematicCommand(command, options, debug),
45
- );
45
+ const commandWithArgs = this.generateSchematicCommand(command, options, debug);
46
+ return await this.commandService.executeCommandWithArgs(commandWithArgs);
46
47
  }
47
48
 
48
49
  private generateSchematicCommand(
49
50
  command: string,
50
51
  options: GenerateModuleOptions | ModelAndFieldGenerationOptions,
51
52
  debug: boolean,
52
- ): string {
53
- const baseCommand = `schematics ${this.SCHEMATIC_PROJECT}:${command} --debug=${debug}`;
53
+ ): CommandWithArgs {
54
+ const schematicName = `${this.SCHEMATIC_PROJECT}:${command}`;
55
+ const baseArgs = [schematicName, `--debug=${debug}`];
56
+
54
57
  if (
55
58
  command === REMOVE_FIELDS_COMMAND ||
56
59
  command === REFRESH_MODEL_COMMAND
57
60
  ) {
58
- const {fields, ...modelSpecificOptions} = options as ModelAndFieldGenerationOptions;
59
- const modelCommand = this.buildModelGenerationCommand(baseCommand, modelSpecificOptions);
60
- const fieldCommand = this.buildFieldGenerationCommand(fields);
61
- const schematicCommand = modelCommand + ' ' + fieldCommand;
62
- this.logger.debug('schematicCommand', schematicCommand);
63
- return schematicCommand;
61
+ const { fields, ...modelSpecificOptions } = options as ModelAndFieldGenerationOptions;
62
+ const modelArgs = this.buildModelGenerationArgs(modelSpecificOptions);
63
+ const fieldArgs = this.buildFieldGenerationArgs(fields);
64
+ const args = [...baseArgs, ...modelArgs, ...fieldArgs];
65
+ this.logger.debug('schematicCommand args', args);
66
+ return { command: this.SCHEMATICS_COMMAND, args };
64
67
  } else if (command === ADD_MODULE_COMMAND) {
65
68
  const moduleOptions = options as GenerateModuleOptions;
66
- const schematicCommand = ` ${baseCommand} --module=${moduleOptions.module}`;
67
- this.logger.debug('schematicCommand', schematicCommand);
68
- return schematicCommand;
69
+ const args = [...baseArgs, `--module=${moduleOptions.module}`];
70
+ this.logger.debug('schematicCommand args', args);
71
+ return { command: this.SCHEMATICS_COMMAND, args };
69
72
  } else {
70
73
  throw new Error('Schematic command not supported.');
71
74
  }
72
75
  }
73
76
 
74
- private buildFieldGenerationCommand(fields: FieldMetadata[]) {
77
+ private buildFieldGenerationArgs(fields: FieldMetadata[]): string[] {
75
78
  return fields
76
79
  .filter((field) => {
77
80
  return !this.solidRegistry.getCommonEntityKeys().map(key => key.toString()).includes(field.name);
78
81
  })
79
82
  .map((field) => {
80
- return `--fields='${JSON.stringify(field).replace(/'/g, "\\'")}'`;
81
- })
82
- .join(' ');
83
+ // Using argument array eliminates the need for shell-specific quoting
84
+ return `--fields=${JSON.stringify(field)}`;
85
+ });
83
86
  }
84
87
 
85
- private buildModelGenerationCommand(baseCommand: string, modelSpecificOptions: ModelGenerationOptions): string {
86
- let modelCommand = `${baseCommand} --module=${modelSpecificOptions.module} --model=${modelSpecificOptions.model}`;
88
+ private buildModelGenerationArgs(modelSpecificOptions: ModelGenerationOptions): string[] {
89
+ const args: string[] = [
90
+ `--module=${modelSpecificOptions.module}`,
91
+ `--model=${modelSpecificOptions.model}`,
92
+ ];
87
93
 
88
- // Make below options code generate i.e if option exists then add to command with proper casing
89
94
  if (modelSpecificOptions.moduleDisplayName) {
90
- modelCommand += ` --module-display-name=${snakeCase(modelSpecificOptions.moduleDisplayName)}`;
95
+ args.push(`--module-display-name=${snakeCase(modelSpecificOptions.moduleDisplayName)}`);
91
96
  }
92
97
 
93
98
  if (modelSpecificOptions.table) {
94
- modelCommand += ` --table=${modelSpecificOptions.table}`;
99
+ args.push(`--table=${modelSpecificOptions.table}`);
95
100
  }
96
101
 
97
102
  if (modelSpecificOptions.dataSource) {
98
- modelCommand += ` --data-source=${modelSpecificOptions.dataSource}`;
103
+ args.push(`--data-source=${modelSpecificOptions.dataSource}`);
99
104
  }
100
105
 
101
106
  if (modelSpecificOptions.modelEnableSoftDelete) {
102
- modelCommand += ` --model-enable-soft-delete=${modelSpecificOptions.modelEnableSoftDelete}`;
107
+ args.push(`--model-enable-soft-delete=${modelSpecificOptions.modelEnableSoftDelete}`);
103
108
  }
104
109
 
105
110
  if (modelSpecificOptions.parentModel) {
106
- modelCommand += ` --parent-model=${modelSpecificOptions.parentModel}`;
111
+ args.push(`--parent-model=${modelSpecificOptions.parentModel}`);
107
112
  }
113
+
108
114
  if (modelSpecificOptions.parentModule) {
109
- modelCommand += ` --parent-module=${modelSpecificOptions.parentModule}`;
115
+ args.push(`--parent-module=${modelSpecificOptions.parentModule}`);
110
116
  }
111
117
 
112
118
  if (modelSpecificOptions.draftPublishWorkflowEnabled) {
113
- modelCommand += ` --draft-publish-workflow-enabled=${modelSpecificOptions.draftPublishWorkflowEnabled}`;
119
+ args.push(`--draft-publish-workflow-enabled=${modelSpecificOptions.draftPublishWorkflowEnabled}`);
114
120
  }
115
121
 
116
122
  if (modelSpecificOptions.isLegacyTable) {
117
- modelCommand += ` --is-legacy-table=${modelSpecificOptions.isLegacyTable}`;
123
+ args.push(`--is-legacy-table=${modelSpecificOptions.isLegacyTable}`);
118
124
  }
119
125
 
120
126
  if (modelSpecificOptions.isLegacyTableWithId) {
121
- modelCommand += ` --is-legacy-table-with-id=${modelSpecificOptions.isLegacyTableWithId}`;
127
+ args.push(`--is-legacy-table-with-id=${modelSpecificOptions.isLegacyTableWithId}`);
122
128
  }
123
129
 
124
130
  if (modelSpecificOptions.dataSourceType) {
125
- modelCommand += ` --data-source-type=${modelSpecificOptions.dataSourceType}`;
131
+ args.push(`--data-source-type=${modelSpecificOptions.dataSourceType}`);
126
132
  }
127
-
128
- return modelCommand;
133
+
134
+ return args;
129
135
  }
130
136
  }