@solidxai/core 0.1.10-beta.21 → 0.1.10-beta.23

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 (476) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CLAUDE.md +18 -0
  3. package/CURRENT_PROMPT +6 -0
  4. package/dist/commands/info.command.d.ts.map +1 -1
  5. package/dist/commands/info.command.js +0 -2
  6. package/dist/commands/info.command.js.map +1 -1
  7. package/dist/controllers/dashboard-user-layout.controller.d.ts +43 -0
  8. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  9. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  10. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  11. package/dist/controllers/dashboard.controller.d.ts +12 -42
  12. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  13. package/dist/controllers/dashboard.controller.js +71 -141
  14. package/dist/controllers/dashboard.controller.js.map +1 -1
  15. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  16. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  17. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  18. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  19. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  20. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  21. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  22. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  23. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  24. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  25. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  26. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  27. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  28. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  29. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  30. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  31. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  32. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  33. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  34. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  35. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  36. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  37. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  38. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  39. package/dist/helpers/bootstrap.helper.js +1 -1
  40. package/dist/helpers/bootstrap.helper.js.map +1 -1
  41. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  42. package/dist/helpers/module-metadata-helper.service.js +15 -4
  43. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  44. package/dist/helpers/solid-registry.d.ts +5 -9
  45. package/dist/helpers/solid-registry.d.ts.map +1 -1
  46. package/dist/helpers/solid-registry.js +13 -28
  47. package/dist/helpers/solid-registry.js.map +1 -1
  48. package/dist/index.d.ts +21 -5
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +21 -5
  51. package/dist/index.js.map +1 -1
  52. package/dist/interfaces.d.ts +24 -13
  53. package/dist/interfaces.d.ts.map +1 -1
  54. package/dist/interfaces.js.map +1 -1
  55. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +1 -3
  56. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  57. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -25
  58. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  59. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  60. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  61. package/dist/{repository/dashboard-layout.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  62. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  63. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -6
  64. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  65. package/dist/seeders/module-metadata-seeder.service.js +1 -60
  66. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  67. package/dist/seeders/seed-data/solid-core-metadata.json +6236 -6645
  68. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  69. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  70. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  71. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  72. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  73. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  74. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  75. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  76. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  77. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  78. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  79. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  80. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  81. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  82. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  83. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  84. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  85. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  86. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  87. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  88. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  89. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  90. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  91. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  92. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  93. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  94. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  95. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  96. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  97. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  98. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  99. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  100. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  101. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  102. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  103. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  104. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  105. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  106. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  107. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  108. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  109. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  110. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  111. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  112. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  113. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  114. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  115. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  116. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  117. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  118. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  119. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  120. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  121. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  122. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  123. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  124. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  125. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  126. package/dist/services/dashboard-runtime.service.js +408 -0
  127. package/dist/services/dashboard-runtime.service.js.map +1 -0
  128. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  129. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  130. package/dist/services/{dashboard-variable.service.js → dashboard-user-layout.service.js} +11 -12
  131. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  132. package/dist/services/module-metadata.service.js +1 -1
  133. package/dist/services/module-metadata.service.js.map +1 -1
  134. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  135. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  136. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  137. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  138. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  139. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  140. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  141. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  142. package/dist/services/solid-introspect.service.d.ts +1 -2
  143. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  144. package/dist/services/solid-introspect.service.js +12 -24
  145. package/dist/services/solid-introspect.service.js.map +1 -1
  146. package/dist/solid-core.module.d.ts.map +1 -1
  147. package/dist/solid-core.module.js +43 -66
  148. package/dist/solid-core.module.js.map +1 -1
  149. package/dist/testing/adapters/ui/playwright-adapter.d.ts +1 -0
  150. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  151. package/dist/testing/adapters/ui/playwright-adapter.js +3 -0
  152. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  153. package/dist/testing/steps/ui/index.d.ts.map +1 -1
  154. package/dist/testing/steps/ui/index.js +2 -0
  155. package/dist/testing/steps/ui/index.js.map +1 -1
  156. package/dist/testing/steps/ui/manual.step.d.ts +3 -0
  157. package/dist/testing/steps/ui/manual.step.d.ts.map +1 -0
  158. package/dist/testing/steps/ui/manual.step.js +56 -0
  159. package/dist/testing/steps/ui/manual.step.js.map +1 -0
  160. package/package.json +1 -1
  161. package/src/commands/info.command.ts +0 -2
  162. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  163. package/src/controllers/dashboard.controller.ts +70 -89
  164. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  165. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  166. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  167. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  168. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  169. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  170. package/src/helpers/bootstrap.helper.ts +1 -1
  171. package/src/helpers/field-crud-managers/field-quality-check-fixes.md +36 -6
  172. package/src/helpers/module-metadata-helper.service.ts +21 -6
  173. package/src/helpers/solid-registry.ts +15 -36
  174. package/src/index.ts +21 -5
  175. package/src/interfaces.ts +32 -19
  176. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -34
  177. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  178. package/src/seeders/module-metadata-seeder.service.ts +0 -67
  179. package/src/seeders/seed-data/solid-core-metadata.json +6237 -6646
  180. package/src/services/1.js +6 -0
  181. package/src/services/dashboard-providers/README.md +603 -0
  182. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  183. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  184. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  185. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  186. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  187. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  188. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  189. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  190. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  191. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  192. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  193. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  194. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  195. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  196. package/src/services/dashboard-runtime.service.ts +488 -0
  197. package/src/services/dashboard-user-layout.service.ts +20 -0
  198. package/src/services/module-metadata.service.ts +1 -1
  199. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  200. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  201. package/src/services/solid-introspect.service.ts +19 -34
  202. package/src/solid-core.module.ts +43 -72
  203. package/src/testing/README.md +42 -4
  204. package/src/testing/adapters/ui/playwright-adapter.ts +4 -0
  205. package/src/testing/steps/ui/index.ts +2 -0
  206. package/src/testing/steps/ui/manual.step.ts +80 -0
  207. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  208. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  209. package/dist/controllers/dashboard-layout.controller.js +0 -204
  210. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  211. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  212. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  213. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  214. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  215. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  216. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  217. package/dist/controllers/dashboard-question.controller.js +0 -194
  218. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  219. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  220. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  221. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  222. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  223. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  224. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  225. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  226. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  227. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  228. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  229. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  230. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  231. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  232. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  233. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  234. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  235. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  236. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  237. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  238. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  239. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  240. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  241. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  242. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  243. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  244. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  245. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  246. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  247. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  248. package/dist/dtos/create-dashboard.dto.js +0 -102
  249. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  250. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  251. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  252. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  253. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  254. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  255. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  256. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  257. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  258. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  259. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  260. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  261. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  262. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  263. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  264. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  265. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  266. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  267. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  268. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  269. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  270. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  271. package/dist/dtos/update-dashboard.dto.js +0 -108
  272. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  273. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  274. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  275. package/dist/entities/dashboard-layout.entity.js +0 -41
  276. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  277. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  278. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  279. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  280. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  281. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  282. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  283. package/dist/entities/dashboard-question.entity.js +0 -77
  284. package/dist/entities/dashboard-question.entity.js.map +0 -1
  285. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  286. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  287. package/dist/entities/dashboard-variable.entity.js +0 -79
  288. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  289. package/dist/entities/dashboard.entity.d.ts +0 -16
  290. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  291. package/dist/entities/dashboard.entity.js +0 -64
  292. package/dist/entities/dashboard.entity.js.map +0 -1
  293. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  294. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  295. package/dist/mappers/dashboard-mapper.js +0 -62
  296. package/dist/mappers/dashboard-mapper.js.map +0 -1
  297. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  298. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  299. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  300. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  301. package/dist/repository/dashboard-question-sql-dataset-config.repository.js +0 -34
  302. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  303. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  304. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  305. package/dist/repository/dashboard-question.repository.js +0 -34
  306. package/dist/repository/dashboard-question.repository.js.map +0 -1
  307. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  308. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  309. package/dist/repository/dashboard-variable.repository.js +0 -34
  310. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  311. package/dist/repository/dashboard.repository.d.ts +0 -13
  312. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  313. package/dist/repository/dashboard.repository.js +0 -104
  314. package/dist/repository/dashboard.repository.js.map +0 -1
  315. package/dist/services/dashboard-layout.service.d.ts +0 -20
  316. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  317. package/dist/services/dashboard-layout.service.js +0 -120
  318. package/dist/services/dashboard-layout.service.js.map +0 -1
  319. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  320. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  321. package/dist/services/dashboard-question-sql-dataset-config.service.js +0 -38
  322. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  323. package/dist/services/dashboard-question.service.d.ts +0 -23
  324. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  325. package/dist/services/dashboard-question.service.js +0 -135
  326. package/dist/services/dashboard-question.service.js.map +0 -1
  327. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  328. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  329. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  330. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  331. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  332. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  333. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  334. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  335. package/dist/services/dashboard-variable.service.d.ts +0 -13
  336. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  337. package/dist/services/dashboard-variable.service.js.map +0 -1
  338. package/dist/services/dashboard.service.d.ts +0 -29
  339. package/dist/services/dashboard.service.d.ts.map +0 -1
  340. package/dist/services/dashboard.service.js +0 -171
  341. package/dist/services/dashboard.service.js.map +0 -1
  342. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  343. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  344. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  345. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  346. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  347. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  348. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  349. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  350. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  351. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  352. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  353. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  354. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  355. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  356. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  357. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  358. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  359. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  360. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  361. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  362. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  363. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  364. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  365. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  366. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  367. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  368. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  369. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  370. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  371. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  372. package/dist/services/question-data-providers/helpers.js +0 -25
  373. package/dist/services/question-data-providers/helpers.js.map +0 -1
  374. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  375. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  376. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  377. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  378. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  379. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  380. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  381. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  382. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  383. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  384. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  385. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  386. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  387. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  388. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  389. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  390. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  391. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  392. package/dist/services/sql-expression-resolver.service.js +0 -121
  393. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  394. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  395. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  396. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  397. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  398. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  399. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  400. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  401. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  402. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  403. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  404. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  405. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  406. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  407. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  408. package/dist/subscribers/dashboard.subscriber.js +0 -71
  409. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  410. package/dist-tests/api/authenticate.spec.js +0 -119
  411. package/dist-tests/api/authenticate.spec.js.map +0 -1
  412. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  413. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  414. package/dist-tests/api/ping.spec.js +0 -21
  415. package/dist-tests/api/ping.spec.js.map +0 -1
  416. package/dist-tests/helpers/auth.js +0 -41
  417. package/dist-tests/helpers/auth.js.map +0 -1
  418. package/dist-tests/helpers/env.js +0 -11
  419. package/dist-tests/helpers/env.js.map +0 -1
  420. package/docs/grouping-enhancements.md +0 -89
  421. package/docs/java-spring/README.md +0 -3
  422. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  423. package/docs/seed-changes.md +0 -65
  424. package/docs/test-data-workflow.md +0 -200
  425. package/docs/type-declaration-import-issue.md +0 -24
  426. package/src/controllers/dashboard-layout.controller.ts +0 -106
  427. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  428. package/src/controllers/dashboard-question.controller.ts +0 -104
  429. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  430. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  431. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  432. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  433. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  434. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  435. package/src/dtos/create-dashboard.dto.ts +0 -61
  436. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  437. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  438. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  439. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  440. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  441. package/src/dtos/update-dashboard.dto.ts +0 -65
  442. package/src/entities/dashboard-layout.entity.ts +0 -18
  443. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  444. package/src/entities/dashboard-question.entity.ts +0 -46
  445. package/src/entities/dashboard-variable.entity.ts +0 -44
  446. package/src/entities/dashboard.entity.ts +0 -36
  447. package/src/mappers/dashboard-mapper.ts +0 -53
  448. package/src/repository/dashboard-layout.repository.ts +0 -17
  449. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  450. package/src/repository/dashboard-question.repository.ts +0 -17
  451. package/src/repository/dashboard-variable.repository.ts +0 -17
  452. package/src/repository/dashboard.repository.ts +0 -101
  453. package/src/services/dashboard-layout.service.ts +0 -111
  454. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  455. package/src/services/dashboard-question.service.ts +0 -150
  456. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  457. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  458. package/src/services/dashboard-variable.service.ts +0 -27
  459. package/src/services/dashboard.service.ts +0 -148
  460. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  461. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  462. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  463. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  464. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  465. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  466. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  467. package/src/services/question-data-providers/helpers.ts +0 -30
  468. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  469. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  470. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  471. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  472. package/src/services/sql-expression-resolver.service.ts +0 -140
  473. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  474. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  475. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  476. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -6,13 +6,12 @@ import { ModelMetadataRepository } from 'src/repository/model-metadata.repositor
6
6
  import { InstanceWrapper } from '@nestjs/core/injector/instance-wrapper';
7
7
  import { getDataSourceToken } from '@nestjs/typeorm';
8
8
  import { IS_COMPUTED_FIELD_PROVIDER } from 'src/decorators/computed-field-provider.decorator';
9
- import { IS_DASHBOARD_QUESTION_DATA_PROVIDER } from 'src/decorators/dashboard-question-data-provider.decorator';
10
- import { IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER } from 'src/decorators/dashboard-selection-provider.decorator';
11
9
  import { IS_ERROR_CODE_PROVIDER } from 'src/decorators/error-codes-provider.decorator';
12
10
  import { IS_MAIL_PROVIDER } from 'src/decorators/mail-provider.decorator';
13
11
  import { IS_SCHEDULED_JOB_PROVIDER } from 'src/decorators/scheduled-job-provider.decorator';
14
12
  import { IS_SECURITY_RULE_CONFIG_PROVIDER } from 'src/decorators/security-rule-config-provider.decorator';
15
13
  import { IS_SELECTION_PROVIDER } from 'src/decorators/selection-provider.decorator';
14
+ import { IS_DASHBOARD_WIDGET_DATA_PROVIDER } from 'src/decorators/dashboard-widget-data-provider.decorator';
16
15
  import { IS_EXTENSION_USER_CREATION_PROVIDER } from 'src/decorators/extension-user-creation-provider.decorator';
17
16
  import { IS_SOLID_DATABASE_MODULE } from 'src/decorators/solid-database-module.decorator';
18
17
  import { IS_WA_PROVIDER } from 'src/decorators/whatsapp-provider.decorator';
@@ -70,24 +69,18 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
70
69
  this.solidRegistry.registerSelectionProvider(selectionProvider);
71
70
  });
72
71
 
72
+ // Register all IDashboardWidgetDataProvider implementations
73
+ const dashboardWidgetDataProviders = this.discoveryService.getProviders().filter((provider) => this.isDashboardWidgetDataProvider(provider));
74
+ dashboardWidgetDataProviders.forEach((provider) => {
75
+ this.solidRegistry.registerDashboardWidgetDataProvider(provider);
76
+ });
77
+
73
78
  // Register all ISettingsProvider implementations
74
79
  const settingsProviders = this.discoveryService.getProviders().filter((provider) => this.isSettingsProvider(provider));
75
80
  settingsProviders.forEach((settingsProvider) => {
76
81
  this.solidRegistry.registerSettingsProvider(settingsProvider);
77
82
  });
78
83
 
79
- // Register all IDashboardSelectionProvider implementations
80
- const dashboardVariableSelectionProviders = this.discoveryService.getProviders().filter((provider) => this.isDashboardVariableSelectionProvider(provider));
81
- dashboardVariableSelectionProviders.forEach((dashboardSelectionProvider) => {
82
- this.solidRegistry.registerDashboardVariableSelectionProvider(dashboardSelectionProvider);
83
- });
84
-
85
- // Register all IDashboardSelectionProvider implementations
86
- const dashboardQuestionDataProviders = this.discoveryService.getProviders().filter((provider) => this.isDashboardQuestionDataProvider(provider));
87
- dashboardQuestionDataProviders.forEach((provider) => {
88
- this.solidRegistry.registerDashboardQuestionDataProvider(provider);
89
- });
90
-
91
84
  // Register all IComputedProvider implementations
92
85
  const computedFieldProviders = this.discoveryService.getProviders().filter((provider) => this.isComputedFieldProvider(provider));
93
86
  computedFieldProviders.forEach((computedFieldProvider) => {
@@ -250,16 +243,6 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
250
243
  }
251
244
  }
252
245
 
253
- isDashboardQuestionDataProvider(providerWrapper: InstanceWrapper<any>) {
254
- const { instance } = providerWrapper;
255
- if (!instance) return false;
256
- const provider = this.reflector.get<boolean>(
257
- IS_DASHBOARD_QUESTION_DATA_PROVIDER,
258
- instance.constructor,
259
- );
260
- return !!provider;
261
- }
262
-
263
246
  // This method identifies a provider as a seeder if it has a seed method i.e duck typing
264
247
  private isSeeder(provider: InstanceWrapper) {
265
248
  const { instance } = provider;
@@ -294,6 +277,18 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
294
277
  return !!isSelectionProvider;
295
278
  }
296
279
 
280
+ private isDashboardWidgetDataProvider(provider: InstanceWrapper) {
281
+ const { instance } = provider;
282
+ if (!instance) return false;
283
+
284
+ const isDashboardWidgetDataProvider = this.reflector.get<boolean>(
285
+ IS_DASHBOARD_WIDGET_DATA_PROVIDER,
286
+ instance.constructor,
287
+ );
288
+
289
+ return !!isDashboardWidgetDataProvider;
290
+ }
291
+
297
292
  private isExtensionUserCreationProvider(provider: InstanceWrapper): boolean {
298
293
  const { instance } = provider;
299
294
  if (!instance) return false;
@@ -312,16 +307,6 @@ export class SolidIntrospectService implements OnApplicationBootstrap {
312
307
  return !!isSettingsProvider;
313
308
  }
314
309
 
315
- private isDashboardVariableSelectionProvider(provider: InstanceWrapper) {
316
- const { instance } = provider;
317
- if (!instance) return false;
318
- const isDashboardSelectionProvider = this.reflector.get<boolean>(
319
- IS_DASHBOARD_VARIABLE_SELECTION_PROVIDER,
320
- instance.constructor,
321
- );
322
- return !!isDashboardSelectionProvider;
323
- }
324
-
325
310
  private isComputedFieldProvider(provider: InstanceWrapper) {
326
311
  const { instance } = provider;
327
312
  if (!instance) return false;
@@ -14,6 +14,7 @@ import { MulterModule } from "@nestjs/platform-express";
14
14
  import { TypeOrmModule } from "@nestjs/typeorm";
15
15
  import { RemoveFieldsCommand } from "./commands/remove-fields.command";
16
16
  import { FieldMetadataController } from "./controllers/field-metadata.controller";
17
+ import { DashboardController } from "./controllers/dashboard.controller";
17
18
  import { MediaStorageProviderMetadataController } from "./controllers/media-storage-provider-metadata.controller";
18
19
  import { ModelMetadataController } from "./controllers/model-metadata.controller";
19
20
  import { ModuleMetadataController } from "./controllers/module-metadata.controller";
@@ -27,11 +28,14 @@ import { ModuleMetadata } from "./entities/module-metadata.entity";
27
28
  import { CommandService } from "./helpers/command.service";
28
29
  import { SchematicService } from "./helpers/schematic.service";
29
30
  import { ListOfValuesSelectionProvider } from "./services/selection-providers/list-of-values-selection-providers.service";
31
+ import { MqDashboardMessageBrokerVariableOptionsProvider } from "./services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service";
32
+ import { MqDashboardQueueNameVariableOptionsProvider } from "./services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service";
30
33
  import { PseudoForeignKeySelectionProvider } from "./services/selection-providers/pseudo-foreign-key-selection-provider.service";
31
34
  import { ModuleMetadataSeederService } from "./seeders/module-metadata-seeder.service";
32
35
  import { ModuleTestDataService } from "./seeders/module-test-data.service";
33
36
  import { CrudHelperService } from "./services/crud-helper.service";
34
37
  import { FieldMetadataService } from "./services/field-metadata.service";
38
+ import { DashboardRuntimeService } from "./services/dashboard-runtime.service";
35
39
  import { ListOfValuesService } from "./services/list-of-values.service";
36
40
  // import { MediaStorageProviderMetadataSeederService } from './services/media-storage-provider-metadata-seeder.service';
37
41
  import { MediaStorageProviderMetadataService } from "./services/media-storage-provider-metadata.service";
@@ -179,12 +183,7 @@ import { ClsModule } from "nestjs-cls";
179
183
  import { AiInteractionController } from "./controllers/ai-interaction.controller";
180
184
  import { ChatterMessageDetailsController } from "./controllers/chatter-message-details.controller";
181
185
  import { ChatterMessageController } from "./controllers/chatter-message.controller";
182
- import { DashboardQuestionSqlDatasetConfigController } from "./controllers/dashboard-question-sql-dataset-config.controller";
183
- import { DashboardQuestionController } from "./controllers/dashboard-question.controller";
184
- import { DashboardVariableController } from "./controllers/dashboard-variable.controller";
185
- import { DashboardLayoutController } from "./controllers/dashboard-layout.controller";
186
186
 
187
- import { DashboardController } from './controllers/dashboard.controller';
188
187
  import { ExportTemplateController } from './controllers/export-template.controller';
189
188
  import { ExportTransactionController } from './controllers/export-transaction.controller';
190
189
  import { ImportTransactionErrorLogController } from './controllers/import-transaction-error-log.controller';
@@ -207,12 +206,7 @@ import { UserController } from './controllers/user.controller';
207
206
  import { AiInteraction } from './entities/ai-interaction.entity';
208
207
  import { ChatterMessageDetails } from './entities/chatter-message-details.entity';
209
208
  import { ChatterMessage } from './entities/chatter-message.entity';
210
- import { DashboardQuestionSqlDatasetConfig } from './entities/dashboard-question-sql-dataset-config.entity';
211
- import { DashboardQuestion } from './entities/dashboard-question.entity';
212
- import { DashboardVariable } from './entities/dashboard-variable.entity';
213
- import { DashboardLayout } from './entities/dashboard-layout.entity';
214
209
 
215
- import { Dashboard } from './entities/dashboard.entity';
216
210
  import { ExportTemplate } from './entities/export-template.entity';
217
211
  import { ExportTransaction } from './entities/export-transaction.entity';
218
212
  import { ImportTransactionErrorLog } from './entities/import-transaction-error-log.entity';
@@ -270,17 +264,11 @@ import { TriggerMcpClientPublisherRabbitmq } from "./jobs/rabbitmq/trigger-mcp-c
270
264
  import { TriggerMcpClientSubscriberRabbitmq } from "./jobs/rabbitmq/trigger-mcp-client-subscriber.service";
271
265
  import { TwilioSmsQueuePublisherRabbitmq } from "./jobs/rabbitmq/twilio-sms-publisher.service";
272
266
  import { TwilioSmsQueueSubscriberRabbitmq } from "./jobs/rabbitmq/twilio-sms-subscriber.service";
273
- import { DashboardMapper } from "./mappers/dashboard-mapper";
274
267
  import { ListOfValuesMapper } from "./mappers/list-of-values-mapper";
275
268
  import { ActionMetadataRepository } from "./repository/action-metadata.repository";
276
269
  import { AiInteractionRepository } from "./repository/ai-interaction.repository";
277
270
  import { ChatterMessageDetailsRepository } from "./repository/chatter-message-details.repository";
278
271
  import { ChatterMessageRepository } from "./repository/chatter-message.repository";
279
- import { DashboardQuestionSqlDatasetConfigRepository } from "./repository/dashboard-question-sql-dataset-config.repository";
280
- import { DashboardQuestionRepository } from "./repository/dashboard-question.repository";
281
- import { DashboardVariableRepository } from "./repository/dashboard-variable.repository";
282
- import { DashboardRepository } from "./repository/dashboard.repository";
283
- import { DashboardLayoutRepository } from "./repository/dashboard-layout.repository";
284
272
 
285
273
  import { EmailTemplateRepository } from './repository/email-template.repository';
286
274
  import { ExportTemplateRepository } from './repository/export-template.repository';
@@ -319,16 +307,22 @@ import { ChatterMessageService } from './services/chatter-message.service';
319
307
  import { ConcatComputedFieldProvider } from './services/computed-fields/concat-computed-field-provider.service';
320
308
  import { AlphaNumExternalIdComputationProvider } from './services/computed-fields/entity/alpha-num-external-id-computed-field-provider';
321
309
  import { ConcatEntityComputedFieldProvider } from './services/computed-fields/entity/concat-entity-computed-field-provider.service';
310
+ import { MqDashboardFailedMessagesKpiProvider } from './services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service';
311
+ import { MqDashboardInflightMessagesKpiProvider } from './services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service';
312
+ import { MqDashboardLatencyTrendProvider } from './services/dashboard-providers/mq-dashboard-latency-trend-provider.service';
313
+ import { MqDashboardMessagesOverTimeProvider } from './services/dashboard-providers/mq-dashboard-messages-over-time-provider.service';
314
+ import { MqDashboardQueueWiseAvgElapsedProvider } from './services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service';
315
+ import { MqDashboardQueueWiseFailuresProvider } from './services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service';
316
+ import { MqDashboardQueueSlaHeatmapProvider } from './services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service';
317
+ import { MqDashboardRecentFailuresProvider } from './services/dashboard-providers/mq-dashboard-recent-failures-provider.service';
318
+ import { MqDashboardStageDistributionProvider } from './services/dashboard-providers/mq-dashboard-stage-distribution-provider.service';
319
+ import { MqDashboardSucceededMessagesKpiProvider } from './services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service';
320
+ import { MqDashboardSuccessRateKpiProvider } from './services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service';
321
+ import { MqDashboardTotalMessagesKpiProvider } from './services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service';
322
+ import { MqDashboardAvgElapsedKpiProvider } from './services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service';
322
323
  import { NoopsEntityComputedFieldProviderService } from './services/computed-fields/entity/noops-entity-computed-field-provider.service';
323
324
  import { CRUDService } from './services/crud.service';
324
325
  import { CsvService } from './services/csv.service';
325
- import { DashboardQuestionSqlDatasetConfigService } from './services/dashboard-question-sql-dataset-config.service';
326
- import { DashboardQuestionService } from './services/dashboard-question.service';
327
- import { DashboardVariableSQLDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service';
328
- import { DasbhoardVariableTestDynamicProvider } from './services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service';
329
- import { DashboardVariableService } from './services/dashboard-variable.service';
330
- import { DashboardService } from './services/dashboard.service';
331
- import { DashboardLayoutService } from './services/dashboard-layout.service';
332
326
 
333
327
  import { ExcelService } from './services/excel.service';
334
328
  import { ExportTemplateService } from './services/export-template.service';
@@ -342,9 +336,6 @@ import { LocaleService } from './services/locale.service';
342
336
  import { FileS3StorageProvider } from './services/mediaStorageProviders/file-s3-storage-provider';
343
337
  import { FileStorageProvider } from './services/mediaStorageProviders/file-storage-provider';
344
338
  import { PollerService } from './services/poller.service';
345
- import { ChartJsSqlDataProvider } from './services/question-data-providers/chartjs-sql-data-provider.service';
346
- import { PrimeReactDatatableSqlDataProvider } from './services/question-data-providers/prime-react-datatable-sql-data-provider.service';
347
- import { PrimeReactMeterGroupSqlDataProvider } from './services/question-data-providers/prime-react-meter-group-sql-data-provider.service';
348
339
  import { PublisherFactory } from './services/queues/publisher-factory.service';
349
340
  import { RequestContextService } from './services/request-context.service';
350
341
  import { RoleMetadataService } from './services/role-metadata.service';
@@ -355,14 +346,11 @@ import { AgentEventService } from './services/agent-event.service';
355
346
  import { McpAuditLogService } from './services/mcp-audit-log.service';
356
347
  import { SchedulerServiceImpl } from './services/scheduled-jobs/scheduler.service';
357
348
  import { SecurityRuleService } from './services/security-rule.service';
358
- import { ListOfDashboardQuestionProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-question-providers-selection-provider.service';
359
- import { ListOfDashboardVariableProvidersSelectionProvider } from './services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service';
360
349
  import { ListOfScheduledJobsSelectionProvider } from './services/selection-providers/list-of-scheduled-jobs-selection-provider.service';
361
350
  import { LocaleListSelectionProvider } from './services/selection-providers/locale-list-selection-provider.service';
362
351
  import { SettingService } from './services/setting.service';
363
352
  import { TwilioSMSService } from './services/sms/TwilioSMSService';
364
353
  import { SolidTsMorphService } from './services/solid-ts-morph.service';
365
- import { SqlExpressionResolverService } from './services/sql-expression-resolver.service';
366
354
  import { TextractService } from './services/textract.service';
367
355
  import { UserActivityHistoryService } from './services/user-activity-history.service';
368
356
  import { UserViewMetadataService } from './services/user-view-metadata.service';
@@ -371,10 +359,6 @@ import { Three60WhatsappService } from './services/whatsapp/Three60WhatsappServi
371
359
  import { AuditSubscriber } from './subscribers/audit.subscriber';
372
360
  import { ComputedEntityFieldSubscriber } from './subscribers/computed-entity-field.subscriber';
373
361
  import { CreatedByUpdatedBySubscriber } from './subscribers/created-by-updated-by.subscriber';
374
- import { DashboardQuestionSqlDatasetConfigSubscriber } from './subscribers/dashboard-question-sql-dataset-config.subscriber';
375
- import { DashboardQuestionSubscriber } from './subscribers/dashboard-question.subscriber';
376
- import { DashboardVariableSubscriber } from './subscribers/dashboard-variable.subscriber';
377
- import { DashboardSubscriber } from './subscribers/dashboard.subscriber';
378
362
  import { ListOfValuesSubscriber } from './subscribers/list-of-values.subscriber';
379
363
  import { ScheduledJobSubscriber } from './subscribers/scheduled-job.subscriber';
380
364
  import { SecurityRuleSubscriber } from './subscribers/security-rule.subscriber';
@@ -400,6 +384,10 @@ import { SolidMicroserviceAdapter } from './helpers/solid-microservice-adapter.s
400
384
  import { InfoCommand } from './commands/info.command';
401
385
  import { ListOfRolesSelectionProvider } from './services/selection-providers/list-of-roles-selectionproviders.service';
402
386
  import { Entity } from 'typeorm';
387
+ import { DashboardUserLayout } from './entities/dashboard-user-layout.entity';
388
+ import { DashboardUserLayoutService } from './services/dashboard-user-layout.service';
389
+ import { DashboardUserLayoutController } from './controllers/dashboard-user-layout.controller';
390
+ import { DashboardUserLayoutRepository } from './repositories/dashboard-user-layout.repository';
403
391
 
404
392
  @Global()
405
393
  @Module({
@@ -409,11 +397,6 @@ import { Entity } from 'typeorm';
409
397
  AiInteraction,
410
398
  ChatterMessage,
411
399
  ChatterMessageDetails,
412
- Dashboard,
413
- DashboardQuestion,
414
- DashboardQuestionSqlDatasetConfig,
415
- DashboardVariable,
416
- DashboardLayout,
417
400
  EmailAttachment,
418
401
  EmailTemplate,
419
402
  ExportTemplate,
@@ -478,6 +461,7 @@ import { Entity } from 'typeorm';
478
461
  JwtModule.register({
479
462
  global: true,
480
463
  }),
464
+ TypeOrmModule.forFeature([DashboardUserLayout]),
481
465
  ],
482
466
  controllers: [
483
467
  ActionMetadataController,
@@ -485,15 +469,11 @@ import { Entity } from 'typeorm';
485
469
  AuthenticationController,
486
470
  ChatterMessageController,
487
471
  ChatterMessageDetailsController,
488
- DashboardController,
489
- DashboardQuestionController,
490
- DashboardQuestionSqlDatasetConfigController,
491
- DashboardVariableController,
492
- DashboardLayoutController,
493
472
  EmailTemplateController,
494
473
  ExportTemplateController,
495
474
  ExportTransactionController,
496
475
  FieldMetadataController,
476
+ DashboardController,
497
477
  GoogleAuthenticationController,
498
478
  FacebookAuthenticationController,
499
479
  MicrosoftAuthenticationController,
@@ -530,6 +510,7 @@ import { Entity } from 'typeorm';
530
510
  UserViewMetadataController,
531
511
  ViewMetadataController,
532
512
  ModelSequenceController,
513
+ DashboardUserLayoutController,
533
514
  ],
534
515
  providers: [
535
516
  {
@@ -557,6 +538,7 @@ import { Entity } from 'typeorm';
557
538
  ModelMetadataService,
558
539
  ModelMetadataHelperService,
559
540
  FieldMetadataService,
541
+ DashboardRuntimeService,
560
542
  RemoveFieldsCommand,
561
543
  RefreshModelCommand,
562
544
  RefreshModuleCommand,
@@ -578,6 +560,8 @@ import { Entity } from 'typeorm';
578
560
  ModuleTestDataService,
579
561
  ListOfValuesService,
580
562
  ListOfValuesSelectionProvider,
563
+ MqDashboardQueueNameVariableOptionsProvider,
564
+ MqDashboardMessageBrokerVariableOptionsProvider,
581
565
  PseudoForeignKeySelectionProvider,
582
566
  ModelMetadataSubscriber,
583
567
  ViewMetadataService,
@@ -722,6 +706,19 @@ import { Entity } from 'typeorm';
722
706
  UserRepository,
723
707
  SettingService,
724
708
  ConcatComputedFieldProvider,
709
+ MqDashboardTotalMessagesKpiProvider,
710
+ MqDashboardSucceededMessagesKpiProvider,
711
+ MqDashboardFailedMessagesKpiProvider,
712
+ MqDashboardInflightMessagesKpiProvider,
713
+ MqDashboardSuccessRateKpiProvider,
714
+ MqDashboardAvgElapsedKpiProvider,
715
+ MqDashboardMessagesOverTimeProvider,
716
+ MqDashboardStageDistributionProvider,
717
+ MqDashboardQueueWiseFailuresProvider,
718
+ MqDashboardQueueWiseAvgElapsedProvider,
719
+ MqDashboardQueueSlaHeatmapProvider,
720
+ MqDashboardLatencyTrendProvider,
721
+ MqDashboardRecentFailuresProvider,
725
722
  FileStorageProvider,
726
723
  FileS3StorageProvider,
727
724
  MediaRepository,
@@ -741,6 +738,7 @@ import { Entity } from 'typeorm';
741
738
  ExportTransactionService,
742
739
  ExcelService,
743
740
  CsvService,
741
+ DashboardRuntimeService,
744
742
  ImportTransactionService,
745
743
  ImportTransactionErrorLogService,
746
744
  CreatedByUpdatedBySubscriber,
@@ -753,35 +751,10 @@ import { Entity } from 'typeorm';
753
751
  ComputedFieldEvaluationSubscriberRabbitmq,
754
752
  ConcatEntityComputedFieldProvider,
755
753
  UserActivityHistoryService,
756
- DashboardService,
757
- DashboardVariableService,
758
- DashboardLayoutService,
759
- DashboardQuestionService,
760
- DashboardVariableSQLDynamicProvider,
761
- DasbhoardVariableTestDynamicProvider,
762
- ListOfDashboardVariableProvidersSelectionProvider,
763
- ListOfDashboardQuestionProvidersSelectionProvider,
764
- DashboardQuestionSqlDatasetConfigService,
765
- ChartJsSqlDataProvider,
766
- PrimeReactMeterGroupSqlDataProvider,
767
- PrimeReactDatatableSqlDataProvider,
768
- SqlExpressionResolverService,
769
754
  AiInteractionService,
770
- DashboardMapper,
771
- DashboardRepository,
772
- DashboardSubscriber,
773
- DashboardVariableSubscriber,
774
- DashboardQuestionSubscriber,
775
- DashboardQuestionSqlDatasetConfigSubscriber,
776
755
  NoopsEntityComputedFieldProviderService,
777
756
 
778
757
  McpHandlerFactory,
779
- // SolidCreateDashboardWithWidgetsMcpHandler,
780
- // SolidCreateDashboardQuestionMcpHandler,
781
- // SolidCreateDashboardQuestionSqlDatasetConfigMcpHandler,
782
- // SolidCreateDashboardWidgetMcpHandler,
783
- // SolidAddVariableToDashboardMcpHandler,
784
- // SolidAddQuestionToDashboardMcpHandler,
785
758
 
786
759
  SolidTsMorphService,
787
760
 
@@ -803,10 +776,6 @@ import { Entity } from 'typeorm';
803
776
  ChatterMessageRepository,
804
777
  ChatterMessageDetailsRepository,
805
778
  AiInteractionRepository,
806
- DashboardQuestionSqlDatasetConfigRepository,
807
- DashboardQuestionRepository,
808
- DashboardVariableRepository,
809
- DashboardLayoutRepository,
810
779
  EmailTemplateRepository,
811
780
  ExportTemplateRepository,
812
781
  ExportTransactionRepository,
@@ -839,6 +808,8 @@ import { Entity } from 'typeorm';
839
808
  ImageEncodingService,
840
809
  SolidMicroserviceAdapter,
841
810
  ListOfRolesSelectionProvider,
811
+ DashboardUserLayoutService,
812
+ DashboardUserLayoutRepository,
842
813
  ],
843
814
  exports: [
844
815
  AiInteractionService,
@@ -15,6 +15,12 @@
15
15
  {
16
16
  "testing": {
17
17
  "specs": ["path/to/register-test-specs.js"],
18
+ "roles": [
19
+ { "name": "Editor", "permissions": ["BookController.*"] }
20
+ ],
21
+ "users": [
22
+ { "username": "testEditor", "email": "testEditor@test.local", "password": "Test@1234", "roles": ["Editor"] }
23
+ ],
18
24
  "data": [
19
25
  {
20
26
  "modelUserKey": "stateMaster",
@@ -227,6 +233,37 @@ Options in `with`:
227
233
  - `selector` (required)
228
234
  - `key` (required)
229
235
 
236
+ ### **Op: `ui.waitForManual`**
237
+ Description: Pauses a headed Playwright run so a human can interact with the live browser, then resumes when Enter is pressed in the terminal.
238
+
239
+ Options in `with`:
240
+ - `message` (optional, defaults to a generic instruction)
241
+ - `prompt` (optional, defaults to `Press Enter to continue...`)
242
+ - `waitForSelector` (optional, waits for a visible selector after resume)
243
+ - `waitForUrlEquals` (optional, waits until the current URL exactly matches)
244
+ - `waitForUrlContains` (optional, waits until the current URL contains a substring)
245
+ - `timeoutMs` (optional, timeout for post-resume waits)
246
+ - `bringToFront` (optional, defaults to `true`)
247
+
248
+ Notes:
249
+ - Requires `--headless false`.
250
+ - Requires an interactive terminal (TTY).
251
+ - Useful for OTP screens or third-party verification challenges that must be completed by a human.
252
+
253
+ Example:
254
+ ```json
255
+ {
256
+ "then": {
257
+ "op": "ui.waitForManual",
258
+ "with": {
259
+ "message": "Enter the OTP in the browser, then return here to continue.",
260
+ "waitForSelector": "text=Dashboard",
261
+ "timeoutMs": 30000
262
+ }
263
+ }
264
+ }
265
+ ```
266
+
230
267
  ### **Op: `ui.expectVisible`**
231
268
  Description: Waits for an element to be visible.
232
269
 
@@ -340,7 +377,6 @@ await runFromMetadata({
340
377
  When using `solidctl test run`, specs are loaded from `testing.specs` in module metadata.
341
378
  Use `--skip-scenario-ids` to exclude scenarios by id (comma-separated).
342
379
  Use `--print-api-logs` to print full API request/response details for `api.request` steps.
343
- Use `--print-api-logs` to print full API request/response details for `api.request` steps.
344
380
 
345
381
  ## Run From Metadata
346
382
  ```ts
@@ -366,14 +402,16 @@ Full isolated-database workflow:
366
402
 
367
403
  Lightweight existing-database workflow:
368
404
  1. `npx @solidxai/solidctl@latest test data --load`
369
- 2. `npx @solidxai/solidctl@latest test run --module <module-name>`
405
+ 2. `npx @solidxai/solidctl@latest test run --module <module-name> --headless false`
370
406
  3. `npx @solidxai/solidctl@latest test data --unlink`
371
407
 
372
- `test data --unlink` deletes records declared in `testing.data` in reverse order using each model's `userKeyFieldUserKey` and the entry's `recUserKeyValue`. This assumes `testing.data` is authored in dependency order, with parent records appearing before dependent records.
408
+ `test data --unlink` deletes records declared in `testing.data` in reverse order using each model's actual `userKeyFieldUserKey` value from `testing.data[*].data`. This assumes `testing.data` is authored in dependency order, with parent records appearing before dependent records.
409
+
410
+ For human-assisted OTP or third-party verification flows, use `ui.waitForManual` in a headed run so the browser remains interactive while the scenario is paused.
373
411
 
374
412
  ## Add A New Step (SOP)
375
413
  1. Create a new `*.step.ts` in the right domain folder.
376
414
  2. Implement a `registerXSteps(registry)` function and `registry.register("op.name", handler)`.
377
415
  3. Validate required `step.with` fields and throw clear errors.
378
416
  4. Use adapters via `ctx.api` / `ctx.ui` and update `ctx.last` when helpful.
379
- 5. Export and register it from the domain `index.ts`.
417
+ 5. Export and register it from the domain `index.ts`.
@@ -18,6 +18,10 @@ export class PlaywrightAdapter {
18
18
  this.headless = opts?.headless ?? true;
19
19
  }
20
20
 
21
+ isHeadless(): boolean {
22
+ return this.headless;
23
+ }
24
+
21
25
  async start(): Promise<void> {
22
26
  const { chromium } = await import('playwright');
23
27
  this.browser = await chromium.launch({ headless: this.headless });
@@ -3,10 +3,12 @@ import { registerNavigationSteps } from "./navigation.step";
3
3
  import { registerFormSteps } from "./form.step";
4
4
  import { registerActionSteps } from "./actions.step";
5
5
  import { registerAssertionSteps } from "./assertions.step";
6
+ import { registerManualSteps } from "./manual.step";
6
7
 
7
8
  export function registerUiSteps(registry: StepRegistry): void {
8
9
  registerNavigationSteps(registry);
9
10
  registerFormSteps(registry);
10
11
  registerActionSteps(registry);
11
12
  registerAssertionSteps(registry);
13
+ registerManualSteps(registry);
12
14
  }
@@ -0,0 +1,80 @@
1
+ import { createInterface } from "node:readline/promises";
2
+ import { stdin as input, stdout as output } from "node:process";
3
+
4
+ import type { TestContext } from "../../contracts/runtime-context.types";
5
+ import type { OpStep } from "../../contracts/testing-metadata.types";
6
+ import { StepRegistry } from "../../core/step-registry";
7
+
8
+ type WaitForManualInput = {
9
+ message?: string;
10
+ prompt?: string;
11
+ waitForSelector?: string;
12
+ waitForUrlContains?: string;
13
+ waitForUrlEquals?: string;
14
+ timeoutMs?: number;
15
+ bringToFront?: boolean;
16
+ };
17
+
18
+ function requirePage(ctx: TestContext, op: string) {
19
+ if (!ctx.ui || !ctx.ui.page) {
20
+ throw new Error(`Missing UI page on context for op "${op}"`);
21
+ }
22
+ return ctx.ui.page;
23
+ }
24
+
25
+ export function registerManualSteps(registry: StepRegistry): void {
26
+ registry.register("ui.waitForManual", async (ctx: TestContext, step: OpStep) => {
27
+ const page = requirePage(ctx, "ui.waitForManual");
28
+ const inputConfig = (step.with ?? {}) as WaitForManualInput;
29
+ const message = inputConfig.message?.trim() || "Manual interaction required.";
30
+ const prompt = inputConfig.prompt?.trim() || "Press Enter to continue...";
31
+ const timeoutMs = inputConfig.timeoutMs;
32
+ const bringToFront = inputConfig.bringToFront ?? true;
33
+
34
+ if (ctx.ui?.isHeadless()) {
35
+ throw new Error('Op "ui.waitForManual" requires headed mode. Re-run with --headless false.');
36
+ }
37
+ if (!input.isTTY || !output.isTTY) {
38
+ throw new Error('Op "ui.waitForManual" requires an interactive terminal (TTY).');
39
+ }
40
+
41
+ if (bringToFront) {
42
+ await page.bringToFront();
43
+ }
44
+
45
+ console.log("");
46
+ console.log("════════ Manual Interaction Required ════════");
47
+ console.log(message);
48
+ console.log(`Scenario: ${ctx.scenarioId}`);
49
+ console.log(`Current URL: ${page.url()}`);
50
+ console.log(prompt);
51
+
52
+ const rl = createInterface({ input, output });
53
+ try {
54
+ await rl.question("");
55
+ } finally {
56
+ rl.close();
57
+ }
58
+
59
+ if (inputConfig.waitForSelector) {
60
+ await page.waitForSelector(inputConfig.waitForSelector, {
61
+ state: "visible",
62
+ timeout: timeoutMs,
63
+ });
64
+ }
65
+
66
+ if (inputConfig.waitForUrlEquals) {
67
+ await page.waitForURL(
68
+ (url) => url.toString() === inputConfig.waitForUrlEquals,
69
+ { timeout: timeoutMs },
70
+ );
71
+ }
72
+
73
+ if (inputConfig.waitForUrlContains) {
74
+ await page.waitForURL(
75
+ (url) => url.toString().includes(String(inputConfig.waitForUrlContains)),
76
+ { timeout: timeoutMs },
77
+ );
78
+ }
79
+ });
80
+ }
@@ -1,47 +0,0 @@
1
- import { CreateDashboardLayoutDto } from '../dtos/create-dashboard-layout.dto';
2
- import { UpdateDashboardLayoutDto } from '../dtos/update-dashboard-layout.dto';
3
- import { DashboardLayoutService } from '../services/dashboard-layout.service';
4
- export declare class DashboardLayoutController {
5
- private readonly service;
6
- constructor(service: DashboardLayoutService);
7
- create(createDto: CreateDashboardLayoutDto, files: Array<Express.Multer.File>): Promise<import("..").DashboardLayout>;
8
- insertMany(createDtos: CreateDashboardLayoutDto[], filesArray?: Express.Multer.File[][]): Promise<import("..").DashboardLayout[]>;
9
- upsertUserDashboardLayout(createDtos: CreateDashboardLayoutDto): Promise<import("..").DashboardLayout>;
10
- update(id: number, updateDto: UpdateDashboardLayoutDto, files: Array<Express.Multer.File>): Promise<import("..").DashboardLayout>;
11
- partialUpdate(id: number, updateDto: UpdateDashboardLayoutDto, files: Array<Express.Multer.File>): Promise<import("..").DashboardLayout>;
12
- recoverMany(ids: number[]): Promise<{
13
- message: string;
14
- recoveredIds: number[];
15
- }>;
16
- getUserDashboardLayoutByDashboardId(dashboardId: number): Promise<import("..").DashboardLayout | {
17
- layout: any;
18
- }>;
19
- recover(id: number): Promise<{
20
- message: string;
21
- data: import("..").DashboardLayout;
22
- }>;
23
- findMany(query: any): Promise<{
24
- meta: {
25
- totalRecords: number;
26
- };
27
- groupMeta: any[];
28
- groupRecords: any[];
29
- records?: undefined;
30
- } | {
31
- meta: {
32
- totalRecords: number;
33
- currentPage: number;
34
- nextPage: number;
35
- prevPage: number;
36
- totalPages: number;
37
- perPage: number;
38
- };
39
- records: import("..").DashboardLayout[];
40
- groupMeta?: undefined;
41
- groupRecords?: undefined;
42
- }>;
43
- findOne(id: string, query: any): Promise<import("..").DashboardLayout>;
44
- deleteMany(ids: number[]): Promise<any>;
45
- delete(id: number): Promise<import("..").DashboardLayout>;
46
- }
47
- //# sourceMappingURL=dashboard-layout.controller.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-layout.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/dashboard-layout.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAO/E,qBAEa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,sBAAsB;IAK5D,MAAM,CAAS,SAAS,EAAE,wBAAwB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAOtG,UAAU,CAAS,UAAU,EAAE,wBAAwB,EAAE,EAAmB,UAAU,GAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAO;IAOpH,yBAAyB,CAAS,UAAU,EAAE,wBAAwB;IAQtE,MAAM,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,wBAAwB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAO/H,aAAa,CAAc,EAAE,EAAE,MAAM,EAAU,SAAS,EAAE,wBAAwB,EAAmB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;IAMhI,WAAW,CAAS,GAAG,EAAE,MAAM,EAAE;;;;IAMjC,mCAAmC,CAAuB,WAAW,EAAE,MAAM;;;IAM7E,OAAO,CAAc,EAAE,EAAE,MAAM;;;;IAe/B,QAAQ,CAAU,KAAK,EAAE,GAAG;;;;;;;;;;;;;;;;;;;;IAM5B,OAAO,CAAc,EAAE,EAAE,MAAM,EAAW,KAAK,EAAE,GAAG;IAMpD,UAAU,CAAS,GAAG,EAAE,MAAM,EAAE;IAMhC,MAAM,CAAc,EAAE,EAAE,MAAM;CAKrC"}