@solidxai/core 0.1.10-beta.8 → 0.1.10

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 (1043) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CHANGELOG.md +415 -0
  3. package/MICROSOFT_ACTIVE_DIRECTORY_OAUTH_FLOW.md +616 -0
  4. package/ai-interaction-cleanup.sql +53 -0
  5. package/dist/commands/info.command.d.ts.map +1 -1
  6. package/dist/commands/info.command.js +0 -2
  7. package/dist/commands/info.command.js.map +1 -1
  8. package/dist/commands/refresh-model.command.d.ts +1 -7
  9. package/dist/commands/refresh-model.command.d.ts.map +1 -1
  10. package/dist/commands/refresh-model.command.js +4 -49
  11. package/dist/commands/refresh-model.command.js.map +1 -1
  12. package/dist/commands/refresh-module.command.d.ts +0 -2
  13. package/dist/commands/refresh-module.command.d.ts.map +1 -1
  14. package/dist/commands/refresh-module.command.js +3 -16
  15. package/dist/commands/refresh-module.command.js.map +1 -1
  16. package/dist/commands/test-data.command.d.ts +2 -0
  17. package/dist/commands/test-data.command.d.ts.map +1 -1
  18. package/dist/commands/test-data.command.js +32 -6
  19. package/dist/commands/test-data.command.js.map +1 -1
  20. package/dist/constants/error-messages.d.ts +1 -0
  21. package/dist/constants/error-messages.d.ts.map +1 -1
  22. package/dist/constants/error-messages.js +1 -0
  23. package/dist/constants/error-messages.js.map +1 -1
  24. package/dist/controllers/action-metadata.controller.d.ts +1 -20
  25. package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
  26. package/dist/controllers/agent-event.controller.d.ts +1 -20
  27. package/dist/controllers/agent-event.controller.d.ts.map +1 -1
  28. package/dist/controllers/agent-session.controller.d.ts +1 -20
  29. package/dist/controllers/agent-session.controller.d.ts.map +1 -1
  30. package/dist/controllers/chatter-message-details.controller.d.ts +1 -20
  31. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
  32. package/dist/controllers/chatter-message.controller.d.ts +3 -20
  33. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  34. package/dist/controllers/chatter-message.controller.js +17 -0
  35. package/dist/controllers/chatter-message.controller.js.map +1 -1
  36. package/dist/controllers/dashboard-user-layout.controller.d.ts +24 -0
  37. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  38. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  39. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  40. package/dist/controllers/dashboard.controller.d.ts +12 -42
  41. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  42. package/dist/controllers/dashboard.controller.js +71 -141
  43. package/dist/controllers/dashboard.controller.js.map +1 -1
  44. package/dist/controllers/email-template.controller.d.ts +1 -20
  45. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  46. package/dist/controllers/export-template.controller.d.ts +1 -20
  47. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  48. package/dist/controllers/export-transaction.controller.d.ts +1 -20
  49. package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
  50. package/dist/controllers/gupshup-webhook.controller.d.ts +11 -0
  51. package/dist/controllers/gupshup-webhook.controller.d.ts.map +1 -0
  52. package/dist/controllers/gupshup-webhook.controller.js +87 -0
  53. package/dist/controllers/gupshup-webhook.controller.js.map +1 -0
  54. package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -20
  55. package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
  56. package/dist/controllers/import-transaction.controller.d.ts +1 -20
  57. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  58. package/dist/controllers/list-of-values.controller.d.ts +1 -20
  59. package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
  60. package/dist/controllers/locale.controller.d.ts +1 -20
  61. package/dist/controllers/locale.controller.d.ts.map +1 -1
  62. package/dist/controllers/mcp-audit-log.controller.d.ts +16 -0
  63. package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -0
  64. package/dist/controllers/{dashboard-question.controller.js → mcp-audit-log.controller.js} +44 -91
  65. package/dist/controllers/mcp-audit-log.controller.js.map +1 -0
  66. package/dist/controllers/media.controller.d.ts +1 -20
  67. package/dist/controllers/media.controller.d.ts.map +1 -1
  68. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -20
  69. package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
  70. package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts +16 -0
  71. package/dist/controllers/meta-cloud-whatsapp-webhook.controller.d.ts.map +1 -0
  72. package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js +133 -0
  73. package/dist/controllers/meta-cloud-whatsapp-webhook.controller.js.map +1 -0
  74. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts +28 -0
  75. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts.map +1 -0
  76. package/dist/controllers/microsoft-active-directory-authentication.controller.js +122 -0
  77. package/dist/controllers/microsoft-active-directory-authentication.controller.js.map +1 -0
  78. package/dist/controllers/model-metadata.controller.d.ts +11 -31
  79. package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
  80. package/dist/controllers/model-metadata.controller.js +4 -4
  81. package/dist/controllers/model-metadata.controller.js.map +1 -1
  82. package/dist/controllers/model-sequence.controller.d.ts +1 -20
  83. package/dist/controllers/model-sequence.controller.d.ts.map +1 -1
  84. package/dist/controllers/module-metadata-explorer.controller.d.ts +171 -0
  85. package/dist/controllers/module-metadata-explorer.controller.d.ts.map +1 -0
  86. package/dist/controllers/module-metadata-explorer.controller.js +143 -0
  87. package/dist/controllers/module-metadata-explorer.controller.js.map +1 -0
  88. package/dist/controllers/module-metadata.controller.d.ts +5 -0
  89. package/dist/controllers/module-metadata.controller.d.ts.map +1 -1
  90. package/dist/controllers/module-metadata.controller.js +13 -1
  91. package/dist/controllers/module-metadata.controller.js.map +1 -1
  92. package/dist/controllers/module-package.controller.d.ts +622 -0
  93. package/dist/controllers/module-package.controller.d.ts.map +1 -0
  94. package/dist/controllers/module-package.controller.js +150 -0
  95. package/dist/controllers/module-package.controller.js.map +1 -0
  96. package/dist/controllers/mq-message-queue.controller.d.ts +1 -20
  97. package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
  98. package/dist/controllers/mq-message.controller.d.ts +1 -20
  99. package/dist/controllers/mq-message.controller.d.ts.map +1 -1
  100. package/dist/controllers/permission-metadata.controller.d.ts +1 -20
  101. package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
  102. package/dist/controllers/role-metadata.controller.d.ts +1 -20
  103. package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
  104. package/dist/controllers/saved-filters.controller.d.ts +1 -20
  105. package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
  106. package/dist/controllers/scheduled-job.controller.d.ts +1 -20
  107. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
  108. package/dist/controllers/security-rule.controller.d.ts +1 -20
  109. package/dist/controllers/security-rule.controller.d.ts.map +1 -1
  110. package/dist/controllers/service.controller.d.ts +1 -5
  111. package/dist/controllers/service.controller.d.ts.map +1 -1
  112. package/dist/controllers/service.controller.js +6 -11
  113. package/dist/controllers/service.controller.js.map +1 -1
  114. package/dist/controllers/sms-template.controller.d.ts +1 -20
  115. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  116. package/dist/controllers/test.controller.d.ts +1 -6
  117. package/dist/controllers/test.controller.d.ts.map +1 -1
  118. package/dist/controllers/test.controller.js +2 -20
  119. package/dist/controllers/test.controller.js.map +1 -1
  120. package/dist/controllers/user-activity-history.controller.d.ts +1 -20
  121. package/dist/controllers/user-activity-history.controller.d.ts.map +1 -1
  122. package/dist/controllers/user-view-metadata.controller.d.ts +1 -20
  123. package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
  124. package/dist/controllers/user.controller.d.ts +1 -20
  125. package/dist/controllers/user.controller.d.ts.map +1 -1
  126. package/dist/controllers/view-metadata.controller.d.ts +1 -20
  127. package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
  128. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  129. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  130. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  131. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  132. package/dist/dtos/confirm-module-package-import.dto.d.ts +4 -0
  133. package/dist/dtos/confirm-module-package-import.dto.d.ts.map +1 -0
  134. package/dist/dtos/confirm-module-package-import.dto.js +34 -0
  135. package/dist/dtos/confirm-module-package-import.dto.js.map +1 -0
  136. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  137. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  138. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  139. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  140. package/dist/dtos/create-mcp-audit-log.dto.d.ts +19 -0
  141. package/dist/dtos/create-mcp-audit-log.dto.d.ts.map +1 -0
  142. package/dist/dtos/create-mcp-audit-log.dto.js +118 -0
  143. package/dist/dtos/create-mcp-audit-log.dto.js.map +1 -0
  144. package/dist/dtos/create-model-metadata.dto.d.ts +2 -2
  145. package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
  146. package/dist/dtos/create-model-metadata.dto.js +6 -11
  147. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  148. package/dist/dtos/create-permission-metadata.dto.d.ts.map +1 -1
  149. package/dist/dtos/create-permission-metadata.dto.js +2 -0
  150. package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
  151. package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
  152. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  153. package/dist/dtos/create-role-metadata.dto.js +13 -1
  154. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  155. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  156. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  157. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  158. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  159. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  160. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  161. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  162. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  163. package/dist/dtos/import-instructions.dto.d.ts +2 -0
  164. package/dist/dtos/import-instructions.dto.d.ts.map +1 -1
  165. package/dist/dtos/import-instructions.dto.js +15 -1
  166. package/dist/dtos/import-instructions.dto.js.map +1 -1
  167. package/dist/dtos/metadata-explorer-references-query.dto.d.ts +10 -0
  168. package/dist/dtos/metadata-explorer-references-query.dto.d.ts.map +1 -0
  169. package/dist/dtos/metadata-explorer-references-query.dto.js +69 -0
  170. package/dist/dtos/metadata-explorer-references-query.dto.js.map +1 -0
  171. package/dist/dtos/metadata-explorer-search-query.dto.d.ts +8 -0
  172. package/dist/dtos/metadata-explorer-search-query.dto.d.ts.map +1 -0
  173. package/dist/dtos/metadata-explorer-search-query.dto.js +55 -0
  174. package/dist/dtos/metadata-explorer-search-query.dto.js.map +1 -0
  175. package/dist/dtos/metadata-explorer-write.dto.d.ts +4 -0
  176. package/dist/dtos/metadata-explorer-write.dto.d.ts.map +1 -0
  177. package/dist/dtos/{invoke-ai-prompt.dto.js → metadata-explorer-write.dto.js} +12 -12
  178. package/dist/dtos/metadata-explorer-write.dto.js.map +1 -0
  179. package/dist/dtos/run-module-package-build.dto.d.ts +5 -0
  180. package/dist/dtos/run-module-package-build.dto.d.ts.map +1 -0
  181. package/dist/dtos/run-module-package-build.dto.js +38 -0
  182. package/dist/dtos/run-module-package-build.dto.js.map +1 -0
  183. package/dist/dtos/run-module-package-seed.dto.d.ts +4 -0
  184. package/dist/dtos/run-module-package-seed.dto.d.ts.map +1 -0
  185. package/dist/dtos/run-module-package-seed.dto.js +34 -0
  186. package/dist/dtos/run-module-package-seed.dto.js.map +1 -0
  187. package/dist/dtos/update-chatter-note-message.dto.d.ts +5 -0
  188. package/dist/dtos/update-chatter-note-message.dto.d.ts.map +1 -0
  189. package/dist/dtos/update-chatter-note-message.dto.js +34 -0
  190. package/dist/dtos/update-chatter-note-message.dto.js.map +1 -0
  191. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  192. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  193. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  194. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  195. package/dist/dtos/update-mcp-audit-log.dto.d.ts +19 -0
  196. package/dist/dtos/update-mcp-audit-log.dto.d.ts.map +1 -0
  197. package/dist/dtos/update-mcp-audit-log.dto.js +117 -0
  198. package/dist/dtos/update-mcp-audit-log.dto.js.map +1 -0
  199. package/dist/dtos/update-permission-metadata.dto.d.ts.map +1 -1
  200. package/dist/dtos/update-permission-metadata.dto.js +3 -1
  201. package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
  202. package/dist/dtos/update-role-metadata.dto.d.ts +2 -0
  203. package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
  204. package/dist/dtos/update-role-metadata.dto.js +13 -1
  205. package/dist/dtos/update-role-metadata.dto.js.map +1 -1
  206. package/dist/dtos/update-user.dto.d.ts +1 -0
  207. package/dist/dtos/update-user.dto.d.ts.map +1 -1
  208. package/dist/dtos/update-user.dto.js +7 -1
  209. package/dist/dtos/update-user.dto.js.map +1 -1
  210. package/dist/entities/action-metadata.entity.d.ts.map +1 -1
  211. package/dist/entities/action-metadata.entity.js +1 -0
  212. package/dist/entities/action-metadata.entity.js.map +1 -1
  213. package/dist/entities/agent-event.entity.d.ts.map +1 -1
  214. package/dist/entities/agent-event.entity.js +1 -0
  215. package/dist/entities/agent-event.entity.js.map +1 -1
  216. package/dist/entities/agent-session.entity.d.ts.map +1 -1
  217. package/dist/entities/agent-session.entity.js +1 -0
  218. package/dist/entities/agent-session.entity.js.map +1 -1
  219. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  220. package/dist/entities/chatter-message.entity.js +2 -0
  221. package/dist/entities/chatter-message.entity.js.map +1 -1
  222. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  223. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  224. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  225. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  226. package/dist/entities/email-template.entity.d.ts.map +1 -1
  227. package/dist/entities/email-template.entity.js +1 -0
  228. package/dist/entities/email-template.entity.js.map +1 -1
  229. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  230. package/dist/entities/field-metadata.entity.js +4 -0
  231. package/dist/entities/field-metadata.entity.js.map +1 -1
  232. package/dist/entities/legacy-common-with-id.entity.d.ts +2 -2
  233. package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -1
  234. package/dist/entities/legacy-common-with-id.entity.js +6 -6
  235. package/dist/entities/legacy-common-with-id.entity.js.map +1 -1
  236. package/dist/entities/legacy-common.entity.d.ts +1 -1
  237. package/dist/entities/legacy-common.entity.d.ts.map +1 -1
  238. package/dist/entities/legacy-common.entity.js +14 -14
  239. package/dist/entities/legacy-common.entity.js.map +1 -1
  240. package/dist/entities/list-of-values.entity.d.ts.map +1 -1
  241. package/dist/entities/list-of-values.entity.js +4 -0
  242. package/dist/entities/list-of-values.entity.js.map +1 -1
  243. package/dist/entities/locale.entity.d.ts.map +1 -1
  244. package/dist/entities/locale.entity.js +1 -0
  245. package/dist/entities/locale.entity.js.map +1 -1
  246. package/dist/entities/mcp-audit-log.entity.d.ts +19 -0
  247. package/dist/entities/mcp-audit-log.entity.d.ts.map +1 -0
  248. package/dist/entities/mcp-audit-log.entity.js +90 -0
  249. package/dist/entities/mcp-audit-log.entity.js.map +1 -0
  250. package/dist/entities/media.entity.d.ts.map +1 -1
  251. package/dist/entities/media.entity.js +1 -0
  252. package/dist/entities/media.entity.js.map +1 -1
  253. package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
  254. package/dist/entities/menu-item-metadata.entity.js +2 -0
  255. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  256. package/dist/entities/model-metadata.entity.d.ts +2 -2
  257. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  258. package/dist/entities/model-metadata.entity.js +8 -8
  259. package/dist/entities/model-metadata.entity.js.map +1 -1
  260. package/dist/entities/module-metadata.entity.d.ts.map +1 -1
  261. package/dist/entities/module-metadata.entity.js +2 -0
  262. package/dist/entities/module-metadata.entity.js.map +1 -1
  263. package/dist/entities/permission-metadata.entity.d.ts.map +1 -1
  264. package/dist/entities/permission-metadata.entity.js.map +1 -1
  265. package/dist/entities/role-metadata.entity.d.ts +2 -0
  266. package/dist/entities/role-metadata.entity.d.ts.map +1 -1
  267. package/dist/entities/role-metadata.entity.js +10 -2
  268. package/dist/entities/role-metadata.entity.js.map +1 -1
  269. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  270. package/dist/entities/saved-filters.entity.js +3 -0
  271. package/dist/entities/saved-filters.entity.js.map +1 -1
  272. package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
  273. package/dist/entities/scheduled-job.entity.js +2 -0
  274. package/dist/entities/scheduled-job.entity.js.map +1 -1
  275. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  276. package/dist/entities/security-rule.entity.js +1 -0
  277. package/dist/entities/security-rule.entity.js.map +1 -1
  278. package/dist/entities/sms-template.entity.d.ts.map +1 -1
  279. package/dist/entities/sms-template.entity.js +2 -0
  280. package/dist/entities/sms-template.entity.js.map +1 -1
  281. package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
  282. package/dist/entities/user-activity-history.entity.js +1 -0
  283. package/dist/entities/user-activity-history.entity.js.map +1 -1
  284. package/dist/entities/user.entity.d.ts +3 -0
  285. package/dist/entities/user.entity.d.ts.map +1 -1
  286. package/dist/entities/user.entity.js +16 -1
  287. package/dist/entities/user.entity.js.map +1 -1
  288. package/dist/entities/view-metadata.entity.d.ts.map +1 -1
  289. package/dist/entities/view-metadata.entity.js +2 -0
  290. package/dist/entities/view-metadata.entity.js.map +1 -1
  291. package/dist/enums/legacy-table-type.enum.d.ts +6 -0
  292. package/dist/enums/legacy-table-type.enum.d.ts.map +1 -0
  293. package/dist/enums/legacy-table-type.enum.js +10 -0
  294. package/dist/enums/legacy-table-type.enum.js.map +1 -0
  295. package/dist/factories/whatsapp.factory.d.ts.map +1 -1
  296. package/dist/factories/whatsapp.factory.js +13 -11
  297. package/dist/factories/whatsapp.factory.js.map +1 -1
  298. package/dist/helpers/bootstrap.helper.d.ts +1 -0
  299. package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
  300. package/dist/helpers/bootstrap.helper.js +6 -3
  301. package/dist/helpers/bootstrap.helper.js.map +1 -1
  302. package/dist/helpers/command.service.d.ts +1 -0
  303. package/dist/helpers/command.service.d.ts.map +1 -1
  304. package/dist/helpers/command.service.js +2 -1
  305. package/dist/helpers/command.service.js.map +1 -1
  306. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts +34 -0
  307. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts.map +1 -0
  308. package/dist/helpers/microsoft-active-directory-oauth.helper.js +43 -0
  309. package/dist/helpers/microsoft-active-directory-oauth.helper.js.map +1 -0
  310. package/dist/helpers/model-metadata-helper.service.d.ts +2 -1
  311. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  312. package/dist/helpers/model-metadata-helper.service.js +4 -3
  313. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  314. package/dist/helpers/module-metadata-helper.service.d.ts +2 -0
  315. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  316. package/dist/helpers/module-metadata-helper.service.js +23 -10
  317. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  318. package/dist/helpers/module.helper.d.ts.map +1 -1
  319. package/dist/helpers/module.helper.js +6 -6
  320. package/dist/helpers/module.helper.js.map +1 -1
  321. package/dist/helpers/solid-registry.d.ts +5 -9
  322. package/dist/helpers/solid-registry.d.ts.map +1 -1
  323. package/dist/helpers/solid-registry.js +13 -28
  324. package/dist/helpers/solid-registry.js.map +1 -1
  325. package/dist/helpers/typeorm-migration-helpers.d.ts +12 -0
  326. package/dist/helpers/typeorm-migration-helpers.d.ts.map +1 -0
  327. package/dist/helpers/typeorm-migration-helpers.js +119 -0
  328. package/dist/helpers/typeorm-migration-helpers.js.map +1 -0
  329. package/dist/helpers/user-helper.d.ts.map +1 -1
  330. package/dist/helpers/user-helper.js +4 -0
  331. package/dist/helpers/user-helper.js.map +1 -1
  332. package/dist/index.d.ts +37 -10
  333. package/dist/index.d.ts.map +1 -1
  334. package/dist/index.js +37 -10
  335. package/dist/index.js.map +1 -1
  336. package/dist/interfaces.d.ts +23 -21
  337. package/dist/interfaces.d.ts.map +1 -1
  338. package/dist/interfaces.js.map +1 -1
  339. package/dist/listeners/user-registration.listener.d.ts +5 -2
  340. package/dist/listeners/user-registration.listener.d.ts.map +1 -1
  341. package/dist/listeners/user-registration.listener.js +37 -4
  342. package/dist/listeners/user-registration.listener.js.map +1 -1
  343. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts +14 -0
  344. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts.map +1 -0
  345. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js +67 -0
  346. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js.map +1 -0
  347. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  348. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  349. package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  350. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  351. package/dist/repository/{ai-interaction.repository.d.ts → mcp-audit-log.repository.d.ts} +3 -3
  352. package/dist/repository/mcp-audit-log.repository.d.ts.map +1 -0
  353. package/dist/repository/{ai-interaction.repository.js → mcp-audit-log.repository.js} +8 -8
  354. package/dist/repository/mcp-audit-log.repository.js.map +1 -0
  355. package/dist/seeders/module-metadata-seeder.service.d.ts +2 -6
  356. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  357. package/dist/seeders/module-metadata-seeder.service.js +58 -98
  358. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  359. package/dist/seeders/module-test-data.service.d.ts +2 -0
  360. package/dist/seeders/module-test-data.service.d.ts.map +1 -1
  361. package/dist/seeders/module-test-data.service.js +62 -1
  362. package/dist/seeders/module-test-data.service.js.map +1 -1
  363. package/dist/seeders/seed-data/solid-core-metadata.json +5009 -4283
  364. package/dist/seeders/system-fields-seeder.service.js +1 -1
  365. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  366. package/dist/services/authentication.service.d.ts +18 -1
  367. package/dist/services/authentication.service.d.ts.map +1 -1
  368. package/dist/services/authentication.service.js +208 -14
  369. package/dist/services/authentication.service.js.map +1 -1
  370. package/dist/services/chatter-message.service.d.ts +7 -1
  371. package/dist/services/chatter-message.service.d.ts.map +1 -1
  372. package/dist/services/chatter-message.service.js +94 -2
  373. package/dist/services/chatter-message.service.js.map +1 -1
  374. package/dist/services/crud-helper.service.d.ts +18 -0
  375. package/dist/services/crud-helper.service.d.ts.map +1 -1
  376. package/dist/services/crud-helper.service.js +76 -2
  377. package/dist/services/crud-helper.service.js.map +1 -1
  378. package/dist/services/crud.service.d.ts +1 -21
  379. package/dist/services/crud.service.d.ts.map +1 -1
  380. package/dist/services/crud.service.js +23 -87
  381. package/dist/services/crud.service.js.map +1 -1
  382. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  383. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  384. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  385. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  386. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  387. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  388. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  389. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  390. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  391. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  392. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  393. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  394. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  395. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  396. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  397. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  398. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  399. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  400. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  401. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  402. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  403. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  404. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  405. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  406. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  407. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  408. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  409. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  410. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  411. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  412. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  413. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  414. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  415. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  416. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  417. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  418. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  419. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  420. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  421. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  422. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  423. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  424. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  425. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  426. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  427. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  428. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  429. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  430. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  431. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  432. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  433. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  434. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  435. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  436. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  437. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  438. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  439. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  440. package/dist/services/dashboard-runtime.service.js +408 -0
  441. package/dist/services/dashboard-runtime.service.js.map +1 -0
  442. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  443. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  444. package/dist/services/{dashboard-question-sql-dataset-config.service.js → dashboard-user-layout.service.js} +10 -10
  445. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  446. package/dist/services/import-transaction.service.d.ts.map +1 -1
  447. package/dist/services/import-transaction.service.js +6 -0
  448. package/dist/services/import-transaction.service.js.map +1 -1
  449. package/dist/services/mcp-audit-log.service.d.ts +12 -0
  450. package/dist/services/mcp-audit-log.service.d.ts.map +1 -0
  451. package/dist/services/{dashboard-variable.service.js → mcp-audit-log.service.js} +9 -10
  452. package/dist/services/mcp-audit-log.service.js.map +1 -0
  453. package/dist/services/media.service.d.ts +1 -20
  454. package/dist/services/media.service.d.ts.map +1 -1
  455. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts +1 -0
  456. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  457. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +51 -11
  458. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  459. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts +1 -0
  460. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  461. package/dist/services/mediaStorageProviders/file-storage-provider.js +11 -1
  462. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  463. package/dist/services/model-metadata.service.d.ts +20 -32
  464. package/dist/services/model-metadata.service.d.ts.map +1 -1
  465. package/dist/services/model-metadata.service.js +271 -42
  466. package/dist/services/model-metadata.service.js.map +1 -1
  467. package/dist/services/module-metadata-explorer.service.d.ts +161 -0
  468. package/dist/services/module-metadata-explorer.service.d.ts.map +1 -0
  469. package/dist/services/module-metadata-explorer.service.js +485 -0
  470. package/dist/services/module-metadata-explorer.service.js.map +1 -0
  471. package/dist/services/module-metadata.service.d.ts +11 -1
  472. package/dist/services/module-metadata.service.d.ts.map +1 -1
  473. package/dist/services/module-metadata.service.js +140 -4
  474. package/dist/services/module-metadata.service.js.map +1 -1
  475. package/dist/services/module-package.service.d.ts +266 -0
  476. package/dist/services/module-package.service.d.ts.map +1 -0
  477. package/dist/services/module-package.service.js +980 -0
  478. package/dist/services/module-package.service.js.map +1 -0
  479. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  480. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  481. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  482. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  483. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  484. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  485. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  486. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  487. package/dist/services/settings/default-settings-provider.service.d.ts +292 -0
  488. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  489. package/dist/services/settings/default-settings-provider.service.js +164 -0
  490. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  491. package/dist/services/solid-introspect.service.d.ts +1 -2
  492. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  493. package/dist/services/solid-introspect.service.js +12 -24
  494. package/dist/services/solid-introspect.service.js.map +1 -1
  495. package/dist/services/user.service.d.ts +2 -0
  496. package/dist/services/user.service.d.ts.map +1 -1
  497. package/dist/services/user.service.js +47 -1
  498. package/dist/services/user.service.js.map +1 -1
  499. package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts +11 -0
  500. package/dist/services/whatsapp/GupshupOtpWhatsappService.d.ts.map +1 -0
  501. package/dist/services/whatsapp/GupshupOtpWhatsappService.js +127 -0
  502. package/dist/services/whatsapp/GupshupOtpWhatsappService.js.map +1 -0
  503. package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts +17 -0
  504. package/dist/services/whatsapp/MetaCloudWhatsappService.d.ts.map +1 -0
  505. package/dist/services/whatsapp/MetaCloudWhatsappService.js +209 -0
  506. package/dist/services/whatsapp/MetaCloudWhatsappService.js.map +1 -0
  507. package/dist/solid-core.module.d.ts +2 -2
  508. package/dist/solid-core.module.d.ts.map +1 -1
  509. package/dist/solid-core.module.js +79 -103
  510. package/dist/solid-core.module.js.map +1 -1
  511. package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
  512. package/dist/subscribers/model-metadata.subscriber.js +1 -3
  513. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  514. package/dist/subscribers/scheduled-job.subscriber.js +1 -1
  515. package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
  516. package/dist/subscribers/security-rule.subscriber.js +1 -1
  517. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  518. package/dist/testing/adapters/ui/playwright-adapter.d.ts +1 -0
  519. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  520. package/dist/testing/adapters/ui/playwright-adapter.js +3 -0
  521. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  522. package/dist/testing/steps/ui/index.d.ts.map +1 -1
  523. package/dist/testing/steps/ui/index.js +2 -0
  524. package/dist/testing/steps/ui/index.js.map +1 -1
  525. package/dist/testing/steps/ui/manual.step.d.ts +3 -0
  526. package/dist/testing/steps/ui/manual.step.d.ts.map +1 -0
  527. package/dist/testing/steps/ui/manual.step.js +56 -0
  528. package/dist/testing/steps/ui/manual.step.js.map +1 -0
  529. package/dist/winston.logger.d.ts +5 -0
  530. package/dist/winston.logger.d.ts.map +1 -1
  531. package/dist/winston.logger.js +6 -4
  532. package/dist/winston.logger.js.map +1 -1
  533. package/package.json +5 -8
  534. package/src/commands/info.command.ts +0 -2
  535. package/src/commands/refresh-model.command.ts +6 -51
  536. package/src/commands/refresh-module.command.ts +3 -16
  537. package/src/commands/test-data.command.ts +29 -6
  538. package/src/constants/error-messages.ts +2 -1
  539. package/src/controllers/chatter-message.controller.ts +12 -0
  540. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  541. package/src/controllers/dashboard.controller.ts +70 -89
  542. package/src/controllers/gupshup-webhook.controller.ts +91 -0
  543. package/src/controllers/mcp-audit-log.controller.ts +70 -0
  544. package/src/controllers/meta-cloud-whatsapp-webhook.controller.ts +155 -0
  545. package/src/controllers/microsoft-active-directory-authentication.controller.ts +104 -0
  546. package/src/controllers/model-metadata.controller.ts +1 -1
  547. package/src/controllers/module-metadata-explorer.controller.ts +83 -0
  548. package/src/controllers/module-metadata.controller.ts +7 -1
  549. package/src/controllers/module-package.controller.ts +102 -0
  550. package/src/controllers/service.controller.ts +4 -7
  551. package/src/controllers/test.controller.ts +0 -9
  552. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  553. package/src/dtos/confirm-module-package-import.dto.ts +12 -0
  554. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  555. package/src/dtos/create-mcp-audit-log.dto.ts +84 -0
  556. package/src/dtos/create-model-metadata.dto.ts +5 -9
  557. package/src/dtos/create-permission-metadata.dto.ts +3 -0
  558. package/src/dtos/create-role-metadata.dto.ts +11 -1
  559. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  560. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  561. package/src/dtos/import-instructions.dto.ts +11 -1
  562. package/src/dtos/metadata-explorer-references-query.dto.ts +39 -0
  563. package/src/dtos/metadata-explorer-search-query.dto.ts +28 -0
  564. package/src/dtos/metadata-explorer-write.dto.ts +11 -0
  565. package/src/dtos/run-module-package-build.dto.ts +14 -0
  566. package/src/dtos/run-module-package-seed.dto.ts +12 -0
  567. package/src/dtos/update-chatter-note-message.dto.ts +14 -0
  568. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  569. package/src/dtos/update-mcp-audit-log.dto.ts +83 -0
  570. package/src/dtos/update-permission-metadata.dto.ts +4 -1
  571. package/src/dtos/update-role-metadata.dto.ts +21 -1
  572. package/src/dtos/update-user.dto.ts +4 -0
  573. package/src/entities/action-metadata.entity.ts +1 -0
  574. package/src/entities/agent-event.entity.ts +1 -0
  575. package/src/entities/agent-session.entity.ts +1 -0
  576. package/src/entities/chatter-message.entity.ts +2 -0
  577. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  578. package/src/entities/email-template.entity.ts +1 -0
  579. package/src/entities/field-metadata.entity.ts +4 -1
  580. package/src/entities/legacy-common-with-id.entity.ts +2 -2
  581. package/src/entities/legacy-common.entity.ts +1 -1
  582. package/src/entities/list-of-values.entity.ts +5 -1
  583. package/src/entities/locale.entity.ts +1 -0
  584. package/src/entities/mcp-audit-log.entity.ts +55 -0
  585. package/src/entities/media.entity.ts +1 -0
  586. package/src/entities/menu-item-metadata.entity.ts +2 -0
  587. package/src/entities/model-metadata.entity.ts +6 -5
  588. package/src/entities/module-metadata.entity.ts +2 -0
  589. package/src/entities/permission-metadata.entity.ts +2 -2
  590. package/src/entities/role-metadata.entity.ts +11 -3
  591. package/src/entities/saved-filters.entity.ts +3 -0
  592. package/src/entities/scheduled-job.entity.ts +2 -0
  593. package/src/entities/security-rule.entity.ts +1 -0
  594. package/src/entities/sms-template.entity.ts +2 -0
  595. package/src/entities/user-activity-history.entity.ts +1 -0
  596. package/src/entities/user.entity.ts +16 -2
  597. package/src/entities/view-metadata.entity.ts +2 -0
  598. package/src/enums/legacy-table-type.enum.ts +5 -0
  599. package/src/factories/whatsapp.factory.ts +33 -32
  600. package/src/helpers/bootstrap.helper.ts +13 -6
  601. package/src/helpers/command.service.ts +3 -1
  602. package/src/helpers/field-crud-managers/field-quality-check-fixes.md +208 -0
  603. package/src/helpers/microsoft-active-directory-oauth.helper.ts +83 -0
  604. package/src/helpers/model-metadata-helper.service.ts +4 -3
  605. package/src/helpers/module-metadata-helper.service.ts +33 -20
  606. package/src/helpers/module.helper.ts +12 -9
  607. package/src/helpers/solid-registry.ts +15 -36
  608. package/src/helpers/typeorm-migration-helpers.ts +163 -0
  609. package/src/helpers/user-helper.ts +5 -1
  610. package/src/index.ts +37 -10
  611. package/src/interfaces.ts +32 -29
  612. package/src/listeners/user-registration.listener.ts +49 -6
  613. package/src/passport-strategies/microsoft-active-directory-oauth.strategy.ts +63 -0
  614. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  615. package/src/repository/mcp-audit-log.repository.ts +17 -0
  616. package/src/seeders/module-metadata-seeder.service.ts +63 -105
  617. package/src/seeders/module-test-data.service.ts +80 -3
  618. package/src/seeders/seed-data/solid-core-metadata.json +5010 -4284
  619. package/src/seeders/system-fields-seeder.service.ts +1 -1
  620. package/src/services/1.js +6 -0
  621. package/src/services/authentication.service.ts +359 -46
  622. package/src/services/chatter-message.service.ts +112 -2
  623. package/src/services/crud-helper.service.ts +86 -2
  624. package/src/services/crud.service.ts +26 -119
  625. package/src/services/dashboard-providers/README.md +603 -0
  626. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  627. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  628. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  629. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  630. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  631. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  632. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  633. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  634. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  635. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  636. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  637. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  638. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  639. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  640. package/src/services/dashboard-runtime.service.ts +488 -0
  641. package/src/services/dashboard-user-layout.service.ts +20 -0
  642. package/src/services/import-transaction.service.ts +11 -1
  643. package/src/services/mcp-audit-log.service.ts +19 -0
  644. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +60 -13
  645. package/src/services/mediaStorageProviders/file-storage-provider.ts +13 -2
  646. package/src/services/model-metadata.service.ts +318 -115
  647. package/src/services/module-metadata-explorer.service.ts +670 -0
  648. package/src/services/module-metadata.service.ts +148 -10
  649. package/src/services/module-package.service.ts +1171 -0
  650. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  651. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  652. package/src/services/settings/default-settings-provider.service.ts +167 -0
  653. package/src/services/solid-introspect.service.ts +19 -34
  654. package/src/services/user.service.ts +62 -1
  655. package/src/services/whatsapp/GupshupOtpWhatsappService.ts +174 -0
  656. package/src/services/whatsapp/MetaCloudWhatsappService.ts +253 -0
  657. package/src/solid-core.module.ts +251 -282
  658. package/src/subscribers/model-metadata.subscriber.ts +1 -3
  659. package/src/subscribers/scheduled-job.subscriber.ts +1 -1
  660. package/src/subscribers/security-rule.subscriber.ts +1 -1
  661. package/src/testing/README.md +55 -2
  662. package/src/testing/adapters/ui/playwright-adapter.ts +4 -0
  663. package/src/testing/steps/ui/index.ts +2 -0
  664. package/src/testing/steps/ui/manual.step.ts +80 -0
  665. package/src/winston.logger.ts +5 -7
  666. package/dist/commands/ingest.command.d.ts +0 -16
  667. package/dist/commands/ingest.command.d.ts.map +0 -1
  668. package/dist/commands/ingest.command.js +0 -50
  669. package/dist/commands/ingest.command.js.map +0 -1
  670. package/dist/controllers/ai-interaction.controller.d.ts +0 -48
  671. package/dist/controllers/ai-interaction.controller.d.ts.map +0 -1
  672. package/dist/controllers/ai-interaction.controller.js +0 -218
  673. package/dist/controllers/ai-interaction.controller.js.map +0 -1
  674. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  675. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  676. package/dist/controllers/dashboard-layout.controller.js +0 -204
  677. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  678. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  679. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  680. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  681. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  682. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  683. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  684. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  685. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  686. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  687. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  688. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  689. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  690. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  691. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  692. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  693. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  694. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  695. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  696. package/dist/dtos/create-ai-interaction.dto.d.ts +0 -23
  697. package/dist/dtos/create-ai-interaction.dto.d.ts.map +0 -1
  698. package/dist/dtos/create-ai-interaction.dto.js +0 -149
  699. package/dist/dtos/create-ai-interaction.dto.js.map +0 -1
  700. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  701. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  702. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  703. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  704. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  705. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  706. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  707. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  708. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  709. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  710. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  711. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  712. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  713. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  714. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  715. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  716. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  717. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  718. package/dist/dtos/create-dashboard.dto.js +0 -102
  719. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  720. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  721. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  722. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  723. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  724. package/dist/dtos/invoke-ai-prompt.dto.d.ts +0 -5
  725. package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +0 -1
  726. package/dist/dtos/invoke-ai-prompt.dto.js.map +0 -1
  727. package/dist/dtos/update-ai-interaction.dto.d.ts +0 -24
  728. package/dist/dtos/update-ai-interaction.dto.d.ts.map +0 -1
  729. package/dist/dtos/update-ai-interaction.dto.js +0 -150
  730. package/dist/dtos/update-ai-interaction.dto.js.map +0 -1
  731. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  732. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  733. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  734. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  735. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  736. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  737. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  738. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  739. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  740. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  741. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  742. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  743. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  744. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  745. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  746. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  747. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  748. package/dist/dtos/update-dashboard.dto.js +0 -108
  749. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  750. package/dist/entities/ai-interaction.entity.d.ts +0 -24
  751. package/dist/entities/ai-interaction.entity.d.ts.map +0 -1
  752. package/dist/entities/ai-interaction.entity.js +0 -116
  753. package/dist/entities/ai-interaction.entity.js.map +0 -1
  754. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  755. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  756. package/dist/entities/dashboard-layout.entity.js +0 -41
  757. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  758. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  759. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  760. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  761. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  762. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  763. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  764. package/dist/entities/dashboard-question.entity.js +0 -77
  765. package/dist/entities/dashboard-question.entity.js.map +0 -1
  766. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  767. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  768. package/dist/entities/dashboard-variable.entity.js +0 -79
  769. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  770. package/dist/entities/dashboard.entity.d.ts +0 -16
  771. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  772. package/dist/entities/dashboard.entity.js +0 -64
  773. package/dist/entities/dashboard.entity.js.map +0 -1
  774. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +0 -11
  775. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +0 -1
  776. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +0 -39
  777. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +0 -1
  778. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +0 -8
  779. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +0 -1
  780. package/dist/jobs/database/trigger-mcp-client-queue-options.js +0 -10
  781. package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +0 -1
  782. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +0 -27
  783. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +0 -1
  784. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +0 -245
  785. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +0 -1
  786. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +0 -11
  787. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +0 -1
  788. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js +0 -39
  789. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +0 -1
  790. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts +0 -8
  791. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +0 -1
  792. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js +0 -10
  793. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +0 -1
  794. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +0 -18
  795. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
  796. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js +0 -103
  797. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +0 -1
  798. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +0 -11
  799. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +0 -1
  800. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +0 -39
  801. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +0 -1
  802. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +0 -8
  803. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +0 -1
  804. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +0 -10
  805. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +0 -1
  806. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +0 -18
  807. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +0 -1
  808. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +0 -103
  809. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +0 -1
  810. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  811. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  812. package/dist/mappers/dashboard-mapper.js +0 -62
  813. package/dist/mappers/dashboard-mapper.js.map +0 -1
  814. package/dist/repository/ai-interaction.repository.d.ts.map +0 -1
  815. package/dist/repository/ai-interaction.repository.js.map +0 -1
  816. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  817. package/dist/repository/dashboard-layout.repository.js +0 -34
  818. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  819. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  820. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  821. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  822. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  823. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  824. package/dist/repository/dashboard-question.repository.js +0 -34
  825. package/dist/repository/dashboard-question.repository.js.map +0 -1
  826. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  827. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  828. package/dist/repository/dashboard-variable.repository.js +0 -34
  829. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  830. package/dist/repository/dashboard.repository.d.ts +0 -13
  831. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  832. package/dist/repository/dashboard.repository.js +0 -104
  833. package/dist/repository/dashboard.repository.js.map +0 -1
  834. package/dist/services/ai-interaction.service.d.ts +0 -23
  835. package/dist/services/ai-interaction.service.d.ts.map +0 -1
  836. package/dist/services/ai-interaction.service.js +0 -217
  837. package/dist/services/ai-interaction.service.js.map +0 -1
  838. package/dist/services/dashboard-layout.service.d.ts +0 -20
  839. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  840. package/dist/services/dashboard-layout.service.js +0 -120
  841. package/dist/services/dashboard-layout.service.js.map +0 -1
  842. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  843. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  844. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  845. package/dist/services/dashboard-question.service.d.ts +0 -23
  846. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  847. package/dist/services/dashboard-question.service.js +0 -135
  848. package/dist/services/dashboard-question.service.js.map +0 -1
  849. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  850. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  851. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  852. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  853. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  854. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  855. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  856. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  857. package/dist/services/dashboard-variable.service.d.ts +0 -13
  858. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  859. package/dist/services/dashboard-variable.service.js.map +0 -1
  860. package/dist/services/dashboard.service.d.ts +0 -29
  861. package/dist/services/dashboard.service.d.ts.map +0 -1
  862. package/dist/services/dashboard.service.js +0 -171
  863. package/dist/services/dashboard.service.js.map +0 -1
  864. package/dist/services/database/database-bootstrap.service.d.ts +0 -12
  865. package/dist/services/database/database-bootstrap.service.d.ts.map +0 -1
  866. package/dist/services/database/database-bootstrap.service.js +0 -115
  867. package/dist/services/database/database-bootstrap.service.js.map +0 -1
  868. package/dist/services/genai/ingest-metadata.service.d.ts +0 -38
  869. package/dist/services/genai/ingest-metadata.service.d.ts.map +0 -1
  870. package/dist/services/genai/ingest-metadata.service.js +0 -542
  871. package/dist/services/genai/ingest-metadata.service.js.map +0 -1
  872. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +0 -9
  873. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +0 -1
  874. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +0 -39
  875. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +0 -1
  876. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  877. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  878. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  879. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  880. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  881. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  882. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  883. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  884. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  885. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  886. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  887. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  888. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  889. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  890. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  891. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  892. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  893. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  894. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  895. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  896. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  897. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  898. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  899. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  900. package/dist/services/genai/r2r-helper.service.d.ts +0 -9
  901. package/dist/services/genai/r2r-helper.service.d.ts.map +0 -1
  902. package/dist/services/genai/r2r-helper.service.js +0 -40
  903. package/dist/services/genai/r2r-helper.service.js.map +0 -1
  904. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  905. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  906. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  907. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  908. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  909. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  910. package/dist/services/question-data-providers/helpers.js +0 -25
  911. package/dist/services/question-data-providers/helpers.js.map +0 -1
  912. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  913. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  914. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  915. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  916. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  917. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  918. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  919. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  920. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  921. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  922. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  923. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  924. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  925. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  926. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  927. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  928. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  929. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  930. package/dist/services/sql-expression-resolver.service.js +0 -121
  931. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  932. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  933. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  934. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  935. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  936. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  937. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  938. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  939. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  940. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  941. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  942. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  943. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  944. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  945. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  946. package/dist/subscribers/dashboard.subscriber.js +0 -71
  947. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  948. package/dist-tests/api/authenticate.spec.js +0 -119
  949. package/dist-tests/api/authenticate.spec.js.map +0 -1
  950. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  951. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  952. package/dist-tests/api/ping.spec.js +0 -21
  953. package/dist-tests/api/ping.spec.js.map +0 -1
  954. package/dist-tests/helpers/auth.js +0 -41
  955. package/dist-tests/helpers/auth.js.map +0 -1
  956. package/dist-tests/helpers/env.js +0 -11
  957. package/dist-tests/helpers/env.js.map +0 -1
  958. package/docs/grouping-enhancements.md +0 -89
  959. package/docs/java-spring/README.md +0 -3
  960. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  961. package/docs/seed-changes.md +0 -65
  962. package/docs/test-data-workflow.md +0 -200
  963. package/docs/type-declaration-import-issue.md +0 -24
  964. package/sql/default/mariadb/proc_CleanupModelMetadata.sql +0 -153
  965. package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +0 -56
  966. package/sql/default/mssql/proc_CleanupModuleMetadata.sql +0 -78
  967. package/sql/default/mysql/proc_CleanupModelMetadata.sql +0 -153
  968. package/sql/default/mysql/proc_CleanupModuleMetadata.sql +0 -56
  969. package/sql/default/postgres/proc_CleanupModelMetadata.sql +0 -148
  970. package/sql/default/postgres/proc_CleanupModuleMetadata.sql +0 -50
  971. package/sql/default/postgres/scratchpad.sql.txt +0 -12
  972. package/src/commands/ingest.command.ts +0 -36
  973. package/src/controllers/ai-interaction.controller.ts +0 -112
  974. package/src/controllers/dashboard-layout.controller.ts +0 -106
  975. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  976. package/src/controllers/dashboard-question.controller.ts +0 -104
  977. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  978. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  979. package/src/dtos/create-ai-interaction.dto.ts +0 -89
  980. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  981. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  982. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  983. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  984. package/src/dtos/create-dashboard.dto.ts +0 -61
  985. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  986. package/src/dtos/invoke-ai-prompt.dto.ts +0 -10
  987. package/src/dtos/update-ai-interaction.dto.ts +0 -93
  988. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  989. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  990. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  991. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  992. package/src/dtos/update-dashboard.dto.ts +0 -65
  993. package/src/entities/ai-interaction.entity.ts +0 -71
  994. package/src/entities/dashboard-layout.entity.ts +0 -18
  995. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  996. package/src/entities/dashboard-question.entity.ts +0 -46
  997. package/src/entities/dashboard-variable.entity.ts +0 -44
  998. package/src/entities/dashboard.entity.ts +0 -36
  999. package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +0 -22
  1000. package/src/jobs/database/trigger-mcp-client-queue-options.ts +0 -9
  1001. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +0 -311
  1002. package/src/jobs/rabbitmq/trigger-mcp-client-publisher.service.ts +0 -22
  1003. package/src/jobs/rabbitmq/trigger-mcp-client-queue-options.ts +0 -9
  1004. package/src/jobs/rabbitmq/trigger-mcp-client-subscriber.service.ts +0 -104
  1005. package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +0 -23
  1006. package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +0 -9
  1007. package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +0 -98
  1008. package/src/mappers/dashboard-mapper.ts +0 -53
  1009. package/src/repository/ai-interaction.repository.ts +0 -17
  1010. package/src/repository/dashboard-layout.repository.ts +0 -17
  1011. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  1012. package/src/repository/dashboard-question.repository.ts +0 -17
  1013. package/src/repository/dashboard-variable.repository.ts +0 -17
  1014. package/src/repository/dashboard.repository.ts +0 -101
  1015. package/src/services/ai-interaction.service.ts +0 -239
  1016. package/src/services/dashboard-layout.service.ts +0 -111
  1017. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  1018. package/src/services/dashboard-question.service.ts +0 -150
  1019. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  1020. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  1021. package/src/services/dashboard-variable.service.ts +0 -27
  1022. package/src/services/dashboard.service.ts +0 -148
  1023. package/src/services/database/database-bootstrap.service.ts +0 -91
  1024. package/src/services/genai/ingest-metadata.service.ts +0 -798
  1025. package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +0 -33
  1026. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  1027. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  1028. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  1029. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  1030. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  1031. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  1032. package/src/services/genai/r2r-helper.service.ts +0 -37
  1033. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  1034. package/src/services/question-data-providers/helpers.ts +0 -30
  1035. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  1036. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  1037. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  1038. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  1039. package/src/services/sql-expression-resolver.service.ts +0 -140
  1040. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  1041. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  1042. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  1043. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -1,72 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardVariableSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_variable_entity_1 = require("../entities/dashboard-variable.entity");
19
- const dashboard_entity_1 = require("../entities/dashboard.entity");
20
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
21
- const dashboard_service_1 = require("../services/dashboard.service");
22
- const typeorm_2 = require("typeorm");
23
- let DashboardVariableSubscriber = class DashboardVariableSubscriber {
24
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
25
- this.dataSource = dataSource;
26
- this.moduleMetadataHelperService = moduleMetadataHelperService;
27
- this.dashboardService = dashboardService;
28
- this.logger = new common_1.Logger(this.constructor.name);
29
- this.dataSource.subscribers.push(this);
30
- }
31
- listenTo() {
32
- return dashboard_variable_entity_1.DashboardVariable;
33
- }
34
- async afterInsert(event) {
35
- if (!event.entity) {
36
- this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterInsert method');
37
- return;
38
- }
39
- await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
40
- }
41
- async afterUpdate(event) {
42
- if (!event.databaseEntity) {
43
- this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterUpdate method');
44
- return;
45
- }
46
- await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
47
- }
48
- async saveDashboardToConfig(dashboardVariable, entityManager) {
49
- const dashboard = dashboardVariable.dashboard;
50
- if (!dashboard) {
51
- this.logger.debug(`Dashboard is undefined for dashboard variable id ${dashboardVariable.id}`);
52
- return;
53
- }
54
- const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
55
- where: { id: dashboard.id },
56
- relations: ['module', 'dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
57
- });
58
- if (!populatedDashboard) {
59
- throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);
60
- }
61
- await this.dashboardService.saveDashboardToConfig(populatedDashboard);
62
- }
63
- };
64
- exports.DashboardVariableSubscriber = DashboardVariableSubscriber;
65
- exports.DashboardVariableSubscriber = DashboardVariableSubscriber = __decorate([
66
- (0, common_1.Injectable)(),
67
- __param(0, (0, typeorm_1.InjectDataSource)()),
68
- __metadata("design:paramtypes", [typeorm_2.DataSource,
69
- module_metadata_helper_service_1.ModuleMetadataHelperService,
70
- dashboard_service_1.DashboardService])
71
- ], DashboardVariableSubscriber);
72
- //# sourceMappingURL=dashboard-variable.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-variable.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard-variable.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,qFAA2E;AAC3E,mEAA0D;AAC1D,8FAAyF;AAEzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAEpC,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,6CAAiB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAqC;QACnD,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;YAC9G,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,iBAAoC,EAAE,aAA4B;QAClG,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;QAE9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9F,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAC,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,CAAC;SACjG,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,kBAAkB,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CACJ,CAAA;AApDY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,2BAA2B,CAoDvC","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { DashboardVariable } from \"src/entities/dashboard-variable.entity\";\nimport { Dashboard } from \"src/entities/dashboard.entity\";\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardVariableService } from \"src/services/dashboard-variable.service\";\nimport { DashboardService } from \"src/services/dashboard.service\";\nimport { EntitySubscriberInterface, DataSource, InsertEvent, UpdateEvent, EntityManager } from \"typeorm\";\n\n@Injectable()\nexport class DashboardVariableSubscriber implements EntitySubscriberInterface<DashboardVariable> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return DashboardVariable;\n }\n\n async afterInsert(event: InsertEvent<DashboardVariable>) {\n if (!event.entity) {\n this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<DashboardVariable>) {\n if (!event.databaseEntity) {\n this.logger.debug('No dashboard variable entity found in the DashboardVariableSubscriber afterUpdate method');\n return;\n }\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(dashboardVariable: DashboardVariable, entityManager: EntityManager): Promise<void> {\n const dashboard = dashboardVariable.dashboard;\n // Get the dashboard from the question & call the saveDashboardToConfig method\n if (!dashboard) {\n this.logger.debug(`Dashboard is undefined for dashboard variable id ${dashboardVariable.id}`);\n return;\n }\n\n // populate the dashboard with its variables\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module','dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (!populatedDashboard) {\n throw new Error(`Dashboard not found for question id ${populatedDashboard.id}`);\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n}"]}
@@ -1,16 +0,0 @@
1
- import { Dashboard } from '../entities/dashboard.entity';
2
- import { ModuleMetadataHelperService } from "../helpers/module-metadata-helper.service";
3
- import { DashboardService } from '../services/dashboard.service';
4
- import { DataSource, EntitySubscriberInterface, InsertEvent, UpdateEvent } from "typeorm";
5
- export declare class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {
6
- private readonly dataSource;
7
- readonly moduleMetadataHelperService: ModuleMetadataHelperService;
8
- readonly dashboardService: DashboardService;
9
- private readonly logger;
10
- constructor(dataSource: DataSource, moduleMetadataHelperService: ModuleMetadataHelperService, dashboardService: DashboardService);
11
- listenTo(): typeof Dashboard;
12
- afterInsert(event: InsertEvent<Dashboard>): Promise<void>;
13
- afterUpdate(event: UpdateEvent<Dashboard>): Promise<void>;
14
- private saveDashboardToConfig;
15
- }
16
- //# sourceMappingURL=dashboard.subscriber.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.subscriber.d.ts","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAiB,yBAAyB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzG,qBACa,mBAAoB,YAAW,yBAAyB,CAAC,SAAS,CAAC;IAIxE,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,2BAA2B,EAAE,2BAA2B;IACjE,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAL/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;gBAGvC,UAAU,EAAE,UAAU,EAC9B,2BAA2B,EAAE,2BAA2B,EACxD,gBAAgB,EAAE,gBAAgB;IAK/C,QAAQ;IAIF,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC;IAQzC,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC;YASjC,qBAAqB;CAqBtC"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DashboardSubscriber = void 0;
16
- const common_1 = require("@nestjs/common");
17
- const typeorm_1 = require("@nestjs/typeorm");
18
- const dashboard_entity_1 = require("../entities/dashboard.entity");
19
- const module_metadata_helper_service_1 = require("../helpers/module-metadata-helper.service");
20
- const dashboard_service_1 = require("../services/dashboard.service");
21
- const typeorm_2 = require("typeorm");
22
- let DashboardSubscriber = class DashboardSubscriber {
23
- constructor(dataSource, moduleMetadataHelperService, dashboardService) {
24
- this.dataSource = dataSource;
25
- this.moduleMetadataHelperService = moduleMetadataHelperService;
26
- this.dashboardService = dashboardService;
27
- this.logger = new common_1.Logger(this.constructor.name);
28
- this.dataSource.subscribers.push(this);
29
- }
30
- listenTo() {
31
- return dashboard_entity_1.Dashboard;
32
- }
33
- async afterInsert(event) {
34
- if (!event.entity) {
35
- this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
36
- return;
37
- }
38
- await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);
39
- }
40
- async afterUpdate(event) {
41
- if (!event.entity) {
42
- this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');
43
- return;
44
- }
45
- await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);
46
- }
47
- async saveDashboardToConfig(dashboard, entityManager) {
48
- if (!dashboard || !dashboard.id) {
49
- this.logger.debug('Dashboard or dashboard id is undefined');
50
- return;
51
- }
52
- const populatedDashboard = await entityManager.findOne(dashboard_entity_1.Dashboard, {
53
- where: { id: dashboard.id },
54
- relations: ['module', 'dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],
55
- });
56
- if (!populatedDashboard) {
57
- this.logger.error(`Dashboard not found for id ${dashboard.id}`);
58
- return;
59
- }
60
- await this.dashboardService.saveDashboardToConfig(populatedDashboard);
61
- }
62
- };
63
- exports.DashboardSubscriber = DashboardSubscriber;
64
- exports.DashboardSubscriber = DashboardSubscriber = __decorate([
65
- (0, common_1.Injectable)(),
66
- __param(0, (0, typeorm_1.InjectDataSource)()),
67
- __metadata("design:paramtypes", [typeorm_2.DataSource,
68
- module_metadata_helper_service_1.ModuleMetadataHelperService,
69
- dashboard_service_1.DashboardService])
70
- ], DashboardSubscriber);
71
- //# sourceMappingURL=dashboard.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard.subscriber.js","sourceRoot":"","sources":["../../src/subscribers/dashboard.subscriber.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,6CAAmD;AACnD,mEAA0D;AAC1D,8FAAyF;AACzF,qEAAkE;AAClE,qCAAyG;AAGlG,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE5B,YAEI,UAAuC,EAC9B,2BAAwD,EACxD,gBAAkC;QAF1B,eAAU,GAAV,UAAU,CAAY;QAC9B,gCAA2B,GAA3B,2BAA2B,CAA6B;QACxD,qBAAgB,GAAhB,gBAAgB,CAAkB;QAL9B,WAAM,GAAG,IAAI,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAOxD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,QAAQ;QACJ,OAAO,4BAAS,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAA6B;QAC3C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yEAAyE,CAAC,CAAC;YAC7F,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,SAAoB,EAAE,aAA4B;QAClF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAGD,MAAM,kBAAkB,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,4BAAS,EAAE;YAC9D,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE;YAC3B,SAAS,EAAE,CAAC,QAAQ,EAAC,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,CAAC;SACjG,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,OAAO;QACX,CAAC;QAGD,MAAM,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAC1E,CAAC;CAEJ,CAAA;AArDY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;IAIJ,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCACU,oBAAU;QACD,4DAA2B;QACtC,oCAAgB;GANtC,mBAAmB,CAqD/B","sourcesContent":["import { Injectable, Logger } from '@nestjs/common';\nimport { InjectDataSource } from \"@nestjs/typeorm\";\nimport { Dashboard } from 'src/entities/dashboard.entity';\nimport { ModuleMetadataHelperService } from \"src/helpers/module-metadata-helper.service\";\nimport { DashboardService } from 'src/services/dashboard.service';\nimport { DataSource, EntityManager, EntitySubscriberInterface, InsertEvent, UpdateEvent } from \"typeorm\";\n\n@Injectable()\nexport class DashboardSubscriber implements EntitySubscriberInterface<Dashboard> {\n private readonly logger = new Logger(this.constructor.name);\n constructor(\n @InjectDataSource()\n private readonly dataSource: DataSource,\n readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n readonly dashboardService: DashboardService, // Assuming you have a DashboardService for custom queries\n ) {\n this.dataSource.subscribers.push(this);\n }\n\n listenTo() {\n return Dashboard;\n }\n\n async afterInsert(event: InsertEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n await this.saveDashboardToConfig(event.entity, event.queryRunner.manager);\n }\n\n async afterUpdate(event: UpdateEvent<Dashboard>) {\n if (!event.entity) {\n this.logger.debug('No dashboard entity found in the DashboardSubscriber afterInsert method');\n return;\n }\n\n await this.saveDashboardToConfig(event.databaseEntity, event.queryRunner.manager);\n }\n\n private async saveDashboardToConfig(dashboard: Dashboard, entityManager: EntityManager): Promise<void> {\n if (!dashboard || !dashboard.id) {\n this.logger.debug('Dashboard or dashboard id is undefined');\n return;\n }\n\n // Load the dashboard with module relation populated\n const populatedDashboard = await entityManager.findOne(Dashboard, {\n where: { id: dashboard.id },\n relations: ['module','dashboardVariables', 'questions', 'questions.questionSqlDatasetConfigs'],\n });\n\n if (!populatedDashboard) {\n this.logger.error(`Dashboard not found for id ${dashboard.id}`);\n return;\n }\n\n // Call the saveDashboardToConfig method from the DashboardService\n await this.dashboardService.saveDashboardToConfig(populatedDashboard);\n }\n\n}"]}
@@ -1,119 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const env_1 = require("../helpers/env");
5
- const baseURL = process.env.API_BASE_URL ?? "http://localhost:3000";
6
- const TEST_USER_EMAIL = (0, env_1.getRequiredEnv)("TEST_USER_EMAIL");
7
- const TEST_USER_PASSWORD = (0, env_1.getRequiredEnv)("TEST_USER_PASSWORD");
8
- function base64UrlDecode(input) {
9
- const normalized = input.replace(/-/g, "+").replace(/_/g, "/");
10
- const padded = normalized.length % 4 === 0
11
- ? normalized
12
- : normalized.padEnd(normalized.length + (4 - (normalized.length % 4)), "=");
13
- return Buffer.from(padded, "base64").toString("utf-8");
14
- }
15
- function validateJwt(token) {
16
- const parts = token.split(".");
17
- if (parts.length !== 3) {
18
- throw new Error("JWT must have three dot-separated parts.");
19
- }
20
- const headerJson = JSON.parse(base64UrlDecode(parts[0]));
21
- const payloadJson = JSON.parse(base64UrlDecode(parts[1]));
22
- if (!headerJson || typeof headerJson !== "object") {
23
- throw new Error("JWT header must be a JSON object.");
24
- }
25
- if (!payloadJson || typeof payloadJson !== "object") {
26
- throw new Error("JWT payload must be a JSON object.");
27
- }
28
- if (typeof payloadJson.exp !== "number") {
29
- throw new Error("JWT payload.exp must be a number.");
30
- }
31
- return payloadJson;
32
- }
33
- (0, test_1.test)("API: authenticate succeeds with valid credentials", async () => {
34
- const api = await test_1.request.newContext({
35
- baseURL,
36
- extraHTTPHeaders: {
37
- accept: "*/*",
38
- "content-type": "application/json",
39
- },
40
- });
41
- try {
42
- const res = await api.post("/api/iam/authenticate", {
43
- data: {
44
- email: TEST_USER_EMAIL,
45
- username: "",
46
- password: TEST_USER_PASSWORD,
47
- },
48
- });
49
- (0, test_1.expect)(res.status()).toBe(200);
50
- const json = await res.json();
51
- (0, test_1.expect)(json.statusCode).toBe(200);
52
- (0, test_1.expect)(Array.isArray(json.message)).toBe(true);
53
- (0, test_1.expect)(json.message.length).toBe(0);
54
- (0, test_1.expect)(json.error).toBe("");
55
- const user = json.data?.user;
56
- (0, test_1.expect)(user, "Expected data.user to be an object.").toBeTruthy();
57
- (0, test_1.expect)(typeof user).toBe("object");
58
- const email = user?.email;
59
- (0, test_1.expect)(typeof email).toBe("string");
60
- if (email === TEST_USER_EMAIL) {
61
- (0, test_1.expect)(email).toBe(TEST_USER_EMAIL);
62
- }
63
- else {
64
- (0, test_1.expect)(email.length).toBeGreaterThan(0);
65
- }
66
- (0, test_1.expect)(typeof user?.mobile).toBe("string");
67
- (0, test_1.expect)(typeof user?.username).toBe("string");
68
- (0, test_1.expect)(typeof user?.forcePasswordChange).toBe("boolean");
69
- (0, test_1.expect)(typeof user?.id).toBe("number");
70
- const roles = user?.roles;
71
- (0, test_1.expect)(Array.isArray(roles)).toBe(true);
72
- if (Array.isArray(roles)) {
73
- (0, test_1.expect)(roles.every((role) => typeof role === "string")).toBe(true);
74
- (0, test_1.expect)(roles).toContain("Admin");
75
- }
76
- const accessToken = json.data?.accessToken;
77
- const refreshToken = json.data?.refreshToken;
78
- (0, test_1.expect)(typeof accessToken).toBe("string");
79
- (0, test_1.expect)(typeof refreshToken).toBe("string");
80
- const accessPayload = validateJwt(accessToken);
81
- const refreshPayload = validateJwt(refreshToken);
82
- (0, test_1.expect)(typeof accessPayload.exp).toBe("number");
83
- (0, test_1.expect)(typeof refreshPayload.exp).toBe("number");
84
- }
85
- finally {
86
- await api.dispose();
87
- }
88
- });
89
- (0, test_1.test)("API: authenticate fails with wrong password", async () => {
90
- const api = await test_1.request.newContext({
91
- baseURL,
92
- extraHTTPHeaders: {
93
- accept: "*/*",
94
- "content-type": "application/json",
95
- },
96
- });
97
- try {
98
- const res = await api.post("/api/iam/authenticate", {
99
- data: {
100
- email: TEST_USER_EMAIL,
101
- username: "",
102
- password: `${TEST_USER_PASSWORD}__wrong`,
103
- },
104
- });
105
- (0, test_1.expect)(res.status()).toBe(401);
106
- const json = await res.json();
107
- (0, test_1.expect)(json.statusCode).toBe(401);
108
- (0, test_1.expect)(json.statusCodeMessage).toBe("Unauthorized");
109
- (0, test_1.expect)(json.message).toBe("Invalid credentials");
110
- (0, test_1.expect)(json.error).toBe("Invalid credentials");
111
- (0, test_1.expect)(json.data?.statusCode).toBe(401);
112
- (0, test_1.expect)(json.data?.error).toBe("Unauthorized");
113
- (0, test_1.expect)(json.data?.message).toBe("Invalid credentials");
114
- }
115
- finally {
116
- await api.dispose();
117
- }
118
- });
119
- //# sourceMappingURL=authenticate.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"authenticate.spec.js","sourceRoot":"","sources":["../../tests/api/authenticate.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, request, test } from \"@playwright/test\";\nimport { getRequiredEnv } from \"../helpers/env\";\n\ntype JwtPayload = {\n exp?: number;\n [key: string]: unknown;\n};\n\nconst baseURL = process.env.API_BASE_URL ?? \"http://localhost:3000\";\nconst TEST_USER_EMAIL = getRequiredEnv(\"TEST_USER_EMAIL\");\nconst TEST_USER_PASSWORD = getRequiredEnv(\"TEST_USER_PASSWORD\");\n\nfunction base64UrlDecode(input: string): string {\n const normalized = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const padded =\n normalized.length % 4 === 0\n ? normalized\n : normalized.padEnd(\n normalized.length + (4 - (normalized.length % 4)),\n \"=\"\n );\n return Buffer.from(padded, \"base64\").toString(\"utf-8\");\n}\n\nfunction validateJwt(token: string): JwtPayload {\n const parts = token.split(\".\");\n if (parts.length !== 3) {\n throw new Error(\"JWT must have three dot-separated parts.\");\n }\n\n const headerJson = JSON.parse(base64UrlDecode(parts[0]));\n const payloadJson = JSON.parse(base64UrlDecode(parts[1]));\n\n if (!headerJson || typeof headerJson !== \"object\") {\n throw new Error(\"JWT header must be a JSON object.\");\n }\n\n if (!payloadJson || typeof payloadJson !== \"object\") {\n throw new Error(\"JWT payload must be a JSON object.\");\n }\n\n if (typeof payloadJson.exp !== \"number\") {\n throw new Error(\"JWT payload.exp must be a number.\");\n }\n\n return payloadJson as JwtPayload;\n}\n\ntest(\"API: authenticate succeeds with valid credentials\", async () => {\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n },\n });\n\n try {\n const res = await api.post(\"/api/iam/authenticate\", {\n data: {\n email: TEST_USER_EMAIL,\n username: \"\",\n password: TEST_USER_PASSWORD,\n },\n });\n\n expect(res.status()).toBe(200);\n const json = await res.json();\n\n expect(json.statusCode).toBe(200);\n expect(Array.isArray(json.message)).toBe(true);\n expect(json.message.length).toBe(0);\n expect(json.error).toBe(\"\");\n\n const user = json.data?.user as Record<string, unknown> | undefined;\n expect(user, \"Expected data.user to be an object.\").toBeTruthy();\n expect(typeof user).toBe(\"object\");\n\n const email = user?.email;\n expect(typeof email).toBe(\"string\");\n if (email === TEST_USER_EMAIL) {\n expect(email).toBe(TEST_USER_EMAIL);\n } else {\n // If your API returns a fixed system email, replace this with an exact match.\n expect((email as string).length).toBeGreaterThan(0);\n }\n\n expect(typeof user?.mobile).toBe(\"string\");\n expect(typeof user?.username).toBe(\"string\");\n expect(typeof user?.forcePasswordChange).toBe(\"boolean\");\n expect(typeof user?.id).toBe(\"number\");\n\n const roles = user?.roles;\n expect(Array.isArray(roles)).toBe(true);\n if (Array.isArray(roles)) {\n expect(roles.every((role) => typeof role === \"string\")).toBe(true);\n expect(roles).toContain(\"Admin\");\n }\n\n const accessToken = json.data?.accessToken;\n const refreshToken = json.data?.refreshToken;\n expect(typeof accessToken).toBe(\"string\");\n expect(typeof refreshToken).toBe(\"string\");\n\n const accessPayload = validateJwt(accessToken as string);\n const refreshPayload = validateJwt(refreshToken as string);\n\n expect(typeof accessPayload.exp).toBe(\"number\");\n expect(typeof refreshPayload.exp).toBe(\"number\");\n } finally {\n await api.dispose();\n }\n});\n\ntest(\"API: authenticate fails with wrong password\", async () => {\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n },\n });\n\n try {\n const res = await api.post(\"/api/iam/authenticate\", {\n data: {\n email: TEST_USER_EMAIL,\n username: \"\",\n password: `${TEST_USER_PASSWORD}__wrong`,\n },\n });\n\n expect(res.status()).toBe(401);\n const json = await res.json();\n\n expect(json.statusCode).toBe(401);\n expect(json.statusCodeMessage).toBe(\"Unauthorized\");\n expect(json.message).toBe(\"Invalid credentials\");\n expect(json.error).toBe(\"Invalid credentials\");\n expect(json.data?.statusCode).toBe(401);\n expect(json.data?.error).toBe(\"Unauthorized\");\n expect(json.data?.message).toBe(\"Invalid credentials\");\n } finally {\n await api.dispose();\n }\n});\n"]}
@@ -1,97 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const auth_1 = require("../helpers/auth");
5
- const baseURL = process.env.API_BASE_URL ?? "http://localhost:3000";
6
- async function getCityByName(name) {
7
- const api = await test_1.request.newContext({
8
- baseURL,
9
- extraHTTPHeaders: await (0, auth_1.getAuthHeaders)(baseURL),
10
- });
11
- try {
12
- const res = await api.get(`/api/city-master?filters[name][$eq]=${encodeURIComponent(name)}&limit=1&offset=0`);
13
- (0, test_1.expect)(res.status()).toBe(200);
14
- const json = await res.json();
15
- const record = json?.data?.records?.[0];
16
- (0, test_1.expect)(record, `Expected city '${name}' in testData`).toBeTruthy();
17
- (0, test_1.expect)(record.id, "Expected record to have id").toBeTruthy();
18
- return record;
19
- }
20
- finally {
21
- await api.dispose();
22
- }
23
- }
24
- test_1.test.describe("CRUDService.findOne (cityMaster)", () => {
25
- (0, test_1.test)("returns a city by id", async () => {
26
- const city = await getCityByName("Mumbai");
27
- const api = await test_1.request.newContext({
28
- baseURL,
29
- extraHTTPHeaders: await (0, auth_1.getAuthHeaders)(baseURL),
30
- });
31
- try {
32
- const res = await api.get(`/api/city-master/${city.id}`);
33
- (0, test_1.expect)(res.status()).toBe(200);
34
- const json = await res.json();
35
- (0, test_1.expect)(json?.data?.id).toBe(city.id);
36
- (0, test_1.expect)(json?.data?.name).toBe("Mumbai");
37
- (0, test_1.expect)(json?.data?.description).toBe("Mumbai city");
38
- }
39
- finally {
40
- await api.dispose();
41
- }
42
- });
43
- (0, test_1.test)("supports fields[] selection", async () => {
44
- const city = await getCityByName("Pune");
45
- const api = await test_1.request.newContext({
46
- baseURL,
47
- extraHTTPHeaders: await (0, auth_1.getAuthHeaders)(baseURL),
48
- });
49
- try {
50
- const res = await api.get(`/api/city-master/${city.id}?fields[]=id&fields[]=name`);
51
- (0, test_1.expect)(res.status()).toBe(200);
52
- const json = await res.json();
53
- (0, test_1.expect)(json?.data?.id).toBe(city.id);
54
- (0, test_1.expect)(json?.data?.name).toBe("Pune");
55
- (0, test_1.expect)(json?.data?.description).toBeUndefined();
56
- (0, test_1.expect)(json?.data?.state).toBeUndefined();
57
- }
58
- finally {
59
- await api.dispose();
60
- }
61
- });
62
- (0, test_1.test)("supports populate=state", async () => {
63
- const city = await getCityByName("Bengaluru");
64
- const api = await test_1.request.newContext({
65
- baseURL,
66
- extraHTTPHeaders: await (0, auth_1.getAuthHeaders)(baseURL),
67
- });
68
- try {
69
- const res = await api.get(`/api/city-master/${city.id}?populate=state`);
70
- (0, test_1.expect)(res.status()).toBe(200);
71
- const json = await res.json();
72
- (0, test_1.expect)(json?.data?.name).toBe("Bengaluru");
73
- (0, test_1.expect)(json?.data?.state).toBeTruthy();
74
- (0, test_1.expect)(json?.data?.state?.name).toBe("Karnataka");
75
- }
76
- finally {
77
- await api.dispose();
78
- }
79
- });
80
- (0, test_1.test)("returns 404 for missing id", async () => {
81
- const api = await test_1.request.newContext({
82
- baseURL,
83
- extraHTTPHeaders: await (0, auth_1.getAuthHeaders)(baseURL),
84
- });
85
- try {
86
- const res = await api.get(`/api/city-master/99999999`);
87
- (0, test_1.expect)(res.status()).toBe(404);
88
- const json = await res.json();
89
- (0, test_1.expect)(String(json?.message)).toContain("cityMaster");
90
- (0, test_1.expect)(String(json?.message)).toContain("not found");
91
- }
92
- finally {
93
- await api.dispose();
94
- }
95
- });
96
- });
97
- //# sourceMappingURL=crud-service.findOne.cityMaster.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crud-service.findOne.cityMaster.spec.js","sourceRoot":"","sources":["../../tests/api/crud-service.findOne.cityMaster.spec.ts"],"names":[],"mappings":";;AAAA,2CAAyD;AACzD,0CAAiD;AAEjD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,uBAAuB,CAAC;AAEpE,KAAK,UAAU,aAAa,CAAC,IAAY;IACvC,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;QACnC,OAAO;QACP,gBAAgB,EAAE,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC;KAChD,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CACvB,uCAAuC,kBAAkB,CAAC,IAAI,CAAC,mBAAmB,CACnF,CAAC;QACF,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAE9B,MAAM,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,EAAE,kBAAkB,IAAI,eAAe,CAAC,CAAC,UAAU,EAAE,CAAC;QACnE,IAAA,aAAM,EAAC,MAAM,CAAC,EAAE,EAAE,4BAA4B,CAAC,CAAC,UAAU,EAAE,CAAC;QAE7D,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,WAAI,CAAC,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IACrD,IAAA,WAAI,EAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE3C,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;YACnC,OAAO;YACP,gBAAgB,EAAE,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACzD,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzC,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;YACnC,OAAO;YACP,gBAAgB,EAAE,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CACvB,oBAAoB,IAAI,CAAC,EAAE,4BAA4B,CACxD,CAAC;YACF,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrC,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtC,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;YAChD,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QAC5C,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;YACnC,OAAO;YACP,gBAAgB,EAAE,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACxE,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YACvC,IAAA,aAAM,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAA,WAAI,EAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;YACnC,OAAO;YACP,gBAAgB,EAAE,MAAM,IAAA,qBAAc,EAAC,OAAO,CAAC;SAChD,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACvD,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAE/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACtD,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, request, test } from \"@playwright/test\";\nimport { getAuthHeaders } from \"../helpers/auth\";\n\nconst baseURL = process.env.API_BASE_URL ?? \"http://localhost:3000\";\n\nasync function getCityByName(name: string) {\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: await getAuthHeaders(baseURL),\n });\n try {\n const res = await api.get(\n `/api/city-master?filters[name][$eq]=${encodeURIComponent(name)}&limit=1&offset=0`\n );\n expect(res.status()).toBe(200);\n const json = await res.json();\n\n const record = json?.data?.records?.[0];\n expect(record, `Expected city '${name}' in testData`).toBeTruthy();\n expect(record.id, \"Expected record to have id\").toBeTruthy();\n\n return record;\n } finally {\n await api.dispose();\n }\n}\n\ntest.describe(\"CRUDService.findOne (cityMaster)\", () => {\n test(\"returns a city by id\", async () => {\n const city = await getCityByName(\"Mumbai\");\n\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: await getAuthHeaders(baseURL),\n });\n try {\n const res = await api.get(`/api/city-master/${city.id}`);\n expect(res.status()).toBe(200);\n\n const json = await res.json();\n expect(json?.data?.id).toBe(city.id);\n expect(json?.data?.name).toBe(\"Mumbai\");\n expect(json?.data?.description).toBe(\"Mumbai city\");\n } finally {\n await api.dispose();\n }\n });\n\n test(\"supports fields[] selection\", async () => {\n const city = await getCityByName(\"Pune\");\n\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: await getAuthHeaders(baseURL),\n });\n try {\n const res = await api.get(\n `/api/city-master/${city.id}?fields[]=id&fields[]=name`\n );\n expect(res.status()).toBe(200);\n\n const json = await res.json();\n expect(json?.data?.id).toBe(city.id);\n expect(json?.data?.name).toBe(\"Pune\");\n expect(json?.data?.description).toBeUndefined();\n expect(json?.data?.state).toBeUndefined();\n } finally {\n await api.dispose();\n }\n });\n\n test(\"supports populate=state\", async () => {\n const city = await getCityByName(\"Bengaluru\");\n\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: await getAuthHeaders(baseURL),\n });\n try {\n const res = await api.get(`/api/city-master/${city.id}?populate=state`);\n expect(res.status()).toBe(200);\n\n const json = await res.json();\n expect(json?.data?.name).toBe(\"Bengaluru\");\n expect(json?.data?.state).toBeTruthy();\n expect(json?.data?.state?.name).toBe(\"Karnataka\");\n } finally {\n await api.dispose();\n }\n });\n\n test(\"returns 404 for missing id\", async () => {\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: await getAuthHeaders(baseURL),\n });\n try {\n const res = await api.get(`/api/city-master/99999999`);\n expect(res.status()).toBe(404);\n\n const json = await res.json();\n expect(String(json?.message)).toContain(\"cityMaster\");\n expect(String(json?.message)).toContain(\"not found\");\n } finally {\n await api.dispose();\n }\n });\n});\n"]}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- (0, test_1.test)("GET /api/ping returns pong", async () => {
5
- const baseURL = process.env.BASE_URL || "http://localhost:3000";
6
- if (!baseURL) {
7
- throw new Error("baseURL is not configured. Set API_BASE_URL or use the default.");
8
- }
9
- const api = await test_1.request.newContext({ baseURL });
10
- const res = await api.get("/api/ping");
11
- (0, test_1.expect)(res.status()).toBe(200);
12
- const body = await res.json();
13
- (0, test_1.expect)(body).toEqual({
14
- statusCode: 200,
15
- message: [],
16
- error: "",
17
- data: { pong: "v1.0.2" },
18
- });
19
- await api.dispose();
20
- });
21
- //# sourceMappingURL=ping.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ping.spec.js","sourceRoot":"","sources":["../../tests/api/ping.spec.ts"],"names":[],"mappings":";;AAAA,2CAAyD;AAEzD,IAAA,WAAI,EAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,uBAAuB,CAAC;IAChE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAElD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAEvC,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QACnB,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KACzB,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC","sourcesContent":["import { expect, request, test } from \"@playwright/test\";\n\ntest(\"GET /api/ping returns pong\", async () => {\n const baseURL = process.env.BASE_URL || \"http://localhost:3000\";\n if (!baseURL) {\n throw new Error(\"baseURL is not configured. Set API_BASE_URL or use the default.\");\n }\n const api = await request.newContext({ baseURL });\n\n const res = await api.get(\"/api/ping\");\n\n expect(res.status()).toBe(200);\n\n const body = await res.json();\n expect(body).toEqual({\n statusCode: 200,\n message: [],\n error: \"\",\n data: { pong: \"v1.0.2\" },\n });\n\n await api.dispose();\n});\n"]}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAccessToken = getAccessToken;
4
- exports.getAuthHeaders = getAuthHeaders;
5
- const test_1 = require("@playwright/test");
6
- const env_1 = require("./env");
7
- async function getAccessToken(baseURL) {
8
- const TEST_USER_EMAIL = (0, env_1.getRequiredEnv)("TEST_USER_EMAIL");
9
- const TEST_USER_PASSWORD = (0, env_1.getRequiredEnv)("TEST_USER_PASSWORD");
10
- const api = await test_1.request.newContext({
11
- baseURL,
12
- extraHTTPHeaders: {
13
- accept: "*/*",
14
- "content-type": "application/json",
15
- },
16
- });
17
- try {
18
- const res = await api.post("/api/iam/authenticate", {
19
- data: {
20
- email: TEST_USER_EMAIL,
21
- username: "",
22
- password: TEST_USER_PASSWORD,
23
- },
24
- });
25
- (0, test_1.expect)(res.status()).toBe(200);
26
- const json = await res.json();
27
- const token = json?.data?.accessToken;
28
- (0, test_1.expect)(token, "Expected access token from authenticate endpoint.").toBeTruthy();
29
- return token;
30
- }
31
- finally {
32
- await api.dispose();
33
- }
34
- }
35
- async function getAuthHeaders(baseURL) {
36
- const token = await getAccessToken(baseURL);
37
- return {
38
- authorization: `Bearer ${token}`,
39
- };
40
- }
41
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../tests/helpers/auth.ts"],"names":[],"mappings":";;AAGA,wCA6BC;AAED,wCAKC;AAvCD,2CAAmD;AACnD,+BAAuC;AAEhC,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,eAAe,GAAG,IAAA,oBAAc,EAAC,iBAAiB,CAAC,CAAC;IAC1D,MAAM,kBAAkB,GAAG,IAAA,oBAAc,EAAC,oBAAoB,CAAC,CAAC;IAEhE,MAAM,GAAG,GAAG,MAAM,cAAO,CAAC,UAAU,CAAC;QACnC,OAAO;QACP,gBAAgB,EAAE;YAChB,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,kBAAkB;SACnC;KACF,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAClD,IAAI,EAAE;gBACJ,KAAK,EAAE,eAAe;gBACtB,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EAAE,kBAAkB;aAC7B;SACF,CAAC,CAAC;QAEH,IAAA,aAAM,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,EAAE,IAAI,EAAE,WAAiC,CAAC;QAC5D,IAAA,aAAM,EAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC,UAAU,EAAE,CAAC;QAChF,OAAO,KAAe,CAAC;IACzB,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO;QACL,aAAa,EAAE,UAAU,KAAK,EAAE;KACjC,CAAC;AACJ,CAAC","sourcesContent":["import { expect, request } from \"@playwright/test\";\nimport { getRequiredEnv } from \"./env\";\n\nexport async function getAccessToken(baseURL: string) {\n const TEST_USER_EMAIL = getRequiredEnv(\"TEST_USER_EMAIL\");\n const TEST_USER_PASSWORD = getRequiredEnv(\"TEST_USER_PASSWORD\");\n\n const api = await request.newContext({\n baseURL,\n extraHTTPHeaders: {\n accept: \"*/*\",\n \"content-type\": \"application/json\",\n },\n });\n\n try {\n const res = await api.post(\"/api/iam/authenticate\", {\n data: {\n email: TEST_USER_EMAIL,\n username: \"\",\n password: TEST_USER_PASSWORD,\n },\n });\n\n expect(res.status()).toBe(200);\n const json = await res.json();\n const token = json?.data?.accessToken as string | undefined;\n expect(token, \"Expected access token from authenticate endpoint.\").toBeTruthy();\n return token as string;\n } finally {\n await api.dispose();\n }\n}\n\nexport async function getAuthHeaders(baseURL: string) {\n const token = await getAccessToken(baseURL);\n return {\n authorization: `Bearer ${token}`,\n };\n}\n"]}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRequiredEnv = getRequiredEnv;
4
- function getRequiredEnv(name) {
5
- const value = process.env[name];
6
- if (!value) {
7
- throw new Error(`Missing required env var: ${name}`);
8
- }
9
- return value;
10
- }
11
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../tests/helpers/env.ts"],"names":[],"mappings":";;AAAA,wCAMC;AAND,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["export function getRequiredEnv(name: string): string {\n const value = process.env[name];\n if (!value) {\n throw new Error(`Missing required env var: ${name}`);\n }\n return value;\n}\n"]}
@@ -1,89 +0,0 @@
1
- # Grouping & Aggregation Enhancements (Code Review Summary)
2
-
3
- This document explains the recent changes to grouping/aggregation in the CRUD helper/service, why they were made, and how to use them (with examples on `PincodeMaster`).
4
-
5
- ## What Changed and Why
6
- - **Dedicated grouping pipeline**: Grouping no longer reuses the record-level query (which had `SELECT entity.*`, pagination, and default order). A separate path builds clean group queries to avoid SQL errors and ensure correct counts.
7
- - **Multiple group-by fields**: The one-field limit was removed. You can now group on multiple fields (including relations) in the requested order.
8
- - **Relation-safe grouping**: Group-by fields can traverse many-to-one relations (e.g., `state.name`, `city.name`). The helper reuses existing joins (from filters) or adds the necessary joins and aliases.
9
- - **Date granularity**: Grouping supports `day`, `week`, `month`, `year` granularities in a DB-aware way (Postgres, MySQL/MariaDB, SQL Server).
10
- - **Aggregates**: Supports a core, DB-agnostic set: `count`, `count_distinct`, `sum`, `avg`, `min`, `max`. If `aggregates` is omitted, it defaults to `count(*)`.
11
- - **Group sorting/pagination**: Sorting and pagination are applied to group rows (not entity rows). Record pagination is kept separate for non-grouped queries.
12
- - **Ordered group names**: Group names follow the order of `groupBy` fields. Relation values and date/grouped values are included in sequence.
13
- - **Formatted date group labels**: You can add an optional format specifier to a date groupBy field: `field:granularity:format`. Supported formats: `MMM`, `MMMM`, `YYYY`, `YYYY-MM`, `YYYY-MM-DD` (defaults to the raw value if omitted).
14
- - **Count of groups**: Group counts are computed without pagination interference, so `meta.totalRecords` reflects total groups.
15
- - **DTO update**: `BasicFilterDto` now includes optional `aggregates?: string[]`.
16
-
17
- ## Caveats
18
- - `populateGroup` is **not** supported when grouping on relation fields (e.g., `state.name`, `city.name`). Use it for scalar group-by fields only; otherwise fetch group metadata and then retrieve records in a separate call with the group key.
19
- - Sorting works for group keys without extra colons (e.g., `state.name`) and for aggregate aliases (e.g., `id_max`). For date bucket group keys with granularity/format (`createdAt:month:YYYY`), the sort parser treats the last segment as the order; results may vary by driver and may not sort as expected in all cases.
20
-
21
- ## Usage Examples (PincodeMaster)
22
- Assume `PincodeMaster` has many-to-one `state` and `city` relations and a `createdAt` timestamp.
23
-
24
- ### 1) Group by State and City
25
- ```
26
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&groupBy[1]=city.name
27
- ```
28
- Returns groups for every state/city combination with default `count(*)` aggregate.
29
-
30
- ### 2) Group by Relation + Filter on Relation
31
- ```
32
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&filters[state][name][$eq]=Maharashtra
33
- ```
34
- Groups by state name but only for rows where state is Maharashtra.
35
-
36
- ### 3) Multiple Group Fields (Relation + Scalar)
37
- ```
38
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&groupBy[1]=city.name&groupBy[2]=pincode
39
- ```
40
- Group names are ordered: state → city → pincode.
41
-
42
- ### 4) Group by Date with Granularity (Month)
43
- ```
44
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=createdAt:month
45
- ```
46
- Groups by month (driver-aware), default group labels are raw date buckets.
47
-
48
- ### 5) Date Granularity with Formatting
49
- ```
50
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=createdAt:month:MMM
51
- ```
52
- Group labels use short month names (Jan, Feb, …). For full names: `createdAt:month:MMMM`. Other formats: `YYYY`, `YYYY-MM`, `YYYY-MM-DD`.
53
-
54
- ### 6) Aggregates (Count Distinct)
55
- ```
56
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&aggregates[0]=pincode:count_distinct
57
- ```
58
- Shows distinct pincodes per state.
59
-
60
- ### 7) Aggregates (Multiple)
61
- ```
62
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&groupBy[1]=city.name&aggregates[0]=id:count&aggregates[1]=id:count_distinct
63
- ```
64
- Returns both total rows and distinct IDs per state/city group.
65
-
66
- ### 8) Date Granularity + Relations + Aggregates
67
- ```
68
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=createdAt:year&groupBy[1]=state.name&aggregates[0]=pincode:count_distinct
69
- ```
70
- Distinct pincodes per state, per year.
71
-
72
- ### 9) Filters with Grouping (Many-to-One)
73
- ```
74
- GET /api/pincode-master?offset=0&limit=200&groupBy[0]=state.name&groupBy[1]=city.name&filters[state][name][$eq]=Nagaland
75
- ```
76
- Groups only rows where state.name = Nagaland.
77
-
78
- ### 10) Group Sorting and Pagination
79
- - Sorting applies to the group rows. Example:
80
- ```
81
- GET /api/pincode-master?offset=0&limit=50&groupBy[0]=state.name&sort[0]=state.name:ASC
82
- ```
83
- - Pagination (`offset/limit`) limits the number of groups returned; total group count remains in `meta.totalRecords`.
84
-
85
- ## Notes and Behavior
86
- - If `aggregates` is omitted, `COUNT(*)` is added automatically.
87
- - Group names reflect `groupBy` order and apply formatting when specified.
88
- - Group queries reuse joins from filters when possible; otherwise, they create necessary joins for relation paths.
89
- - Non-grouped find behavior remains unchanged.
@@ -1,3 +0,0 @@
1
- # Java Spring Docs
2
-
3
- - [solid-core-module Deep Dive Report](./solid-core-module-deep-dive-report.md)