@solidxai/core 0.1.10-beta.22 → 0.1.10-beta.24

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 (481) hide show
  1. package/CLAUDE.md +9 -1
  2. package/dist/commands/info.command.d.ts.map +1 -1
  3. package/dist/commands/info.command.js +0 -2
  4. package/dist/commands/info.command.js.map +1 -1
  5. package/dist/controllers/dashboard-user-layout.controller.d.ts +43 -0
  6. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  7. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  8. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  9. package/dist/controllers/dashboard.controller.d.ts +12 -42
  10. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  11. package/dist/controllers/dashboard.controller.js +71 -141
  12. package/dist/controllers/dashboard.controller.js.map +1 -1
  13. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  14. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  15. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  16. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  17. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  18. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  19. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  20. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  21. package/dist/dtos/create-model-metadata.dto.d.ts +2 -2
  22. package/dist/dtos/create-model-metadata.dto.d.ts.map +1 -1
  23. package/dist/dtos/create-model-metadata.dto.js +6 -11
  24. package/dist/dtos/create-model-metadata.dto.js.map +1 -1
  25. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  26. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  27. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  28. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  29. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  30. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  31. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  32. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  33. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  34. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  35. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  36. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  37. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  38. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  39. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  40. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  41. package/dist/entities/legacy-common-with-id.entity.d.ts +2 -2
  42. package/dist/entities/legacy-common-with-id.entity.d.ts.map +1 -1
  43. package/dist/entities/legacy-common-with-id.entity.js +6 -6
  44. package/dist/entities/legacy-common-with-id.entity.js.map +1 -1
  45. package/dist/entities/legacy-common.entity.d.ts +1 -1
  46. package/dist/entities/legacy-common.entity.d.ts.map +1 -1
  47. package/dist/entities/legacy-common.entity.js +14 -14
  48. package/dist/entities/legacy-common.entity.js.map +1 -1
  49. package/dist/entities/model-metadata.entity.d.ts +2 -2
  50. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  51. package/dist/entities/model-metadata.entity.js +5 -8
  52. package/dist/entities/model-metadata.entity.js.map +1 -1
  53. package/dist/enums/legacy-table-type.enum.d.ts +6 -0
  54. package/dist/enums/legacy-table-type.enum.d.ts.map +1 -0
  55. package/dist/enums/legacy-table-type.enum.js +10 -0
  56. package/dist/enums/legacy-table-type.enum.js.map +1 -0
  57. package/dist/helpers/model-metadata-helper.service.d.ts +2 -1
  58. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  59. package/dist/helpers/model-metadata-helper.service.js +4 -3
  60. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  61. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  62. package/dist/helpers/module-metadata-helper.service.js +15 -4
  63. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  64. package/dist/helpers/solid-registry.d.ts +5 -9
  65. package/dist/helpers/solid-registry.d.ts.map +1 -1
  66. package/dist/helpers/solid-registry.js +13 -28
  67. package/dist/helpers/solid-registry.js.map +1 -1
  68. package/dist/index.d.ts +22 -5
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +22 -5
  71. package/dist/index.js.map +1 -1
  72. package/dist/interfaces.d.ts +24 -13
  73. package/dist/interfaces.d.ts.map +1 -1
  74. package/dist/interfaces.js.map +1 -1
  75. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +1 -3
  76. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  77. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -25
  78. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  79. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  80. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  81. package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  82. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  83. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -6
  84. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  85. package/dist/seeders/module-metadata-seeder.service.js +1 -60
  86. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  87. package/dist/seeders/seed-data/solid-core-metadata.json +6209 -6690
  88. package/dist/seeders/system-fields-seeder.service.js +1 -1
  89. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  90. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  91. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  92. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  93. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  94. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  95. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  96. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  97. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  98. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  99. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  100. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  101. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  102. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  103. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  104. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  105. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  106. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  107. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  108. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  109. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  110. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  111. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  112. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  113. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  114. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  115. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  116. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  117. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  118. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  119. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  120. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  121. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  122. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  123. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  124. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  125. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  126. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  127. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  128. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  129. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  130. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  131. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  132. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  133. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  134. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  135. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  136. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  137. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  138. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  139. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  140. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  141. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  142. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  143. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  144. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  145. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  146. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  147. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  148. package/dist/services/dashboard-runtime.service.js +408 -0
  149. package/dist/services/dashboard-runtime.service.js.map +1 -0
  150. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  151. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  152. package/dist/services/{dashboard-variable.service.js → dashboard-user-layout.service.js} +11 -12
  153. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  154. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +9 -9
  155. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  156. package/dist/services/model-metadata.service.d.ts +2 -2
  157. package/dist/services/model-metadata.service.d.ts.map +1 -1
  158. package/dist/services/model-metadata.service.js +3 -4
  159. package/dist/services/model-metadata.service.js.map +1 -1
  160. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  161. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  162. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  163. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  164. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  165. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  166. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  167. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  168. package/dist/services/solid-introspect.service.d.ts +1 -2
  169. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  170. package/dist/services/solid-introspect.service.js +12 -24
  171. package/dist/services/solid-introspect.service.js.map +1 -1
  172. package/dist/solid-core.module.d.ts.map +1 -1
  173. package/dist/solid-core.module.js +43 -66
  174. package/dist/solid-core.module.js.map +1 -1
  175. package/dist/subscribers/model-metadata.subscriber.d.ts.map +1 -1
  176. package/dist/subscribers/model-metadata.subscriber.js +1 -3
  177. package/dist/subscribers/model-metadata.subscriber.js.map +1 -1
  178. package/package.json +1 -1
  179. package/src/commands/info.command.ts +0 -2
  180. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  181. package/src/controllers/dashboard.controller.ts +70 -89
  182. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  183. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  184. package/src/dtos/create-model-metadata.dto.ts +5 -9
  185. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  186. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  187. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  188. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  189. package/src/entities/legacy-common-with-id.entity.ts +2 -2
  190. package/src/entities/legacy-common.entity.ts +1 -1
  191. package/src/entities/model-metadata.entity.ts +3 -5
  192. package/src/enums/legacy-table-type.enum.ts +5 -0
  193. package/src/helpers/model-metadata-helper.service.ts +4 -3
  194. package/src/helpers/module-metadata-helper.service.ts +21 -6
  195. package/src/helpers/solid-registry.ts +15 -36
  196. package/src/index.ts +22 -5
  197. package/src/interfaces.ts +32 -19
  198. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -34
  199. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  200. package/src/seeders/module-metadata-seeder.service.ts +0 -67
  201. package/src/seeders/seed-data/solid-core-metadata.json +6210 -6691
  202. package/src/seeders/system-fields-seeder.service.ts +1 -1
  203. package/src/services/dashboard-providers/README.md +603 -0
  204. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  205. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  206. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  207. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  208. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  209. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  210. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  211. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  212. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  213. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  214. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  215. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  216. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  217. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  218. package/src/services/dashboard-runtime.service.ts +488 -0
  219. package/src/services/dashboard-user-layout.service.ts +20 -0
  220. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +11 -11
  221. package/src/services/model-metadata.service.ts +6 -8
  222. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  223. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  224. package/src/services/solid-introspect.service.ts +19 -34
  225. package/src/solid-core.module.ts +43 -72
  226. package/src/subscribers/model-metadata.subscriber.ts +1 -3
  227. package/CURRENT_PROMPT +0 -6
  228. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  229. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  230. package/dist/controllers/dashboard-layout.controller.js +0 -204
  231. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  232. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  233. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  234. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  235. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  236. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  237. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  238. package/dist/controllers/dashboard-question.controller.js +0 -194
  239. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  240. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  241. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  242. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  243. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  244. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  245. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  246. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  247. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  248. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  249. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  250. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  251. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  252. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  253. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  254. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  255. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  256. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  257. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  258. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  259. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  260. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  261. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  262. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  263. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  264. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  265. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  266. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  267. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  268. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  269. package/dist/dtos/create-dashboard.dto.js +0 -102
  270. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  271. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  272. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  273. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  274. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  275. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  276. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  277. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  278. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  279. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  280. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  281. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  282. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  283. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  284. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  285. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  286. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  287. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  288. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  289. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  290. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  291. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  292. package/dist/dtos/update-dashboard.dto.js +0 -108
  293. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  294. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  295. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  296. package/dist/entities/dashboard-layout.entity.js +0 -41
  297. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  298. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  299. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  300. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  301. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  302. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  303. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  304. package/dist/entities/dashboard-question.entity.js +0 -77
  305. package/dist/entities/dashboard-question.entity.js.map +0 -1
  306. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  307. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  308. package/dist/entities/dashboard-variable.entity.js +0 -79
  309. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  310. package/dist/entities/dashboard.entity.d.ts +0 -16
  311. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  312. package/dist/entities/dashboard.entity.js +0 -64
  313. package/dist/entities/dashboard.entity.js.map +0 -1
  314. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  315. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  316. package/dist/mappers/dashboard-mapper.js +0 -62
  317. package/dist/mappers/dashboard-mapper.js.map +0 -1
  318. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  319. package/dist/repository/dashboard-layout.repository.js +0 -34
  320. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  321. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  322. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  323. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  324. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  325. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  326. package/dist/repository/dashboard-question.repository.js +0 -34
  327. package/dist/repository/dashboard-question.repository.js.map +0 -1
  328. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  329. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  330. package/dist/repository/dashboard-variable.repository.js +0 -34
  331. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  332. package/dist/repository/dashboard.repository.d.ts +0 -13
  333. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  334. package/dist/repository/dashboard.repository.js +0 -104
  335. package/dist/repository/dashboard.repository.js.map +0 -1
  336. package/dist/services/dashboard-layout.service.d.ts +0 -20
  337. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  338. package/dist/services/dashboard-layout.service.js +0 -120
  339. package/dist/services/dashboard-layout.service.js.map +0 -1
  340. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  341. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  342. package/dist/services/dashboard-question-sql-dataset-config.service.js +0 -38
  343. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  344. package/dist/services/dashboard-question.service.d.ts +0 -23
  345. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  346. package/dist/services/dashboard-question.service.js +0 -135
  347. package/dist/services/dashboard-question.service.js.map +0 -1
  348. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  349. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  350. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  351. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  352. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  353. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  354. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  355. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  356. package/dist/services/dashboard-variable.service.d.ts +0 -13
  357. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  358. package/dist/services/dashboard-variable.service.js.map +0 -1
  359. package/dist/services/dashboard.service.d.ts +0 -29
  360. package/dist/services/dashboard.service.d.ts.map +0 -1
  361. package/dist/services/dashboard.service.js +0 -171
  362. package/dist/services/dashboard.service.js.map +0 -1
  363. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  364. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  365. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  366. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  367. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  368. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  369. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  370. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  371. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  372. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  373. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  374. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  375. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  376. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  377. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  378. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  379. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  380. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  381. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  382. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  383. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  384. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  385. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  386. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  387. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  388. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  389. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  390. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  391. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  392. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  393. package/dist/services/question-data-providers/helpers.js +0 -25
  394. package/dist/services/question-data-providers/helpers.js.map +0 -1
  395. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  396. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  397. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  398. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  399. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  400. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  401. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  402. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  403. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  404. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  405. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  406. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  407. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  408. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  409. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  410. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  411. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  412. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  413. package/dist/services/sql-expression-resolver.service.js +0 -121
  414. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  415. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  416. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  417. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  418. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  419. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  420. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  421. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  422. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  423. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  424. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  425. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  426. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  427. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  428. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  429. package/dist/subscribers/dashboard.subscriber.js +0 -71
  430. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  431. package/src/controllers/dashboard-layout.controller.ts +0 -106
  432. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  433. package/src/controllers/dashboard-question.controller.ts +0 -104
  434. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  435. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  436. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  437. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  438. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  439. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  440. package/src/dtos/create-dashboard.dto.ts +0 -61
  441. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  442. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  443. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  444. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  445. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  446. package/src/dtos/update-dashboard.dto.ts +0 -65
  447. package/src/entities/dashboard-layout.entity.ts +0 -18
  448. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  449. package/src/entities/dashboard-question.entity.ts +0 -46
  450. package/src/entities/dashboard-variable.entity.ts +0 -44
  451. package/src/entities/dashboard.entity.ts +0 -36
  452. package/src/mappers/dashboard-mapper.ts +0 -53
  453. package/src/repository/dashboard-layout.repository.ts +0 -17
  454. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  455. package/src/repository/dashboard-question.repository.ts +0 -17
  456. package/src/repository/dashboard-variable.repository.ts +0 -17
  457. package/src/repository/dashboard.repository.ts +0 -101
  458. package/src/services/dashboard-layout.service.ts +0 -111
  459. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  460. package/src/services/dashboard-question.service.ts +0 -150
  461. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  462. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  463. package/src/services/dashboard-variable.service.ts +0 -27
  464. package/src/services/dashboard.service.ts +0 -148
  465. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  466. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  467. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  468. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  469. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  470. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  471. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  472. package/src/services/question-data-providers/helpers.ts +0 -30
  473. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  474. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  475. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  476. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  477. package/src/services/sql-expression-resolver.service.ts +0 -140
  478. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  479. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  480. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  481. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -1 +1 @@
1
- {"version":3,"file":"file-s3-storage-provider.js","sourceRoot":"","sources":["../../../src/services/mediaStorageProviders/file-s3-storage-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { ConfigService } from \"@nestjs/config\";\nimport { CommonEntity } from \"src/entities/common.entity\";\nimport { FieldMetadata } from \"src/entities/field-metadata.entity\";\nimport { LegacyCommonEntity } from \"src/entities/legacy-common.entity\";\nimport { LegacyCommonWithIdEntity } from \"src/entities/legacy-common-with-id.entity\";\nimport { Media } from \"src/entities/media.entity\";\nimport { MediaStorageProvider } from \"src/interfaces\";\nimport { DiskFileService, S3FileService } from \"src/services/file\";\nimport { Readable } from \"stream\";\nimport { MediaRepository } from \"src/repository/media.repository\";\n\n@Injectable()\nexport class FileS3StorageProvider<T> implements MediaStorageProvider<T> {\n private logger = new Logger(FileS3StorageProvider.name);\n\n constructor(\n private readonly configService: ConfigService,\n readonly diskFileService: DiskFileService,\n readonly s3FileService: S3FileService,\n readonly mediaRepository: MediaRepository,\n ) { }\n\n storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntity\n || entity instanceof LegacyCommonWithIdEntity;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntity or LegacyCommonWithIdEntity\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n // @ts-ignore\n const media = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);\n\n // TODO: Check if the mediaStorageProvider (s3 in this case) is configured with a public bucket or not.\n // If private bucket then we need to return a \"signed-url\", the timeout for the signed url can be configured in the media storage provider entity and modified using the CRUD interface.\n // Add the full URL to the media\n for (const m of media) {\n const storageMeta = m.mediaStorageProviderMetadata;\n const region = this.getEffectiveRegion(storageMeta.region);\n if (storageMeta.isPublic === false) {\n // Generate signed URL\n const expiryInSeconds = (storageMeta.signedUrlExpiry ?? 60) * 60;\n m['_full_url'] = await this.s3FileService.getUrl(`${storageMeta?.bucketName}:${m.relativeUri}`, { expiresIn: expiryInSeconds, region });\n } else {\n // Public S3 or local filesystem: use normal URL\n m['_full_url'] = this.getFullFilePath(m);\n }\n }\n\n return media;\n // media.forEach(m => {\n // m['_full_url'] = this.getFullFilePath(m);\n // });\n // return media;\n }\n\n async store(files: Express.Multer.File[], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntity\n || entity instanceof LegacyCommonWithIdEntity;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntity or LegacyCommonWithIdEntity\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n const result: Media[] = [];\n const storageProvider = mediaFieldMetadata.mediaStorageProvider;\n const region = this.getEffectiveRegion(storageProvider.region);\n\n for (const file of files) {\n const fileName = this.getFileName(file);\n const bucketName = storageProvider.bucketName;\n\n // Read file from disk and upload to S3\n const fileData = await this.diskFileService.read(file.path);\n await this.s3FileService.write(`${bucketName}:${fileName}`, fileData, { contentType: file.mimetype, region });\n\n // Delete temp file from disk\n await this.diskFileService.delete(file.path);\n\n const awsFileUrl = fileName;\n\n // Create an entry in the media table\n const mediaEntity = await this.mediaRepository.createMedia({\n // @ts-ignore\n entityId: entity.id,\n modelMetadataId: mediaFieldMetadata.model.id,\n relativeUri: awsFileUrl,\n mimeType: file.mimetype,\n fileSize: file.size,\n originalFileName: file.originalname,\n mediaStorageProviderMetadataId: mediaFieldMetadata.mediaStorageProvider.id,\n fieldMetadataId: mediaFieldMetadata.id\n }) as unknown as Media;\n result.push(mediaEntity);\n this.logger.debug(`Stored media with`, mediaEntity);\n };\n return result;\n }\n\n async delete(entity: T, mediaFieldMetadata: FieldMetadata): Promise<void> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntity\n || entity instanceof LegacyCommonWithIdEntity;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntity or LegacyCommonWithIdEntity\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n const storageProvider = mediaFieldMetadata.mediaStorageProvider;\n const region = this.getEffectiveRegion(storageProvider.region);\n\n // @ts-ignore\n const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);\n // @ts-ignore\n this.mediaRepository.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);\n for (const media of existingMedia) {\n const bucketName = storageProvider.bucketName;\n await this.s3FileService.delete(`${bucketName}:${media.relativeUri}`, { region });\n }\n }\n\n async deleteByMediaRecord(media: Media): Promise<void> {\n const storageProvider = media?.mediaStorageProviderMetadata;\n if (!storageProvider) {\n throw new Error(`mediaStorageProviderMetadata is not populated for media id ${media?.id ?? 'unknown'}`);\n }\n if (!storageProvider?.bucketName || !media?.relativeUri) {\n return;\n }\n const region = this.getEffectiveRegion(storageProvider.region);\n await this.s3FileService.delete(`${storageProvider.bucketName}:${media.relativeUri}`, { region });\n }\n\n /**\n * Get the effective region to use for S3 operations.\n * Uses the provider-specific region if configured, otherwise falls back to env variable.\n */\n private getEffectiveRegion(providerRegion?: string): string | undefined {\n return providerRegion || this.configService.get('S3_AWS_REGION_NAME');\n }\n\n private getFullFilePath(media: Media): string {\n // Use provider region if available, fallback to env variable\n const region = this.getEffectiveRegion(media.mediaStorageProviderMetadata.region);\n // https://lunarismedia.s3.ap-south-1.amazonaws.com/LUNARIS_CP_REGISTRATION_CREATIVE.jpg\n return `https://${media.mediaStorageProviderMetadata.bucketName}.s3.${region}.amazonaws.com/${media.relativeUri}`;\n }\n\n private getFileName(file: Express.Multer.File): string {\n return `${file.filename}-${file.originalname}`;\n }\n}\n"]}
1
+ {"version":3,"file":"file-s3-storage-provider.js","sourceRoot":"","sources":["../../../src/services/mediaStorageProviders/file-s3-storage-provider.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, Logger } from \"@nestjs/common\";\nimport { ConfigService } from \"@nestjs/config\";\nimport { CommonEntity } from \"src/entities/common.entity\";\nimport { FieldMetadata } from \"src/entities/field-metadata.entity\";\nimport { LegacyCommonEntityWithExistingId } from \"src/entities/legacy-common.entity\";\nimport { LegacyCommonEntityWithGeneratedId } from \"src/entities/legacy-common-with-id.entity\";\nimport { Media } from \"src/entities/media.entity\";\nimport { MediaStorageProvider } from \"src/interfaces\";\nimport { DiskFileService, S3FileService } from \"src/services/file\";\nimport { Readable } from \"stream\";\nimport { MediaRepository } from \"src/repository/media.repository\";\n\n@Injectable()\nexport class FileS3StorageProvider<T> implements MediaStorageProvider<T> {\n private logger = new Logger(FileS3StorageProvider.name);\n\n constructor(\n private readonly configService: ConfigService,\n readonly diskFileService: DiskFileService,\n readonly s3FileService: S3FileService,\n readonly mediaRepository: MediaRepository,\n ) { }\n\n storeStreams(streamPairs: [Readable, string][], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n throw new Error(\"Method not implemented.\");\n }\n\n async retrieve(entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntityWithExistingId\n || entity instanceof LegacyCommonEntityWithGeneratedId;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntityWithExistingId or LegacyCommonEntityWithGeneratedId\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n // @ts-ignore\n const media = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);\n\n // TODO: Check if the mediaStorageProvider (s3 in this case) is configured with a public bucket or not.\n // If private bucket then we need to return a \"signed-url\", the timeout for the signed url can be configured in the media storage provider entity and modified using the CRUD interface.\n // Add the full URL to the media\n for (const m of media) {\n const storageMeta = m.mediaStorageProviderMetadata;\n const region = this.getEffectiveRegion(storageMeta.region);\n if (storageMeta.isPublic === false) {\n // Generate signed URL\n const expiryInSeconds = (storageMeta.signedUrlExpiry ?? 60) * 60;\n m['_full_url'] = await this.s3FileService.getUrl(`${storageMeta?.bucketName}:${m.relativeUri}`, { expiresIn: expiryInSeconds, region });\n } else {\n // Public S3 or local filesystem: use normal URL\n m['_full_url'] = this.getFullFilePath(m);\n }\n }\n\n return media;\n // media.forEach(m => {\n // m['_full_url'] = this.getFullFilePath(m);\n // });\n // return media;\n }\n\n async store(files: Express.Multer.File[], entity: T, mediaFieldMetadata: FieldMetadata): Promise<Media[]> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntityWithExistingId\n || entity instanceof LegacyCommonEntityWithGeneratedId;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntityWithExistingId or LegacyCommonEntityWithGeneratedId\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n const result: Media[] = [];\n const storageProvider = mediaFieldMetadata.mediaStorageProvider;\n const region = this.getEffectiveRegion(storageProvider.region);\n\n for (const file of files) {\n const fileName = this.getFileName(file);\n const bucketName = storageProvider.bucketName;\n\n // Read file from disk and upload to S3\n const fileData = await this.diskFileService.read(file.path);\n await this.s3FileService.write(`${bucketName}:${fileName}`, fileData, { contentType: file.mimetype, region });\n\n // Delete temp file from disk\n await this.diskFileService.delete(file.path);\n\n const awsFileUrl = fileName;\n\n // Create an entry in the media table\n const mediaEntity = await this.mediaRepository.createMedia({\n // @ts-ignore\n entityId: entity.id,\n modelMetadataId: mediaFieldMetadata.model.id,\n relativeUri: awsFileUrl,\n mimeType: file.mimetype,\n fileSize: file.size,\n originalFileName: file.originalname,\n mediaStorageProviderMetadataId: mediaFieldMetadata.mediaStorageProvider.id,\n fieldMetadataId: mediaFieldMetadata.id\n }) as unknown as Media;\n result.push(mediaEntity);\n this.logger.debug(`Stored media with`, mediaEntity);\n };\n return result;\n }\n\n async delete(entity: T, mediaFieldMetadata: FieldMetadata): Promise<void> {\n const isSupportedEntity = entity instanceof CommonEntity\n || entity instanceof LegacyCommonEntityWithExistingId\n || entity instanceof LegacyCommonEntityWithGeneratedId;\n if (!isSupportedEntity) {\n throw new Error(\"Entity must be an instance of CommonEntity, LegacyCommonEntityWithExistingId or LegacyCommonEntityWithGeneratedId\"); // FIXME This needs to be handled through generics. e.g T extends CommonEntity\n }\n const storageProvider = mediaFieldMetadata.mediaStorageProvider;\n const region = this.getEffectiveRegion(storageProvider.region);\n\n // @ts-ignore\n const existingMedia = await this.mediaRepository.findByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id, ['mediaStorageProviderMetadata']);\n // @ts-ignore\n this.mediaRepository.deleteByEntityIdAndFieldIdAndModelMetadataId(entity.id, mediaFieldMetadata.id, mediaFieldMetadata.model.id);\n for (const media of existingMedia) {\n const bucketName = storageProvider.bucketName;\n await this.s3FileService.delete(`${bucketName}:${media.relativeUri}`, { region });\n }\n }\n\n async deleteByMediaRecord(media: Media): Promise<void> {\n const storageProvider = media?.mediaStorageProviderMetadata;\n if (!storageProvider) {\n throw new Error(`mediaStorageProviderMetadata is not populated for media id ${media?.id ?? 'unknown'}`);\n }\n if (!storageProvider?.bucketName || !media?.relativeUri) {\n return;\n }\n const region = this.getEffectiveRegion(storageProvider.region);\n await this.s3FileService.delete(`${storageProvider.bucketName}:${media.relativeUri}`, { region });\n }\n\n /**\n * Get the effective region to use for S3 operations.\n * Uses the provider-specific region if configured, otherwise falls back to env variable.\n */\n private getEffectiveRegion(providerRegion?: string): string | undefined {\n return providerRegion || this.configService.get('S3_AWS_REGION_NAME');\n }\n\n private getFullFilePath(media: Media): string {\n // Use provider region if available, fallback to env variable\n const region = this.getEffectiveRegion(media.mediaStorageProviderMetadata.region);\n // https://lunarismedia.s3.ap-south-1.amazonaws.com/LUNARIS_CP_REGISTRATION_CREATIVE.jpg\n return `https://${media.mediaStorageProviderMetadata.bucketName}.s3.${region}.amazonaws.com/${media.relativeUri}`;\n }\n\n private getFileName(file: Express.Multer.File): string {\n return `${file.filename}-${file.originalname}`;\n }\n}\n"]}
@@ -1,19 +1,19 @@
1
1
  import { DataSource, EntityManager, Repository } from 'typeorm';
2
2
  import { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';
3
3
  import { ModelMetadata } from '../entities/model-metadata.entity';
4
+ import { NavigationDto } from '../dtos/navigation.dto';
4
5
  import { ModuleMetadataHelperService } from '../helpers/module-metadata-helper.service';
5
6
  import { FieldMetadataRepository } from '../repository/field-metadata.repository';
6
7
  import { ModelMetadataRepository } from '../repository/model-metadata.repository';
7
8
  import { BasicFilterDto } from '../dtos/basic-filters.dto';
8
9
  import { UpdateModelMetaDataDto } from '../dtos/update-model-metadata.dto';
9
- import { SchematicService } from '../helpers/schematic.service';
10
10
  import { CommandService } from '../helpers/command.service';
11
+ import { SchematicService } from '../helpers/schematic.service';
11
12
  import { CodeGenerationOptions } from '../interfaces';
12
13
  import { CrudHelperService } from './crud-helper.service';
13
14
  import { FieldMetadataService } from './field-metadata.service';
14
15
  import { MediaStorageProviderMetadataService } from './media-storage-provider-metadata.service';
15
16
  import { RoleMetadataService } from './role-metadata.service';
16
- import { NavigationDto } from '../dtos/navigation.dto';
17
17
  import { SolidIntrospectService } from './solid-introspect.service';
18
18
  import { SolidTsMorphService } from './solid-ts-morph.service';
19
19
  export declare class ModelMetadataService {
@@ -1 +1 @@
1
- {"version":3,"file":"model-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/model-metadata.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/model-metadata.service.ts"],"names":[],"mappings":"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"}
@@ -54,7 +54,6 @@ const typeorm_2 = require("typeorm");
54
54
  const model_metadata_entity_1 = require("../entities/model-metadata.entity");
55
55
  const module_metadata_entity_1 = require("../entities/module-metadata.entity");
56
56
  const lodash_1 = require("lodash");
57
- const string_helper_1 = require("../helpers/string.helper");
58
57
  const error_messages_1 = require("../constants/error-messages");
59
58
  const disallow_in_production_decorator_1 = require("../decorators/disallow-in-production.decorator");
60
59
  const create_field_metadata_dto_1 = require("../dtos/create-field-metadata.dto");
@@ -65,8 +64,9 @@ const action_metadata_entity_1 = require("../entities/action-metadata.entity");
65
64
  const field_metadata_entity_1 = require("../entities/field-metadata.entity");
66
65
  const menu_item_metadata_entity_1 = require("../entities/menu-item-metadata.entity");
67
66
  const view_metadata_entity_1 = require("../entities/view-metadata.entity");
68
- const schematic_service_1 = require("../helpers/schematic.service");
69
67
  const command_service_1 = require("../helpers/command.service");
68
+ const schematic_service_1 = require("../helpers/schematic.service");
69
+ const string_helper_1 = require("../helpers/string.helper");
70
70
  const crud_helper_service_1 = require("./crud-helper.service");
71
71
  const field_metadata_service_1 = require("./field-metadata.service");
72
72
  const media_storage_provider_metadata_service_1 = require("./media-storage-provider-metadata.service");
@@ -258,8 +258,7 @@ let ModelMetadataService = class ModelMetadataService {
258
258
  tableName: model.tableName,
259
259
  userKeyFieldUserKey: model.fields.find(field => field.isUserKey)?.name,
260
260
  isChild: model?.isChild,
261
- isLegacyTable: model?.isLegacyTable,
262
- isLegacyTableWithId: model?.isLegacyTableWithId,
261
+ legacyTableType: model?.legacyTableType,
263
262
  parentModelUserKey: model?.parentModel?.singularName,
264
263
  enableAuditTracking: model?.enableAuditTracking,
265
264
  enableSoftDelete: model?.enableSoftDelete,