@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
@@ -110,10 +110,10 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
110
110
  readonly helpText: "Controls whether the app logo appears inside the authentication form or inside the image panel.";
111
111
  }, {
112
112
  readonly moduleName: "solid-core";
113
- readonly key: "rowClickAction";
113
+ readonly key: "recordClickAction";
114
114
  readonly value: "edit";
115
115
  readonly level: SettingLevel.SystemAdminEditable;
116
- readonly label: "Row Click Action";
116
+ readonly label: "Record Click Action";
117
117
  readonly group: "app-settings";
118
118
  readonly sortOrder: 45;
119
119
  readonly controlType: "selectionStatic";
@@ -124,7 +124,7 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
124
124
  readonly label: "View";
125
125
  readonly value: "view";
126
126
  }];
127
- readonly helpText: "Decides whether clicking a list row opens the record in edit mode or view mode.";
127
+ readonly helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.";
128
128
  }, {
129
129
  readonly moduleName: "solid-core";
130
130
  readonly key: "showAuthContent";
@@ -197,14 +197,42 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
197
197
  readonly helpText: "Privacy policy URL shown when legal links are enabled.";
198
198
  }, {
199
199
  readonly moduleName: "solid-core";
200
- readonly key: "enableDarkMode";
200
+ readonly key: "showThemeToggle";
201
201
  readonly value: true;
202
202
  readonly level: SettingLevel.SystemAdminEditable;
203
- readonly label: "Enable Dark Mode";
203
+ readonly label: "Show Theme Toggle";
204
204
  readonly group: "app-settings";
205
205
  readonly sortOrder: 120;
206
206
  readonly controlType: "boolean";
207
- readonly helpText: "Enables dark theme support for frontend surfaces that honor the global appearance setting.";
207
+ readonly helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.";
208
+ }, {
209
+ readonly moduleName: "solid-core";
210
+ readonly key: "lightTheme";
211
+ readonly value: string;
212
+ readonly level: SettingLevel.SystemAdminEditable;
213
+ readonly label: "Light Theme";
214
+ readonly group: "app-settings";
215
+ readonly sortOrder: 125;
216
+ readonly controlType: "selectionStatic";
217
+ readonly options: {
218
+ label: string;
219
+ value: string;
220
+ }[];
221
+ readonly helpText: "Selects the theme used whenever the application is in light mode.";
222
+ }, {
223
+ readonly moduleName: "solid-core";
224
+ readonly key: "darkTheme";
225
+ readonly value: string;
226
+ readonly level: SettingLevel.SystemAdminEditable;
227
+ readonly label: "Dark Theme";
228
+ readonly group: "app-settings";
229
+ readonly sortOrder: 126;
230
+ readonly controlType: "selectionStatic";
231
+ readonly options: {
232
+ label: string;
233
+ value: string;
234
+ }[];
235
+ readonly helpText: "Selects the theme used whenever the application is in dark mode.";
208
236
  }, {
209
237
  readonly moduleName: "solid-core";
210
238
  readonly key: "copyright";
@@ -1045,6 +1073,66 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
1045
1073
  readonly group: "authentication-settings";
1046
1074
  readonly sortOrder: 200;
1047
1075
  readonly controlType: "boolean";
1076
+ }, {
1077
+ readonly moduleName: "solid-core";
1078
+ readonly key: "mpinEnabled";
1079
+ readonly value: false;
1080
+ readonly level: SettingLevel.SystemAdminEditable;
1081
+ readonly label: "Enable MPIN Sign-in";
1082
+ readonly group: "authentication-settings";
1083
+ readonly sortOrder: 210;
1084
+ readonly controlType: "boolean";
1085
+ readonly helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.";
1086
+ }, {
1087
+ readonly moduleName: "solid-core";
1088
+ readonly key: "mpinRegex";
1089
+ readonly value: string;
1090
+ readonly level: SettingLevel.SystemAdminEditable;
1091
+ readonly label: "MPIN Format";
1092
+ readonly group: "authentication-settings";
1093
+ readonly sortOrder: 211;
1094
+ readonly controlType: "shortText";
1095
+ readonly helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.";
1096
+ }, {
1097
+ readonly moduleName: "solid-core";
1098
+ readonly key: "mpinMaxFailedAttempts";
1099
+ readonly value: number;
1100
+ readonly level: SettingLevel.SystemAdminEditable;
1101
+ readonly label: "MPIN Attempts Before Lockout";
1102
+ readonly group: "authentication-settings";
1103
+ readonly sortOrder: 212;
1104
+ readonly controlType: "numeric";
1105
+ readonly helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.";
1106
+ }, {
1107
+ readonly moduleName: "solid-core";
1108
+ readonly key: "mpinLockoutDuration";
1109
+ readonly value: number;
1110
+ readonly level: SettingLevel.SystemAdminEditable;
1111
+ readonly label: "MPIN Lockout Duration (seconds)";
1112
+ readonly group: "authentication-settings";
1113
+ readonly sortOrder: 213;
1114
+ readonly controlType: "numeric";
1115
+ readonly helpText: "How long the temporary lockout lasts.";
1116
+ }, {
1117
+ readonly moduleName: "solid-core";
1118
+ readonly key: "mpinMaxTotalFailedAttempts";
1119
+ readonly value: number;
1120
+ readonly level: SettingLevel.SystemAdminEditable;
1121
+ readonly label: "MPIN Attempts Before Permanent Deactivation";
1122
+ readonly group: "authentication-settings";
1123
+ readonly sortOrder: 214;
1124
+ readonly controlType: "numeric";
1125
+ readonly helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.";
1126
+ }, {
1127
+ readonly moduleName: "solid-core";
1128
+ readonly key: "mpinMaxDevicesPerUser";
1129
+ readonly value: number;
1130
+ readonly level: SettingLevel.SystemAdminEditable;
1131
+ readonly label: "Max MPIN Devices Per User";
1132
+ readonly group: "authentication-settings";
1133
+ readonly sortOrder: 215;
1134
+ readonly controlType: "numeric";
1135
+ readonly helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.";
1048
1136
  }, {
1049
1137
  readonly moduleName: "solid-core";
1050
1138
  readonly key: "queuesDefaultBroker";
@@ -1277,6 +1365,26 @@ declare const getSolidCoreSettings: (isProd: boolean) => [{
1277
1365
  readonly key: "metaWhatsappAppSecret";
1278
1366
  readonly value: string;
1279
1367
  readonly level: SettingLevel.SystemEnv;
1368
+ }, {
1369
+ readonly moduleName: "solid-core";
1370
+ readonly key: "uiTestDefaultTimeoutMs";
1371
+ readonly value: number;
1372
+ readonly level: SettingLevel.SystemAdminEditable;
1373
+ readonly label: "UI Test Default Timeout (ms)";
1374
+ readonly group: "testing-settings";
1375
+ readonly sortOrder: 10;
1376
+ readonly controlType: "numeric";
1377
+ readonly helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.";
1378
+ }, {
1379
+ readonly moduleName: "solid-core";
1380
+ readonly key: "uiTestNavigationTimeoutMs";
1381
+ readonly value: number;
1382
+ readonly level: SettingLevel.SystemAdminEditable;
1383
+ readonly label: "UI Test Navigation Timeout (ms)";
1384
+ readonly group: "testing-settings";
1385
+ readonly sortOrder: 20;
1386
+ readonly controlType: "numeric";
1387
+ readonly helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.";
1280
1388
  }];
1281
1389
  export type SolidCoreSetting = ReturnType<typeof getSolidCoreSettings>[number]["key"];
1282
1390
  export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvider {
@@ -1389,10 +1497,10 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
1389
1497
  readonly helpText: "Controls whether the app logo appears inside the authentication form or inside the image panel.";
1390
1498
  }, {
1391
1499
  readonly moduleName: "solid-core";
1392
- readonly key: "rowClickAction";
1500
+ readonly key: "recordClickAction";
1393
1501
  readonly value: "edit";
1394
1502
  readonly level: SettingLevel.SystemAdminEditable;
1395
- readonly label: "Row Click Action";
1503
+ readonly label: "Record Click Action";
1396
1504
  readonly group: "app-settings";
1397
1505
  readonly sortOrder: 45;
1398
1506
  readonly controlType: "selectionStatic";
@@ -1403,7 +1511,7 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
1403
1511
  readonly label: "View";
1404
1512
  readonly value: "view";
1405
1513
  }];
1406
- readonly helpText: "Decides whether clicking a list row opens the record in edit mode or view mode.";
1514
+ readonly helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.";
1407
1515
  }, {
1408
1516
  readonly moduleName: "solid-core";
1409
1517
  readonly key: "showAuthContent";
@@ -1476,14 +1584,42 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
1476
1584
  readonly helpText: "Privacy policy URL shown when legal links are enabled.";
1477
1585
  }, {
1478
1586
  readonly moduleName: "solid-core";
1479
- readonly key: "enableDarkMode";
1587
+ readonly key: "showThemeToggle";
1480
1588
  readonly value: true;
1481
1589
  readonly level: SettingLevel.SystemAdminEditable;
1482
- readonly label: "Enable Dark Mode";
1590
+ readonly label: "Show Theme Toggle";
1483
1591
  readonly group: "app-settings";
1484
1592
  readonly sortOrder: 120;
1485
1593
  readonly controlType: "boolean";
1486
- readonly helpText: "Enables dark theme support for frontend surfaces that honor the global appearance setting.";
1594
+ readonly helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.";
1595
+ }, {
1596
+ readonly moduleName: "solid-core";
1597
+ readonly key: "lightTheme";
1598
+ readonly value: string;
1599
+ readonly level: SettingLevel.SystemAdminEditable;
1600
+ readonly label: "Light Theme";
1601
+ readonly group: "app-settings";
1602
+ readonly sortOrder: 125;
1603
+ readonly controlType: "selectionStatic";
1604
+ readonly options: {
1605
+ label: string;
1606
+ value: string;
1607
+ }[];
1608
+ readonly helpText: "Selects the theme used whenever the application is in light mode.";
1609
+ }, {
1610
+ readonly moduleName: "solid-core";
1611
+ readonly key: "darkTheme";
1612
+ readonly value: string;
1613
+ readonly level: SettingLevel.SystemAdminEditable;
1614
+ readonly label: "Dark Theme";
1615
+ readonly group: "app-settings";
1616
+ readonly sortOrder: 126;
1617
+ readonly controlType: "selectionStatic";
1618
+ readonly options: {
1619
+ label: string;
1620
+ value: string;
1621
+ }[];
1622
+ readonly helpText: "Selects the theme used whenever the application is in dark mode.";
1487
1623
  }, {
1488
1624
  readonly moduleName: "solid-core";
1489
1625
  readonly key: "copyright";
@@ -2324,6 +2460,66 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
2324
2460
  readonly group: "authentication-settings";
2325
2461
  readonly sortOrder: 200;
2326
2462
  readonly controlType: "boolean";
2463
+ }, {
2464
+ readonly moduleName: "solid-core";
2465
+ readonly key: "mpinEnabled";
2466
+ readonly value: false;
2467
+ readonly level: SettingLevel.SystemAdminEditable;
2468
+ readonly label: "Enable MPIN Sign-in";
2469
+ readonly group: "authentication-settings";
2470
+ readonly sortOrder: 210;
2471
+ readonly controlType: "boolean";
2472
+ readonly helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.";
2473
+ }, {
2474
+ readonly moduleName: "solid-core";
2475
+ readonly key: "mpinRegex";
2476
+ readonly value: string;
2477
+ readonly level: SettingLevel.SystemAdminEditable;
2478
+ readonly label: "MPIN Format";
2479
+ readonly group: "authentication-settings";
2480
+ readonly sortOrder: 211;
2481
+ readonly controlType: "shortText";
2482
+ readonly helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.";
2483
+ }, {
2484
+ readonly moduleName: "solid-core";
2485
+ readonly key: "mpinMaxFailedAttempts";
2486
+ readonly value: number;
2487
+ readonly level: SettingLevel.SystemAdminEditable;
2488
+ readonly label: "MPIN Attempts Before Lockout";
2489
+ readonly group: "authentication-settings";
2490
+ readonly sortOrder: 212;
2491
+ readonly controlType: "numeric";
2492
+ readonly helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.";
2493
+ }, {
2494
+ readonly moduleName: "solid-core";
2495
+ readonly key: "mpinLockoutDuration";
2496
+ readonly value: number;
2497
+ readonly level: SettingLevel.SystemAdminEditable;
2498
+ readonly label: "MPIN Lockout Duration (seconds)";
2499
+ readonly group: "authentication-settings";
2500
+ readonly sortOrder: 213;
2501
+ readonly controlType: "numeric";
2502
+ readonly helpText: "How long the temporary lockout lasts.";
2503
+ }, {
2504
+ readonly moduleName: "solid-core";
2505
+ readonly key: "mpinMaxTotalFailedAttempts";
2506
+ readonly value: number;
2507
+ readonly level: SettingLevel.SystemAdminEditable;
2508
+ readonly label: "MPIN Attempts Before Permanent Deactivation";
2509
+ readonly group: "authentication-settings";
2510
+ readonly sortOrder: 214;
2511
+ readonly controlType: "numeric";
2512
+ readonly helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.";
2513
+ }, {
2514
+ readonly moduleName: "solid-core";
2515
+ readonly key: "mpinMaxDevicesPerUser";
2516
+ readonly value: number;
2517
+ readonly level: SettingLevel.SystemAdminEditable;
2518
+ readonly label: "Max MPIN Devices Per User";
2519
+ readonly group: "authentication-settings";
2520
+ readonly sortOrder: 215;
2521
+ readonly controlType: "numeric";
2522
+ readonly helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.";
2327
2523
  }, {
2328
2524
  readonly moduleName: "solid-core";
2329
2525
  readonly key: "queuesDefaultBroker";
@@ -2556,6 +2752,26 @@ export declare class SolidCoreDefaultSettingsProvider implements ISettingsProvid
2556
2752
  readonly key: "metaWhatsappAppSecret";
2557
2753
  readonly value: string;
2558
2754
  readonly level: SettingLevel.SystemEnv;
2755
+ }, {
2756
+ readonly moduleName: "solid-core";
2757
+ readonly key: "uiTestDefaultTimeoutMs";
2758
+ readonly value: number;
2759
+ readonly level: SettingLevel.SystemAdminEditable;
2760
+ readonly label: "UI Test Default Timeout (ms)";
2761
+ readonly group: "testing-settings";
2762
+ readonly sortOrder: 10;
2763
+ readonly controlType: "numeric";
2764
+ readonly helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.";
2765
+ }, {
2766
+ readonly moduleName: "solid-core";
2767
+ readonly key: "uiTestNavigationTimeoutMs";
2768
+ readonly value: number;
2769
+ readonly level: SettingLevel.SystemAdminEditable;
2770
+ readonly label: "UI Test Navigation Timeout (ms)";
2771
+ readonly group: "testing-settings";
2772
+ readonly sortOrder: 20;
2773
+ readonly controlType: "numeric";
2774
+ readonly helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.";
2559
2775
  }];
2560
2776
  }
2561
2777
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"default-settings-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default-settings-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/settings/default-settings-provider.service.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAIZ"}
@@ -11,8 +11,13 @@ const common_1 = require("@nestjs/common");
11
11
  const disallow_in_production_decorator_1 = require("../../decorators/disallow-in-production.decorator");
12
12
  const settings_provider_decorator_1 = require("../../decorators/settings-provider.decorator");
13
13
  const interfaces_1 = require("../../interfaces");
14
+ const theme_registry_1 = require("../../theme/theme-registry");
14
15
  exports.DEFAULT_MEDIA_UPLOAD_DIR = "media-uploads";
15
16
  exports.DEFAULT_MEDIA_FILE_STORAGE_DIR = "media-files-storage";
17
+ const timeoutFromEnv = (value, fallback) => {
18
+ const parsed = Number(value);
19
+ return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback;
20
+ };
16
21
  const getSolidCoreSettings = (isProd) => [
17
22
  {
18
23
  moduleName: "solid-core",
@@ -124,10 +129,10 @@ const getSolidCoreSettings = (isProd) => [
124
129
  },
125
130
  {
126
131
  moduleName: "solid-core",
127
- key: "rowClickAction",
132
+ key: "recordClickAction",
128
133
  value: "edit",
129
134
  level: interfaces_1.SettingLevel.SystemAdminEditable,
130
- label: "Row Click Action",
135
+ label: "Record Click Action",
131
136
  group: "app-settings",
132
137
  sortOrder: 45,
133
138
  controlType: "selectionStatic",
@@ -135,7 +140,7 @@ const getSolidCoreSettings = (isProd) => [
135
140
  { label: "Edit", value: "edit" },
136
141
  { label: "View", value: "view" },
137
142
  ],
138
- helpText: "Decides whether clicking a list row opens the record in edit mode or view mode.",
143
+ helpText: "Decides whether clicking a record in List, Card, Kanban, or Tree View opens it in edit mode or view mode.",
139
144
  },
140
145
  {
141
146
  moduleName: "solid-core",
@@ -216,14 +221,44 @@ const getSolidCoreSettings = (isProd) => [
216
221
  },
217
222
  {
218
223
  moduleName: "solid-core",
219
- key: "enableDarkMode",
224
+ key: "showThemeToggle",
220
225
  value: true,
221
226
  level: interfaces_1.SettingLevel.SystemAdminEditable,
222
- label: "Enable Dark Mode",
227
+ label: "Show Theme Toggle",
223
228
  group: "app-settings",
224
229
  sortOrder: 120,
225
230
  controlType: "boolean",
226
- helpText: "Enables dark theme support for frontend surfaces that honor the global appearance setting.",
231
+ helpText: "Shows the theme toggle in the frontend so users can switch between light and dark themes.",
232
+ },
233
+ {
234
+ moduleName: "solid-core",
235
+ key: "lightTheme",
236
+ value: (0, theme_registry_1.getDefaultThemeKey)("light"),
237
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
238
+ label: "Light Theme",
239
+ group: "app-settings",
240
+ sortOrder: 125,
241
+ controlType: "selectionStatic",
242
+ options: (0, theme_registry_1.getThemesByMode)("light").map((theme) => ({
243
+ label: theme.label,
244
+ value: theme.key,
245
+ })),
246
+ helpText: "Selects the theme used whenever the application is in light mode.",
247
+ },
248
+ {
249
+ moduleName: "solid-core",
250
+ key: "darkTheme",
251
+ value: (0, theme_registry_1.getDefaultThemeKey)("dark"),
252
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
253
+ label: "Dark Theme",
254
+ group: "app-settings",
255
+ sortOrder: 126,
256
+ controlType: "selectionStatic",
257
+ options: (0, theme_registry_1.getThemesByMode)("dark").map((theme) => ({
258
+ label: theme.label,
259
+ value: theme.key,
260
+ })),
261
+ helpText: "Selects the theme used whenever the application is in dark mode.",
227
262
  },
228
263
  {
229
264
  moduleName: "solid-core",
@@ -1166,6 +1201,72 @@ const getSolidCoreSettings = (isProd) => [
1166
1201
  sortOrder: 200,
1167
1202
  controlType: "boolean",
1168
1203
  },
1204
+ {
1205
+ moduleName: "solid-core",
1206
+ key: "mpinEnabled",
1207
+ value: false,
1208
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1209
+ label: "Enable MPIN Sign-in",
1210
+ group: "authentication-settings",
1211
+ sortOrder: 210,
1212
+ controlType: "boolean",
1213
+ helpText: "Allows users to set a short device PIN for faster sign-in. Every MPIN route returns 404 while this is off.",
1214
+ },
1215
+ {
1216
+ moduleName: "solid-core",
1217
+ key: "mpinRegex",
1218
+ value: process.env.IAM_MPIN_REGEX ?? "^\\d{4,6}$",
1219
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1220
+ label: "MPIN Format",
1221
+ group: "authentication-settings",
1222
+ sortOrder: 211,
1223
+ controlType: "shortText",
1224
+ helpText: "Regular expression the MPIN must match. Sole authority on MPIN length - the default allows 4 to 6 digits. Predictable PINs (repeated or sequential digits) are rejected separately.",
1225
+ },
1226
+ {
1227
+ moduleName: "solid-core",
1228
+ key: "mpinMaxFailedAttempts",
1229
+ value: parseInt(process.env.IAM_MPIN_MAX_FAILED_ATTEMPTS ?? "5", 10),
1230
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1231
+ label: "MPIN Attempts Before Lockout",
1232
+ group: "authentication-settings",
1233
+ sortOrder: 212,
1234
+ controlType: "numeric",
1235
+ helpText: "Cumulative failed attempts that trigger a temporary lockout. The counter resets only on a successful MPIN sign-in, not when the lockout expires.",
1236
+ },
1237
+ {
1238
+ moduleName: "solid-core",
1239
+ key: "mpinLockoutDuration",
1240
+ value: parseInt(process.env.IAM_MPIN_LOCKOUT_DURATION ?? "900", 10),
1241
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1242
+ label: "MPIN Lockout Duration (seconds)",
1243
+ group: "authentication-settings",
1244
+ sortOrder: 213,
1245
+ controlType: "numeric",
1246
+ helpText: "How long the temporary lockout lasts.",
1247
+ },
1248
+ {
1249
+ moduleName: "solid-core",
1250
+ key: "mpinMaxTotalFailedAttempts",
1251
+ value: parseInt(process.env.IAM_MPIN_MAX_TOTAL_FAILED_ATTEMPTS ?? "10", 10),
1252
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1253
+ label: "MPIN Attempts Before Permanent Deactivation",
1254
+ group: "authentication-settings",
1255
+ sortOrder: 214,
1256
+ controlType: "numeric",
1257
+ helpText: "Cumulative failed attempts that permanently disable MPIN on that device. Must exceed the lockout threshold. The account itself is never locked - the user signs in normally and sets MPIN up again.",
1258
+ },
1259
+ {
1260
+ moduleName: "solid-core",
1261
+ key: "mpinMaxDevicesPerUser",
1262
+ value: parseInt(process.env.IAM_MPIN_MAX_DEVICES_PER_USER ?? "5", 10),
1263
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1264
+ label: "Max MPIN Devices Per User",
1265
+ group: "authentication-settings",
1266
+ sortOrder: 215,
1267
+ controlType: "numeric",
1268
+ helpText: "At the cap the least recently used credential is evicted rather than the setup rejected, so repeated app reinstalls cannot lock a user out of MPIN setup.",
1269
+ },
1169
1270
  {
1170
1271
  moduleName: "solid-core",
1171
1272
  key: "queuesDefaultBroker",
@@ -1422,6 +1523,28 @@ const getSolidCoreSettings = (isProd) => [
1422
1523
  value: process.env.COMMON_META_WHATSAPP_APP_SECRET,
1423
1524
  level: interfaces_1.SettingLevel.SystemEnv,
1424
1525
  },
1526
+ {
1527
+ moduleName: "solid-core",
1528
+ key: "uiTestDefaultTimeoutMs",
1529
+ value: timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000),
1530
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1531
+ label: "UI Test Default Timeout (ms)",
1532
+ group: "testing-settings",
1533
+ sortOrder: 10,
1534
+ controlType: "numeric",
1535
+ helpText: "How long UI test steps wait for an element before failing. Raise this if tests time out on slow screens. Overridden by the --ui-timeout-ms flag and by a per-step timeoutMs.",
1536
+ },
1537
+ {
1538
+ moduleName: "solid-core",
1539
+ key: "uiTestNavigationTimeoutMs",
1540
+ value: timeoutFromEnv(process.env.COMMON_UI_TEST_NAVIGATION_TIMEOUT_MS, timeoutFromEnv(process.env.COMMON_UI_TEST_DEFAULT_TIMEOUT_MS, 30000)),
1541
+ level: interfaces_1.SettingLevel.SystemAdminEditable,
1542
+ label: "UI Test Navigation Timeout (ms)",
1543
+ group: "testing-settings",
1544
+ sortOrder: 20,
1545
+ controlType: "numeric",
1546
+ helpText: "How long the ui.goto step waits for a page to load before failing. Falls back to the UI test default timeout.",
1547
+ },
1425
1548
  ];
1426
1549
  let SolidCoreDefaultSettingsProvider = class SolidCoreDefaultSettingsProvider {
1427
1550
  getSettings() {