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

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 (315) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CLAUDE.md +26 -0
  3. package/MICROSOFT_ACTIVE_DIRECTORY_OAUTH_FLOW.md +616 -0
  4. package/ai-interaction-cleanup.sql +53 -0
  5. package/dist/constants/error-messages.d.ts +1 -0
  6. package/dist/constants/error-messages.d.ts.map +1 -1
  7. package/dist/constants/error-messages.js +1 -0
  8. package/dist/constants/error-messages.js.map +1 -1
  9. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts +28 -0
  10. package/dist/controllers/microsoft-active-directory-authentication.controller.d.ts.map +1 -0
  11. package/dist/controllers/microsoft-active-directory-authentication.controller.js +122 -0
  12. package/dist/controllers/microsoft-active-directory-authentication.controller.js.map +1 -0
  13. package/dist/controllers/service.controller.d.ts +1 -5
  14. package/dist/controllers/service.controller.d.ts.map +1 -1
  15. package/dist/controllers/service.controller.js +6 -11
  16. package/dist/controllers/service.controller.js.map +1 -1
  17. package/dist/controllers/test.controller.d.ts +1 -6
  18. package/dist/controllers/test.controller.d.ts.map +1 -1
  19. package/dist/controllers/test.controller.js +2 -20
  20. package/dist/controllers/test.controller.js.map +1 -1
  21. package/dist/dtos/create-permission-metadata.dto.d.ts.map +1 -1
  22. package/dist/dtos/create-permission-metadata.dto.js +2 -0
  23. package/dist/dtos/create-permission-metadata.dto.js.map +1 -1
  24. package/dist/dtos/create-role-metadata.dto.d.ts +2 -0
  25. package/dist/dtos/create-role-metadata.dto.d.ts.map +1 -1
  26. package/dist/dtos/create-role-metadata.dto.js +13 -1
  27. package/dist/dtos/create-role-metadata.dto.js.map +1 -1
  28. package/dist/dtos/import-instructions.dto.d.ts +2 -0
  29. package/dist/dtos/import-instructions.dto.d.ts.map +1 -1
  30. package/dist/dtos/import-instructions.dto.js +15 -1
  31. package/dist/dtos/import-instructions.dto.js.map +1 -1
  32. package/dist/dtos/update-permission-metadata.dto.d.ts.map +1 -1
  33. package/dist/dtos/update-permission-metadata.dto.js +3 -1
  34. package/dist/dtos/update-permission-metadata.dto.js.map +1 -1
  35. package/dist/dtos/update-role-metadata.dto.d.ts +2 -0
  36. package/dist/dtos/update-role-metadata.dto.d.ts.map +1 -1
  37. package/dist/dtos/update-role-metadata.dto.js +13 -1
  38. package/dist/dtos/update-role-metadata.dto.js.map +1 -1
  39. package/dist/entities/action-metadata.entity.d.ts.map +1 -1
  40. package/dist/entities/action-metadata.entity.js +1 -0
  41. package/dist/entities/action-metadata.entity.js.map +1 -1
  42. package/dist/entities/agent-event.entity.d.ts.map +1 -1
  43. package/dist/entities/agent-event.entity.js +1 -0
  44. package/dist/entities/agent-event.entity.js.map +1 -1
  45. package/dist/entities/agent-session.entity.d.ts.map +1 -1
  46. package/dist/entities/agent-session.entity.js +1 -0
  47. package/dist/entities/agent-session.entity.js.map +1 -1
  48. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  49. package/dist/entities/chatter-message.entity.js +2 -0
  50. package/dist/entities/chatter-message.entity.js.map +1 -1
  51. package/dist/entities/email-template.entity.d.ts.map +1 -1
  52. package/dist/entities/email-template.entity.js +1 -0
  53. package/dist/entities/email-template.entity.js.map +1 -1
  54. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  55. package/dist/entities/field-metadata.entity.js +4 -0
  56. package/dist/entities/field-metadata.entity.js.map +1 -1
  57. package/dist/entities/list-of-values.entity.d.ts.map +1 -1
  58. package/dist/entities/list-of-values.entity.js +4 -0
  59. package/dist/entities/list-of-values.entity.js.map +1 -1
  60. package/dist/entities/locale.entity.d.ts.map +1 -1
  61. package/dist/entities/locale.entity.js +1 -0
  62. package/dist/entities/locale.entity.js.map +1 -1
  63. package/dist/entities/media.entity.d.ts.map +1 -1
  64. package/dist/entities/media.entity.js +1 -0
  65. package/dist/entities/media.entity.js.map +1 -1
  66. package/dist/entities/menu-item-metadata.entity.d.ts.map +1 -1
  67. package/dist/entities/menu-item-metadata.entity.js +2 -0
  68. package/dist/entities/menu-item-metadata.entity.js.map +1 -1
  69. package/dist/entities/model-metadata.entity.d.ts.map +1 -1
  70. package/dist/entities/model-metadata.entity.js +3 -0
  71. package/dist/entities/model-metadata.entity.js.map +1 -1
  72. package/dist/entities/module-metadata.entity.d.ts.map +1 -1
  73. package/dist/entities/module-metadata.entity.js +2 -0
  74. package/dist/entities/module-metadata.entity.js.map +1 -1
  75. package/dist/entities/permission-metadata.entity.d.ts.map +1 -1
  76. package/dist/entities/permission-metadata.entity.js.map +1 -1
  77. package/dist/entities/role-metadata.entity.d.ts +2 -0
  78. package/dist/entities/role-metadata.entity.d.ts.map +1 -1
  79. package/dist/entities/role-metadata.entity.js +10 -2
  80. package/dist/entities/role-metadata.entity.js.map +1 -1
  81. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  82. package/dist/entities/saved-filters.entity.js +3 -0
  83. package/dist/entities/saved-filters.entity.js.map +1 -1
  84. package/dist/entities/scheduled-job.entity.d.ts.map +1 -1
  85. package/dist/entities/scheduled-job.entity.js +2 -0
  86. package/dist/entities/scheduled-job.entity.js.map +1 -1
  87. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  88. package/dist/entities/security-rule.entity.js +1 -0
  89. package/dist/entities/security-rule.entity.js.map +1 -1
  90. package/dist/entities/sms-template.entity.d.ts.map +1 -1
  91. package/dist/entities/sms-template.entity.js +2 -0
  92. package/dist/entities/sms-template.entity.js.map +1 -1
  93. package/dist/entities/user-activity-history.entity.d.ts.map +1 -1
  94. package/dist/entities/user-activity-history.entity.js +1 -0
  95. package/dist/entities/user-activity-history.entity.js.map +1 -1
  96. package/dist/entities/user.entity.d.ts +3 -0
  97. package/dist/entities/user.entity.d.ts.map +1 -1
  98. package/dist/entities/user.entity.js +15 -1
  99. package/dist/entities/user.entity.js.map +1 -1
  100. package/dist/entities/view-metadata.entity.d.ts.map +1 -1
  101. package/dist/entities/view-metadata.entity.js +2 -0
  102. package/dist/entities/view-metadata.entity.js.map +1 -1
  103. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts +34 -0
  104. package/dist/helpers/microsoft-active-directory-oauth.helper.d.ts.map +1 -0
  105. package/dist/helpers/microsoft-active-directory-oauth.helper.js +43 -0
  106. package/dist/helpers/microsoft-active-directory-oauth.helper.js.map +1 -0
  107. package/dist/helpers/module.helper.js +0 -5
  108. package/dist/helpers/module.helper.js.map +1 -1
  109. package/dist/helpers/user-helper.d.ts.map +1 -1
  110. package/dist/helpers/user-helper.js +4 -0
  111. package/dist/helpers/user-helper.js.map +1 -1
  112. package/dist/index.d.ts +1 -5
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +1 -5
  115. package/dist/index.js.map +1 -1
  116. package/dist/interfaces.d.ts +0 -8
  117. package/dist/interfaces.d.ts.map +1 -1
  118. package/dist/interfaces.js.map +1 -1
  119. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts +14 -0
  120. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.d.ts.map +1 -0
  121. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js +67 -0
  122. package/dist/passport-strategies/microsoft-active-directory-oauth.strategy.js.map +1 -0
  123. package/dist/seeders/seed-data/solid-core-metadata.json +317 -814
  124. package/dist/services/authentication.service.d.ts +12 -0
  125. package/dist/services/authentication.service.d.ts.map +1 -1
  126. package/dist/services/authentication.service.js +64 -0
  127. package/dist/services/authentication.service.js.map +1 -1
  128. package/dist/services/crud-helper.service.d.ts.map +1 -1
  129. package/dist/services/crud-helper.service.js +11 -3
  130. package/dist/services/crud-helper.service.js.map +1 -1
  131. package/dist/services/import-transaction.service.d.ts.map +1 -1
  132. package/dist/services/import-transaction.service.js +6 -0
  133. package/dist/services/import-transaction.service.js.map +1 -1
  134. package/dist/services/settings/default-settings-provider.service.d.ts +100 -0
  135. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  136. package/dist/services/settings/default-settings-provider.service.js +56 -0
  137. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  138. package/dist/services/user.service.d.ts +2 -0
  139. package/dist/services/user.service.d.ts.map +1 -1
  140. package/dist/services/user.service.js +46 -0
  141. package/dist/services/user.service.js.map +1 -1
  142. package/dist/solid-core.module.d.ts.map +1 -1
  143. package/dist/solid-core.module.js +4 -29
  144. package/dist/solid-core.module.js.map +1 -1
  145. package/dist/subscribers/scheduled-job.subscriber.js +1 -1
  146. package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
  147. package/dist/subscribers/security-rule.subscriber.js +1 -1
  148. package/dist/subscribers/security-rule.subscriber.js.map +1 -1
  149. package/package.json +4 -4
  150. package/src/constants/error-messages.ts +2 -1
  151. package/src/controllers/microsoft-active-directory-authentication.controller.ts +104 -0
  152. package/src/controllers/service.controller.ts +4 -7
  153. package/src/controllers/test.controller.ts +0 -9
  154. package/src/dtos/create-permission-metadata.dto.ts +3 -0
  155. package/src/dtos/create-role-metadata.dto.ts +11 -1
  156. package/src/dtos/import-instructions.dto.ts +11 -1
  157. package/src/dtos/update-permission-metadata.dto.ts +4 -1
  158. package/src/dtos/update-role-metadata.dto.ts +21 -1
  159. package/src/entities/action-metadata.entity.ts +1 -0
  160. package/src/entities/agent-event.entity.ts +1 -0
  161. package/src/entities/agent-session.entity.ts +1 -0
  162. package/src/entities/chatter-message.entity.ts +2 -0
  163. package/src/entities/email-template.entity.ts +1 -0
  164. package/src/entities/field-metadata.entity.ts +4 -1
  165. package/src/entities/list-of-values.entity.ts +5 -1
  166. package/src/entities/locale.entity.ts +1 -0
  167. package/src/entities/media.entity.ts +1 -0
  168. package/src/entities/menu-item-metadata.entity.ts +2 -0
  169. package/src/entities/model-metadata.entity.ts +3 -0
  170. package/src/entities/module-metadata.entity.ts +2 -0
  171. package/src/entities/permission-metadata.entity.ts +2 -2
  172. package/src/entities/role-metadata.entity.ts +11 -3
  173. package/src/entities/saved-filters.entity.ts +3 -0
  174. package/src/entities/scheduled-job.entity.ts +2 -0
  175. package/src/entities/security-rule.entity.ts +1 -0
  176. package/src/entities/sms-template.entity.ts +2 -0
  177. package/src/entities/user-activity-history.entity.ts +1 -0
  178. package/src/entities/user.entity.ts +15 -1
  179. package/src/entities/view-metadata.entity.ts +2 -0
  180. package/src/helpers/microsoft-active-directory-oauth.helper.ts +83 -0
  181. package/src/helpers/module.helper.ts +5 -5
  182. package/src/helpers/user-helper.ts +5 -1
  183. package/src/index.ts +1 -5
  184. package/src/interfaces.ts +0 -8
  185. package/src/passport-strategies/microsoft-active-directory-oauth.strategy.ts +63 -0
  186. package/src/seeders/seed-data/solid-core-metadata.json +317 -814
  187. package/src/services/1.js +6 -0
  188. package/src/services/authentication.service.ts +78 -0
  189. package/src/services/crud-helper.service.ts +9 -3
  190. package/src/services/import-transaction.service.ts +11 -1
  191. package/src/services/settings/default-settings-provider.service.ts +59 -0
  192. package/src/services/user.service.ts +61 -0
  193. package/src/solid-core.module.ts +4 -31
  194. package/src/subscribers/scheduled-job.subscriber.ts +1 -1
  195. package/src/subscribers/security-rule.subscriber.ts +1 -1
  196. package/dist/commands/ingest.command.d.ts +0 -16
  197. package/dist/commands/ingest.command.d.ts.map +0 -1
  198. package/dist/commands/ingest.command.js +0 -50
  199. package/dist/commands/ingest.command.js.map +0 -1
  200. package/dist/controllers/ai-interaction.controller.d.ts +0 -29
  201. package/dist/controllers/ai-interaction.controller.d.ts.map +0 -1
  202. package/dist/controllers/ai-interaction.controller.js +0 -218
  203. package/dist/controllers/ai-interaction.controller.js.map +0 -1
  204. package/dist/dtos/create-ai-interaction.dto.d.ts +0 -23
  205. package/dist/dtos/create-ai-interaction.dto.d.ts.map +0 -1
  206. package/dist/dtos/create-ai-interaction.dto.js +0 -149
  207. package/dist/dtos/create-ai-interaction.dto.js.map +0 -1
  208. package/dist/dtos/invoke-ai-prompt.dto.d.ts +0 -5
  209. package/dist/dtos/invoke-ai-prompt.dto.d.ts.map +0 -1
  210. package/dist/dtos/invoke-ai-prompt.dto.js +0 -30
  211. package/dist/dtos/invoke-ai-prompt.dto.js.map +0 -1
  212. package/dist/dtos/update-ai-interaction.dto.d.ts +0 -24
  213. package/dist/dtos/update-ai-interaction.dto.d.ts.map +0 -1
  214. package/dist/dtos/update-ai-interaction.dto.js +0 -150
  215. package/dist/dtos/update-ai-interaction.dto.js.map +0 -1
  216. package/dist/entities/ai-interaction.entity.d.ts +0 -24
  217. package/dist/entities/ai-interaction.entity.d.ts.map +0 -1
  218. package/dist/entities/ai-interaction.entity.js +0 -116
  219. package/dist/entities/ai-interaction.entity.js.map +0 -1
  220. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts +0 -11
  221. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.d.ts.map +0 -1
  222. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js +0 -39
  223. package/dist/jobs/database/trigger-mcp-client-publisher-database.service.js.map +0 -1
  224. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts +0 -8
  225. package/dist/jobs/database/trigger-mcp-client-queue-options.d.ts.map +0 -1
  226. package/dist/jobs/database/trigger-mcp-client-queue-options.js +0 -10
  227. package/dist/jobs/database/trigger-mcp-client-queue-options.js.map +0 -1
  228. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +0 -25
  229. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +0 -1
  230. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +0 -222
  231. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +0 -1
  232. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts +0 -11
  233. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +0 -1
  234. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js +0 -39
  235. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +0 -1
  236. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts +0 -8
  237. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +0 -1
  238. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js +0 -10
  239. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +0 -1
  240. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts +0 -18
  241. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
  242. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js +0 -103
  243. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +0 -1
  244. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +0 -11
  245. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +0 -1
  246. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +0 -39
  247. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +0 -1
  248. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +0 -8
  249. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +0 -1
  250. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +0 -10
  251. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +0 -1
  252. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +0 -18
  253. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +0 -1
  254. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +0 -103
  255. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +0 -1
  256. package/dist/repository/ai-interaction.repository.d.ts +0 -12
  257. package/dist/repository/ai-interaction.repository.d.ts.map +0 -1
  258. package/dist/repository/ai-interaction.repository.js +0 -34
  259. package/dist/repository/ai-interaction.repository.js.map +0 -1
  260. package/dist/services/ai-interaction.service.d.ts +0 -23
  261. package/dist/services/ai-interaction.service.d.ts.map +0 -1
  262. package/dist/services/ai-interaction.service.js +0 -217
  263. package/dist/services/ai-interaction.service.js.map +0 -1
  264. package/dist/services/genai/ingest-metadata.service.d.ts +0 -38
  265. package/dist/services/genai/ingest-metadata.service.d.ts.map +0 -1
  266. package/dist/services/genai/ingest-metadata.service.js +0 -542
  267. package/dist/services/genai/ingest-metadata.service.js.map +0 -1
  268. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts +0 -9
  269. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.d.ts.map +0 -1
  270. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js +0 -39
  271. package/dist/services/genai/mcp-handlers/mcp-handler-factory.service.js.map +0 -1
  272. package/dist/services/genai/r2r-helper.service.d.ts +0 -9
  273. package/dist/services/genai/r2r-helper.service.d.ts.map +0 -1
  274. package/dist/services/genai/r2r-helper.service.js +0 -40
  275. package/dist/services/genai/r2r-helper.service.js.map +0 -1
  276. package/dist-tests/api/authenticate.spec.js +0 -119
  277. package/dist-tests/api/authenticate.spec.js.map +0 -1
  278. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  279. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  280. package/dist-tests/api/ping.spec.js +0 -21
  281. package/dist-tests/api/ping.spec.js.map +0 -1
  282. package/dist-tests/helpers/auth.js +0 -41
  283. package/dist-tests/helpers/auth.js.map +0 -1
  284. package/dist-tests/helpers/env.js +0 -11
  285. package/dist-tests/helpers/env.js.map +0 -1
  286. package/docs/dashboards/AGENTIC_DASHBOARD_IMPLEMENTATION_PLAN.md +0 -438
  287. package/docs/dashboards/dashboard-curl-smoke-tests.txt +0 -146
  288. package/docs/dashboards/delete-legacy-dashboard-metadata.sql +0 -172
  289. package/docs/grouping-enhancements.md +0 -89
  290. package/docs/java-spring/README.md +0 -3
  291. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  292. package/docs/module-package-import-handoff.md +0 -691
  293. package/docs/seed-changes.md +0 -65
  294. package/docs/test-data-workflow.md +0 -200
  295. package/docs/type-declaration-import-issue.md +0 -24
  296. package/src/commands/ingest.command.ts +0 -36
  297. package/src/controllers/ai-interaction.controller.ts +0 -112
  298. package/src/dtos/create-ai-interaction.dto.ts +0 -89
  299. package/src/dtos/invoke-ai-prompt.dto.ts +0 -10
  300. package/src/dtos/update-ai-interaction.dto.ts +0 -93
  301. package/src/entities/ai-interaction.entity.ts +0 -71
  302. package/src/jobs/database/trigger-mcp-client-publisher-database.service.ts +0 -22
  303. package/src/jobs/database/trigger-mcp-client-queue-options.ts +0 -9
  304. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +0 -278
  305. package/src/jobs/rabbitmq/trigger-mcp-client-publisher.service.ts +0 -22
  306. package/src/jobs/rabbitmq/trigger-mcp-client-queue-options.ts +0 -9
  307. package/src/jobs/rabbitmq/trigger-mcp-client-subscriber.service.ts +0 -104
  308. package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +0 -23
  309. package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +0 -9
  310. package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +0 -98
  311. package/src/repository/ai-interaction.repository.ts +0 -17
  312. package/src/services/ai-interaction.service.ts +0 -239
  313. package/src/services/genai/ingest-metadata.service.ts +0 -798
  314. package/src/services/genai/mcp-handlers/mcp-handler-factory.service.ts +0 -33
  315. package/src/services/genai/r2r-helper.service.ts +0 -37
@@ -1 +1 @@
1
- {"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAwCE,MAAM,EAAE;2CACM,MAAM;+BAClB,MAAM;uCACE,MAAM;;;;;;;;;;;;;;;;6BAgChB,MAAM;;;;0BAOT,MAAM,GAAG,MAAM;mCACN,MAAM;;;;;;mCASN,MAAM,GAAG,MAAM;qCACb,MAAM;yDACc,MAAM;qCAC1B,MAAM;;mCAIR,MAAM;8BACX,MAAM,GAAG,MAAM;gCAGb,MAAM,GAAG,MAAM;;;kCAKb,MAAM,GAAG,MAAM;qCACZ,MAAM;8CAGG,MAAM,GAAG,MAAM;;yCAIpB,MAAM;;;;;yBAYtC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAElD,CAAC"}
1
+ {"version":3,"file":"error-messages.d.ts","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAyCE,MAAM,EAAE;2CACM,MAAM;+BAClB,MAAM;uCACE,MAAM;;;;;;;;;;;;;;;;6BAgChB,MAAM;;;;0BAOT,MAAM,GAAG,MAAM;mCACN,MAAM;;;;;;mCASN,MAAM,GAAG,MAAM;qCACb,MAAM;yDACc,MAAM;qCAC1B,MAAM;;mCAIR,MAAM;8BACX,MAAM,GAAG,MAAM;gCAGb,MAAM,GAAG,MAAM;;;kCAKb,MAAM,GAAG,MAAM;qCACZ,MAAM;8CAGG,MAAM,GAAG,MAAM;;yCAIpB,MAAM;;;;;yBAYtC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAElD,CAAC"}
@@ -28,6 +28,7 @@ exports.ERROR_MESSAGES = {
28
28
  ACCESS_DENIED: 'Access denied',
29
29
  INVALID_USER_PROFILE: 'Invalid user profile',
30
30
  GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',
31
+ MICROSOFT_ACTIVE_DIRECTORY_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Microsoft Active Directory OAuth service',
31
32
  LOGOUT_FAILED: 'Logout failed due to an unexpected error.',
32
33
  INVALID_CREDENTIALS: 'Invalid credentials',
33
34
  LOGIN_FAILED: 'Login Failed',
@@ -1 +1 @@
1
- {"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":"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","sourcesContent":["// backend/common/constants/error-messages.ts\n\nexport const ERROR_MESSAGES = {\n //authentication errors\n USER_NOT_FOUND: 'User does not exist.',\n USER_NOT_ACTIVE: 'User profile is not activated.',\n USER_INACTIVE: 'User is inactive.',\n ACCOUNT_BLOCKED: 'Your account has been blocked due to multiple failed login attempts.',\n PASSWORD_INCORRECT: 'Password does not match.',\n PUBLIC_REGISTRATION_DISABLED: 'Public registrations are disabled.',\n UNIQUE_CONSTRAINT_VIOLATION: 'A unique constraint violation occurred.',\n PASSWORDLESS_REGISTRATION_DISABLED: 'Passwordless registration is not enabled.',\n REGISTRATION_REQUIRES_CONTACT: 'Either mobile or email is required for initiating registration.',\n EMAIL_REQUIRED_FOR_VALIDATION: 'Email is required for email validation source.',\n MOBILE_REQUIRED_FOR_VALIDATION: 'Mobile is required for mobile validation source.',\n USER_ALREADY_EXISTS: 'User already exists. Please sign in.',\n VALIDATION_SOURCE_REQUIRED: 'At least one validation source is required.',\n INVALID_OTP: 'Invalid OTP.',\n OTP_EXPIRED: 'OTP has expired.',\n INVALID_VERIFICATION_TYPE: 'Invalid type. Must be either email or mobile.',\n NON_LOCAL_PROVIDER: 'User seems to have used a passwordless mode to authenticate.',\n USER_ID_MISMATCH: \"User ID's do not match.\",\n USERNAME_MISMATCH: \"User username's do not match.\",\n INCORRECT_CURRENT_PASSWORD: 'Incorrect current password specified.',\n PASSWORD_REUSED: 'Try a different password',\n INVALID_VERIFICATION_TOKEN: 'Invalid verification token',\n INVALID_REFRESH_TOKEN: 'Invalid refresh token',\n ACCESS_DENIED: 'Access denied',\n INVALID_USER_PROFILE: 'Invalid user profile',\n GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',\n LOGOUT_FAILED: 'Logout failed due to an unexpected error.',\n\n INVALID_CREDENTIALS: 'Invalid credentials',\n LOGIN_FAILED: 'Login Failed',\n OLD_PASSWORD_INCORRECT: 'You have specified an incorrect old password.',\n INVALID_NEW_PASSWORD: 'Invalid new password.',\n PASSWORDS_DO_NOT_MATCH: 'New passwords are not matching.',\n\n // user management errors\n DELETE_SELF_NOT_ALLOWED: 'Deleting logged-in user is not allowed.',\n DELETE_IDS_REQUIRED: 'At least one ID is required for deletion.',\n USER_MISSING_ID: 'User must exist before initializing roles.',\n ROLES_NOT_FOUND: (roles: string[]) => `The following roles were not found: ${roles.join(', ')}`,\n USER_NOT_FOUND_BY_USERNAME: (username: string) => `User with username '${username}' not found.`,\n ROLE_NOT_FOUND: (roleName: string) => `Role '${roleName}' not found.`,\n PERMISSION_NOT_EXIST: (permission: string) => `Permission '${permission}' does not exist.`,\n\n // session errors\n SESSION_INVALID: 'Your session is no longer valid. Please log in again.',\n SESSION_EXPIRED: 'Your session has expired. Please log in again.',\n\n // filter errors\n GROUP_BY_LIMIT: 'buildFilterQuery: Only 1 Group by field is supported currently.',\n INVALID_GROUP_BY_COUNT: 'Exactly one groupBy field is required to count grouped records.',\n\n // general errors\n FORBIDDEN: 'Forbidden',\n\n\n // database errors\n DUPLICATE_ENTRY: 'Duplicate entry. A record with similar unique fields already exists.',\n\n // validation errors\n ID_REQUIRED_FOR_UPDATE: 'Id is required for update.',\n ID_REQUIRED_FOR_DELETE: 'Id is required for deletion.',\n\n // CRUD service errors\n RELATION_TYPE_NOT_SUPPORTED: 'Relation type not supported in CRUD service.',\n NO_SOFT_DELETED_RECORD_FOUND: 'No soft-deleted record found with the given ID.',\n CONFLICTING_RECORD_ON_UNARCHIVE: 'Another record is conflicting with the record you are attempting to Un-Archive, either delete or change the other record so as to avoid this conflict.',\n NO_SOFT_DELETED_RECORDS_FOUND: 'No matching soft-deleted records found.',\n EMPTY_PATH_PARTS: 'Path parts cannot be empty',\n\n\n // CSV/Excel service errors\n MISSING_HEADERS_OR_FUNCTION: 'Either headers or data records function must be provided.',\n INVALID_CHUNK_SIZE: 'Chunk size must be greater than 0 when data records function is provided.',\n INVALID_FORMAT: (format: string) => `Invalid ${format} format`,\n\n\n //field errors\n INVALID_INVERSE_FIELD_TYPE: 'Only relation fields can have inverse fields.',\n MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD: 'Model and module are required to update inverse field.',\n MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD: 'Model name and module name are required to create inverse field.',\n FIELD_NOT_FOUND: (id: number | string) => `No field with id #${id} exists`,\n PROVIDER_NOT_FOUND: (provider: string) => `Field incorrectly configured. No provider with name ${provider} registered in backend.`,\n FILE_WRITE_FAILED: 'File creation failed, rolling back transaction',\n FILE_DELETE_FAILED: 'File deletion failed, rolling back transaction',\n // file service errors\n FILE_NOT_FOUND: 'File not found',\n FILE_COPY_ERROR: 'Error copying file',\n S3_CLIENT_NOT_INITIALIZED: 'S3 Client not initialized. Please check the S3 configuration.',\n\n // model errors\n MODEL_METADATA_NOT_FOUND: (id: string | number) => `Model metadata with ID ${id} not found.`,\n MODEL_SERVICE_NOT_FOUND: (model: string) => `Model service for ${model} not found.`,\n RELATION_CO_MODEL_NOT_DEFINED_FOR_FIELD: (fieldName: string) => `Relation coModelSingularName is not defined for relation field ${fieldName}`,\n MODEL_NOT_FOUND: (singularName?: string) => `Model${singularName ? ` with singular name \"${singularName}\"` : ''} not found.`,\n MODEL_REQUIRED_FOR_CODE_GENERATION: 'Model ID or Model Name is required for generating code.',\n\n //module errors\n MODULE_NOT_FOUND: (moduleName: string) => `Module with name ${moduleName} not found.`,\n MODULE_ID_NOT_FOUND: (id: string | number) => `Module with ID ${id} not found.`,\n\n //entity errors\n ENTITY_NOT_FOUND: (entity?: string | number) => `Entity${entity ? ' ' + entity : ''} not found.`,\n ENTITY_NAME_REQUIRED: 'Entity name is required to find the entity.',\n ENTITY_ID_REQUIRED: 'Entity ID is required to find the entity.',\n\n // import errors\n NO_ERROR_LOG_FOR_IMPORT: (id: string | number) => `No error log entries found for import transaction ID ${id}.`,\n FILE_READ_FAILED_FROM_URL: (url: string) => `Failed to read file from URL: ${url}`,\n\n // media storage provider errors\n MEDIA_STORAGE_PROVIDER_ID_NOT_FOUND: (id: number | string) => `Media Storage Provider with #${id} not found.`,\n MEDIA_STORAGE_PROVIDER_NOT_FOUND: 'Media Storage Provider not found',\n\n // SQL errors\n UNSUPPORTED_SQL_OPERATOR: (operator: string) => `Unsupported SQL operator: ${operator}`,\n\n // AI interaction errors\n PYTHON_EXECUTABLE_NOT_CONFIGURED: 'SolidX AI MCP python executable or client path not configured.',\n UNABLE_TO_RESOLVE_SOLID_COMMAND: 'Unable to resolve a solid_ command that was used to come up with this response.',\n UNABLE_TO_RESOLVE_MCP_HANDLER: 'Unable to resolve a mcp tool handler.',\n\n DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG: 'Invalid regex pattern.',\n\n PERMISSION_MESSAGES: {\n insertMany: (model?: string) =>\n `You do not have permission to import ${model ?? 'these'} records.`,\n } as Record<string, (model?: string) => string>,\n\n};"]}
1
+ {"version":3,"file":"error-messages.js","sourceRoot":"","sources":["../../src/constants/error-messages.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG;IAE1B,cAAc,EAAE,sBAAsB;IACtC,eAAe,EAAE,gCAAgC;IACjD,aAAa,EAAE,mBAAmB;IAClC,eAAe,EAAE,sEAAsE;IACvF,kBAAkB,EAAE,0BAA0B;IAC9C,4BAA4B,EAAE,oCAAoC;IAClE,2BAA2B,EAAE,yCAAyC;IACtE,kCAAkC,EAAE,2CAA2C;IAC/E,6BAA6B,EAAE,iEAAiE;IAChG,6BAA6B,EAAE,gDAAgD;IAC/E,8BAA8B,EAAE,kDAAkD;IAClF,mBAAmB,EAAE,sCAAsC;IAC3D,0BAA0B,EAAE,6CAA6C;IACzE,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,kBAAkB;IAC/B,yBAAyB,EAAE,+CAA+C;IAC1E,kBAAkB,EAAE,8DAA8D;IAClF,gBAAgB,EAAE,yBAAyB;IAC3C,iBAAiB,EAAE,+BAA+B;IAClD,0BAA0B,EAAE,uCAAuC;IACnE,eAAe,EAAE,0BAA0B;IAC3C,0BAA0B,EAAE,4BAA4B;IACxD,qBAAqB,EAAE,uBAAuB;IAC9C,aAAa,EAAE,eAAe;IAC9B,oBAAoB,EAAE,sBAAsB;IAC5C,iCAAiC,EAAE,wDAAwD;IAC3F,qDAAqD,EAAE,4EAA4E;IACnI,aAAa,EAAE,2CAA2C;IAE1D,mBAAmB,EAAE,qBAAqB;IAC1C,YAAY,EAAE,cAAc;IAC5B,sBAAsB,EAAE,+CAA+C;IACvE,oBAAoB,EAAE,uBAAuB;IAC7C,sBAAsB,EAAE,iCAAiC;IAGzD,uBAAuB,EAAE,yCAAyC;IAClE,mBAAmB,EAAE,2CAA2C;IAChE,eAAe,EAAE,4CAA4C;IAC7D,eAAe,EAAE,CAAC,KAAe,EAAE,EAAE,CAAC,uCAAuC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IAC/F,0BAA0B,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,uBAAuB,QAAQ,cAAc;IAC/F,cAAc,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,SAAS,QAAQ,cAAc;IACrE,oBAAoB,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,eAAe,UAAU,mBAAmB;IAG1F,eAAe,EAAE,uDAAuD;IACxE,eAAe,EAAE,gDAAgD;IAGjE,cAAc,EAAE,iEAAiE;IACjF,sBAAsB,EAAE,iEAAiE;IAGzF,SAAS,EAAE,WAAW;IAItB,eAAe,EAAE,sEAAsE;IAGvF,sBAAsB,EAAE,4BAA4B;IACpD,sBAAsB,EAAE,8BAA8B;IAGtD,2BAA2B,EAAE,8CAA8C;IAC3E,4BAA4B,EAAE,iDAAiD;IAC/E,+BAA+B,EAAE,wJAAwJ;IACzL,6BAA6B,EAAE,yCAAyC;IACxE,gBAAgB,EAAE,4BAA4B;IAI9C,2BAA2B,EAAE,2DAA2D;IACxF,kBAAkB,EAAE,2EAA2E;IAC/F,cAAc,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,MAAM,SAAS;IAI9D,0BAA0B,EAAE,+CAA+C;IAC3E,iDAAiD,EAAE,wDAAwD;IAC3G,2DAA2D,EAAE,kEAAkE;IAC/H,eAAe,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS;IAC1E,kBAAkB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,uDAAuD,QAAQ,yBAAyB;IAClI,iBAAiB,EAAE,gDAAgD;IACnE,kBAAkB,EAAE,gDAAgD;IAEpE,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,oBAAoB;IACrC,yBAAyB,EAAE,+DAA+D;IAG1F,wBAAwB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,0BAA0B,EAAE,aAAa;IAC5F,uBAAuB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,qBAAqB,KAAK,aAAa;IACnF,uCAAuC,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,kEAAkE,SAAS,EAAE;IAC7I,eAAe,EAAE,CAAC,YAAqB,EAAE,EAAE,CAAC,QAAQ,YAAY,CAAC,CAAC,CAAC,wBAAwB,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa;IAC5H,kCAAkC,EAAE,yDAAyD;IAG7F,gBAAgB,EAAE,CAAC,UAAkB,EAAE,EAAE,CAAC,oBAAoB,UAAU,aAAa;IACrF,mBAAmB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,kBAAkB,EAAE,aAAa;IAG/E,gBAAgB,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,aAAa;IAChG,oBAAoB,EAAE,6CAA6C;IACnE,kBAAkB,EAAE,2CAA2C;IAG/D,uBAAuB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,wDAAwD,EAAE,GAAG;IAC/G,yBAAyB,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,iCAAiC,GAAG,EAAE;IAGlF,mCAAmC,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,gCAAgC,EAAE,aAAa;IAC7G,gCAAgC,EAAE,kCAAkC;IAGpE,wBAAwB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,6BAA6B,QAAQ,EAAE;IAGvF,gCAAgC,EAAE,gEAAgE;IAClG,+BAA+B,EAAE,iFAAiF;IAClH,6BAA6B,EAAE,uCAAuC;IAEtE,4CAA4C,EAAE,wBAAwB;IAEtE,mBAAmB,EAAE;QACrB,UAAU,EAAE,CAAC,KAAc,EAAE,EAAE,CAC7B,wCAAwC,KAAK,IAAI,OAAO,WAAW;KACtB;CAElD,CAAC","sourcesContent":["// backend/common/constants/error-messages.ts\n\nexport const ERROR_MESSAGES = {\n //authentication errors\n USER_NOT_FOUND: 'User does not exist.',\n USER_NOT_ACTIVE: 'User profile is not activated.',\n USER_INACTIVE: 'User is inactive.',\n ACCOUNT_BLOCKED: 'Your account has been blocked due to multiple failed login attempts.',\n PASSWORD_INCORRECT: 'Password does not match.',\n PUBLIC_REGISTRATION_DISABLED: 'Public registrations are disabled.',\n UNIQUE_CONSTRAINT_VIOLATION: 'A unique constraint violation occurred.',\n PASSWORDLESS_REGISTRATION_DISABLED: 'Passwordless registration is not enabled.',\n REGISTRATION_REQUIRES_CONTACT: 'Either mobile or email is required for initiating registration.',\n EMAIL_REQUIRED_FOR_VALIDATION: 'Email is required for email validation source.',\n MOBILE_REQUIRED_FOR_VALIDATION: 'Mobile is required for mobile validation source.',\n USER_ALREADY_EXISTS: 'User already exists. Please sign in.',\n VALIDATION_SOURCE_REQUIRED: 'At least one validation source is required.',\n INVALID_OTP: 'Invalid OTP.',\n OTP_EXPIRED: 'OTP has expired.',\n INVALID_VERIFICATION_TYPE: 'Invalid type. Must be either email or mobile.',\n NON_LOCAL_PROVIDER: 'User seems to have used a passwordless mode to authenticate.',\n USER_ID_MISMATCH: \"User ID's do not match.\",\n USERNAME_MISMATCH: \"User username's do not match.\",\n INCORRECT_CURRENT_PASSWORD: 'Incorrect current password specified.',\n PASSWORD_REUSED: 'Try a different password',\n INVALID_VERIFICATION_TOKEN: 'Invalid verification token',\n INVALID_REFRESH_TOKEN: 'Invalid refresh token',\n ACCESS_DENIED: 'Access denied',\n INVALID_USER_PROFILE: 'Invalid user profile',\n GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',\n MICROSOFT_ACTIVE_DIRECTORY_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Microsoft Active Directory OAuth service',\n LOGOUT_FAILED: 'Logout failed due to an unexpected error.',\n\n INVALID_CREDENTIALS: 'Invalid credentials',\n LOGIN_FAILED: 'Login Failed',\n OLD_PASSWORD_INCORRECT: 'You have specified an incorrect old password.',\n INVALID_NEW_PASSWORD: 'Invalid new password.',\n PASSWORDS_DO_NOT_MATCH: 'New passwords are not matching.',\n\n // user management errors\n DELETE_SELF_NOT_ALLOWED: 'Deleting logged-in user is not allowed.',\n DELETE_IDS_REQUIRED: 'At least one ID is required for deletion.',\n USER_MISSING_ID: 'User must exist before initializing roles.',\n ROLES_NOT_FOUND: (roles: string[]) => `The following roles were not found: ${roles.join(', ')}`,\n USER_NOT_FOUND_BY_USERNAME: (username: string) => `User with username '${username}' not found.`,\n ROLE_NOT_FOUND: (roleName: string) => `Role '${roleName}' not found.`,\n PERMISSION_NOT_EXIST: (permission: string) => `Permission '${permission}' does not exist.`,\n\n // session errors\n SESSION_INVALID: 'Your session is no longer valid. Please log in again.',\n SESSION_EXPIRED: 'Your session has expired. Please log in again.',\n\n // filter errors\n GROUP_BY_LIMIT: 'buildFilterQuery: Only 1 Group by field is supported currently.',\n INVALID_GROUP_BY_COUNT: 'Exactly one groupBy field is required to count grouped records.',\n\n // general errors\n FORBIDDEN: 'Forbidden',\n\n\n // database errors\n DUPLICATE_ENTRY: 'Duplicate entry. A record with similar unique fields already exists.',\n\n // validation errors\n ID_REQUIRED_FOR_UPDATE: 'Id is required for update.',\n ID_REQUIRED_FOR_DELETE: 'Id is required for deletion.',\n\n // CRUD service errors\n RELATION_TYPE_NOT_SUPPORTED: 'Relation type not supported in CRUD service.',\n NO_SOFT_DELETED_RECORD_FOUND: 'No soft-deleted record found with the given ID.',\n CONFLICTING_RECORD_ON_UNARCHIVE: 'Another record is conflicting with the record you are attempting to Un-Archive, either delete or change the other record so as to avoid this conflict.',\n NO_SOFT_DELETED_RECORDS_FOUND: 'No matching soft-deleted records found.',\n EMPTY_PATH_PARTS: 'Path parts cannot be empty',\n\n\n // CSV/Excel service errors\n MISSING_HEADERS_OR_FUNCTION: 'Either headers or data records function must be provided.',\n INVALID_CHUNK_SIZE: 'Chunk size must be greater than 0 when data records function is provided.',\n INVALID_FORMAT: (format: string) => `Invalid ${format} format`,\n\n\n //field errors\n INVALID_INVERSE_FIELD_TYPE: 'Only relation fields can have inverse fields.',\n MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD: 'Model and module are required to update inverse field.',\n MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD: 'Model name and module name are required to create inverse field.',\n FIELD_NOT_FOUND: (id: number | string) => `No field with id #${id} exists`,\n PROVIDER_NOT_FOUND: (provider: string) => `Field incorrectly configured. No provider with name ${provider} registered in backend.`,\n FILE_WRITE_FAILED: 'File creation failed, rolling back transaction',\n FILE_DELETE_FAILED: 'File deletion failed, rolling back transaction',\n // file service errors\n FILE_NOT_FOUND: 'File not found',\n FILE_COPY_ERROR: 'Error copying file',\n S3_CLIENT_NOT_INITIALIZED: 'S3 Client not initialized. Please check the S3 configuration.',\n\n // model errors\n MODEL_METADATA_NOT_FOUND: (id: string | number) => `Model metadata with ID ${id} not found.`,\n MODEL_SERVICE_NOT_FOUND: (model: string) => `Model service for ${model} not found.`,\n RELATION_CO_MODEL_NOT_DEFINED_FOR_FIELD: (fieldName: string) => `Relation coModelSingularName is not defined for relation field ${fieldName}`,\n MODEL_NOT_FOUND: (singularName?: string) => `Model${singularName ? ` with singular name \"${singularName}\"` : ''} not found.`,\n MODEL_REQUIRED_FOR_CODE_GENERATION: 'Model ID or Model Name is required for generating code.',\n\n //module errors\n MODULE_NOT_FOUND: (moduleName: string) => `Module with name ${moduleName} not found.`,\n MODULE_ID_NOT_FOUND: (id: string | number) => `Module with ID ${id} not found.`,\n\n //entity errors\n ENTITY_NOT_FOUND: (entity?: string | number) => `Entity${entity ? ' ' + entity : ''} not found.`,\n ENTITY_NAME_REQUIRED: 'Entity name is required to find the entity.',\n ENTITY_ID_REQUIRED: 'Entity ID is required to find the entity.',\n\n // import errors\n NO_ERROR_LOG_FOR_IMPORT: (id: string | number) => `No error log entries found for import transaction ID ${id}.`,\n FILE_READ_FAILED_FROM_URL: (url: string) => `Failed to read file from URL: ${url}`,\n\n // media storage provider errors\n MEDIA_STORAGE_PROVIDER_ID_NOT_FOUND: (id: number | string) => `Media Storage Provider with #${id} not found.`,\n MEDIA_STORAGE_PROVIDER_NOT_FOUND: 'Media Storage Provider not found',\n\n // SQL errors\n UNSUPPORTED_SQL_OPERATOR: (operator: string) => `Unsupported SQL operator: ${operator}`,\n\n // AI interaction errors\n PYTHON_EXECUTABLE_NOT_CONFIGURED: 'SolidX AI MCP python executable or client path not configured.',\n UNABLE_TO_RESOLVE_SOLID_COMMAND: 'Unable to resolve a solid_ command that was used to come up with this response.',\n UNABLE_TO_RESOLVE_MCP_HANDLER: 'Unable to resolve a mcp tool handler.',\n\n DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG: 'Invalid regex pattern.',\n\n PERMISSION_MESSAGES: {\n insertMany: (model?: string) =>\n `You do not have permission to import ${model ?? 'these'} records.`,\n } as Record<string, (model?: string) => string>,\n\n};\n"]}
@@ -0,0 +1,28 @@
1
+ import { Request, Response } from "express";
2
+ import { AuthenticationService } from "../services/authentication.service";
3
+ import { SettingService } from "../services/setting.service";
4
+ import { UserService } from "../services/user.service";
5
+ export declare class MicrosoftActiveDirectoryAuthenticationController {
6
+ private readonly userService;
7
+ private readonly authService;
8
+ private readonly settingService;
9
+ constructor(userService: UserService, authService: AuthenticationService, settingService: SettingService);
10
+ private getConfiguration;
11
+ private buildFrontendRedirectUrl;
12
+ private validateConfiguration;
13
+ connect(): Promise<void>;
14
+ microsoftActiveDirectoryAuthCallback(req: Request, res: Response): Promise<void>;
15
+ dummyMicrosoftActiveDirectoryAuthRedirect(accessCode: any): Promise<import("..").User>;
16
+ microsoftActiveDirectoryAuth(accessCode: string): Promise<{
17
+ accessToken: string;
18
+ refreshToken: string;
19
+ user: {
20
+ email: string;
21
+ mobile: string;
22
+ username: string;
23
+ id: number;
24
+ roles: string[];
25
+ };
26
+ }>;
27
+ }
28
+ //# sourceMappingURL=microsoft-active-directory-authentication.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft-active-directory-authentication.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/microsoft-active-directory-authentication.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAM5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,qBAGa,gDAAgD;IAEzD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAFd,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,qBAAqB,EAClC,cAAc,EAAE,cAAc;YAGnC,gBAAgB;IAU9B,OAAO,CAAC,wBAAwB;YAKlB,qBAAqB;IAW7B,OAAO;IAOP,oCAAoC,CACjC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ;IAWhB,yCAAyC,CACxB,UAAU,KAAA;IAe3B,4BAA4B,CACX,UAAU,EAAE,MAAM;;;;;;;;;;;CAK1C"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MicrosoftActiveDirectoryAuthenticationController = void 0;
16
+ const openapi = require("@nestjs/swagger");
17
+ const common_1 = require("@nestjs/common");
18
+ const swagger_1 = require("@nestjs/swagger");
19
+ const microsoft_active_directory_oauth_helper_1 = require("../helpers/microsoft-active-directory-oauth.helper");
20
+ const authentication_service_1 = require("../services/authentication.service");
21
+ const setting_service_1 = require("../services/setting.service");
22
+ const public_decorator_1 = require("../decorators/public.decorator");
23
+ const auth_decorator_1 = require("../decorators/auth.decorator");
24
+ const auth_type_enum_1 = require("../enums/auth-type.enum");
25
+ const microsoft_active_directory_oauth_strategy_1 = require("../passport-strategies/microsoft-active-directory-oauth.strategy");
26
+ const user_service_1 = require("../services/user.service");
27
+ let MicrosoftActiveDirectoryAuthenticationController = class MicrosoftActiveDirectoryAuthenticationController {
28
+ constructor(userService, authService, settingService) {
29
+ this.userService = userService;
30
+ this.authService = authService;
31
+ this.settingService = settingService;
32
+ }
33
+ async getConfiguration() {
34
+ return {
35
+ clientID: this.settingService.getConfigValue("MICROSOFT_ACTIVE_DIRECTORY_CLIENT_ID"),
36
+ clientSecret: this.settingService.getConfigValue("MICROSOFT_ACTIVE_DIRECTORY_CLIENT_SECRET"),
37
+ tenant: this.settingService.getConfigValue("MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID") ?? microsoft_active_directory_oauth_helper_1.DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT,
38
+ callbackURL: this.settingService.getConfigValue("MICROSOFT_ACTIVE_DIRECTORY_CALLBACK_URL"),
39
+ redirectURL: this.settingService.getConfigValue("MICROSOFT_ACTIVE_DIRECTORY_REDIRECT_URL"),
40
+ };
41
+ }
42
+ buildFrontendRedirectUrl(redirectURL, accessCode) {
43
+ const separator = redirectURL.includes("?") ? "&" : "?";
44
+ return `${redirectURL}${separator}accessCode=${encodeURIComponent(accessCode)}`;
45
+ }
46
+ async validateConfiguration() {
47
+ const config = await this.getConfiguration();
48
+ if (!(0, microsoft_active_directory_oauth_helper_1.isMicrosoftActiveDirectoryOAuthConfigured)(config)) {
49
+ throw new common_1.InternalServerErrorException("Microsoft Active Directory OAuth is not configured");
50
+ }
51
+ return config;
52
+ }
53
+ async connect() {
54
+ await this.validateConfiguration();
55
+ }
56
+ async microsoftActiveDirectoryAuthCallback(req, res) {
57
+ const config = await this.validateConfiguration();
58
+ const user = req.user;
59
+ return res.redirect(this.buildFrontendRedirectUrl(config.redirectURL, user["accessCode"]));
60
+ }
61
+ async dummyMicrosoftActiveDirectoryAuthRedirect(accessCode) {
62
+ await this.validateConfiguration();
63
+ const user = await this.userService.findOneByAccessCode(accessCode);
64
+ if (user) {
65
+ delete user["password"];
66
+ }
67
+ return user;
68
+ }
69
+ async microsoftActiveDirectoryAuth(accessCode) {
70
+ await this.validateConfiguration();
71
+ return this.authService.signInUsingMicrosoftActiveDirectory(accessCode);
72
+ }
73
+ };
74
+ exports.MicrosoftActiveDirectoryAuthenticationController = MicrosoftActiveDirectoryAuthenticationController;
75
+ __decorate([
76
+ (0, public_decorator_1.Public)(),
77
+ (0, common_1.UseGuards)(microsoft_active_directory_oauth_strategy_1.MicrosoftActiveDirectoryOauthGuard),
78
+ (0, common_1.Get)("connect"),
79
+ openapi.ApiResponse({ status: 200 }),
80
+ __metadata("design:type", Function),
81
+ __metadata("design:paramtypes", []),
82
+ __metadata("design:returntype", Promise)
83
+ ], MicrosoftActiveDirectoryAuthenticationController.prototype, "connect", null);
84
+ __decorate([
85
+ (0, public_decorator_1.Public)(),
86
+ (0, common_1.Get)("connect/callback"),
87
+ (0, common_1.UseGuards)(microsoft_active_directory_oauth_strategy_1.MicrosoftActiveDirectoryOauthGuard),
88
+ openapi.ApiResponse({ status: 200 }),
89
+ __param(0, (0, common_1.Req)()),
90
+ __param(1, (0, common_1.Res)()),
91
+ __metadata("design:type", Function),
92
+ __metadata("design:paramtypes", [Object, Object]),
93
+ __metadata("design:returntype", Promise)
94
+ ], MicrosoftActiveDirectoryAuthenticationController.prototype, "microsoftActiveDirectoryAuthCallback", null);
95
+ __decorate([
96
+ (0, public_decorator_1.Public)(),
97
+ (0, common_1.Get)("dummy-redirect"),
98
+ openapi.ApiResponse({ status: 200, type: require("../entities/user.entity").User }),
99
+ __param(0, (0, common_1.Query)("accessCode")),
100
+ __metadata("design:type", Function),
101
+ __metadata("design:paramtypes", [Object]),
102
+ __metadata("design:returntype", Promise)
103
+ ], MicrosoftActiveDirectoryAuthenticationController.prototype, "dummyMicrosoftActiveDirectoryAuthRedirect", null);
104
+ __decorate([
105
+ (0, public_decorator_1.Public)(),
106
+ (0, common_1.Get)("authenticate"),
107
+ (0, swagger_1.ApiQuery)({ name: "accessCode", required: true, type: String }),
108
+ openapi.ApiResponse({ status: 200 }),
109
+ __param(0, (0, common_1.Query)("accessCode")),
110
+ __metadata("design:type", Function),
111
+ __metadata("design:paramtypes", [String]),
112
+ __metadata("design:returntype", Promise)
113
+ ], MicrosoftActiveDirectoryAuthenticationController.prototype, "microsoftActiveDirectoryAuth", null);
114
+ exports.MicrosoftActiveDirectoryAuthenticationController = MicrosoftActiveDirectoryAuthenticationController = __decorate([
115
+ (0, auth_decorator_1.Auth)(auth_type_enum_1.AuthType.None),
116
+ (0, swagger_1.ApiTags)("Solid Core"),
117
+ (0, common_1.Controller)("iam/microsoft-active-directory"),
118
+ __metadata("design:paramtypes", [user_service_1.UserService,
119
+ authentication_service_1.AuthenticationService,
120
+ setting_service_1.SettingService])
121
+ ], MicrosoftActiveDirectoryAuthenticationController);
122
+ //# sourceMappingURL=microsoft-active-directory-authentication.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft-active-directory-authentication.controller.js","sourceRoot":"","sources":["../../src/controllers/microsoft-active-directory-authentication.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Controller,\n Get,\n InternalServerErrorException,\n Query,\n Req,\n Res,\n UseGuards,\n} from \"@nestjs/common\";\nimport { ApiQuery, ApiTags } from \"@nestjs/swagger\";\nimport { Request, Response } from \"express\";\nimport {\n DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT,\n MicrosoftActiveDirectoryAuthConfiguration,\n isMicrosoftActiveDirectoryOAuthConfigured,\n} from \"../helpers/microsoft-active-directory-oauth.helper\";\nimport { AuthenticationService } from \"../services/authentication.service\";\nimport { SettingService } from \"../services/setting.service\";\nimport { Public } from \"src/decorators/public.decorator\";\nimport { Auth } from \"../decorators/auth.decorator\";\nimport { AuthType } from \"../enums/auth-type.enum\";\nimport { MicrosoftActiveDirectoryOauthGuard } from \"../passport-strategies/microsoft-active-directory-oauth.strategy\";\nimport { UserService } from \"../services/user.service\";\nimport type { SolidCoreSetting } from \"../services/settings/default-settings-provider.service\";\n\n@Auth(AuthType.None)\n@ApiTags(\"Solid Core\")\n@Controller(\"iam/microsoft-active-directory\")\nexport class MicrosoftActiveDirectoryAuthenticationController {\n constructor(\n private readonly userService: UserService,\n private readonly authService: AuthenticationService,\n private readonly settingService: SettingService,\n ) {}\n\n private async getConfiguration(): Promise<MicrosoftActiveDirectoryAuthConfiguration> {\n return {\n clientID: this.settingService.getConfigValue<SolidCoreSetting>(\"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_ID\"),\n clientSecret: this.settingService.getConfigValue<SolidCoreSetting>(\"MICROSOFT_ACTIVE_DIRECTORY_CLIENT_SECRET\"),\n tenant: this.settingService.getConfigValue<SolidCoreSetting>(\"MICROSOFT_ACTIVE_DIRECTORY_TENANT_ID\" ) ?? DEFAULT_MICROSOFT_ACTIVE_DIRECTORY_OAUTH_TENANT,\n callbackURL: this.settingService.getConfigValue<SolidCoreSetting>(\"MICROSOFT_ACTIVE_DIRECTORY_CALLBACK_URL\"), \n redirectURL: this.settingService.getConfigValue<SolidCoreSetting>(\"MICROSOFT_ACTIVE_DIRECTORY_REDIRECT_URL\"),\n };\n }\n\n private buildFrontendRedirectUrl(redirectURL: string, accessCode: string) {\n const separator = redirectURL.includes(\"?\") ? \"&\" : \"?\";\n return `${redirectURL}${separator}accessCode=${encodeURIComponent(accessCode)}`;\n }\n\n private async validateConfiguration() {\n const config = await this.getConfiguration();\n if (!isMicrosoftActiveDirectoryOAuthConfigured(config)) {\n throw new InternalServerErrorException(\"Microsoft Active Directory OAuth is not configured\");\n }\n return config;\n }\n\n @Public()\n @UseGuards(MicrosoftActiveDirectoryOauthGuard)\n @Get(\"connect\")\n async connect() {\n await this.validateConfiguration();\n }\n\n @Public()\n @Get(\"connect/callback\")\n @UseGuards(MicrosoftActiveDirectoryOauthGuard)\n async microsoftActiveDirectoryAuthCallback(\n @Req() req: Request,\n @Res() res: Response,\n ) {\n const config = await this.validateConfiguration();\n const user = req.user;\n return res.redirect(\n this.buildFrontendRedirectUrl(config.redirectURL, user[\"accessCode\"]),\n );\n }\n\n @Public()\n @Get(\"dummy-redirect\")\n async dummyMicrosoftActiveDirectoryAuthRedirect(\n @Query(\"accessCode\") accessCode,\n ) {\n await this.validateConfiguration();\n const user = await this.userService.findOneByAccessCode(accessCode);\n\n if (user) {\n delete user[\"password\"];\n }\n\n return user;\n }\n\n @Public()\n @Get(\"authenticate\")\n @ApiQuery({ name: \"accessCode\", required: true, type: String })\n async microsoftActiveDirectoryAuth(\n @Query(\"accessCode\") accessCode: string,\n ) {\n await this.validateConfiguration();\n return this.authService.signInUsingMicrosoftActiveDirectory(accessCode);\n }\n}\n"]}
@@ -1,6 +1,4 @@
1
1
  import { ErrorMapperService } from '../helpers/error-mapper.service';
2
- import { AiInteractionService } from '../services/ai-interaction.service';
3
- import { IngestMetadataService } from '../services/genai/ingest-metadata.service';
4
2
  import { MqMessageService } from '../services/mq-message.service';
5
3
  import { SolidRegistry } from '../helpers/solid-registry';
6
4
  export interface PostProcessCodeGenConfig {
@@ -9,12 +7,10 @@ export interface PostProcessCodeGenConfig {
9
7
  }
10
8
  export declare class ServiceController {
11
9
  private readonly solidRegistry;
12
- private readonly aiInteractionService;
13
10
  private readonly mqMessageService;
14
11
  private readonly errorMapper;
15
- private readonly ingestMetadataService;
16
12
  private readonly logger;
17
- constructor(solidRegistry: SolidRegistry, aiInteractionService: AiInteractionService, mqMessageService: MqMessageService, errorMapper: ErrorMapperService, ingestMetadataService: IngestMetadataService);
13
+ constructor(solidRegistry: SolidRegistry, mqMessageService: MqMessageService, errorMapper: ErrorMapperService);
18
14
  pingPong(): {
19
15
  pong: string;
20
16
  };
@@ -1 +1 @@
1
- {"version":3,"file":"service.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,qBAIa,iBAAiB;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAP1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAGxC,aAAa,EAAE,aAAa,EAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,kBAAkB,EAC/B,qBAAqB,EAAE,qBAAqB;IAKjE,QAAQ;;;IA+DF,QAAQ,CAAS,QAAQ,EAAE,GAAG;;;IAiB9B,yBAAyB,CAAS,MAAM,EAAE,wBAAwB;CAmD3E"}
1
+ {"version":3,"file":"service.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B;AACD,qBAIa,iBAAiB;IAItB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IALhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;gBAGxC,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,WAAW,EAAE,kBAAkB;IAKpD,QAAQ;;;IA+DF,QAAQ,CAAS,QAAQ,EAAE,GAAG;;;IAkB9B,yBAAyB,CAAS,MAAM,EAAE,wBAAwB;CAmD3E"}
@@ -19,35 +19,32 @@ const common_1 = require("@nestjs/common");
19
19
  const swagger_1 = require("@nestjs/swagger");
20
20
  const public_decorator_1 = require("../decorators/public.decorator");
21
21
  const error_mapper_service_1 = require("../helpers/error-mapper.service");
22
- const ai_interaction_service_1 = require("../services/ai-interaction.service");
23
- const ingest_metadata_service_1 = require("../services/genai/ingest-metadata.service");
24
22
  const mq_message_service_1 = require("../services/mq-message.service");
25
23
  const solid_registry_1 = require("../helpers/solid-registry");
26
24
  let ServiceController = ServiceController_1 = class ServiceController {
27
- constructor(solidRegistry, aiInteractionService, mqMessageService, errorMapper, ingestMetadataService) {
25
+ constructor(solidRegistry, mqMessageService, errorMapper) {
28
26
  this.solidRegistry = solidRegistry;
29
- this.aiInteractionService = aiInteractionService;
30
27
  this.mqMessageService = mqMessageService;
31
28
  this.errorMapper = errorMapper;
32
- this.ingestMetadataService = ingestMetadataService;
33
29
  this.logger = new common_1.Logger(ServiceController_1.name);
34
30
  }
35
31
  pingPong() {
36
32
  return { pong: 'v1.0.2' };
37
33
  }
38
34
  async seedData(seedData) {
35
+ const seederName = seedData?.seeder ?? 'ModuleMetadataSeederService';
39
36
  const seeder = this.solidRegistry
40
37
  .getSeeders()
41
- .filter((seeder) => seeder.name === seedData.seeder)
38
+ .filter((seeder) => seeder.name === seederName)
42
39
  .map((seeder) => seeder.instance)
43
40
  .pop();
44
41
  if (!seeder) {
45
- this.logger.error(`Seeder service ${seedData.seeder} not found. Does your service have a seed() method?`);
42
+ this.logger.error(`Seeder service ${seederName} not found. Does your service have a seed() method?`);
46
43
  return;
47
44
  }
48
45
  this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);
49
46
  await seeder.seed();
50
- return { message: `seed data for ${seedData.seeder}` };
47
+ return { message: `seed data for ${seederName}` };
51
48
  }
52
49
  async postProcessCodeGeneration(config) {
53
50
  config.runModuleMetadataSeeder = config.runModuleMetadataSeeder ?? true;
@@ -105,9 +102,7 @@ exports.ServiceController = ServiceController = ServiceController_1 = __decorate
105
102
  (0, common_1.Controller)(''),
106
103
  (0, swagger_1.ApiTags)("Solid Core"),
107
104
  __metadata("design:paramtypes", [solid_registry_1.SolidRegistry,
108
- ai_interaction_service_1.AiInteractionService,
109
105
  mq_message_service_1.MqMessageService,
110
- error_mapper_service_1.ErrorMapperService,
111
- ingest_metadata_service_1.IngestMetadataService])
106
+ error_mapper_service_1.ErrorMapperService])
112
107
  ], ServiceController);
113
108
  //# sourceMappingURL=service.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.controller.js","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAqE;AACrE,6CAAyD;AAEzD,qEAAyD;AACzD,0EAAsE;AAEtE,+EAA2E;AAC3E,uFAAmF;AACnF,uEAAmE;AACnE,8DAA0D;AAUnD,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAG1B,YACqB,aAA4B,EAC5B,oBAA0C,EAC1C,gBAAkC,EAClC,WAA+B,EAC/B,qBAA4C;QAJ5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,gBAAW,GAAX,WAAW,CAAoB;QAC/B,0BAAqB,GAArB,qBAAqB,CAAuB;QAPhD,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAQzD,CAAC;IAIL,QAAQ;QACJ,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9B,CAAC;IA6DK,AAAN,KAAK,CAAC,QAAQ,CAAS,QAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;aAC5B,UAAU,EAAE;aACZ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,CAAC;aACnD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aAChC,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,QAAQ,CAAC,MAAM,qDAAqD,CAAC,CAAC;YAC1G,OAAO;QACX,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yCAAyC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,iBAAiB,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3D,CAAC;IAIK,AAAN,KAAK,CAAC,yBAAyB,CAAS,MAAgC;QAEpE,MAAM,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,IAAI,IAAI,CAAC;QACxE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC;QAG5D,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACxG,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa;iBAC5B,UAAU,EAAE;iBACZ,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,6BAA6B,CAAC;iBACjE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAChC,GAAG,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+FAA+F,CAAC,CAAC;YACvH,CAAC;iBAAM,CAAC;gBACJ,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;QAC7G,CAAC;QAGD,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;QAKrG,CAAC;IACL,CAAC;CAqBJ,CAAA;AAhJY,8CAAiB;AAa1B;IAFC,IAAA,yBAAM,GAAE;IACR,IAAA,YAAG,EAAC,MAAM,CAAC;;;;;iDAGX;AA6DK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,MAAM,CAAC;;IACG,WAAA,IAAA,aAAI,GAAE,CAAA;;;;iDAarB;AAIK;IAFL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,8BAA8B,CAAC;;IACJ,WAAA,IAAA,aAAI,GAAE,CAAA;;;;kEA8BtC;4BA3HQ,iBAAiB;IAJ7B,IAAA,mBAAU,EAAC,EAAE,CAAC;IACd,IAAA,iBAAO,EAAC,YAAY,CAAC;qCAOkB,8BAAa;QACN,6CAAoB;QACxB,qCAAgB;QACrB,yCAAkB;QACR,+CAAqB;GARxD,iBAAiB,CAgJ7B","sourcesContent":["import { Body, Controller, Get, Logger, Post } from '@nestjs/common';\nimport { ApiBearerAuth, ApiTags } from '@nestjs/swagger';\nimport { ActiveUser } from 'src/decorators/active-user.decorator';\nimport { Public } from 'src/decorators/public.decorator';\nimport { ErrorMapperService } from 'src/helpers/error-mapper.service';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { AiInteractionService } from 'src/services/ai-interaction.service';\nimport { IngestMetadataService } from 'src/services/genai/ingest-metadata.service';\nimport { MqMessageService } from 'src/services/mq-message.service';\nimport { SolidRegistry } from '../helpers/solid-registry';\n\nexport interface PostProcessCodeGenConfig {\n runModuleMetadataSeeder?: boolean; // If true, regenerate module metadata\n runSolidIngestion?: boolean; // If true, run solid ingestion command\n}\n@Controller('')\n@ApiTags(\"Solid Core\")\n// @UseGuards(ThrottlerGuard)\n// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) // Skip all\nexport class ServiceController {\n private readonly logger = new Logger(ServiceController.name);\n\n constructor(\n private readonly solidRegistry: SolidRegistry,\n private readonly aiInteractionService: AiInteractionService,\n private readonly mqMessageService: MqMessageService,\n private readonly errorMapper: ErrorMapperService,\n private readonly ingestMetadataService: IngestMetadataService,\n ) { }\n\n @Public()\n @Get('ping')\n pingPong() {\n return { pong: 'v1.0.2' };\n }\n\n // @ApiBearerAuth(\"jwt\")\n // @Get('mcp/ping')\n // async mcpPingPong(@ActiveUser() activeUser: ActiveUserData) {\n // // TODO: do a MCP client invocation, wait for response and return.\n // // If failure then decide shape to return.\n\n // const threadId = `pingPongTxn-${activeUser.sub}`;\n // const dto = { prompt: \"Can you do 1 + 1\", moduleName: \"solidCoreModule\" }\n // const { queueMessageId, aiInteractionId } = await this.aiInteractionService.triggerMcpClientJob(\n // dto,\n // activeUser.sub,\n // true,\n // threadId\n // );\n\n // this.logger.debug(`mcp ping pong job triggered: queueMessageId=${queueMessageId}, aiInteractionId=${aiInteractionId}`);\n\n // // Wait up to 2 minutes, start at 500ms poll, back off to max 2s, throw if failed:\n // const result = await this.mqMessageService.waitForTerminalStatus(queueMessageId, {\n // timeoutMs: 2 * 60 * 1000,\n // intervalMs: 500,\n // maxIntervalMs: 2000,\n // throwOnFailure: false,\n // });\n\n // this.logger.debug(`mcp ping pong job finished with stage=${result.stage}`)\n\n // this.logger.debug(`mcp ping pong trying to find genai (child) interaction for aiInteraction for id=${aiInteractionId}`)\n\n // // @ts-ignore\n // const genAiInteractions = await this.aiInteractionService.find({\n // filters: {\n // parentInteraction: {\n // id: {\n // $eq: aiInteractionId\n // }\n // }\n // }\n // });\n\n // const genAiInteraction = genAiInteractions['records'][0];\n // this.logger.debug(genAiInteraction.message);\n\n // this.logger.debug(`identified gen-ai interaction with id=${genAiInteraction.id}`);\n // this.logger.debug(`proceeding with applying the gen-ai interaction`)\n\n // return {\n // mcpPong: 'v1.0.2',\n // genAiInteraction: {\n // status: genAiInteraction.status,\n // errorCode: genAiInteraction.status === 'failed' ? this.errorMapper.mapMessage(genAiInteraction.errorMessage, genAiInteraction.metadata) : '',\n // errorMessage: genAiInteraction.errorMessage,\n // }\n // };\n // }\n\n // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only\n @ApiBearerAuth(\"jwt\")\n @Post('seed')\n async seedData(@Body() seedData: any) {\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === seedData.seeder)\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ${seedData.seeder} not found. Does your service have a seed() method?`);\n return;\n }\n this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);\n await seeder.seed();\n return { message: `seed data for ${seedData.seeder}` };\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('code-generation/post-process')\n async postProcessCodeGeneration(@Body() config: PostProcessCodeGenConfig) {\n // Set defaults if not provided\n config.runModuleMetadataSeeder = config.runModuleMetadataSeeder ?? true;\n config.runSolidIngestion = config.runSolidIngestion ?? true;\n\n // Run the Module Metadata Seeder Service\n if (config.runModuleMetadataSeeder) {\n this.logger.debug(`Running the Module Metadata Seeder Service as part of post-process code generation`);\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === 'ModuleMetadataSeederService')\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ModuleMetadataSeederService not found. Does your service have a seed() method?`);\n } else {\n await seeder.seed();\n }\n } else {\n this.logger.debug(`Skipping the Module Metadata Seeder Service as part of post-process code generation`);\n }\n\n // Run the Solid ingestion command\n if (config.runSolidIngestion) {\n this.logger.debug(`Running the Solid ingestion command as part of post-process code generation`);\n\n // TODO: disabled this till we figure out a way to make this stable...\n // This keeps failing for a variety of reasons... \n // await this.ingestMetadataService.ingest();\n }\n }\n\n\n // @Public()\n // @Get('play')\n // play() {\n // return this.solidRegistry.getControllers();\n // }\n\n // //This method identifies a provider as a seeder if it has a seed method i.e duck typing\n // private isSeeder(provider: InstanceWrapper) {\n // const { instance } = provider;\n // if (!instance) return false;\n\n // const seedMethod = this.metadataScanner\n // .getAllMethodNames(Object.getPrototypeOf(instance))\n // .find((methodName) => methodName === 'seed');\n // if (!seedMethod) return false;\n // return true;\n // }\n\n}\n"]}
1
+ {"version":3,"file":"service.controller.js","sourceRoot":"","sources":["../../src/controllers/service.controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Body, Controller, Get, Logger, Post } from '@nestjs/common';\nimport { ApiBearerAuth, ApiTags } from '@nestjs/swagger';\nimport { ActiveUser } from 'src/decorators/active-user.decorator';\nimport { Public } from 'src/decorators/public.decorator';\nimport { ErrorMapperService } from 'src/helpers/error-mapper.service';\nimport { ActiveUserData } from 'src/interfaces/active-user-data.interface';\nimport { MqMessageService } from 'src/services/mq-message.service';\nimport { SolidRegistry } from '../helpers/solid-registry';\n\nexport interface PostProcessCodeGenConfig {\n runModuleMetadataSeeder?: boolean; // If true, regenerate module metadata\n runSolidIngestion?: boolean; // If true, run solid ingestion command\n}\n@Controller('')\n@ApiTags(\"Solid Core\")\n// @UseGuards(ThrottlerGuard)\n// @SkipThrottle({ short: true, login: true, burst: true, sustained: true }) // Skip all\nexport class ServiceController {\n private readonly logger = new Logger(ServiceController.name);\n\n constructor(\n private readonly solidRegistry: SolidRegistry,\n private readonly mqMessageService: MqMessageService,\n private readonly errorMapper: ErrorMapperService,\n ) { }\n\n @Public()\n @Get('ping')\n pingPong() {\n return { pong: 'v1.0.2' };\n }\n\n // @ApiBearerAuth(\"jwt\")\n // @Get('mcp/ping')\n // async mcpPingPong(@ActiveUser() activeUser: ActiveUserData) {\n // // TODO: do a MCP client invocation, wait for response and return.\n // // If failure then decide shape to return.\n\n // const threadId = `pingPongTxn-${activeUser.sub}`;\n // const dto = { prompt: \"Can you do 1 + 1\", moduleName: \"solidCoreModule\" }\n // const { queueMessageId, aiInteractionId } = await this.aiInteractionService.triggerMcpClientJob(\n // dto,\n // activeUser.sub,\n // true,\n // threadId\n // );\n\n // this.logger.debug(`mcp ping pong job triggered: queueMessageId=${queueMessageId}, aiInteractionId=${aiInteractionId}`);\n\n // // Wait up to 2 minutes, start at 500ms poll, back off to max 2s, throw if failed:\n // const result = await this.mqMessageService.waitForTerminalStatus(queueMessageId, {\n // timeoutMs: 2 * 60 * 1000,\n // intervalMs: 500,\n // maxIntervalMs: 2000,\n // throwOnFailure: false,\n // });\n\n // this.logger.debug(`mcp ping pong job finished with stage=${result.stage}`)\n\n // this.logger.debug(`mcp ping pong trying to find genai (child) interaction for aiInteraction for id=${aiInteractionId}`)\n\n // // @ts-ignore\n // const genAiInteractions = await this.aiInteractionService.find({\n // filters: {\n // parentInteraction: {\n // id: {\n // $eq: aiInteractionId\n // }\n // }\n // }\n // });\n\n // const genAiInteraction = genAiInteractions['records'][0];\n // this.logger.debug(genAiInteraction.message);\n\n // this.logger.debug(`identified gen-ai interaction with id=${genAiInteraction.id}`);\n // this.logger.debug(`proceeding with applying the gen-ai interaction`)\n\n // return {\n // mcpPong: 'v1.0.2',\n // genAiInteraction: {\n // status: genAiInteraction.status,\n // errorCode: genAiInteraction.status === 'failed' ? this.errorMapper.mapMessage(genAiInteraction.errorMessage, genAiInteraction.metadata) : '',\n // errorMessage: genAiInteraction.errorMessage,\n // }\n // };\n // }\n\n // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only\n @ApiBearerAuth(\"jwt\")\n @Post('seed')\n async seedData(@Body() seedData: any) {\n const seederName = seedData?.seeder ?? 'ModuleMetadataSeederService';\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === seederName)\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ${seederName} not found. Does your service have a seed() method?`);\n return;\n }\n this.logger.log(`Running the seed() method for seeder :${seeder.constructor.name}`);\n await seeder.seed();\n return { message: `seed data for ${seederName}` };\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('code-generation/post-process')\n async postProcessCodeGeneration(@Body() config: PostProcessCodeGenConfig) {\n // Set defaults if not provided\n config.runModuleMetadataSeeder = config.runModuleMetadataSeeder ?? true;\n config.runSolidIngestion = config.runSolidIngestion ?? true;\n\n // Run the Module Metadata Seeder Service\n if (config.runModuleMetadataSeeder) {\n this.logger.debug(`Running the Module Metadata Seeder Service as part of post-process code generation`);\n const seeder = this.solidRegistry\n .getSeeders()\n .filter((seeder) => seeder.name === 'ModuleMetadataSeederService')\n .map((seeder) => seeder.instance)\n .pop();\n if (!seeder) {\n this.logger.error(`Seeder service ModuleMetadataSeederService not found. Does your service have a seed() method?`);\n } else {\n await seeder.seed();\n }\n } else {\n this.logger.debug(`Skipping the Module Metadata Seeder Service as part of post-process code generation`);\n }\n\n // Run the Solid ingestion command\n if (config.runSolidIngestion) {\n this.logger.debug(`Running the Solid ingestion command as part of post-process code generation`);\n\n // TODO: disabled this till we figure out a way to make this stable...\n // This keeps failing for a variety of reasons... \n // await this.ingestMetadataService.ingest();\n }\n }\n\n\n // @Public()\n // @Get('play')\n // play() {\n // return this.solidRegistry.getControllers();\n // }\n\n // //This method identifies a provider as a seeder if it has a seed method i.e duck typing\n // private isSeeder(provider: InstanceWrapper) {\n // const { instance } = provider;\n // if (!instance) return false;\n\n // const seedMethod = this.metadataScanner\n // .getAllMethodNames(Object.getPrototypeOf(instance))\n // .find((methodName) => methodName === 'seed');\n // if (!seedMethod) return false;\n // return true;\n // }\n\n}\n"]}
@@ -1,13 +1,11 @@
1
1
  import { SolidRegistry } from "../helpers/solid-registry";
2
- import { IngestMetadataService } from "../services/genai/ingest-metadata.service";
3
2
  export declare class SeedData {
4
3
  seeder: string;
5
4
  }
6
5
  export declare class TestController {
7
6
  private readonly solidRegistry;
8
- private readonly ingestMetadataService;
9
7
  private readonly logger;
10
- constructor(solidRegistry: SolidRegistry, ingestMetadataService: IngestMetadataService);
8
+ constructor(solidRegistry: SolidRegistry);
11
9
  uploadData(files: Array<Express.Multer.File>, body: any): {
12
10
  message: string;
13
11
  fileNames: string[];
@@ -16,8 +14,5 @@ export declare class TestController {
16
14
  uploadFile(file: Express.Multer.File, body: any): {
17
15
  filename: string;
18
16
  };
19
- mcpIngest(file: Express.Multer.File, body: any): Promise<{
20
- ok: boolean;
21
- }>;
22
17
  }
23
18
  //# sourceMappingURL=test.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/test.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAEnF,qBAAa,QAAQ;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAEa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IAHxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAEvC,aAAa,EAAE,aAAa,EAC5B,qBAAqB,EAAE,qBAAqB;IAM/D,UAAU,CAAkB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAU,IAAI,EAAE,GAAG;;;;;IAOhF,UAAU,CAAiB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAU,IAAI,EAAE,GAAG;;;IAWjE,SAAS,CAAiB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAU,IAAI,EAAE,GAAG;;;CAI7E"}
1
+ {"version":3,"file":"test.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/test.controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,qBAAa,QAAQ;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAEa,cAAc;IAGvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAFhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAEvC,aAAa,EAAE,aAAa;IAM/C,UAAU,CAAkB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAU,IAAI,EAAE,GAAG;;;;;IAOhF,UAAU,CAAiB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAU,IAAI,EAAE,GAAG;;;CAQxE"}
@@ -21,14 +21,12 @@ const swagger_1 = require("@nestjs/swagger");
21
21
  const solid_registry_1 = require("../helpers/solid-registry");
22
22
  const auth_decorator_1 = require("../decorators/auth.decorator");
23
23
  const auth_type_enum_1 = require("../enums/auth-type.enum");
24
- const ingest_metadata_service_1 = require("../services/genai/ingest-metadata.service");
25
24
  class SeedData {
26
25
  }
27
26
  exports.SeedData = SeedData;
28
27
  let TestController = TestController_1 = class TestController {
29
- constructor(solidRegistry, ingestMetadataService) {
28
+ constructor(solidRegistry) {
30
29
  this.solidRegistry = solidRegistry;
31
- this.ingestMetadataService = ingestMetadataService;
32
30
  this.logger = new common_1.Logger(TestController_1.name);
33
31
  }
34
32
  uploadData(files, body) {
@@ -39,10 +37,6 @@ let TestController = TestController_1 = class TestController {
39
37
  this.logger.debug(body);
40
38
  return { filename: file.originalname };
41
39
  }
42
- async mcpIngest(file, body) {
43
- await this.ingestMetadataService.ingest();
44
- return { ok: true };
45
- }
46
40
  };
47
41
  exports.TestController = TestController;
48
42
  __decorate([
@@ -67,21 +61,9 @@ __decorate([
67
61
  __metadata("design:paramtypes", [Object, Object]),
68
62
  __metadata("design:returntype", void 0)
69
63
  ], TestController.prototype, "uploadFile", null);
70
- __decorate([
71
- (0, swagger_1.ApiBearerAuth)("jwt"),
72
- (0, common_1.Post)('mcp/ingest'),
73
- (0, common_1.UseInterceptors)((0, platform_express_1.FileInterceptor)('file')),
74
- openapi.ApiResponse({ status: 201 }),
75
- __param(0, (0, common_1.UploadedFile)()),
76
- __param(1, (0, common_1.Body)()),
77
- __metadata("design:type", Function),
78
- __metadata("design:paramtypes", [Object, Object]),
79
- __metadata("design:returntype", Promise)
80
- ], TestController.prototype, "mcpIngest", null);
81
64
  exports.TestController = TestController = TestController_1 = __decorate([
82
65
  (0, common_1.Controller)('test'),
83
66
  (0, swagger_1.ApiTags)("Solid Core"),
84
- __metadata("design:paramtypes", [solid_registry_1.SolidRegistry,
85
- ingest_metadata_service_1.IngestMetadataService])
67
+ __metadata("design:paramtypes", [solid_registry_1.SolidRegistry])
86
68
  ], TestController);
87
69
  //# sourceMappingURL=test.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.controller.js","sourceRoot":"","sources":["../../src/controllers/test.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA8G;AAC9G,+DAAgF;AAChF,6CAAyD;AACzD,8DAA2D;AAC3D,iEAAqD;AACrD,4DAAoD;AACpD,uFAAmF;AAEnF,MAAa,QAAQ;CAEpB;AAFD,4BAEC;AAIM,IAAM,cAAc,sBAApB,MAAM,cAAc;IAEzB,YACmB,aAA4B,EAC5B,qBAA4C;QAD5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,0BAAqB,GAArB,qBAAqB,CAAuB;QAH9C,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAItD,CAAC;IAKL,UAAU,CAAkB,KAAiC,EAAU,IAAS;QAC9E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjG,CAAC;IAKD,UAAU,CAAiB,IAAyB,EAAU,IAAS;QAErE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAKK,AAAN,KAAK,CAAC,SAAS,CAAiB,IAAyB,EAAU,IAAS;QAC1E,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;CACF,CAAA;AAhCY,wCAAc;AAUzB;IAHC,IAAA,qBAAI,EAAC,yBAAQ,CAAC,IAAI,CAAC;IACnB,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;IACtC,IAAA,aAAI,EAAC,SAAS,CAAC;;IACJ,WAAA,IAAA,sBAAa,GAAE,CAAA;IAAqC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAnC,KAAK;;gDAEvC;AAKD;IAHC,IAAA,qBAAI,EAAC,yBAAQ,CAAC,IAAI,CAAC;IACnB,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,wBAAe,EAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC;;IAC7B,WAAA,IAAA,qBAAY,GAAE,CAAA;IAA6B,WAAA,IAAA,aAAI,GAAE,CAAA;;;;gDAM5D;AAKK;IAHL,IAAA,uBAAa,EAAC,KAAK,CAAC;IACpB,IAAA,aAAI,EAAC,YAAY,CAAC;IAClB,IAAA,wBAAe,EAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC;;IACxB,WAAA,IAAA,qBAAY,GAAE,CAAA;IAA6B,WAAA,IAAA,aAAI,GAAE,CAAA;;;;+CAGjE;yBA/BU,cAAc;IAF1B,IAAA,mBAAU,EAAC,MAAM,CAAC;IAClB,IAAA,iBAAO,EAAC,YAAY,CAAC;qCAIc,8BAAa;QACL,+CAAqB;GAJpD,cAAc,CAgC1B","sourcesContent":["import { Body, Controller, Logger, Post, UploadedFile, UploadedFiles, UseInterceptors } from \"@nestjs/common\";\nimport { AnyFilesInterceptor, FileInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiTags } from \"@nestjs/swagger\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { Auth } from \"src/decorators/auth.decorator\";\nimport { AuthType } from \"src/enums/auth-type.enum\";\nimport { IngestMetadataService } from \"src/services/genai/ingest-metadata.service\";\n\nexport class SeedData {\n seeder: string;\n}\n\n@Controller('test')\n@ApiTags(\"Solid Core\")\nexport class TestController {\n private readonly logger = new Logger(TestController.name);\n constructor(\n private readonly solidRegistry: SolidRegistry,\n private readonly ingestMetadataService: IngestMetadataService,\n ) { }\n\n @Auth(AuthType.None)\n @UseInterceptors(AnyFilesInterceptor())\n @Post('uploads')\n uploadData(@UploadedFiles() files: Array<Express.Multer.File>, @Body() body: any) {\n return { message: 'file uploaded', fileNames: files.map(f => f.originalname), formData: body };\n }\n\n @Auth(AuthType.None)\n @Post('upload')\n @UseInterceptors(FileInterceptor('file')) // 'file' here is the name of the field in the form\n uploadFile(@UploadedFile() file: Express.Multer.File, @Body() body: any) {\n // console.log(file);\n this.logger.debug(file);\n // console.log(body);\n this.logger.debug(body);\n return { filename: file.originalname };\n }\n\n @ApiBearerAuth(\"jwt\")\n @Post('mcp/ingest')\n @UseInterceptors(FileInterceptor('file'))\n async mcpIngest(@UploadedFile() file: Express.Multer.File, @Body() body: any) {\n await this.ingestMetadataService.ingest();\n return { ok: true };\n }\n}\n"]}
1
+ {"version":3,"file":"test.controller.js","sourceRoot":"","sources":["../../src/controllers/test.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAA8G;AAC9G,+DAAgF;AAChF,6CAAyD;AACzD,8DAA2D;AAC3D,iEAAqD;AACrD,4DAAoD;AAEpD,MAAa,QAAQ;CAEpB;AAFD,4BAEC;AAIM,IAAM,cAAc,sBAApB,MAAM,cAAc;IAEzB,YACmB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAF9B,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAGtD,CAAC;IAKL,UAAU,CAAkB,KAAiC,EAAU,IAAS;QAC9E,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjG,CAAC;IAKD,UAAU,CAAiB,IAAyB,EAAU,IAAS;QAErE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;CAEF,CAAA;AAxBY,wCAAc;AASzB;IAHC,IAAA,qBAAI,EAAC,yBAAQ,CAAC,IAAI,CAAC;IACnB,IAAA,wBAAe,EAAC,IAAA,sCAAmB,GAAE,CAAC;IACtC,IAAA,aAAI,EAAC,SAAS,CAAC;;IACJ,WAAA,IAAA,sBAAa,GAAE,CAAA;IAAqC,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAnC,KAAK;;gDAEvC;AAKD;IAHC,IAAA,qBAAI,EAAC,yBAAQ,CAAC,IAAI,CAAC;IACnB,IAAA,aAAI,EAAC,QAAQ,CAAC;IACd,IAAA,wBAAe,EAAC,IAAA,kCAAe,EAAC,MAAM,CAAC,CAAC;;IAC7B,WAAA,IAAA,qBAAY,GAAE,CAAA;IAA6B,WAAA,IAAA,aAAI,GAAE,CAAA;;;;gDAM5D;yBAtBU,cAAc;IAF1B,IAAA,mBAAU,EAAC,MAAM,CAAC;IAClB,IAAA,iBAAO,EAAC,YAAY,CAAC;qCAIc,8BAAa;GAHpC,cAAc,CAwB1B","sourcesContent":["import { Body, Controller, Logger, Post, UploadedFile, UploadedFiles, UseInterceptors } from \"@nestjs/common\";\nimport { AnyFilesInterceptor, FileInterceptor } from \"@nestjs/platform-express\";\nimport { ApiBearerAuth, ApiTags } from \"@nestjs/swagger\";\nimport { SolidRegistry } from \"src/helpers/solid-registry\";\nimport { Auth } from \"src/decorators/auth.decorator\";\nimport { AuthType } from \"src/enums/auth-type.enum\";\n\nexport class SeedData {\n seeder: string;\n}\n\n@Controller('test')\n@ApiTags(\"Solid Core\")\nexport class TestController {\n private readonly logger = new Logger(TestController.name);\n constructor(\n private readonly solidRegistry: SolidRegistry,\n ) { }\n\n @Auth(AuthType.None)\n @UseInterceptors(AnyFilesInterceptor())\n @Post('uploads')\n uploadData(@UploadedFiles() files: Array<Express.Multer.File>, @Body() body: any) {\n return { message: 'file uploaded', fileNames: files.map(f => f.originalname), formData: body };\n }\n\n @Auth(AuthType.None)\n @Post('upload')\n @UseInterceptors(FileInterceptor('file')) // 'file' here is the name of the field in the form\n uploadFile(@UploadedFile() file: Express.Multer.File, @Body() body: any) {\n // console.log(file);\n this.logger.debug(file);\n // console.log(body);\n this.logger.debug(body);\n return { filename: file.originalname };\n }\n\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"create-permission-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-permission-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,qBAAa,2BAA2B;IAGpC,IAAI,EAAE,MAAM,CAAC;IAMb,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAI/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"create-permission-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-permission-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,qBAAa,2BAA2B;IAIpC,IAAI,EAAE,MAAM,CAAC;IAMb,KAAK,EAAE,qBAAqB,EAAE,CAAC;IAI/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IAInB,YAAY,EAAE,MAAM,CAAC;CACxB"}
@@ -15,6 +15,7 @@ const class_validator_1 = require("class-validator");
15
15
  const class_validator_2 = require("class-validator");
16
16
  const class_transformer_1 = require("class-transformer");
17
17
  const update_role_metadata_dto_1 = require("./update-role-metadata.dto");
18
+ const swagger_1 = require("@nestjs/swagger");
18
19
  class CreatePermissionMetadataDto {
19
20
  static _OPENAPI_METADATA_FACTORY() {
20
21
  return { name: { required: true, type: () => String }, roles: { required: true, type: () => [require("./update-role-metadata.dto").UpdateRoleMetadataDto] }, rolesIds: { required: true, type: () => [Number] }, rolesCommand: { required: true, type: () => String } };
@@ -24,6 +25,7 @@ exports.CreatePermissionMetadataDto = CreatePermissionMetadataDto;
24
25
  __decorate([
25
26
  (0, class_validator_2.IsNotEmpty)(),
26
27
  (0, class_validator_1.IsString)(),
28
+ (0, swagger_1.ApiProperty)(),
27
29
  __metadata("design:type", String)
28
30
  ], CreatePermissionMetadataDto.prototype, "name", void 0);
29
31
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"create-permission-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-permission-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAkF;AAClF,yDAAyC;AACzC,yEAA0E;AAC1E,MAAa,2BAA2B;;;;CAkBvC;AAlBD,kEAkBC;AAfG;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yDACE;AAMb;IAJC,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,gDAAqB,CAAC;IACjC,IAAA,4BAAU,GAAE;;0DACkB;AAI/B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;6DACS;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iEACQ","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdateRoleMetadataDto } from 'src/dtos/update-role-metadata.dto';\nexport class CreatePermissionMetadataDto {\n @IsNotEmpty()\n @IsString()\n name: string;\n\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateRoleMetadataDto)\n @IsOptional()\n roles: UpdateRoleMetadataDto[];\n\n @IsOptional()\n @IsArray()\n rolesIds: number[];\n\n @IsString()\n @IsOptional()\n rolesCommand: string;\n}"]}
1
+ {"version":3,"file":"create-permission-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-permission-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAkF;AAClF,yDAAyC;AACzC,yEAA0E;AAC1E,6CAA8C;AAE9C,MAAa,2BAA2B;;;;CAmBvC;AAnBD,kEAmBC;AAfG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;yDACD;AAMb;IAJC,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,gDAAqB,CAAC;IACjC,IAAA,4BAAU,GAAE;;0DACkB;AAI/B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;6DACS;AAInB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iEACQ","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdateRoleMetadataDto } from 'src/dtos/update-role-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport class CreatePermissionMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateRoleMetadataDto)\n @IsOptional()\n roles: UpdateRoleMetadataDto[];\n\n @IsOptional()\n @IsArray()\n rolesIds: number[];\n\n @IsString()\n @IsOptional()\n rolesCommand: string;\n}"]}
@@ -15,5 +15,7 @@ export declare class CreateRoleMetadataDto {
15
15
  menuItems: UpdateMenuItemMetadataDto[];
16
16
  menuItemsIds: number[];
17
17
  menuItemsCommand: string;
18
+ moduleId: number;
19
+ moduleUserKey: string;
18
20
  }
19
21
  //# sourceMappingURL=create-role-metadata.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAOb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAK3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,kBAAkB,EAAE,MAAM,CAAC;IAO3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAKvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAKnB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAKvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,gBAAgB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"create-role-metadata.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AAGnF,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,eAAO,MAAM,gBAAgB,WAAW,CAAC;AAEzC,qBAAa,qBAAqB;IAI9B,IAAI,EAAE,MAAM,CAAC;IAOb,WAAW,EAAE,2BAA2B,EAAE,CAAC;IAK3C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,kBAAkB,EAAE,MAAM,CAAC;IAO3B,KAAK,EAAE,aAAa,EAAE,CAAC;IAKvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAKnB,YAAY,EAAE,MAAM,CAAC;IAOrB,SAAS,EAAE,yBAAyB,EAAE,CAAC;IAKvC,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,gBAAgB,EAAE,MAAM,CAAC;IAKzB,QAAQ,EAAE,MAAM,CAAC;IAKjB,aAAa,EAAE,MAAM,CAAC;CACzB"}
@@ -23,7 +23,7 @@ exports.INTERNAL_ROLE_NAME = 'Internal User';
23
23
  exports.PUBLIC_ROLE_NAME = 'Public';
24
24
  class CreateRoleMetadataDto {
25
25
  static _OPENAPI_METADATA_FACTORY() {
26
- return { name: { required: true, type: () => String }, permissions: { required: true, type: () => [require("./update-permission-metadata.dto").UpdatePermissionMetadataDto] }, permissionsIds: { required: true, type: () => [Number] }, permissionsCommand: { required: true, type: () => String }, users: { required: true, type: () => [require("./update-user.dto").UpdateUserDto] }, usersIds: { required: true, type: () => [Number] }, usersCommand: { required: true, type: () => String }, menuItems: { required: true, type: () => [require("./update-menu-item-metadata.dto").UpdateMenuItemMetadataDto] }, menuItemsIds: { required: true, type: () => [Number] }, menuItemsCommand: { required: true, type: () => String } };
26
+ return { name: { required: true, type: () => String }, permissions: { required: true, type: () => [require("./update-permission-metadata.dto").UpdatePermissionMetadataDto] }, permissionsIds: { required: true, type: () => [Number] }, permissionsCommand: { required: true, type: () => String }, users: { required: true, type: () => [require("./update-user.dto").UpdateUserDto] }, usersIds: { required: true, type: () => [Number] }, usersCommand: { required: true, type: () => String }, menuItems: { required: true, type: () => [require("./update-menu-item-metadata.dto").UpdateMenuItemMetadataDto] }, menuItemsIds: { required: true, type: () => [Number] }, menuItemsCommand: { required: true, type: () => String }, moduleId: { required: true, type: () => Number }, moduleUserKey: { required: true, type: () => String } };
27
27
  }
28
28
  }
29
29
  exports.CreateRoleMetadataDto = CreateRoleMetadataDto;
@@ -93,4 +93,16 @@ __decorate([
93
93
  (0, swagger_1.ApiProperty)(),
94
94
  __metadata("design:type", String)
95
95
  ], CreateRoleMetadataDto.prototype, "menuItemsCommand", void 0);
96
+ __decorate([
97
+ (0, class_validator_2.IsOptional)(),
98
+ (0, class_validator_2.IsInt)(),
99
+ (0, swagger_1.ApiProperty)(),
100
+ __metadata("design:type", Number)
101
+ ], CreateRoleMetadataDto.prototype, "moduleId", void 0);
102
+ __decorate([
103
+ (0, class_validator_1.IsString)(),
104
+ (0, class_validator_2.IsOptional)(),
105
+ (0, swagger_1.ApiProperty)(),
106
+ __metadata("design:type", String)
107
+ ], CreateRoleMetadataDto.prototype, "moduleUserKey", void 0);
96
108
  //# sourceMappingURL=create-role-metadata.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAkF;AAClF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAEjC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAa,qBAAqB;;;;CAwDjC;AAxDD,sDAwDC;AApDG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAOb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAK3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAKzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAO3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAOrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAKvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAKvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport const ADMIN_ROLE_NAME = 'Admin';\nexport const INTERNAL_ROLE_NAME = 'Internal User';\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n}\n"]}
1
+ {"version":3,"file":"create-role-metadata.dto.js","sourceRoot":"","sources":["../../src/dtos/create-role-metadata.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,qDAA2C;AAC3C,qDAAyF;AACzF,yDAAyC;AACzC,qFAAsF;AACtF,uDAAyD;AACzD,mFAAmF;AACnF,6CAA8C;AAEjC,QAAA,eAAe,GAAG,OAAO,CAAC;AAC1B,QAAA,kBAAkB,GAAG,eAAe,CAAC;AACrC,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAEzC,MAAa,qBAAqB;;;;CAkEjC;AAlED,sDAkEC;AA9DG;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAW,GAAE;;mDACD;AAOb;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4DAA2B,CAAC;;0DACG;AAK3C;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;6DACW;AAKzB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;iEACa;AAO3B;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,+BAAa,CAAC;;oDACH;AAKvB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;uDACK;AAKnB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;2DACO;AAOrB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;IACb,IAAA,yBAAO,GAAE;IACT,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9B,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,yDAAyB,CAAC;;wDACC;AAKvC;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;IACT,IAAA,qBAAW,GAAE;;2DACS;AAKvB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;+DACW;AAKzB;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAW,GAAE;;uDACG;AAKjB;IAHC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAW,GAAE;;4DACQ","sourcesContent":["import { IsString } from 'class-validator';\nimport { IsNotEmpty, ValidateNested, IsArray, IsOptional, IsInt } from 'class-validator';\nimport { Type } from 'class-transformer';\nimport { UpdatePermissionMetadataDto } from 'src/dtos/update-permission-metadata.dto';\nimport { UpdateUserDto } from 'src/dtos/update-user.dto';\nimport { UpdateMenuItemMetadataDto } from 'src/dtos/update-menu-item-metadata.dto';\nimport { ApiProperty } from '@nestjs/swagger';\n\nexport const ADMIN_ROLE_NAME = 'Admin';\nexport const INTERNAL_ROLE_NAME = 'Internal User';\nexport const PUBLIC_ROLE_NAME = 'Public';\n\nexport class CreateRoleMetadataDto {\n @IsNotEmpty()\n @IsString()\n @ApiProperty()\n name: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdatePermissionMetadataDto)\n permissions: UpdatePermissionMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n permissionsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n permissionsCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateUserDto)\n users: UpdateUserDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n usersIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n usersCommand: string;\n\n @IsOptional()\n @ApiProperty()\n @IsArray()\n @ValidateNested({ each: true })\n @Type(() => UpdateMenuItemMetadataDto)\n menuItems: UpdateMenuItemMetadataDto[];\n\n @IsOptional()\n @IsArray()\n @ApiProperty()\n menuItemsIds: number[];\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n menuItemsCommand: string;\n\n @IsOptional()\n @IsInt()\n @ApiProperty()\n moduleId: number;\n\n @IsString()\n @IsOptional()\n @ApiProperty()\n moduleUserKey: string;\n}\n"]}
@@ -5,7 +5,9 @@ export declare class ImportInstructionsResponseDto {
5
5
  export declare class StandardImportInstructionsResponseDto {
6
6
  requiredFields: string[];
7
7
  dateFields: string[];
8
+ dateFieldFormat: string;
8
9
  dateTimeFields: string[];
10
+ dateTimeFieldFormat: string;
9
11
  numberFields: string[];
10
12
  emailFields: string[];
11
13
  regexFields: RegexFieldInstructionResponseDto[];
@@ -1 +1 @@
1
- {"version":3,"file":"import-instructions.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/import-instructions.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,6BAA6B;IACtC,QAAQ,EAAE,qCAAqC,CAAC;IAKhD,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,qCAAqC;IAK9C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,WAAW,EAAE,MAAM,EAAE,CAAC;IAKtB,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAKhD,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,gCAAgC;IAKzC,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"import-instructions.dto.d.ts","sourceRoot":"","sources":["../../src/dtos/import-instructions.dto.ts"],"names":[],"mappings":"AAEA,qBAAa,6BAA6B;IACtC,QAAQ,EAAE,qCAAqC,CAAC;IAKhD,MAAM,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qBAAa,qCAAqC;IAK9C,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,eAAe,EAAE,MAAM,CAAC;IAKxB,cAAc,EAAE,MAAM,EAAE,CAAC;IAKzB,mBAAmB,EAAE,MAAM,CAAC;IAK5B,YAAY,EAAE,MAAM,EAAE,CAAC;IAKvB,WAAW,EAAE,MAAM,EAAE,CAAC;IAKtB,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAKhD,UAAU,EAAE,MAAM,EAAE,CAAC;IAKrB,aAAa,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,qBAAa,gCAAgC;IAKzC,SAAS,EAAE,MAAM,CAAC;IAKlB,YAAY,EAAE,MAAM,CAAC;CACxB"}