@solidxai/core 0.1.13-beta.2 → 0.1.13-beta.20

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 (512) hide show
  1. package/CHANGELOG.md +9517 -0
  2. package/README.md +19 -0
  3. package/dist/commands/run-tests.command.d.ts +9 -1
  4. package/dist/commands/run-tests.command.d.ts.map +1 -1
  5. package/dist/commands/run-tests.command.js +69 -6
  6. package/dist/commands/run-tests.command.js.map +1 -1
  7. package/dist/commands/seed.command.d.ts +2 -0
  8. package/dist/commands/seed.command.d.ts.map +1 -1
  9. package/dist/commands/seed.command.js +21 -0
  10. package/dist/commands/seed.command.js.map +1 -1
  11. package/dist/config/cache.options.d.ts.map +1 -1
  12. package/dist/config/cache.options.js +2 -2
  13. package/dist/config/cache.options.js.map +1 -1
  14. package/dist/constants/chatter-message.constants.d.ts +1 -0
  15. package/dist/constants/chatter-message.constants.d.ts.map +1 -1
  16. package/dist/constants/chatter-message.constants.js +3 -1
  17. package/dist/constants/chatter-message.constants.js.map +1 -1
  18. package/dist/constants/draft-publish-fields.d.ts +2 -0
  19. package/dist/constants/draft-publish-fields.d.ts.map +1 -0
  20. package/dist/constants/draft-publish-fields.js +5 -0
  21. package/dist/constants/draft-publish-fields.js.map +1 -0
  22. package/dist/constants/error-messages.d.ts +7 -0
  23. package/dist/constants/error-messages.d.ts.map +1 -1
  24. package/dist/constants/error-messages.js +7 -0
  25. package/dist/constants/error-messages.js.map +1 -1
  26. package/dist/constants/media-file-types.d.ts +12 -0
  27. package/dist/constants/media-file-types.d.ts.map +1 -1
  28. package/dist/constants/media-file-types.js +65 -1
  29. package/dist/constants/media-file-types.js.map +1 -1
  30. package/dist/constants/success-messages.d.ts +3 -0
  31. package/dist/constants/success-messages.d.ts.map +1 -1
  32. package/dist/constants/success-messages.js +3 -0
  33. package/dist/constants/success-messages.js.map +1 -1
  34. package/dist/constants/user.constants.d.ts +2 -0
  35. package/dist/constants/user.constants.d.ts.map +1 -0
  36. package/dist/constants/user.constants.js +5 -0
  37. package/dist/constants/user.constants.js.map +1 -0
  38. package/dist/controllers/action-metadata.controller.d.ts +1 -1
  39. package/dist/controllers/action-metadata.controller.js +1 -1
  40. package/dist/controllers/agent-event.controller.d.ts +1 -1
  41. package/dist/controllers/agent-event.controller.js +1 -1
  42. package/dist/controllers/agent-session.controller.d.ts +1 -1
  43. package/dist/controllers/agent-session.controller.js +1 -1
  44. package/dist/controllers/authentication.controller.d.ts +1 -1
  45. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  46. package/dist/controllers/authentication.controller.js +4 -3
  47. package/dist/controllers/authentication.controller.js.map +1 -1
  48. package/dist/controllers/chatter-message.controller.d.ts +5 -0
  49. package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
  50. package/dist/controllers/chatter-message.controller.js +14 -0
  51. package/dist/controllers/chatter-message.controller.js.map +1 -1
  52. package/dist/controllers/dashboard-user-layout.controller.d.ts +1 -1
  53. package/dist/controllers/dashboard-user-layout.controller.js +1 -1
  54. package/dist/controllers/email-template.controller.d.ts +1 -1
  55. package/dist/controllers/email-template.controller.js +1 -1
  56. package/dist/controllers/export-template.controller.d.ts +1 -1
  57. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  58. package/dist/controllers/export-template.controller.js +6 -4
  59. package/dist/controllers/export-template.controller.js.map +1 -1
  60. package/dist/controllers/export-transaction.controller.d.ts +1 -1
  61. package/dist/controllers/export-transaction.controller.js +1 -1
  62. package/dist/controllers/field-metadata.controller.d.ts +2 -2
  63. package/dist/controllers/import-transaction-error-log.controller.d.ts +1 -1
  64. package/dist/controllers/import-transaction-error-log.controller.js +1 -1
  65. package/dist/controllers/import-transaction.controller.d.ts +1 -1
  66. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  67. package/dist/controllers/import-transaction.controller.js +7 -7
  68. package/dist/controllers/import-transaction.controller.js.map +1 -1
  69. package/dist/controllers/list-of-values.controller.d.ts +1 -1
  70. package/dist/controllers/list-of-values.controller.js +1 -1
  71. package/dist/controllers/locale.controller.d.ts +1 -1
  72. package/dist/controllers/locale.controller.js +1 -1
  73. package/dist/controllers/mcp-audit-log.controller.d.ts +1 -1
  74. package/dist/controllers/mcp-audit-log.controller.js +1 -1
  75. package/dist/controllers/media.controller.d.ts +2 -2
  76. package/dist/controllers/media.controller.d.ts.map +1 -1
  77. package/dist/controllers/media.controller.js +13 -8
  78. package/dist/controllers/media.controller.js.map +1 -1
  79. package/dist/controllers/menu-item-metadata.controller.d.ts +1 -1
  80. package/dist/controllers/menu-item-metadata.controller.js +1 -1
  81. package/dist/controllers/model-sequence.controller.d.ts +1 -1
  82. package/dist/controllers/model-sequence.controller.js +1 -1
  83. package/dist/controllers/module-package.controller.d.ts.map +1 -1
  84. package/dist/controllers/module-package.controller.js +2 -3
  85. package/dist/controllers/module-package.controller.js.map +1 -1
  86. package/dist/controllers/mpin-authentication.controller.d.ts +44 -0
  87. package/dist/controllers/mpin-authentication.controller.d.ts.map +1 -0
  88. package/dist/controllers/mpin-authentication.controller.js +102 -0
  89. package/dist/controllers/mpin-authentication.controller.js.map +1 -0
  90. package/dist/controllers/mq-message-queue.controller.d.ts +1 -1
  91. package/dist/controllers/mq-message-queue.controller.js +1 -1
  92. package/dist/controllers/mq-message.controller.d.ts +1 -1
  93. package/dist/controllers/mq-message.controller.js +1 -1
  94. package/dist/controllers/permission-metadata.controller.d.ts +1 -1
  95. package/dist/controllers/permission-metadata.controller.js +1 -1
  96. package/dist/controllers/role-metadata.controller.d.ts +1 -1
  97. package/dist/controllers/role-metadata.controller.js +1 -1
  98. package/dist/controllers/saved-filters.controller.d.ts +1 -1
  99. package/dist/controllers/saved-filters.controller.js +1 -1
  100. package/dist/controllers/scheduled-job.controller.d.ts +1 -1
  101. package/dist/controllers/scheduled-job.controller.js +1 -1
  102. package/dist/controllers/security-rule.controller.d.ts +1 -1
  103. package/dist/controllers/security-rule.controller.js +1 -1
  104. package/dist/controllers/sms-template.controller.d.ts +1 -1
  105. package/dist/controllers/sms-template.controller.js +1 -1
  106. package/dist/controllers/user-activity-history.controller.d.ts +1 -1
  107. package/dist/controllers/user-activity-history.controller.js +1 -1
  108. package/dist/controllers/user-view-metadata.controller.d.ts +1 -1
  109. package/dist/controllers/user-view-metadata.controller.js +1 -1
  110. package/dist/controllers/user.controller.d.ts +2 -2
  111. package/dist/controllers/user.controller.js +2 -2
  112. package/dist/controllers/view-metadata.controller.d.ts +2 -2
  113. package/dist/controllers/view-metadata.controller.js +1 -1
  114. package/dist/controllers/workflow-definition.controller.d.ts +1 -1
  115. package/dist/controllers/workflow-definition.controller.js +1 -1
  116. package/dist/controllers/workflow-execution-artifact.controller.d.ts +1 -1
  117. package/dist/controllers/workflow-execution-artifact.controller.js +1 -1
  118. package/dist/controllers/workflow-execution-log.controller.d.ts +1 -1
  119. package/dist/controllers/workflow-execution-log.controller.js +1 -1
  120. package/dist/controllers/workflow-execution.controller.d.ts +1 -1
  121. package/dist/controllers/workflow-execution.controller.js +1 -1
  122. package/dist/controllers/workflow-secret.controller.d.ts +1 -1
  123. package/dist/controllers/workflow-secret.controller.js +1 -1
  124. package/dist/controllers/workflow-step-execution.controller.d.ts +1 -1
  125. package/dist/controllers/workflow-step-execution.controller.js +1 -1
  126. package/dist/controllers/workflow-trigger-execution.controller.d.ts +1 -1
  127. package/dist/controllers/workflow-trigger-execution.controller.js +1 -1
  128. package/dist/dtos/basic-filters.dto.d.ts +0 -1
  129. package/dist/dtos/basic-filters.dto.d.ts.map +1 -1
  130. package/dist/dtos/basic-filters.dto.js +1 -6
  131. package/dist/dtos/basic-filters.dto.js.map +1 -1
  132. package/dist/dtos/change-mpin.dto.d.ts +6 -0
  133. package/dist/dtos/change-mpin.dto.d.ts.map +1 -0
  134. package/dist/dtos/change-mpin.dto.js +39 -0
  135. package/dist/dtos/change-mpin.dto.js.map +1 -0
  136. package/dist/dtos/create-field-metadata.dto.d.ts +2 -6
  137. package/dist/dtos/create-field-metadata.dto.d.ts.map +1 -1
  138. package/dist/dtos/create-field-metadata.dto.js +4 -10
  139. package/dist/dtos/create-field-metadata.dto.js.map +1 -1
  140. package/dist/dtos/create-model-sequence.dto.d.ts +1 -1
  141. package/dist/dtos/create-model-sequence.dto.d.ts.map +1 -1
  142. package/dist/dtos/create-model-sequence.dto.js +1 -1
  143. package/dist/dtos/create-model-sequence.dto.js.map +1 -1
  144. package/dist/dtos/mpin-login.dto.d.ts +5 -0
  145. package/dist/dtos/mpin-login.dto.d.ts.map +1 -0
  146. package/dist/dtos/mpin-login.dto.js +33 -0
  147. package/dist/dtos/mpin-login.dto.js.map +1 -0
  148. package/dist/dtos/setup-mpin.dto.d.ts +7 -0
  149. package/dist/dtos/setup-mpin.dto.d.ts.map +1 -0
  150. package/dist/dtos/setup-mpin.dto.js +47 -0
  151. package/dist/dtos/setup-mpin.dto.js.map +1 -0
  152. package/dist/entities/common.entity.d.ts +4 -0
  153. package/dist/entities/common.entity.d.ts.map +1 -1
  154. package/dist/entities/common.entity.js +25 -1
  155. package/dist/entities/common.entity.js.map +1 -1
  156. package/dist/entities/dashboard-user-layout.entity.js +2 -2
  157. package/dist/entities/dashboard-user-layout.entity.js.map +1 -1
  158. package/dist/entities/saved-filters.entity.js +3 -3
  159. package/dist/entities/saved-filters.entity.js.map +1 -1
  160. package/dist/entities/user-device-credential.entity.d.ts +18 -0
  161. package/dist/entities/user-device-credential.entity.d.ts.map +1 -0
  162. package/dist/entities/user-device-credential.entity.js +91 -0
  163. package/dist/entities/user-device-credential.entity.js.map +1 -0
  164. package/dist/entities/user.entity.d.ts.map +1 -1
  165. package/dist/entities/user.entity.js +36 -0
  166. package/dist/entities/user.entity.js.map +1 -1
  167. package/dist/entities/view-metadata.entity.js.map +1 -1
  168. package/dist/entities/workflow-execution-artifact.entity.d.ts.map +1 -1
  169. package/dist/entities/workflow-execution-artifact.entity.js +4 -3
  170. package/dist/entities/workflow-execution-artifact.entity.js.map +1 -1
  171. package/dist/entities/workflow-execution-log.entity.d.ts.map +1 -1
  172. package/dist/entities/workflow-execution-log.entity.js +4 -3
  173. package/dist/entities/workflow-execution-log.entity.js.map +1 -1
  174. package/dist/entities/workflow-execution.entity.d.ts.map +1 -1
  175. package/dist/entities/workflow-execution.entity.js +3 -2
  176. package/dist/entities/workflow-execution.entity.js.map +1 -1
  177. package/dist/entities/workflow-secret.entity.d.ts.map +1 -1
  178. package/dist/entities/workflow-secret.entity.js +3 -2
  179. package/dist/entities/workflow-secret.entity.js.map +1 -1
  180. package/dist/entities/workflow-step-execution.entity.d.ts.map +1 -1
  181. package/dist/entities/workflow-step-execution.entity.js +3 -2
  182. package/dist/entities/workflow-step-execution.entity.js.map +1 -1
  183. package/dist/entities/workflow-trigger-execution.entity.d.ts.map +1 -1
  184. package/dist/entities/workflow-trigger-execution.entity.js +7 -6
  185. package/dist/entities/workflow-trigger-execution.entity.js.map +1 -1
  186. package/dist/factories/mail.factory.d.ts.map +1 -1
  187. package/dist/factories/mail.factory.js +4 -0
  188. package/dist/factories/mail.factory.js.map +1 -1
  189. package/dist/filters/http-exception.filter.d.ts.map +1 -1
  190. package/dist/filters/http-exception.filter.js +5 -1
  191. package/dist/filters/http-exception.filter.js.map +1 -1
  192. package/dist/helpers/bootstrap.helper.d.ts +5 -2
  193. package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
  194. package/dist/helpers/bootstrap.helper.js +7 -3
  195. package/dist/helpers/bootstrap.helper.js.map +1 -1
  196. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts +1 -0
  197. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.d.ts.map +1 -1
  198. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js +18 -11
  199. package/dist/helpers/field-crud-managers/MediaFieldCrudManager.js.map +1 -1
  200. package/dist/helpers/file-download.helper.d.ts +9 -0
  201. package/dist/helpers/file-download.helper.d.ts.map +1 -0
  202. package/dist/helpers/file-download.helper.js +19 -0
  203. package/dist/helpers/file-download.helper.js.map +1 -0
  204. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  205. package/dist/helpers/model-metadata-helper.service.js +30 -1
  206. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  207. package/dist/helpers/security.helper.d.ts +5 -1
  208. package/dist/helpers/security.helper.d.ts.map +1 -1
  209. package/dist/helpers/security.helper.js +15 -4
  210. package/dist/helpers/security.helper.js.map +1 -1
  211. package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
  212. package/dist/helpers/solid-core-error-codes-provider.service.js +45 -0
  213. package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
  214. package/dist/helpers/solid-microservice-adapter.service.d.ts.map +1 -1
  215. package/dist/helpers/solid-microservice-adapter.service.js +1 -1
  216. package/dist/helpers/solid-microservice-adapter.service.js.map +1 -1
  217. package/dist/helpers/solid-registry.js +1 -1
  218. package/dist/helpers/solid-registry.js.map +1 -1
  219. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
  220. package/dist/helpers/typeorm-db-helper.js +9 -0
  221. package/dist/helpers/typeorm-db-helper.js.map +1 -1
  222. package/dist/index.d.ts +10 -0
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +10 -0
  225. package/dist/index.js.map +1 -1
  226. package/dist/interfaces/active-user-data.interface.d.ts +1 -0
  227. package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
  228. package/dist/interfaces/active-user-data.interface.js.map +1 -1
  229. package/dist/interfaces.d.ts +1 -0
  230. package/dist/interfaces.d.ts.map +1 -1
  231. package/dist/interfaces.js.map +1 -1
  232. package/dist/repository/user-device-credential.repository.d.ts +12 -0
  233. package/dist/repository/user-device-credential.repository.d.ts.map +1 -0
  234. package/dist/repository/user-device-credential.repository.js +34 -0
  235. package/dist/repository/user-device-credential.repository.js.map +1 -0
  236. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  237. package/dist/seeders/module-metadata-seeder.service.js +51 -30
  238. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  239. package/dist/seeders/module-test-data.service.d.ts +3 -1
  240. package/dist/seeders/module-test-data.service.d.ts.map +1 -1
  241. package/dist/seeders/module-test-data.service.js +8 -2
  242. package/dist/seeders/module-test-data.service.js.map +1 -1
  243. package/dist/seeders/seed-data/solid-core-metadata.json +290 -78
  244. package/dist/services/api-key.service.d.ts.map +1 -1
  245. package/dist/services/api-key.service.js +1 -1
  246. package/dist/services/api-key.service.js.map +1 -1
  247. package/dist/services/authentication.service.d.ts +9 -5
  248. package/dist/services/authentication.service.d.ts.map +1 -1
  249. package/dist/services/authentication.service.js +102 -23
  250. package/dist/services/authentication.service.js.map +1 -1
  251. package/dist/services/chatter-message.service.d.ts +15 -1
  252. package/dist/services/chatter-message.service.d.ts.map +1 -1
  253. package/dist/services/chatter-message.service.js +56 -4
  254. package/dist/services/chatter-message.service.js.map +1 -1
  255. package/dist/services/crud-helper.service.d.ts +6 -4
  256. package/dist/services/crud-helper.service.d.ts.map +1 -1
  257. package/dist/services/crud-helper.service.js +32 -48
  258. package/dist/services/crud-helper.service.js.map +1 -1
  259. package/dist/services/crud.service.d.ts +13 -1
  260. package/dist/services/crud.service.d.ts.map +1 -1
  261. package/dist/services/crud.service.js +93 -68
  262. package/dist/services/crud.service.js.map +1 -1
  263. package/dist/services/datasource-introspection.service.d.ts.map +1 -1
  264. package/dist/services/datasource-introspection.service.js.map +1 -1
  265. package/dist/services/draft-publish-helper.service.d.ts +53 -0
  266. package/dist/services/draft-publish-helper.service.d.ts.map +1 -0
  267. package/dist/services/draft-publish-helper.service.js +402 -0
  268. package/dist/services/draft-publish-helper.service.js.map +1 -0
  269. package/dist/services/field-metadata.service.d.ts +2 -2
  270. package/dist/services/field-metadata.service.d.ts.map +1 -1
  271. package/dist/services/field-metadata.service.js +2 -1
  272. package/dist/services/field-metadata.service.js.map +1 -1
  273. package/dist/services/internationalisation-helper.service.d.ts +19 -0
  274. package/dist/services/internationalisation-helper.service.d.ts.map +1 -0
  275. package/dist/services/internationalisation-helper.service.js +107 -0
  276. package/dist/services/internationalisation-helper.service.js.map +1 -0
  277. package/dist/services/locale.service.d.ts +1 -1
  278. package/dist/services/media-storage.utils.d.ts +1 -0
  279. package/dist/services/media-storage.utils.d.ts.map +1 -1
  280. package/dist/services/media-storage.utils.js +12 -1
  281. package/dist/services/media-storage.utils.js.map +1 -1
  282. package/dist/services/media.service.d.ts +3 -2
  283. package/dist/services/media.service.d.ts.map +1 -1
  284. package/dist/services/media.service.js +44 -29
  285. package/dist/services/media.service.js.map +1 -1
  286. package/dist/services/metadata-validation.service.d.ts +7 -0
  287. package/dist/services/metadata-validation.service.d.ts.map +1 -0
  288. package/dist/services/metadata-validation.service.js +42 -0
  289. package/dist/services/metadata-validation.service.js.map +1 -0
  290. package/dist/services/model-metadata.service.d.ts.map +1 -1
  291. package/dist/services/model-metadata.service.js +2 -1
  292. package/dist/services/model-metadata.service.js.map +1 -1
  293. package/dist/services/module-metadata.service.d.ts.map +1 -1
  294. package/dist/services/module-metadata.service.js +2 -1
  295. package/dist/services/module-metadata.service.js.map +1 -1
  296. package/dist/services/mpin.service.d.ts +67 -0
  297. package/dist/services/mpin.service.d.ts.map +1 -0
  298. package/dist/services/mpin.service.js +282 -0
  299. package/dist/services/mpin.service.js.map +1 -0
  300. package/dist/services/object.utils.d.ts +2 -0
  301. package/dist/services/object.utils.d.ts.map +1 -0
  302. package/dist/services/object.utils.js +11 -0
  303. package/dist/services/object.utils.js.map +1 -0
  304. package/dist/services/refresh-token-ids-storage.service.d.ts +25 -6
  305. package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
  306. package/dist/services/refresh-token-ids-storage.service.js +80 -42
  307. package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
  308. package/dist/services/setting.service.d.ts.map +1 -1
  309. package/dist/services/setting.service.js +2 -1
  310. package/dist/services/setting.service.js.map +1 -1
  311. package/dist/services/settings/default-settings-provider.service.d.ts +228 -12
  312. package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
  313. package/dist/services/settings/default-settings-provider.service.js +129 -6
  314. package/dist/services/settings/default-settings-provider.service.js.map +1 -1
  315. package/dist/services/user.service.d.ts +2 -2
  316. package/dist/services/user.service.d.ts.map +1 -1
  317. package/dist/services/user.service.js +9 -3
  318. package/dist/services/user.service.js.map +1 -1
  319. package/dist/services/view-metadata.service.d.ts +1 -2
  320. package/dist/services/view-metadata.service.d.ts.map +1 -1
  321. package/dist/services/view-metadata.service.js +3 -55
  322. package/dist/services/view-metadata.service.js.map +1 -1
  323. package/dist/services/workflow/nodes/execution-fail.node.d.ts +6 -0
  324. package/dist/services/workflow/nodes/execution-fail.node.d.ts.map +1 -0
  325. package/dist/services/workflow/nodes/execution-fail.node.js +81 -0
  326. package/dist/services/workflow/nodes/execution-fail.node.js.map +1 -0
  327. package/dist/services/workflow/nodes/for-each.node.d.ts +2 -0
  328. package/dist/services/workflow/nodes/for-each.node.d.ts.map +1 -1
  329. package/dist/services/workflow/nodes/for-each.node.js +114 -5
  330. package/dist/services/workflow/nodes/for-each.node.js.map +1 -1
  331. package/dist/services/workflow/nodes/if.node.d.ts.map +1 -1
  332. package/dist/services/workflow/nodes/if.node.js +7 -0
  333. package/dist/services/workflow/nodes/if.node.js.map +1 -1
  334. package/dist/services/workflow/nodes/log-write.node.d.ts.map +1 -1
  335. package/dist/services/workflow/nodes/log-write.node.js +2 -0
  336. package/dist/services/workflow/nodes/log-write.node.js.map +1 -1
  337. package/dist/services/workflow/nodes/loop-until.node.d.ts +12 -0
  338. package/dist/services/workflow/nodes/loop-until.node.d.ts.map +1 -0
  339. package/dist/services/workflow/nodes/loop-until.node.js +281 -0
  340. package/dist/services/workflow/nodes/loop-until.node.js.map +1 -0
  341. package/dist/services/workflow/nodes/parallel.node.d.ts.map +1 -1
  342. package/dist/services/workflow/nodes/parallel.node.js +7 -0
  343. package/dist/services/workflow/nodes/parallel.node.js.map +1 -1
  344. package/dist/services/workflow/nodes/sequential.node.d.ts.map +1 -1
  345. package/dist/services/workflow/nodes/sequential.node.js +7 -0
  346. package/dist/services/workflow/nodes/sequential.node.js.map +1 -1
  347. package/dist/services/workflow/nodes/switch.node.d.ts.map +1 -1
  348. package/dist/services/workflow/nodes/switch.node.js +7 -0
  349. package/dist/services/workflow/nodes/switch.node.js.map +1 -1
  350. package/dist/services/workflow/workflow-definition-validator.service.d.ts.map +1 -1
  351. package/dist/services/workflow/workflow-definition-validator.service.js +5 -2
  352. package/dist/services/workflow/workflow-definition-validator.service.js.map +1 -1
  353. package/dist/services/workflow/workflow-expression.service.d.ts.map +1 -1
  354. package/dist/services/workflow/workflow-expression.service.js +5 -0
  355. package/dist/services/workflow/workflow-expression.service.js.map +1 -1
  356. package/dist/services/workflow/workflow-node-registry.service.d.ts +2 -1
  357. package/dist/services/workflow/workflow-node-registry.service.d.ts.map +1 -1
  358. package/dist/services/workflow/workflow-node-registry.service.js +7 -0
  359. package/dist/services/workflow/workflow-node-registry.service.js.map +1 -1
  360. package/dist/services/workflow/workflow-runtime.service.d.ts +8 -0
  361. package/dist/services/workflow/workflow-runtime.service.d.ts.map +1 -1
  362. package/dist/services/workflow/workflow-runtime.service.js +197 -32
  363. package/dist/services/workflow/workflow-runtime.service.js.map +1 -1
  364. package/dist/services/workflow-definition.service.d.ts +1 -1
  365. package/dist/solid-core.module.d.ts +1 -3
  366. package/dist/solid-core.module.d.ts.map +1 -1
  367. package/dist/solid-core.module.js +22 -40
  368. package/dist/solid-core.module.js.map +1 -1
  369. package/dist/testing/adapters/ui/playwright-adapter.d.ts +5 -0
  370. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  371. package/dist/testing/adapters/ui/playwright-adapter.js +17 -1
  372. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  373. package/dist/testing/adapters/ui/ui.types.d.ts +2 -0
  374. package/dist/testing/adapters/ui/ui.types.d.ts.map +1 -1
  375. package/dist/testing/adapters/ui/ui.types.js.map +1 -1
  376. package/dist/testing/reporter/console-reporter.d.ts +3 -0
  377. package/dist/testing/reporter/console-reporter.d.ts.map +1 -1
  378. package/dist/testing/reporter/console-reporter.js +2 -0
  379. package/dist/testing/reporter/console-reporter.js.map +1 -1
  380. package/dist/testing/reporter/progress-reporter.d.ts +64 -0
  381. package/dist/testing/reporter/progress-reporter.d.ts.map +1 -0
  382. package/dist/testing/reporter/progress-reporter.js +224 -0
  383. package/dist/testing/reporter/progress-reporter.js.map +1 -0
  384. package/dist/testing/reporter/reporter.types.d.ts +3 -0
  385. package/dist/testing/reporter/reporter.types.d.ts.map +1 -1
  386. package/dist/testing/reporter/reporter.types.js.map +1 -1
  387. package/dist/testing/runner/run-from-metadata.d.ts.map +1 -1
  388. package/dist/testing/runner/run-from-metadata.js +1 -0
  389. package/dist/testing/runner/run-from-metadata.js.map +1 -1
  390. package/dist/testing/steps/ui/actions.step.d.ts.map +1 -1
  391. package/dist/testing/steps/ui/actions.step.js +6 -2
  392. package/dist/testing/steps/ui/actions.step.js.map +1 -1
  393. package/dist/testing/steps/ui/assertions.step.d.ts.map +1 -1
  394. package/dist/testing/steps/ui/assertions.step.js +11 -3
  395. package/dist/testing/steps/ui/assertions.step.js.map +1 -1
  396. package/dist/testing/steps/ui/form.step.d.ts.map +1 -1
  397. package/dist/testing/steps/ui/form.step.js +9 -3
  398. package/dist/testing/steps/ui/form.step.js.map +1 -1
  399. package/dist/testing/steps/ui/manual.step.js +1 -1
  400. package/dist/testing/steps/ui/manual.step.js.map +1 -1
  401. package/dist/testing/steps/ui/navigation.step.d.ts.map +1 -1
  402. package/dist/testing/steps/ui/navigation.step.js +3 -1
  403. package/dist/testing/steps/ui/navigation.step.js.map +1 -1
  404. package/dist/theme/theme-registry.d.ts +14 -0
  405. package/dist/theme/theme-registry.d.ts.map +1 -0
  406. package/dist/theme/theme-registry.js +147 -0
  407. package/dist/theme/theme-registry.js.map +1 -0
  408. package/dist/types/workflow-dsl.types.d.ts +14 -0
  409. package/dist/types/workflow-dsl.types.d.ts.map +1 -1
  410. package/dist/types/workflow-dsl.types.js.map +1 -1
  411. package/package.json +2 -2
  412. package/postman/mpin.postman_collection.json +1045 -0
  413. package/src/commands/run-tests.command.ts +64 -4
  414. package/src/commands/seed.command.ts +19 -0
  415. package/src/config/cache.options.ts +9 -1
  416. package/src/constants/chatter-message.constants.ts +12 -0
  417. package/src/constants/draft-publish-fields.ts +5 -0
  418. package/src/constants/error-messages.ts +14 -0
  419. package/src/constants/media-file-types.ts +127 -0
  420. package/src/constants/success-messages.ts +5 -0
  421. package/src/constants/user.constants.ts +13 -0
  422. package/src/controllers/authentication.controller.ts +5 -2
  423. package/src/controllers/chatter-message.controller.ts +8 -0
  424. package/src/controllers/export-template.controller.ts +5 -3
  425. package/src/controllers/import-transaction.controller.ts +6 -6
  426. package/src/controllers/media.controller.ts +17 -6
  427. package/src/controllers/module-package.controller.ts +2 -3
  428. package/src/controllers/mpin-authentication.controller.ts +67 -0
  429. package/src/dtos/basic-filters.dto.ts +0 -4
  430. package/src/dtos/change-mpin.dto.ts +18 -0
  431. package/src/dtos/create-field-metadata.dto.ts +4 -9
  432. package/src/dtos/create-model-sequence.dto.ts +1 -1
  433. package/src/dtos/mpin-login.dto.ts +24 -0
  434. package/src/dtos/setup-mpin.dto.ts +51 -0
  435. package/src/entities/common.entity.ts +24 -0
  436. package/src/entities/dashboard-user-layout.entity.ts +2 -2
  437. package/src/entities/saved-filters.entity.ts +3 -3
  438. package/src/entities/user-device-credential.entity.ts +130 -0
  439. package/src/entities/user.entity.ts +53 -36
  440. package/src/entities/view-metadata.entity.ts +2 -2
  441. package/src/entities/workflow-execution-artifact.entity.ts +4 -3
  442. package/src/entities/workflow-execution-log.entity.ts +4 -3
  443. package/src/entities/workflow-execution.entity.ts +3 -2
  444. package/src/entities/workflow-secret.entity.ts +3 -2
  445. package/src/entities/workflow-step-execution.entity.ts +3 -2
  446. package/src/entities/workflow-trigger-execution.entity.ts +7 -6
  447. package/src/factories/mail.factory.ts +7 -1
  448. package/src/filters/http-exception.filter.ts +11 -1
  449. package/src/helpers/bootstrap.helper.ts +43 -6
  450. package/src/helpers/field-crud-managers/MediaFieldCrudManager.ts +26 -12
  451. package/src/helpers/file-download.helper.ts +45 -0
  452. package/src/helpers/model-metadata-helper.service.ts +32 -1
  453. package/src/helpers/security.helper.ts +35 -8
  454. package/src/helpers/solid-core-error-codes-provider.service.ts +53 -0
  455. package/src/helpers/solid-microservice-adapter.service.ts +6 -1
  456. package/src/helpers/solid-registry.ts +1 -1
  457. package/src/helpers/typeorm-db-helper.ts +12 -1
  458. package/src/index.ts +10 -0
  459. package/src/interfaces/active-user-data.interface.ts +9 -0
  460. package/src/interfaces.ts +1 -0
  461. package/src/repository/user-device-credential.repository.ts +17 -0
  462. package/src/seeders/module-metadata-seeder.service.ts +61 -39
  463. package/src/seeders/module-test-data.service.ts +6 -0
  464. package/src/seeders/seed-data/solid-core-metadata.json +290 -78
  465. package/src/services/api-key.service.ts +13 -1
  466. package/src/services/authentication.service.ts +203 -41
  467. package/src/services/chatter-message.service.ts +124 -5
  468. package/src/services/crud-helper.service.ts +35 -50
  469. package/src/services/crud.service.ts +131 -105
  470. package/src/services/datasource-introspection.service.ts +5 -0
  471. package/src/services/draft-publish-helper.service.ts +581 -0
  472. package/src/services/field-metadata.service.ts +3 -2
  473. package/src/services/internationalisation-helper.service.ts +148 -0
  474. package/src/services/media-storage.utils.ts +26 -1
  475. package/src/services/media.service.ts +67 -36
  476. package/src/services/metadata-validation.service.ts +39 -0
  477. package/src/services/model-metadata.service.ts +4 -1
  478. package/src/services/module-metadata.service.ts +3 -1
  479. package/src/services/mpin.service.ts +447 -0
  480. package/src/services/object.utils.ts +10 -0
  481. package/src/services/refresh-token-ids-storage.service.ts +229 -90
  482. package/src/services/setting.service.ts +3 -1
  483. package/src/services/settings/default-settings-provider.service.ts +140 -6
  484. package/src/services/user.service.ts +18 -3
  485. package/src/services/view-metadata.service.ts +5 -145
  486. package/src/services/workflow/nodes/execution-fail.node.ts +82 -0
  487. package/src/services/workflow/nodes/for-each.node.ts +140 -6
  488. package/src/services/workflow/nodes/if.node.ts +7 -0
  489. package/src/services/workflow/nodes/log-write.node.ts +2 -0
  490. package/src/services/workflow/nodes/loop-until.node.ts +343 -0
  491. package/src/services/workflow/nodes/parallel.node.ts +7 -0
  492. package/src/services/workflow/nodes/sequential.node.ts +7 -0
  493. package/src/services/workflow/nodes/switch.node.ts +7 -0
  494. package/src/services/workflow/workflow-definition-validator.service.ts +5 -2
  495. package/src/services/workflow/workflow-expression.service.ts +5 -0
  496. package/src/services/workflow/workflow-node-registry.service.ts +11 -0
  497. package/src/services/workflow/workflow-runtime.service.ts +274 -39
  498. package/src/solid-core.module.ts +33 -15
  499. package/src/testing/README.md +75 -3
  500. package/src/testing/adapters/ui/playwright-adapter.ts +25 -0
  501. package/src/testing/adapters/ui/ui.types.ts +2 -0
  502. package/src/testing/reporter/console-reporter.ts +4 -0
  503. package/src/testing/reporter/progress-reporter.ts +251 -0
  504. package/src/testing/reporter/reporter.types.ts +3 -0
  505. package/src/testing/runner/run-from-metadata.ts +1 -0
  506. package/src/testing/steps/ui/actions.step.ts +8 -4
  507. package/src/testing/steps/ui/assertions.step.ts +18 -5
  508. package/src/testing/steps/ui/form.step.ts +16 -6
  509. package/src/testing/steps/ui/manual.step.ts +1 -1
  510. package/src/testing/steps/ui/navigation.step.ts +4 -2
  511. package/src/theme/theme-registry.ts +181 -0
  512. package/src/types/workflow-dsl.types.ts +43 -0
@@ -41,6 +41,7 @@ const user_entity_1 = require("../entities/user.entity");
41
41
  const setting_service_1 = require("./setting.service");
42
42
  const error_messages_1 = require("../constants/error-messages");
43
43
  const success_messages_1 = require("../constants/success-messages");
44
+ const user_constants_1 = require("../constants/user.constants");
44
45
  const typeorm_1 = require("typeorm");
45
46
  const create_field_metadata_dto_1 = require("../dtos/create-field-metadata.dto");
46
47
  const model_metadata_entity_1 = require("../entities/model-metadata.entity");
@@ -65,6 +66,8 @@ const SelectionStaticFieldCrudManager_1 = require("../helpers/field-crud-manager
65
66
  const ShortTextFieldCrudManager_1 = require("../helpers/field-crud-managers/ShortTextFieldCrudManager");
66
67
  const UUIDFieldCrudManager_1 = require("../helpers/field-crud-managers/UUIDFieldCrudManager");
67
68
  const model_metadata_helper_service_1 = require("../helpers/model-metadata-helper.service");
69
+ const draft_publish_helper_service_1 = require("./draft-publish-helper.service");
70
+ const internationalisation_helper_service_1 = require("./internationalisation-helper.service");
68
71
  const crud_helper_service_1 = require("./crud-helper.service");
69
72
  const hashing_service_1 = require("./hashing.service");
70
73
  const solid_registry_1 = require("../helpers/solid-registry");
@@ -87,12 +90,30 @@ class CRUDService {
87
90
  get crudHelperService() {
88
91
  return this._crudHelperService ??= this.moduleRef.get(crud_helper_service_1.CrudHelperService, { strict: false });
89
92
  }
93
+ get draftPublishHelperService() {
94
+ return this._draftPublishHelperService ??= this.moduleRef.get(draft_publish_helper_service_1.DraftPublishHelperService, { strict: false });
95
+ }
96
+ get internationalisationHelperService() {
97
+ return this._internationalisationHelperService ??= this.moduleRef.get(internationalisation_helper_service_1.InternationalisationHelperService, { strict: false });
98
+ }
90
99
  get discoveryService() {
91
100
  return this._discoveryService ??= this.moduleRef.get(core_1.DiscoveryService, { strict: false });
92
101
  }
93
102
  get settingService() {
94
103
  return this._settingService ??= this.moduleRef.get(setting_service_1.SettingService, { strict: false });
95
104
  }
105
+ getDraftPublishCrudContext() {
106
+ return {
107
+ repo: this.repo,
108
+ modelName: this.modelName,
109
+ moduleName: this.moduleName,
110
+ validateAndTransformDto: this.validateAndTransformDto.bind(this),
111
+ saveMedia: this.saveMedia.bind(this),
112
+ getDatasourceDefaultEntityManager: this.getDatasourceDefaultEntityManager.bind(this),
113
+ getColumnDatabaseName: this.getColumnDatabaseName.bind(this),
114
+ escapeDatabaseName: this.escapeDatabaseName.bind(this),
115
+ };
116
+ }
96
117
  async tryCreateAsExtensionUser(createDto) {
97
118
  if (this.repo.metadata?.parentEntityMetadata?.target !== user_entity_1.User)
98
119
  return null;
@@ -124,8 +145,11 @@ class CRUDService {
124
145
  }
125
146
  ;
126
147
  try {
148
+ this.draftPublishHelperService.applyCreateDefaults(model, createDto);
149
+ this.internationalisationHelperService.applyCreateDefaults(model, createDto, this.moduleRef.get(solid_registry_1.SolidRegistry, { strict: false }));
127
150
  const entity = this.repo.create(createDto);
128
- const savedEntity = await this.repo.save(entity);
151
+ let savedEntity = await this.repo.save(entity);
152
+ savedEntity = await this.draftPublishHelperService.ensureInitialEntityVersionId(model, this.repo, savedEntity);
129
153
  if (hasMediaFields) {
130
154
  await this.saveMedia(model, files, savedEntity);
131
155
  }
@@ -193,8 +217,9 @@ class CRUDService {
193
217
  if (!entity) {
194
218
  throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
195
219
  }
196
- if (model.draftPublishWorkflow === true && entity.publishedAt) {
197
- throw new common_1.BadRequestException(`Cannot update a published record for model ${this.modelName}. Unpublish it first.`);
220
+ this.draftPublishHelperService.assertUpdateAllowed(model, entity, this.modelName);
221
+ if (this.draftPublishHelperService.shouldCopyPublishedVersionForUpdate(model, entity)) {
222
+ return this.draftPublishHelperService.copyPublishedVersionAndUpdate(this.getDraftPublishCrudContext(), id, updateDto, files, isPartialUpdate, model);
198
223
  }
199
224
  await this.prepareManyToManyAuditSnapshot(entity, id, model.singularName);
200
225
  let hasMediaFields = false;
@@ -212,6 +237,16 @@ class CRUDService {
212
237
  }
213
238
  return savedEntity;
214
239
  }
240
+ getColumnDatabaseName(propertyName) {
241
+ const column = this.repo.metadata.findColumnWithPropertyName(propertyName);
242
+ if (!column) {
243
+ throw new Error(`Column ${propertyName} not found in entity ${this.repo.metadata.name}`);
244
+ }
245
+ return column.databaseName;
246
+ }
247
+ escapeDatabaseName(databaseName) {
248
+ return this.repo.manager.connection.driver.escape(databaseName);
249
+ }
215
250
  async prepareManyToManyAuditSnapshot(entity, id, modelSingularName) {
216
251
  const modelMetadataHelperService = this.moduleRef.get(model_metadata_helper_service_1.ModelMetadataHelperService, { strict: false });
217
252
  const auditRelationFields = (await modelMetadataHelperService.loadFieldHierarchy(modelSingularName)).filter(field => field.enableAuditTracking &&
@@ -262,29 +297,32 @@ class CRUDService {
262
297
  if (!entity) {
263
298
  throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
264
299
  }
265
- if (model.draftPublishWorkflow === true && entity.publishedAt) {
266
- throw new common_1.BadRequestException(`Cannot update a published record for model ${this.modelName}, Unpublish it first.`);
267
- }
268
- if (model.internationalisation) {
269
- const childEntities = await this.repo.find({
270
- where: { defaultEntityLocaleId: id }
271
- });
272
- if (childEntities.length > 0) {
273
- if (model.enableSoftDelete === true) {
274
- await this.repo.softRemove(childEntities);
275
- }
276
- else {
277
- await this.repo.remove(childEntities);
278
- }
279
- }
300
+ const entitiesToDelete = [entity];
301
+ if (this.draftPublishHelperService.isDraftPublishEnabled(model)) {
302
+ this.draftPublishHelperService.assertDraftPublishDeleteAllowed(this.modelName, entitiesToDelete);
280
303
  }
304
+ await this.internationalisationHelperService.deleteChildLocaleEntities(this.repo, model, [id]);
305
+ return this.deleteEntitiesAndPromote(model, entitiesToDelete);
306
+ }
307
+ async deleteEntitiesAndPromote(model, entitiesToDelete) {
308
+ const isDraftPublishEnabled = this.draftPublishHelperService.isDraftPublishEnabled(model);
309
+ const deletedLatestChainIds = isDraftPublishEnabled
310
+ ? this.draftPublishHelperService.getLatestDraftPublishChainIds(entitiesToDelete)
311
+ : [];
312
+ let deleteResult;
281
313
  if (model.enableSoftDelete === true) {
282
- await this.repo.softRemove(entity);
283
- return this.repo.save(entity);
314
+ this.draftPublishHelperService.markDeletedDraftPublishVersionsAsNotLatest(model, entitiesToDelete);
315
+ await this.repo.softRemove(entitiesToDelete);
316
+ deleteResult = await this.repo.save(entitiesToDelete);
284
317
  }
285
318
  else {
286
- return this.repo.remove(entity);
319
+ deleteResult = await this.repo.remove(entitiesToDelete);
320
+ }
321
+ if (isDraftPublishEnabled) {
322
+ const deletedEntityIds = this.draftPublishHelperService.getEntityIds(entitiesToDelete);
323
+ await this.draftPublishHelperService.promoteLatestDraftPublishVersionAfterDelete(this.repo, deletedLatestChainIds, deletedEntityIds);
287
324
  }
325
+ return deleteResult;
288
326
  }
289
327
  async fieldCrudManager(fieldMetadata, entityManager, isPartialUpdate = false, isUpdate = false, entityId) {
290
328
  const commonOptions = { required: fieldMetadata.required && !isPartialUpdate, fieldName: fieldMetadata.name, isUpdate };
@@ -441,20 +479,16 @@ class CRUDService {
441
479
  requestContextService.setRequestFilter(basicFilterDto);
442
480
  var qb = await this.repo.createSecurityRuleAwareQueryBuilder(alias);
443
481
  if (basicFilterDto.groupBy?.length) {
444
- const groupFilterQb = (internationalisation && draftPublishWorkflow)
445
- ? this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef, crud_helper_service_1.FilterCombinator.AND, false, false)
446
- : this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, undefined, undefined, undefined, crud_helper_service_1.FilterCombinator.AND, false, false);
482
+ const groupFilterQb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef, crud_helper_service_1.FilterCombinator.AND, false, false);
447
483
  return this.crudHelperService.executeGroupPipeline(groupFilterQb, basicFilterDto, alias, () => this.repo.createSecurityRuleAwareQueryBuilder(alias), async (entities) => {
448
484
  if (populateUserIdFields?.length)
449
485
  await this.handlePopulateUserIdFields(populateUserIdFields, entities);
450
486
  if (populateMedia?.length)
451
487
  await this.handlePopulateMedia(populateMedia, entities);
452
- });
488
+ }, internationalisation, draftPublishWorkflow, this.moduleRef);
453
489
  }
454
490
  else {
455
- qb = (internationalisation && draftPublishWorkflow)
456
- ? this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef)
457
- : this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
491
+ qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef);
458
492
  const { meta, records } = await this.handleNonGroupFind(qb, populateUserIdFields, populateMedia, offset, limit, alias);
459
493
  return {
460
494
  meta,
@@ -475,6 +509,16 @@ class CRUDService {
475
509
  wrapFindResponse(offset, limit, count, entities) {
476
510
  return this.crudHelperService.pagedResponse(offset, limit, count, entities);
477
511
  }
512
+ toUserSummary(user) {
513
+ if (!user) {
514
+ return null;
515
+ }
516
+ const summary = {};
517
+ for (const field of user_constants_1.USER_SUMMARY_FIELDS) {
518
+ summary[field] = user[field];
519
+ }
520
+ return summary;
521
+ }
478
522
  async handlePopulateUserIdFields(userIdFields, entities) {
479
523
  const userRepository = this.entityManager.getRepository(user_entity_1.User);
480
524
  for (const entity of entities) {
@@ -483,8 +527,9 @@ class CRUDService {
483
527
  if (userId) {
484
528
  const user = await userRepository.findOne({
485
529
  where: { id: userId },
530
+ select: user_constants_1.USER_SUMMARY_FIELDS,
486
531
  });
487
- entity[userFieldPath] = user;
532
+ entity[userFieldPath] = this.toUserSummary(user);
488
533
  }
489
534
  }
490
535
  }
@@ -617,6 +662,7 @@ class CRUDService {
617
662
  },
618
663
  module: true,
619
664
  });
665
+ const solidRegistry = this.moduleRef.get(solid_registry_1.SolidRegistry, { strict: false });
620
666
  const entitiesForSave = [];
621
667
  for (const createDto of createDtos) {
622
668
  let transformedDto = createDto;
@@ -628,6 +674,7 @@ class CRUDService {
628
674
  }
629
675
  transformedDto = await fieldManager.transformForCreate(createDto);
630
676
  }
677
+ this.internationalisationHelperService.applyCreateDefaults(model, transformedDto, solidRegistry);
631
678
  const entity = this.repo.create(transformedDto);
632
679
  entitiesForSave.push(entity);
633
680
  }
@@ -664,24 +711,16 @@ class CRUDService {
664
711
  id: id,
665
712
  },
666
713
  });
714
+ if (!entity) {
715
+ throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
716
+ }
667
717
  removedEntities.push(entity);
668
718
  }
669
- const isDraftPublishEnabled = model?.draftPublishWorkflow === true;
670
- let publishedEntitiesExists = [];
671
- if (isDraftPublishEnabled) {
672
- publishedEntitiesExists = removedEntities.filter((x) => !!x?.publishedAt);
673
- }
674
- if (publishedEntitiesExists.length > 0) {
675
- const publishedEntitiesExistsID = publishedEntitiesExists.map(x => x.id);
676
- throw new common_1.BadRequestException(`Cannot delete published record(s) for model ${this.modelName} with Ids ${publishedEntitiesExistsID.join(', ')}. Unpublish them first.`);
677
- }
678
- if (model.enableSoftDelete === true) {
679
- await this.repo.softRemove(removedEntities);
680
- return this.repo.save(removedEntities);
681
- }
682
- else {
683
- return this.repo.remove(removedEntities);
719
+ if (this.draftPublishHelperService.isDraftPublishEnabled(model)) {
720
+ this.draftPublishHelperService.assertDraftPublishDeleteAllowed(this.modelName, removedEntities);
684
721
  }
722
+ await this.internationalisationHelperService.deleteChildLocaleEntities(this.repo, model, ids);
723
+ return this.deleteEntitiesAndPromote(model, removedEntities);
685
724
  }
686
725
  async recover(id, solidRequestContext = {}) {
687
726
  try {
@@ -704,6 +743,9 @@ class CRUDService {
704
743
  await this.repo.update(id, {
705
744
  deletedAt: null, deletedTracker: "not-deleted"
706
745
  });
746
+ if (this.draftPublishHelperService.isDraftPublishEnabled(loadedmodel)) {
747
+ await this.draftPublishHelperService.promoteRecoveredDraftPublishVersion(this.repo, softDeletedRows);
748
+ }
707
749
  return { message: success_messages_1.SUCCESS_MESSAGES.RECORD_RECOVERED, data: softDeletedRows };
708
750
  }
709
751
  catch (error) {
@@ -739,6 +781,11 @@ class CRUDService {
739
781
  throw new common_1.NotFoundException(error_messages_1.ERROR_MESSAGES.NO_SOFT_DELETED_RECORDS_FOUND);
740
782
  }
741
783
  await this.repo.update({ id: (0, typeorm_1.In)(ids) }, { deletedAt: null, deletedTracker: "not-deleted" });
784
+ if (this.draftPublishHelperService.isDraftPublishEnabled(loadedmodel)) {
785
+ for (const entity of softDeletedRows) {
786
+ await this.draftPublishHelperService.promoteRecoveredDraftPublishVersion(this.repo, entity);
787
+ }
788
+ }
742
789
  return { message: success_messages_1.SUCCESS_MESSAGES.SELECTED_RECORDS_RECOVERED, recoveredIds: ids };
743
790
  }
744
791
  catch (error) {
@@ -784,45 +831,23 @@ class CRUDService {
784
831
  }
785
832
  async publishRecord(id, solidRequestContext = {}) {
786
833
  const model = await this.loadModel();
787
- if (!model.draftPublishWorkflow) {
788
- throw new common_1.BadRequestException(`Publish workflow is not enabled for ${this.modelName}`);
789
- }
790
834
  if (solidRequestContext.activeUser) {
791
835
  const hasPermission = this.crudHelperService.hasPublishPermissionOnModel(solidRequestContext.activeUser, model.singularName);
792
836
  if (!hasPermission) {
793
837
  throw new common_1.BadRequestException(error_messages_1.ERROR_MESSAGES.FORBIDDEN);
794
838
  }
795
839
  }
796
- const entity = await this.repo.findOne({ where: { id } });
797
- if (!entity) {
798
- throw new common_1.NotFoundException(`${this.modelName} with id ${id} not found`);
799
- }
800
- if (entity.publishedAt) {
801
- throw new common_1.BadRequestException(`${this.modelName} with id ${id} is already published`);
802
- }
803
- const updatedEntity = await this.repo.save({ ...entity, publishedAt: new Date() });
804
- return updatedEntity;
840
+ return this.draftPublishHelperService.publishRecord(this.repo, model, this.modelName, id, solidRequestContext.activeUser);
805
841
  }
806
842
  async unpublishRecord(id, solidRequestContext = {}) {
807
843
  const model = await this.loadModel();
808
- if (!model.draftPublishWorkflow) {
809
- throw new common_1.BadRequestException(`Publish workflow is not enabled for ${this.modelName}`);
810
- }
811
844
  if (solidRequestContext.activeUser) {
812
845
  const hasPermission = this.crudHelperService.hasUnpublishPermissionOnModel(solidRequestContext.activeUser, model.singularName);
813
846
  if (!hasPermission) {
814
847
  throw new common_1.BadRequestException(error_messages_1.ERROR_MESSAGES.FORBIDDEN);
815
848
  }
816
849
  }
817
- const entity = await this.repo.findOne({ where: { id } });
818
- if (!entity) {
819
- throw new common_1.NotFoundException(`${this.modelName} with id ${id} not found`);
820
- }
821
- if (!entity.publishedAt) {
822
- throw new common_1.BadRequestException(`${this.modelName} with id ${id} is already unpublished`);
823
- }
824
- const updatedEntity = await this.repo.save({ ...entity, publishedAt: null });
825
- return updatedEntity;
850
+ return this.draftPublishHelperService.unpublishRecord(this.repo, model, this.modelName, id, solidRequestContext.activeUser);
826
851
  }
827
852
  getDatasourceDefaultEntityManager() {
828
853
  return this.defaultDatasourceEntityManager ?? this.entityManager;