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

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 (230) hide show
  1. package/dist/controllers/action-metadata.controller.d.ts +1 -20
  2. package/dist/controllers/action-metadata.controller.d.ts.map +1 -1
  3. package/dist/controllers/agent-event.controller.d.ts +1 -20
  4. package/dist/controllers/agent-event.controller.d.ts.map +1 -1
  5. package/dist/controllers/agent-session.controller.d.ts +1 -20
  6. package/dist/controllers/agent-session.controller.d.ts.map +1 -1
  7. package/dist/controllers/ai-interaction.controller.d.ts +1 -20
  8. package/dist/controllers/ai-interaction.controller.d.ts.map +1 -1
  9. package/dist/controllers/chatter-message-details.controller.d.ts +1 -20
  10. package/dist/controllers/chatter-message-details.controller.d.ts.map +1 -1
  11. package/dist/controllers/chatter-message.controller.d.ts +1 -20
  12. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  13. package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -20
  14. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -1
  15. package/dist/controllers/email-template.controller.d.ts +1 -20
  16. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  17. package/dist/controllers/export-template.controller.d.ts +1 -20
  18. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  19. package/dist/controllers/export-transaction.controller.d.ts +1 -20
  20. package/dist/controllers/export-transaction.controller.d.ts.map +1 -1
  21. package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -20
  22. package/dist/controllers/import-transaction-error-log.controller.d.ts.map +1 -1
  23. package/dist/controllers/import-transaction.controller.d.ts +1 -20
  24. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  25. package/dist/controllers/list-of-values.controller.d.ts +1 -20
  26. package/dist/controllers/list-of-values.controller.d.ts.map +1 -1
  27. package/dist/controllers/locale.controller.d.ts +1 -20
  28. package/dist/controllers/locale.controller.d.ts.map +1 -1
  29. package/dist/controllers/mcp-audit-log.controller.d.ts +1 -20
  30. package/dist/controllers/mcp-audit-log.controller.d.ts.map +1 -1
  31. package/dist/controllers/media.controller.d.ts +1 -20
  32. package/dist/controllers/media.controller.d.ts.map +1 -1
  33. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -20
  34. package/dist/controllers/menu-item-metadata.controller.d.ts.map +1 -1
  35. package/dist/controllers/model-metadata.controller.d.ts +10 -30
  36. package/dist/controllers/model-metadata.controller.d.ts.map +1 -1
  37. package/dist/controllers/model-metadata.controller.js +2 -2
  38. package/dist/controllers/model-sequence.controller.d.ts +1 -20
  39. package/dist/controllers/model-sequence.controller.d.ts.map +1 -1
  40. package/dist/controllers/module-metadata-explorer.controller.d.ts +171 -0
  41. package/dist/controllers/module-metadata-explorer.controller.d.ts.map +1 -0
  42. package/dist/controllers/module-metadata-explorer.controller.js +143 -0
  43. package/dist/controllers/module-metadata-explorer.controller.js.map +1 -0
  44. package/dist/controllers/module-metadata.controller.d.ts +5 -0
  45. package/dist/controllers/module-metadata.controller.d.ts.map +1 -1
  46. package/dist/controllers/module-metadata.controller.js +12 -0
  47. package/dist/controllers/module-metadata.controller.js.map +1 -1
  48. package/dist/controllers/module-package.controller.d.ts +622 -0
  49. package/dist/controllers/module-package.controller.d.ts.map +1 -0
  50. package/dist/controllers/module-package.controller.js +150 -0
  51. package/dist/controllers/module-package.controller.js.map +1 -0
  52. package/dist/controllers/mq-message-queue.controller.d.ts +1 -20
  53. package/dist/controllers/mq-message-queue.controller.d.ts.map +1 -1
  54. package/dist/controllers/mq-message.controller.d.ts +1 -20
  55. package/dist/controllers/mq-message.controller.d.ts.map +1 -1
  56. package/dist/controllers/permission-metadata.controller.d.ts +1 -20
  57. package/dist/controllers/permission-metadata.controller.d.ts.map +1 -1
  58. package/dist/controllers/role-metadata.controller.d.ts +1 -20
  59. package/dist/controllers/role-metadata.controller.d.ts.map +1 -1
  60. package/dist/controllers/saved-filters.controller.d.ts +1 -20
  61. package/dist/controllers/saved-filters.controller.d.ts.map +1 -1
  62. package/dist/controllers/scheduled-job.controller.d.ts +1 -20
  63. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
  64. package/dist/controllers/security-rule.controller.d.ts +1 -20
  65. package/dist/controllers/security-rule.controller.d.ts.map +1 -1
  66. package/dist/controllers/sms-template.controller.d.ts +1 -20
  67. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  68. package/dist/controllers/user-activity-history.controller.d.ts +1 -20
  69. package/dist/controllers/user-activity-history.controller.d.ts.map +1 -1
  70. package/dist/controllers/user-view-metadata.controller.d.ts +1 -20
  71. package/dist/controllers/user-view-metadata.controller.d.ts.map +1 -1
  72. package/dist/controllers/user.controller.d.ts +1 -20
  73. package/dist/controllers/user.controller.d.ts.map +1 -1
  74. package/dist/controllers/view-metadata.controller.d.ts +1 -20
  75. package/dist/controllers/view-metadata.controller.d.ts.map +1 -1
  76. package/dist/dtos/confirm-module-package-import.dto.d.ts +4 -0
  77. package/dist/dtos/confirm-module-package-import.dto.d.ts.map +1 -0
  78. package/dist/dtos/confirm-module-package-import.dto.js +34 -0
  79. package/dist/dtos/confirm-module-package-import.dto.js.map +1 -0
  80. package/dist/dtos/metadata-explorer-references-query.dto.d.ts +10 -0
  81. package/dist/dtos/metadata-explorer-references-query.dto.d.ts.map +1 -0
  82. package/dist/dtos/metadata-explorer-references-query.dto.js +69 -0
  83. package/dist/dtos/metadata-explorer-references-query.dto.js.map +1 -0
  84. package/dist/dtos/metadata-explorer-search-query.dto.d.ts +8 -0
  85. package/dist/dtos/metadata-explorer-search-query.dto.d.ts.map +1 -0
  86. package/dist/dtos/metadata-explorer-search-query.dto.js +55 -0
  87. package/dist/dtos/metadata-explorer-search-query.dto.js.map +1 -0
  88. package/dist/dtos/metadata-explorer-write.dto.d.ts +4 -0
  89. package/dist/dtos/metadata-explorer-write.dto.d.ts.map +1 -0
  90. package/dist/dtos/metadata-explorer-write.dto.js +30 -0
  91. package/dist/dtos/metadata-explorer-write.dto.js.map +1 -0
  92. package/dist/dtos/run-module-package-build.dto.d.ts +5 -0
  93. package/dist/dtos/run-module-package-build.dto.d.ts.map +1 -0
  94. package/dist/dtos/run-module-package-build.dto.js +38 -0
  95. package/dist/dtos/run-module-package-build.dto.js.map +1 -0
  96. package/dist/dtos/run-module-package-seed.dto.d.ts +4 -0
  97. package/dist/dtos/run-module-package-seed.dto.d.ts.map +1 -0
  98. package/dist/dtos/run-module-package-seed.dto.js +34 -0
  99. package/dist/dtos/run-module-package-seed.dto.js.map +1 -0
  100. package/dist/helpers/command.service.js +1 -1
  101. package/dist/helpers/command.service.js.map +1 -1
  102. package/dist/helpers/module-metadata-helper.service.d.ts +2 -0
  103. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  104. package/dist/helpers/module-metadata-helper.service.js +14 -12
  105. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  106. package/dist/helpers/module.helper.d.ts.map +1 -1
  107. package/dist/helpers/module.helper.js +11 -6
  108. package/dist/helpers/module.helper.js.map +1 -1
  109. package/dist/helpers/typeorm-migration-helpers.d.ts +12 -0
  110. package/dist/helpers/typeorm-migration-helpers.d.ts.map +1 -0
  111. package/dist/helpers/typeorm-migration-helpers.js +119 -0
  112. package/dist/helpers/typeorm-migration-helpers.js.map +1 -0
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +8 -0
  116. package/dist/index.js.map +1 -1
  117. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -0
  118. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  119. package/dist/seeders/module-metadata-seeder.service.js +57 -38
  120. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  121. package/dist/seeders/module-test-data.service.js +1 -1
  122. package/dist/seeders/module-test-data.service.js.map +1 -1
  123. package/dist/seeders/seed-data/solid-core-metadata.json +2364 -1106
  124. package/dist/services/crud-helper.service.d.ts +18 -0
  125. package/dist/services/crud-helper.service.d.ts.map +1 -1
  126. package/dist/services/crud-helper.service.js +67 -1
  127. package/dist/services/crud-helper.service.js.map +1 -1
  128. package/dist/services/crud.service.d.ts +1 -21
  129. package/dist/services/crud.service.d.ts.map +1 -1
  130. package/dist/services/crud.service.js +23 -87
  131. package/dist/services/crud.service.js.map +1 -1
  132. package/dist/services/genai/ingest-metadata.service.js +2 -2
  133. package/dist/services/genai/ingest-metadata.service.js.map +1 -1
  134. package/dist/services/media.service.d.ts +1 -20
  135. package/dist/services/media.service.d.ts.map +1 -1
  136. package/dist/services/mediaStorageProviders/file-s3-storage-provider.d.ts.map +1 -1
  137. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js +31 -2
  138. package/dist/services/mediaStorageProviders/file-s3-storage-provider.js.map +1 -1
  139. package/dist/services/mediaStorageProviders/file-storage-provider.d.ts.map +1 -1
  140. package/dist/services/mediaStorageProviders/file-storage-provider.js +5 -1
  141. package/dist/services/mediaStorageProviders/file-storage-provider.js.map +1 -1
  142. package/dist/services/model-metadata.service.d.ts +15 -30
  143. package/dist/services/model-metadata.service.d.ts.map +1 -1
  144. package/dist/services/model-metadata.service.js +249 -29
  145. package/dist/services/model-metadata.service.js.map +1 -1
  146. package/dist/services/module-metadata-explorer.service.d.ts +161 -0
  147. package/dist/services/module-metadata-explorer.service.d.ts.map +1 -0
  148. package/dist/services/module-metadata-explorer.service.js +485 -0
  149. package/dist/services/module-metadata-explorer.service.js.map +1 -0
  150. package/dist/services/module-metadata.service.d.ts +7 -0
  151. package/dist/services/module-metadata.service.d.ts.map +1 -1
  152. package/dist/services/module-metadata.service.js +121 -2
  153. package/dist/services/module-metadata.service.js.map +1 -1
  154. package/dist/services/module-package.service.d.ts +266 -0
  155. package/dist/services/module-package.service.d.ts.map +1 -0
  156. package/dist/services/module-package.service.js +980 -0
  157. package/dist/services/module-package.service.js.map +1 -0
  158. package/dist/services/settings/default-settings-provider.service.d.ts +18 -0
  159. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  160. package/dist/services/settings/default-settings-provider.service.js +10 -0
  161. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  162. package/dist/solid-core.module.d.ts.map +1 -1
  163. package/dist/solid-core.module.js +10 -2
  164. package/dist/solid-core.module.js.map +1 -1
  165. package/dist-tests/api/authenticate.spec.js +119 -0
  166. package/dist-tests/api/authenticate.spec.js.map +1 -0
  167. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +97 -0
  168. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +1 -0
  169. package/dist-tests/api/ping.spec.js +21 -0
  170. package/dist-tests/api/ping.spec.js.map +1 -0
  171. package/dist-tests/helpers/auth.js +41 -0
  172. package/dist-tests/helpers/auth.js.map +1 -0
  173. package/dist-tests/helpers/env.js +11 -0
  174. package/dist-tests/helpers/env.js.map +1 -0
  175. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +438 -0
  176. package/docs/dashboards/dashboard-curl-smoke-tests.txt +146 -0
  177. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +172 -0
  178. package/docs/grouping-enhancements.md +89 -0
  179. package/docs/java-spring/README.md +3 -0
  180. package/docs/java-spring/solid-core-module-deep-dive-report.md +1317 -0
  181. package/docs/module-package-import-handoff.md +691 -0
  182. package/docs/seed-changes.md +65 -0
  183. package/docs/test-data-workflow.md +200 -0
  184. package/docs/type-declaration-import-issue.md +24 -0
  185. package/package.json +2 -1
  186. package/src/controllers/module-metadata-explorer.controller.ts +83 -0
  187. package/src/controllers/module-metadata.controller.ts +6 -0
  188. package/src/controllers/module-package.controller.ts +102 -0
  189. package/src/dtos/confirm-module-package-import.dto.ts +12 -0
  190. package/src/dtos/metadata-explorer-references-query.dto.ts +39 -0
  191. package/src/dtos/metadata-explorer-search-query.dto.ts +28 -0
  192. package/src/dtos/metadata-explorer-write.dto.ts +11 -0
  193. package/src/dtos/run-module-package-build.dto.ts +14 -0
  194. package/src/dtos/run-module-package-seed.dto.ts +12 -0
  195. package/src/helpers/command.service.ts +1 -1
  196. package/src/helpers/module-metadata-helper.service.ts +19 -21
  197. package/src/helpers/module.helper.ts +12 -9
  198. package/src/helpers/typeorm-migration-helpers.ts +163 -0
  199. package/src/index.ts +8 -0
  200. package/src/seeders/module-metadata-seeder.service.ts +63 -38
  201. package/src/seeders/module-test-data.service.ts +1 -1
  202. package/src/seeders/seed-data/solid-core-metadata.json +2365 -1107
  203. package/src/services/crud-helper.service.ts +79 -1
  204. package/src/services/crud.service.ts +26 -119
  205. package/src/services/dashboard-providers/README.md +1 -1
  206. package/src/services/genai/ingest-metadata.service.ts +3 -3
  207. package/src/services/mediaStorageProviders/file-s3-storage-provider.ts +37 -2
  208. package/src/services/mediaStorageProviders/file-storage-provider.ts +5 -1
  209. package/src/services/model-metadata.service.ts +302 -98
  210. package/src/services/module-metadata-explorer.service.ts +670 -0
  211. package/src/services/module-metadata.service.ts +136 -10
  212. package/src/services/module-package.service.ts +1171 -0
  213. package/src/services/settings/default-settings-provider.service.ts +10 -0
  214. package/src/solid-core.module.ts +10 -2
  215. package/.claude/settings.local.json +0 -15
  216. package/CLAUDE.md +0 -26
  217. package/dist/services/database/database-bootstrap.service.d.ts +0 -12
  218. package/dist/services/database/database-bootstrap.service.d.ts.map +0 -1
  219. package/dist/services/database/database-bootstrap.service.js +0 -115
  220. package/dist/services/database/database-bootstrap.service.js.map +0 -1
  221. package/sql/default/mariadb/proc_CleanupModelMetadata.sql +0 -153
  222. package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +0 -56
  223. package/sql/default/mssql/proc_CleanupModuleMetadata.sql +0 -78
  224. package/sql/default/mysql/proc_CleanupModelMetadata.sql +0 -153
  225. package/sql/default/mysql/proc_CleanupModuleMetadata.sql +0 -56
  226. package/sql/default/postgres/proc_CleanupModelMetadata.sql +0 -148
  227. package/sql/default/postgres/proc_CleanupModuleMetadata.sql +0 -50
  228. package/sql/default/postgres/scratchpad.sql.txt +0 -12
  229. package/src/services/1.js +0 -6
  230. package/src/services/database/database-bootstrap.service.ts +0 -91
@@ -1 +1 @@
1
- {"version":3,"file":"model-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/model-metadata.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAOlE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAGL,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mCAAmC,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,qBACa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,mCAAmC;IACpD,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,2BAA2B;IAC5C,QAAQ,CAAC,iBAAiB,EAAE,sBAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAnBtC,OAAO,CAAC,MAAM,CAAsC;gBAOjC,iBAAiB,EAAE,uBAAuB,EAC1C,iBAAiB,EAAE,uBAAuB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAE9B,UAAU,EAAE,UAAU,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,mCAAmC,EAAE,mCAAmC,EACxE,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,mBAAmB,EAChC,2BAA2B,EAAE,2BAA2B,EAChE,iBAAiB,EAAE,sBAAsB,EACjC,mBAAmB,EAAE,mBAAmB;IAMrD,IAAI,CAAC,cAAc,EAAE,cAAc;;;;;;;;;;;IAInC,QAAQ,CAAC,cAAc,EAAE,cAAc;;;;;;;;;;;IAgCvC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG;IAc5B,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,KAAK;IAa1D,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,KAAK;IAarD,MAAM,CAAC,SAAS,EAAE,sBAAsB;YAuBhC,kCAAkC;IAS1C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,sBAAsB;IAyBjE,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB;IAoEpE,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;IAmD1D,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,sBAAsB;IA6G7F,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,aAAa,CAAC;IAwE1D,MAAM,CAAC,SAAS,EAAE,sBAAsB;IAqBxC,oBAAoB,CAAC,YAAY,EAAE,MAAM;IAUzC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBvC,MAAM,CAAC,EAAE,EAAE,MAAM;IAOjB,eAAe,CAAC,aAAa,EAAE,MAAM;IAgLrC,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpD,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC;YAqBxD,4BAA4B;IAmBpC,iBAAiB,CAAC,OAAO,EAAE,MAAM;YAmBzB,uBAAuB;IA6BrC,OAAO,CAAC,+BAA+B;YAkLzB,qBAAqB;IA8L7B,YAAY,CAAC,OAAO,EAAE,qBAAqB;;;;;IAkB3C,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuDzE,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;YAgB1D,0BAA0B;YAa1B,0BAA0B;IAkBlC,aAAa,CAAC,IAAI,EAAE,GAAG;;;;YAiCf,wBAAwB;IAiBhC,UAAU,CAAC,aAAa,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;CAgJ9C"}
1
+ {"version":3,"file":"model-metadata.service.d.ts","sourceRoot":"","sources":["../../src/services/model-metadata.service.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,11 @@ const field_metadata_repository_1 = require("../repository/field-metadata.reposi
62
62
  const model_metadata_repository_1 = require("../repository/model-metadata.repository");
63
63
  const action_metadata_entity_1 = require("../entities/action-metadata.entity");
64
64
  const field_metadata_entity_1 = require("../entities/field-metadata.entity");
65
+ const import_transaction_error_log_entity_1 = require("../entities/import-transaction-error-log.entity");
66
+ const import_transaction_entity_1 = require("../entities/import-transaction.entity");
65
67
  const menu_item_metadata_entity_1 = require("../entities/menu-item-metadata.entity");
68
+ const user_view_metadata_entity_1 = require("../entities/user-view-metadata.entity");
69
+ const permission_metadata_entity_1 = require("../entities/permission-metadata.entity");
66
70
  const view_metadata_entity_1 = require("../entities/view-metadata.entity");
67
71
  const command_service_1 = require("../helpers/command.service");
68
72
  const schematic_service_1 = require("../helpers/schematic.service");
@@ -94,26 +98,15 @@ let ModelMetadataService = class ModelMetadataService {
94
98
  }
95
99
  async findMany(basicFilterDto) {
96
100
  const alias = 'modelMetadata';
97
- let { limit, offset } = basicFilterDto;
98
- var qb = await this.modelMetadataRepo.createSecurityRuleAwareQueryBuilder(alias);
99
- qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
100
- const [entities, count] = await qb.getManyAndCount();
101
- const currentPage = Math.floor(offset / limit) + 1;
102
- const totalPages = Math.ceil(count / limit);
103
- const nextPage = currentPage < totalPages ? currentPage + 1 : null;
104
- const prevPage = currentPage > 1 ? currentPage - 1 : null;
105
- const r = {
106
- meta: {
107
- totalRecords: count,
108
- currentPage: currentPage,
109
- nextPage: nextPage,
110
- prevPage: prevPage,
111
- totalPages: totalPages,
112
- perPage: +limit,
113
- },
114
- records: entities
115
- };
116
- return r;
101
+ const { limit, offset } = basicFilterDto;
102
+ const qb = await this.modelMetadataRepo.createSecurityRuleAwareQueryBuilder(alias);
103
+ if (basicFilterDto.groupBy?.length) {
104
+ const groupFilterQb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, undefined, undefined, undefined, crud_helper_service_1.FilterCombinator.AND, false, false);
105
+ return this.crudHelperService.executeGroupPipeline(groupFilterQb, basicFilterDto, alias, () => this.modelMetadataRepo.createSecurityRuleAwareQueryBuilder(alias));
106
+ }
107
+ const filteredQb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
108
+ const [entities, count] = await filteredQb.getManyAndCount();
109
+ return this.crudHelperService.pagedResponse(offset, limit, count, entities);
117
110
  }
118
111
  async findOne(id, query) {
119
112
  const entity = await this.modelMetadataRepo.findOne({
@@ -471,7 +464,7 @@ let ModelMetadataService = class ModelMetadataService {
471
464
  where: {
472
465
  id: modelEntityId,
473
466
  },
474
- relations: ['module']
467
+ relations: ['module', 'fields']
475
468
  });
476
469
  if (!modelEntity) {
477
470
  this.logger.log(`Invalid modelEntityId: ${modelEntityId} unable to resolve model metadata`);
@@ -511,21 +504,67 @@ let ModelMetadataService = class ModelMetadataService {
511
504
  this.logger.log(`Deleted file: ${fileToDelete}`);
512
505
  }
513
506
  catch (error) {
507
+ if (error?.code === 'ENOENT') {
508
+ this.logger.warn(`File already absent, skipping delete: ${fileToDelete}`);
509
+ continue;
510
+ }
514
511
  this.logger.error(`Error deleting file: ${fileToDelete}`, error);
515
512
  }
516
513
  }
517
514
  }
518
- await this.dataSource.query(`CALL cleanup_model_metadata($1, $2)`, [modelEntity.singularName, true]);
515
+ const { removedActionNames, removedMenuNames, removedViewNames } = await this.cleanupAssociatedViewsActionsAndMenus(modelEntity.id);
516
+ await this.cleanupAssociatedImports(modelEntity.id);
517
+ await this.cleanupAssociatedPermissions(modelEntity.singularName);
518
+ await this.clearModelReferencesBeforeDelete(modelEntity);
519
519
  const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(modelEntity.module?.name);
520
520
  const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
521
521
  if (metaData) {
522
+ const moduleMetadata = metaData?.moduleMetadata ?? metaData;
523
+ const removedActionNameSet = new Set(removedActionNames);
524
+ const removedMenuNameSet = new Set(removedMenuNames);
525
+ const removedViewNameSet = new Set(removedViewNames);
522
526
  const existingModelIndex = metaData.moduleMetadata.models.findIndex((existingModel) => existingModel.singularName === modelEntity.singularName);
523
527
  if (existingModelIndex !== -1) {
524
528
  metaData.moduleMetadata.models.splice(existingModelIndex, 1);
525
529
  }
526
- metaData.moduleMetadata.menus = metaData.moduleMetadata?.menus?.filter((menu) => menu.modelUserKey !== modelEntity.singularName);
527
- metaData.moduleMetadata.actions = metaData.moduleMetadata?.actions?.filter((action) => action.modelUserKey !== modelEntity.singularName);
528
- metaData.moduleMetadata.views = metaData.moduleMetadata?.views?.filter((view) => view.modelUserKey !== modelEntity.singularName);
530
+ const existingViews = Array.isArray(moduleMetadata?.views) ? moduleMetadata.views : [];
531
+ moduleMetadata.views = existingViews.filter((view) => {
532
+ const shouldRemove = view?.modelUserKey === modelEntity.singularName || removedViewNameSet.has(view?.name);
533
+ if (shouldRemove && view?.name) {
534
+ removedViewNameSet.add(view.name);
535
+ }
536
+ return !shouldRemove;
537
+ });
538
+ const existingActions = Array.isArray(moduleMetadata?.actions) ? moduleMetadata.actions : [];
539
+ moduleMetadata.actions = existingActions.filter((action) => {
540
+ const shouldRemove = action?.modelUserKey === modelEntity.singularName ||
541
+ removedActionNameSet.has(action?.name) ||
542
+ removedViewNameSet.has(action?.viewUserKey);
543
+ if (shouldRemove && action?.name) {
544
+ removedActionNameSet.add(action.name);
545
+ }
546
+ return !shouldRemove;
547
+ });
548
+ let pendingMenus = Array.isArray(moduleMetadata?.menus) ? [...moduleMetadata.menus] : [];
549
+ let menuRemovedOnPass = true;
550
+ while (menuRemovedOnPass) {
551
+ menuRemovedOnPass = false;
552
+ pendingMenus = pendingMenus.filter((menu) => {
553
+ const shouldRemove = menu?.modelUserKey === modelEntity.singularName ||
554
+ removedMenuNameSet.has(menu?.name) ||
555
+ removedActionNameSet.has(menu?.actionUserKey) ||
556
+ removedMenuNameSet.has(menu?.parentMenuItemUserKey);
557
+ if (shouldRemove) {
558
+ if (menu?.name) {
559
+ removedMenuNameSet.add(menu.name);
560
+ }
561
+ menuRemovedOnPass = true;
562
+ return false;
563
+ }
564
+ return true;
565
+ });
566
+ }
567
+ moduleMetadata.menus = pendingMenus;
529
568
  const updatedContent = JSON.stringify(metaData, null, 2);
530
569
  await fs.writeFile(filePath, updatedContent);
531
570
  }
@@ -545,11 +584,192 @@ let ModelMetadataService = class ModelMetadataService {
545
584
  }
546
585
  }
547
586
  }
587
+ async cleanupAssociatedViewsActionsAndMenus(modelId) {
588
+ const viewRepo = this.dataSource.getRepository(view_metadata_entity_1.ViewMetadata);
589
+ const actionRepo = this.dataSource.getRepository(action_metadata_entity_1.ActionMetadata);
590
+ const menuRepo = this.dataSource.getRepository(menu_item_metadata_entity_1.MenuItemMetadata);
591
+ const userViewRepo = this.dataSource.getRepository(user_view_metadata_entity_1.UserViewMetadata);
592
+ const views = await viewRepo.find({
593
+ where: {
594
+ model: { id: modelId },
595
+ },
596
+ });
597
+ const viewIds = views.map((view) => view.id);
598
+ const removedViewNames = views.map((view) => view.name).filter(Boolean);
599
+ const actions = await actionRepo.find({
600
+ where: [
601
+ {
602
+ model: { id: modelId },
603
+ },
604
+ ...(viewIds.length > 0
605
+ ? [
606
+ {
607
+ view: { id: (0, typeorm_2.In)(viewIds) },
608
+ },
609
+ ]
610
+ : []),
611
+ ],
612
+ relations: ['view'],
613
+ });
614
+ const uniqueActions = Array.from(new Map(actions.map((action) => [action.id, action])).values());
615
+ const actionIds = uniqueActions.map((action) => action.id);
616
+ const removedActionNames = uniqueActions.map((action) => action.name).filter(Boolean);
617
+ const menus = await this.findMenusForActionIds(actionIds);
618
+ const removedMenuNames = menus.map((menu) => menu.name).filter(Boolean);
619
+ if (menus.length > 0) {
620
+ const menuIds = menus.map((menu) => menu.id).filter(Boolean);
621
+ for (const menu of menus) {
622
+ if (menu.roles?.length) {
623
+ await this.dataSource
624
+ .createQueryBuilder()
625
+ .relation(menu_item_metadata_entity_1.MenuItemMetadata, 'roles')
626
+ .of(menu.id)
627
+ .remove(menu.roles.map((role) => role.id));
628
+ }
629
+ }
630
+ if (menuIds.length > 0) {
631
+ await menuRepo
632
+ .createQueryBuilder()
633
+ .update(menu_item_metadata_entity_1.MenuItemMetadata)
634
+ .set({ parentMenuItem: null })
635
+ .where('id IN (:...menuIds)', { menuIds })
636
+ .execute();
637
+ await menuRepo
638
+ .createQueryBuilder()
639
+ .delete()
640
+ .from(menu_item_metadata_entity_1.MenuItemMetadata)
641
+ .where('id IN (:...menuIds)', { menuIds })
642
+ .execute();
643
+ }
644
+ this.logger.log(`Deleted ${menus.length} menu metadata record(s) for model id ${modelId}`);
645
+ }
646
+ if (uniqueActions.length > 0) {
647
+ await actionRepo.remove(uniqueActions);
648
+ this.logger.log(`Deleted ${uniqueActions.length} action metadata record(s) for model id ${modelId}`);
649
+ }
650
+ if (viewIds.length > 0) {
651
+ const userViews = await userViewRepo.find({
652
+ where: {
653
+ viewMetadata: { id: (0, typeorm_2.In)(viewIds) },
654
+ },
655
+ relations: ['viewMetadata'],
656
+ });
657
+ if (userViews.length > 0) {
658
+ await userViewRepo.remove(userViews);
659
+ this.logger.log(`Deleted ${userViews.length} user view metadata record(s) for model id ${modelId}`);
660
+ }
661
+ await viewRepo.remove(views);
662
+ this.logger.log(`Deleted ${views.length} view metadata record(s) for model id ${modelId}`);
663
+ }
664
+ return {
665
+ removedActionNames,
666
+ removedMenuNames,
667
+ removedViewNames,
668
+ };
669
+ }
670
+ async cleanupAssociatedImports(modelId) {
671
+ const importTransactionRepo = this.dataSource.getRepository(import_transaction_entity_1.ImportTransaction);
672
+ const importTransactionErrorLogRepo = this.dataSource.getRepository(import_transaction_error_log_entity_1.ImportTransactionErrorLog);
673
+ const importTransactions = await importTransactionRepo.find({
674
+ where: {
675
+ modelMetadata: { id: modelId },
676
+ },
677
+ });
678
+ if (importTransactions.length === 0) {
679
+ return;
680
+ }
681
+ const importTransactionIds = importTransactions.map((transaction) => transaction.id);
682
+ const importTransactionErrorLogs = await importTransactionErrorLogRepo.find({
683
+ where: {
684
+ importTransaction: { id: (0, typeorm_2.In)(importTransactionIds) },
685
+ },
686
+ relations: ['importTransaction'],
687
+ });
688
+ if (importTransactionErrorLogs.length > 0) {
689
+ await importTransactionErrorLogRepo.remove(importTransactionErrorLogs);
690
+ this.logger.log(`Deleted ${importTransactionErrorLogs.length} import transaction error log record(s) for model id ${modelId}`);
691
+ }
692
+ await importTransactionRepo.remove(importTransactions);
693
+ this.logger.log(`Deleted ${importTransactions.length} import transaction record(s) for model id ${modelId}`);
694
+ }
695
+ async cleanupAssociatedPermissions(modelSingularName) {
696
+ const permissionsRepo = this.dataSource.getRepository(permission_metadata_entity_1.PermissionMetadata);
697
+ const controllerName = `${(0, string_helper_1.classify)(modelSingularName)}Controller`;
698
+ const permissions = await permissionsRepo
699
+ .createQueryBuilder('permission')
700
+ .leftJoinAndSelect('permission.roles', 'role')
701
+ .where('permission.name LIKE :pattern', { pattern: `${controllerName}.%` })
702
+ .getMany();
703
+ if (permissions.length === 0) {
704
+ return;
705
+ }
706
+ for (const permission of permissions) {
707
+ if (permission.roles?.length) {
708
+ await this.dataSource
709
+ .createQueryBuilder()
710
+ .relation(permission_metadata_entity_1.PermissionMetadata, 'roles')
711
+ .of(permission.id)
712
+ .remove(permission.roles.map((role) => role.id));
713
+ }
714
+ }
715
+ await permissionsRepo.remove(permissions);
716
+ this.logger.log(`Deleted ${permissions.length} permission metadata record(s) for model '${modelSingularName}'`);
717
+ }
718
+ async clearModelReferencesBeforeDelete(modelEntity) {
719
+ const modelRepo = this.dataSource.getRepository(model_metadata_entity_1.ModelMetadata);
720
+ const fieldIds = (modelEntity.fields ?? []).map((field) => field.id).filter(Boolean);
721
+ if (fieldIds.length > 0) {
722
+ await modelRepo
723
+ .createQueryBuilder()
724
+ .update(model_metadata_entity_1.ModelMetadata)
725
+ .set({ userKeyField: null })
726
+ .where('user_key_field_id IN (:...fieldIds)', { fieldIds })
727
+ .execute();
728
+ }
729
+ await modelRepo
730
+ .createQueryBuilder()
731
+ .update(model_metadata_entity_1.ModelMetadata)
732
+ .set({ parentModel: null })
733
+ .where('parent_model_id = :modelId', { modelId: modelEntity.id })
734
+ .execute();
735
+ }
736
+ async findMenusForActionIds(actionIds) {
737
+ if (!actionIds?.length) {
738
+ return [];
739
+ }
740
+ const menuRepo = this.dataSource.getRepository(menu_item_metadata_entity_1.MenuItemMetadata);
741
+ const menusById = new Map();
742
+ const rootMenus = await menuRepo.find({
743
+ where: {
744
+ action: { id: (0, typeorm_2.In)(actionIds) },
745
+ },
746
+ relations: ['roles', 'action', 'parentMenuItem'],
747
+ });
748
+ rootMenus.forEach((menu) => menusById.set(menu.id, menu));
749
+ let parentIds = rootMenus.map((menu) => menu.id);
750
+ while (parentIds.length > 0) {
751
+ const childMenus = await menuRepo.find({
752
+ where: {
753
+ parentMenuItem: { id: (0, typeorm_2.In)(parentIds) },
754
+ },
755
+ relations: ['roles', 'action', 'parentMenuItem'],
756
+ });
757
+ const nextParentIds = [];
758
+ for (const childMenu of childMenus) {
759
+ if (!menusById.has(childMenu.id)) {
760
+ menusById.set(childMenu.id, childMenu);
761
+ nextParentIds.push(childMenu.id);
762
+ }
763
+ }
764
+ parentIds = nextParentIds;
765
+ }
766
+ return Array.from(menusById.values());
767
+ }
548
768
  async generateCodeViaCtl(modelId) {
549
769
  const model = await this.findOne(modelId);
550
770
  return this.commandService.executeCommandWithArgs({
551
771
  command: 'npx',
552
- args: ['@solixai/solidctl@latest', 'generate', 'model', `--name=${model.singularName}`],
772
+ args: ['@solidxai/solidctl@latest', 'generate', 'model', `--name=${model.singularName}`],
553
773
  cwd: path.join(process.cwd(), '..'),
554
774
  });
555
775
  }
@@ -967,11 +1187,11 @@ let ModelMetadataService = class ModelMetadataService {
967
1187
  const model = options.modelId ? await this.findOne(options.modelId, query) : await this.findOneByUserKey(options.modelUserKey, query.populate);
968
1188
  const fieldsForRemoval = model.fields.filter((field) => options.fieldIdsForRemoval.includes(+field.id));
969
1189
  const removeOutput = await this.executeRemoveFieldsCommand(model, fieldsForRemoval, options.dryRun);
970
- fieldsForRemoval.forEach((field) => {
1190
+ for (const field of fieldsForRemoval) {
971
1191
  if (field.isMarkedForRemoval) {
972
- this.fieldMetadataService.delete(field.id);
1192
+ await this.fieldMetadataService.delete(field.id);
973
1193
  }
974
- });
1194
+ }
975
1195
  const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(model.module.name);
976
1196
  const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
977
1197
  const existingModelIndex = metaData.moduleMetadata.models.findIndex((existingModel) => existingModel.singularName === model.singularName);