@open-mercato/core 0.4.2-canary-ed15f2e753 → 0.4.2-canary-e2aeb1a7bf

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 (711) hide show
  1. package/dist/generated/entities/notification/index.js +57 -0
  2. package/dist/generated/entities/notification/index.js.map +7 -0
  3. package/dist/generated/entities.ids.generated.js +5 -2
  4. package/dist/generated/entities.ids.generated.js.map +2 -2
  5. package/dist/generated/entity-fields-registry.js +2 -2
  6. package/dist/generated/entity-fields-registry.js.map +2 -2
  7. package/dist/modules/api_docs/frontend/docs/api/page.js +3 -2
  8. package/dist/modules/api_docs/frontend/docs/api/page.js.map +2 -2
  9. package/dist/modules/api_keys/backend/api-keys/page.js +1 -1
  10. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  11. package/dist/modules/api_keys/setup.js +11 -0
  12. package/dist/modules/api_keys/setup.js.map +7 -0
  13. package/dist/modules/attachments/components/AttachmentLibrary.js +5 -1
  14. package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
  15. package/dist/modules/attachments/components/AttachmentPartitionSettings.js +2 -0
  16. package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
  17. package/dist/modules/attachments/lib/assignmentDetails.js +31 -17
  18. package/dist/modules/attachments/lib/assignmentDetails.js.map +2 -2
  19. package/dist/modules/attachments/lib/partitions.js +3 -3
  20. package/dist/modules/attachments/lib/partitions.js.map +2 -2
  21. package/dist/modules/attachments/setup.js +11 -0
  22. package/dist/modules/attachments/setup.js.map +7 -0
  23. package/dist/modules/audit_logs/setup.js +12 -0
  24. package/dist/modules/audit_logs/setup.js.map +7 -0
  25. package/dist/modules/auth/api/admin/nav.js +4 -3
  26. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  27. package/dist/modules/auth/api/login.js +25 -6
  28. package/dist/modules/auth/api/login.js.map +2 -2
  29. package/dist/modules/auth/api/profile/route.js +157 -0
  30. package/dist/modules/auth/api/profile/route.js.map +7 -0
  31. package/dist/modules/auth/api/reset/confirm.js +25 -2
  32. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  33. package/dist/modules/auth/api/reset.js +23 -0
  34. package/dist/modules/auth/api/reset.js.map +2 -2
  35. package/dist/modules/auth/api/sidebar/preferences/route.js +14 -9
  36. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  37. package/dist/modules/auth/api/users/route.js +4 -2
  38. package/dist/modules/auth/api/users/route.js.map +2 -2
  39. package/dist/modules/auth/backend/auth/profile/page.js +141 -0
  40. package/dist/modules/auth/backend/auth/profile/page.js.map +7 -0
  41. package/dist/modules/auth/backend/auth/profile/page.meta.js +13 -0
  42. package/dist/modules/auth/backend/auth/profile/page.meta.js.map +7 -0
  43. package/dist/modules/auth/backend/roles/[id]/edit/page.js +4 -1
  44. package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
  45. package/dist/modules/auth/backend/roles/page.js +3 -3
  46. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  47. package/dist/modules/auth/backend/users/[id]/edit/page.js +18 -3
  48. package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
  49. package/dist/modules/auth/backend/users/create/page.js +15 -2
  50. package/dist/modules/auth/backend/users/create/page.js.map +2 -2
  51. package/dist/modules/auth/backend/users/page.js +3 -3
  52. package/dist/modules/auth/backend/users/page.js.map +2 -2
  53. package/dist/modules/auth/cli.js +25 -11
  54. package/dist/modules/auth/cli.js.map +2 -2
  55. package/dist/modules/auth/commands/users.js +59 -2
  56. package/dist/modules/auth/commands/users.js.map +2 -2
  57. package/dist/modules/auth/data/validators.js +6 -3
  58. package/dist/modules/auth/data/validators.js.map +2 -2
  59. package/dist/modules/auth/frontend/login.js +112 -3
  60. package/dist/modules/auth/frontend/login.js.map +2 -2
  61. package/dist/modules/auth/frontend/reset/[token]/page.js +20 -10
  62. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  63. package/dist/modules/auth/lib/setup-app.js +70 -167
  64. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  65. package/dist/modules/auth/notifications.js +112 -0
  66. package/dist/modules/auth/notifications.js.map +7 -0
  67. package/dist/modules/auth/services/authService.js +24 -3
  68. package/dist/modules/auth/services/authService.js.map +2 -2
  69. package/dist/modules/auth/setup.js +11 -0
  70. package/dist/modules/auth/setup.js.map +7 -0
  71. package/dist/modules/business_rules/api/execute/route.js +7 -1
  72. package/dist/modules/business_rules/api/execute/route.js.map +2 -2
  73. package/dist/modules/business_rules/backend/rules/page.js +4 -0
  74. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  75. package/dist/modules/business_rules/backend/sets/page.js +3 -0
  76. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  77. package/dist/modules/business_rules/cli.js +2 -1
  78. package/dist/modules/business_rules/cli.js.map +2 -2
  79. package/dist/modules/business_rules/data/validators.js +0 -34
  80. package/dist/modules/business_rules/data/validators.js.map +2 -2
  81. package/dist/modules/business_rules/index.js +1 -21
  82. package/dist/modules/business_rules/index.js.map +2 -2
  83. package/dist/modules/business_rules/lib/rule-engine.js +34 -185
  84. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  85. package/dist/modules/business_rules/notifications.js +28 -0
  86. package/dist/modules/business_rules/notifications.js.map +7 -0
  87. package/dist/modules/business_rules/setup.js +11 -0
  88. package/dist/modules/business_rules/setup.js.map +7 -0
  89. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +37 -0
  90. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +7 -0
  91. package/dist/modules/catalog/components/PriceKindSettings.js +2 -0
  92. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  93. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +2 -2
  94. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  95. package/dist/modules/catalog/components/products/ProductsDataTable.js +2 -0
  96. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  97. package/dist/modules/catalog/notifications.js +28 -0
  98. package/dist/modules/catalog/notifications.js.map +7 -0
  99. package/dist/modules/catalog/setup.js +22 -0
  100. package/dist/modules/catalog/setup.js.map +7 -0
  101. package/dist/modules/catalog/subscribers/low-stock-notification.js +38 -0
  102. package/dist/modules/catalog/subscribers/low-stock-notification.js.map +7 -0
  103. package/dist/modules/configs/cli.js +6 -0
  104. package/dist/modules/configs/cli.js.map +2 -2
  105. package/dist/modules/configs/components/CachePanel.js +4 -4
  106. package/dist/modules/configs/components/CachePanel.js.map +2 -2
  107. package/dist/modules/configs/lib/system-status.js +48 -1
  108. package/dist/modules/configs/lib/system-status.js.map +2 -2
  109. package/dist/modules/configs/lib/upgrade-actions.js +1 -302
  110. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  111. package/dist/modules/configs/setup.js +16 -0
  112. package/dist/modules/configs/setup.js.map +7 -0
  113. package/dist/modules/currencies/backend/currencies/page.js +3 -0
  114. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  115. package/dist/modules/currencies/backend/exchange-rates/page.js +2 -0
  116. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  117. package/dist/modules/currencies/setup.js +16 -0
  118. package/dist/modules/currencies/setup.js.map +7 -0
  119. package/dist/modules/customers/backend/customers/companies/page.js +3 -0
  120. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  121. package/dist/modules/customers/backend/customers/deals/page.js +3 -0
  122. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  123. package/dist/modules/customers/backend/customers/people/page.js +3 -0
  124. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  125. package/dist/modules/customers/commands/deals.js +31 -0
  126. package/dist/modules/customers/commands/deals.js.map +2 -2
  127. package/dist/modules/customers/components/CustomerTodosTable.js +1 -0
  128. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  129. package/dist/modules/customers/notifications.js +48 -0
  130. package/dist/modules/customers/notifications.js.map +7 -0
  131. package/dist/modules/customers/setup.js +36 -0
  132. package/dist/modules/customers/setup.js.map +7 -0
  133. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js +2 -1
  134. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js.map +2 -2
  135. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js +2 -1
  136. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js.map +2 -2
  137. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js +2 -1
  138. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js.map +2 -2
  139. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js +2 -1
  140. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js.map +2 -2
  141. package/dist/modules/dashboards/cli.js +44 -5
  142. package/dist/modules/dashboards/cli.js.map +2 -2
  143. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +16 -11
  144. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +3 -3
  145. package/dist/modules/dashboards/lib/role-widgets.js +58 -0
  146. package/dist/modules/dashboards/lib/role-widgets.js.map +7 -0
  147. package/dist/modules/dashboards/services/widgetDataService.js +139 -3
  148. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  149. package/dist/modules/dashboards/setup.js +27 -0
  150. package/dist/modules/dashboards/setup.js.map +7 -0
  151. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js +2 -1
  152. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js.map +2 -2
  153. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js +2 -1
  154. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js.map +2 -2
  155. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js +2 -1
  156. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js.map +2 -2
  157. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js +2 -1
  158. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js.map +2 -2
  159. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js +2 -1
  160. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js.map +2 -2
  161. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js +2 -1
  162. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js.map +2 -2
  163. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js +2 -1
  164. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js.map +2 -2
  165. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js +2 -1
  166. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js.map +2 -2
  167. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js +2 -1
  168. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js.map +2 -2
  169. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js +2 -1
  170. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js.map +2 -2
  171. package/dist/modules/dictionaries/components/DictionaryTable.js +2 -0
  172. package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
  173. package/dist/modules/dictionaries/setup.js +12 -0
  174. package/dist/modules/dictionaries/setup.js.map +7 -0
  175. package/dist/modules/directory/api/get/tenants/lookup.js +70 -0
  176. package/dist/modules/directory/api/get/tenants/lookup.js.map +7 -0
  177. package/dist/modules/directory/backend/directory/organizations/page.js +2 -2
  178. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  179. package/dist/modules/directory/backend/directory/tenants/page.js +2 -2
  180. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  181. package/dist/modules/directory/setup.js +12 -0
  182. package/dist/modules/directory/setup.js.map +7 -0
  183. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +2 -2
  184. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  185. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -1
  186. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  187. package/dist/modules/entities/components/UserEntitiesTable.js +2 -2
  188. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  189. package/dist/modules/entities/setup.js +11 -0
  190. package/dist/modules/entities/setup.js.map +7 -0
  191. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +3 -3
  192. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  193. package/dist/modules/feature_toggles/components/OverridesTable.js +1 -1
  194. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  195. package/dist/modules/feature_toggles/setup.js +11 -0
  196. package/dist/modules/feature_toggles/setup.js.map +7 -0
  197. package/dist/modules/notifications/acl.js +11 -0
  198. package/dist/modules/notifications/acl.js.map +7 -0
  199. package/dist/modules/notifications/api/[id]/action/route.js +74 -0
  200. package/dist/modules/notifications/api/[id]/action/route.js.map +7 -0
  201. package/dist/modules/notifications/api/[id]/dismiss/route.js +15 -0
  202. package/dist/modules/notifications/api/[id]/dismiss/route.js.map +7 -0
  203. package/dist/modules/notifications/api/[id]/read/route.js +15 -0
  204. package/dist/modules/notifications/api/[id]/read/route.js.map +7 -0
  205. package/dist/modules/notifications/api/[id]/restore/route.js +53 -0
  206. package/dist/modules/notifications/api/[id]/restore/route.js.map +7 -0
  207. package/dist/modules/notifications/api/batch/route.js +17 -0
  208. package/dist/modules/notifications/api/batch/route.js.map +7 -0
  209. package/dist/modules/notifications/api/feature/route.js +17 -0
  210. package/dist/modules/notifications/api/feature/route.js.map +7 -0
  211. package/dist/modules/notifications/api/mark-all-read/route.js +35 -0
  212. package/dist/modules/notifications/api/mark-all-read/route.js.map +7 -0
  213. package/dist/modules/notifications/api/openapi.js +76 -0
  214. package/dist/modules/notifications/api/openapi.js.map +7 -0
  215. package/dist/modules/notifications/api/role/route.js +17 -0
  216. package/dist/modules/notifications/api/role/route.js.map +7 -0
  217. package/dist/modules/notifications/api/route.js +85 -0
  218. package/dist/modules/notifications/api/route.js.map +7 -0
  219. package/dist/modules/notifications/api/settings/route.js +155 -0
  220. package/dist/modules/notifications/api/settings/route.js.map +7 -0
  221. package/dist/modules/notifications/api/unread-count/route.js +38 -0
  222. package/dist/modules/notifications/api/unread-count/route.js.map +7 -0
  223. package/dist/modules/notifications/backend/config/notifications/page.js +10 -0
  224. package/dist/modules/notifications/backend/config/notifications/page.js.map +7 -0
  225. package/dist/modules/notifications/backend/config/notifications/page.meta.js +24 -0
  226. package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +7 -0
  227. package/dist/modules/notifications/cli.js +16 -0
  228. package/dist/modules/notifications/cli.js.map +7 -0
  229. package/dist/modules/notifications/data/entities.js +112 -0
  230. package/dist/modules/notifications/data/entities.js.map +7 -0
  231. package/dist/modules/notifications/data/validators.js +98 -0
  232. package/dist/modules/notifications/data/validators.js.map +7 -0
  233. package/dist/modules/notifications/di.js +13 -0
  234. package/dist/modules/notifications/di.js.map +7 -0
  235. package/dist/modules/notifications/emails/NotificationEmail.js +58 -0
  236. package/dist/modules/notifications/emails/NotificationEmail.js.map +7 -0
  237. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +44 -0
  238. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +7 -0
  239. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +220 -0
  240. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +7 -0
  241. package/dist/modules/notifications/index.js +14 -0
  242. package/dist/modules/notifications/index.js.map +7 -0
  243. package/dist/modules/notifications/lib/deliveryConfig.js +107 -0
  244. package/dist/modules/notifications/lib/deliveryConfig.js.map +7 -0
  245. package/dist/modules/notifications/lib/deliveryStrategies.js +14 -0
  246. package/dist/modules/notifications/lib/deliveryStrategies.js.map +7 -0
  247. package/dist/modules/notifications/lib/events.js +12 -0
  248. package/dist/modules/notifications/lib/events.js.map +7 -0
  249. package/dist/modules/notifications/lib/notificationBuilder.js +66 -0
  250. package/dist/modules/notifications/lib/notificationBuilder.js.map +7 -0
  251. package/dist/modules/notifications/lib/notificationFactory.js +54 -0
  252. package/dist/modules/notifications/lib/notificationFactory.js.map +7 -0
  253. package/dist/modules/notifications/lib/notificationMapper.js +34 -0
  254. package/dist/modules/notifications/lib/notificationMapper.js.map +7 -0
  255. package/dist/modules/notifications/lib/notificationRecipients.js +35 -0
  256. package/dist/modules/notifications/lib/notificationRecipients.js.map +7 -0
  257. package/dist/modules/notifications/lib/notificationService.js +279 -0
  258. package/dist/modules/notifications/lib/notificationService.js.map +7 -0
  259. package/dist/modules/notifications/lib/routeHelpers.js +101 -0
  260. package/dist/modules/notifications/lib/routeHelpers.js.map +7 -0
  261. package/dist/modules/notifications/lib/safeHref.js +24 -0
  262. package/dist/modules/notifications/lib/safeHref.js.map +7 -0
  263. package/dist/modules/notifications/migrations/Migration20260123000001.js +70 -0
  264. package/dist/modules/notifications/migrations/Migration20260123000001.js.map +7 -0
  265. package/dist/modules/notifications/migrations/Migration20260126150000.js +37 -0
  266. package/dist/modules/notifications/migrations/Migration20260126150000.js.map +7 -0
  267. package/dist/modules/notifications/migrations/Migration20260129082610.js +13 -0
  268. package/dist/modules/notifications/migrations/Migration20260129082610.js.map +7 -0
  269. package/dist/modules/notifications/subscribers/deliver-notification.js +165 -0
  270. package/dist/modules/notifications/subscribers/deliver-notification.js.map +7 -0
  271. package/dist/modules/notifications/workers/create-notification.worker.js +70 -0
  272. package/dist/modules/notifications/workers/create-notification.worker.js.map +7 -0
  273. package/dist/modules/perspectives/setup.js +12 -0
  274. package/dist/modules/perspectives/setup.js.map +7 -0
  275. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +2 -2
  276. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  277. package/dist/modules/planner/setup.js +21 -0
  278. package/dist/modules/planner/setup.js.map +7 -0
  279. package/dist/modules/query_index/cli.js +63 -7
  280. package/dist/modules/query_index/cli.js.map +2 -2
  281. package/dist/modules/query_index/components/QueryIndexesTable.js +7 -1
  282. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  283. package/dist/modules/query_index/setup.js +11 -0
  284. package/dist/modules/query_index/setup.js.map +7 -0
  285. package/dist/modules/resources/backend/resources/resource-types/page.js +2 -2
  286. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  287. package/dist/modules/resources/backend/resources/resources/page.js +2 -2
  288. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  289. package/dist/modules/resources/setup.js +21 -0
  290. package/dist/modules/resources/setup.js.map +7 -0
  291. package/dist/modules/sales/acl.js +0 -1
  292. package/dist/modules/sales/acl.js.map +2 -2
  293. package/dist/modules/sales/backend/sales/channels/offers/page.js +2 -0
  294. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  295. package/dist/modules/sales/backend/sales/channels/page.js +2 -0
  296. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  297. package/dist/modules/sales/backend/sales/documents/[id]/page.js +0 -12
  298. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  299. package/dist/modules/sales/cli.js +2 -42
  300. package/dist/modules/sales/cli.js.map +2 -2
  301. package/dist/modules/sales/commands/documents.js +53 -62
  302. package/dist/modules/sales/commands/documents.js.map +2 -2
  303. package/dist/modules/sales/commands/payments.js +26 -0
  304. package/dist/modules/sales/commands/payments.js.map +2 -2
  305. package/dist/modules/sales/components/AdjustmentKindSettings.js +2 -2
  306. package/dist/modules/sales/components/AdjustmentKindSettings.js.map +2 -2
  307. package/dist/modules/sales/components/PaymentMethodsSettings.js +2 -2
  308. package/dist/modules/sales/components/PaymentMethodsSettings.js.map +2 -2
  309. package/dist/modules/sales/components/ShippingMethodsSettings.js +2 -2
  310. package/dist/modules/sales/components/ShippingMethodsSettings.js.map +2 -2
  311. package/dist/modules/sales/components/TaxRatesSettings.js +2 -2
  312. package/dist/modules/sales/components/TaxRatesSettings.js.map +2 -2
  313. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +2 -0
  314. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  315. package/dist/modules/sales/components/documents/AdjustmentsSection.js +2 -0
  316. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  317. package/dist/modules/sales/components/documents/PaymentsSection.js +2 -1
  318. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  319. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +2 -0
  320. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  321. package/dist/modules/sales/lib/dictionaries.js +0 -3
  322. package/dist/modules/sales/lib/dictionaries.js.map +2 -2
  323. package/dist/modules/sales/lib/seeds.js +48 -0
  324. package/dist/modules/sales/lib/seeds.js.map +7 -0
  325. package/dist/modules/sales/notifications.client.js +51 -0
  326. package/dist/modules/sales/notifications.client.js.map +7 -0
  327. package/dist/modules/sales/notifications.js +88 -0
  328. package/dist/modules/sales/notifications.js.map +7 -0
  329. package/dist/modules/sales/setup.js +99 -0
  330. package/dist/modules/sales/setup.js.map +7 -0
  331. package/dist/modules/sales/subscribers/quote-expiring-notification.js +38 -0
  332. package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +7 -0
  333. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +137 -0
  334. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +7 -0
  335. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +137 -0
  336. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +7 -0
  337. package/dist/modules/sales/widgets/notifications/index.js +7 -0
  338. package/dist/modules/sales/widgets/notifications/index.js.map +7 -0
  339. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +60 -0
  340. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +7 -0
  341. package/dist/modules/staff/backend/staff/team-members/page.js +1 -1
  342. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  343. package/dist/modules/staff/backend/staff/team-roles/page.js +2 -2
  344. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  345. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +2 -2
  346. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  347. package/dist/modules/staff/backend/staff/teams/page.js +2 -2
  348. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  349. package/dist/modules/staff/commands/leave-requests.js +79 -0
  350. package/dist/modules/staff/commands/leave-requests.js.map +2 -2
  351. package/dist/modules/staff/notifications.js +75 -0
  352. package/dist/modules/staff/notifications.js.map +7 -0
  353. package/dist/modules/staff/setup.js +27 -0
  354. package/dist/modules/staff/setup.js.map +7 -0
  355. package/dist/modules/workflows/acl.js +0 -2
  356. package/dist/modules/workflows/acl.js.map +2 -2
  357. package/dist/modules/workflows/api/instances/route.js +6 -18
  358. package/dist/modules/workflows/api/instances/route.js.map +2 -2
  359. package/dist/modules/workflows/api/tasks/route.js +1 -6
  360. package/dist/modules/workflows/api/tasks/route.js.map +2 -2
  361. package/dist/modules/workflows/backend/definitions/[id]/page.js +1 -9
  362. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
  363. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js +1 -1
  364. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js.map +2 -2
  365. package/dist/modules/workflows/backend/definitions/create/page.js +15 -24
  366. package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
  367. package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
  368. package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
  369. package/dist/modules/workflows/backend/definitions/page.js +5 -0
  370. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  371. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +132 -150
  372. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  373. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js +1 -1
  374. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js.map +2 -2
  375. package/dist/modules/workflows/backend/events/[id]/page.js +1 -1
  376. package/dist/modules/workflows/backend/events/[id]/page.js.map +2 -2
  377. package/dist/modules/workflows/backend/events/[id]/page.meta.js +2 -2
  378. package/dist/modules/workflows/backend/events/[id]/page.meta.js.map +2 -2
  379. package/dist/modules/workflows/backend/instances/[id]/page.meta.js +2 -2
  380. package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +2 -2
  381. package/dist/modules/workflows/backend/instances/page.js +3 -0
  382. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  383. package/dist/modules/workflows/backend/tasks/[id]/page.js +1 -1
  384. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  385. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js +2 -2
  386. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js.map +2 -2
  387. package/dist/modules/workflows/backend/tasks/page.js +9 -5
  388. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  389. package/dist/modules/workflows/cli.js +15 -93
  390. package/dist/modules/workflows/cli.js.map +3 -3
  391. package/dist/modules/workflows/data/entities.js +1 -64
  392. package/dist/modules/workflows/data/entities.js.map +2 -2
  393. package/dist/modules/workflows/data/validators.js +0 -115
  394. package/dist/modules/workflows/data/validators.js.map +2 -2
  395. package/dist/modules/workflows/examples/checkout-demo-definition.json +5 -1
  396. package/dist/modules/workflows/lib/activity-executor.js +13 -75
  397. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  398. package/dist/modules/workflows/lib/graph-utils.js +2 -71
  399. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  400. package/dist/modules/workflows/lib/seeds.js +7 -36
  401. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  402. package/dist/modules/workflows/lib/start-validator.js +23 -33
  403. package/dist/modules/workflows/lib/start-validator.js.map +2 -2
  404. package/dist/modules/workflows/lib/transition-handler.js +57 -161
  405. package/dist/modules/workflows/lib/transition-handler.js.map +3 -3
  406. package/dist/modules/workflows/migrations/Migration20251207131955.js +76 -72
  407. package/dist/modules/workflows/migrations/Migration20251207131955.js.map +2 -2
  408. package/dist/modules/workflows/notifications.js +28 -0
  409. package/dist/modules/workflows/notifications.js.map +7 -0
  410. package/dist/modules/workflows/setup.js +16 -0
  411. package/dist/modules/workflows/setup.js.map +7 -0
  412. package/dist/modules/workflows/subscribers/task-assigned-notification.js +38 -0
  413. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +7 -0
  414. package/generated/entities/notification/index.ts +27 -0
  415. package/generated/entities.ids.generated.ts +5 -2
  416. package/generated/entity-fields-registry.ts +2 -2
  417. package/package.json +2 -2
  418. package/src/__tests__/module-decoupling.test.ts +356 -0
  419. package/src/modules/api_docs/frontend/docs/api/page.tsx +3 -2
  420. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -1
  421. package/src/modules/api_keys/setup.ts +9 -0
  422. package/src/modules/attachments/components/AttachmentLibrary.tsx +6 -2
  423. package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +2 -0
  424. package/src/modules/attachments/lib/assignmentDetails.ts +32 -16
  425. package/src/modules/attachments/lib/partitions.ts +3 -3
  426. package/src/modules/attachments/setup.ts +9 -0
  427. package/src/modules/audit_logs/setup.ts +10 -0
  428. package/src/modules/auth/README.md +1 -1
  429. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +31 -1
  430. package/src/modules/auth/api/__tests__/login.test.ts +2 -0
  431. package/src/modules/auth/api/admin/nav.ts +10 -6
  432. package/src/modules/auth/api/login.ts +26 -7
  433. package/src/modules/auth/api/profile/route.ts +163 -0
  434. package/src/modules/auth/api/reset/confirm.ts +25 -2
  435. package/src/modules/auth/api/reset.ts +23 -0
  436. package/src/modules/auth/api/sidebar/preferences/route.ts +21 -12
  437. package/src/modules/auth/api/users/route.ts +5 -2
  438. package/src/modules/auth/backend/auth/profile/page.meta.ts +9 -0
  439. package/src/modules/auth/backend/auth/profile/page.tsx +174 -0
  440. package/src/modules/auth/backend/roles/[id]/edit/page.tsx +4 -1
  441. package/src/modules/auth/backend/roles/page.tsx +3 -3
  442. package/src/modules/auth/backend/users/[id]/edit/page.tsx +22 -3
  443. package/src/modules/auth/backend/users/create/page.tsx +19 -2
  444. package/src/modules/auth/backend/users/page.tsx +3 -3
  445. package/src/modules/auth/cli.ts +38 -11
  446. package/src/modules/auth/commands/users.ts +73 -2
  447. package/src/modules/auth/data/validators.ts +6 -2
  448. package/src/modules/auth/frontend/login.tsx +134 -5
  449. package/src/modules/auth/frontend/reset/[token]/page.tsx +24 -11
  450. package/src/modules/auth/i18n/de.json +48 -1
  451. package/src/modules/auth/i18n/en.json +48 -1
  452. package/src/modules/auth/i18n/es.json +48 -1
  453. package/src/modules/auth/i18n/pl.json +48 -1
  454. package/src/modules/auth/lib/setup-app.ts +97 -186
  455. package/src/modules/auth/notifications.ts +109 -0
  456. package/src/modules/auth/services/authService.ts +27 -4
  457. package/src/modules/auth/setup.ts +9 -0
  458. package/src/modules/business_rules/api/execute/route.ts +8 -1
  459. package/src/modules/business_rules/backend/rules/page.tsx +4 -0
  460. package/src/modules/business_rules/backend/sets/page.tsx +3 -0
  461. package/src/modules/business_rules/cli.ts +2 -1
  462. package/src/modules/business_rules/data/validators.ts +0 -40
  463. package/src/modules/business_rules/i18n/en.json +3 -1
  464. package/src/modules/business_rules/index.ts +0 -25
  465. package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +51 -0
  466. package/src/modules/business_rules/lib/rule-engine.ts +51 -277
  467. package/src/modules/business_rules/notifications.ts +25 -0
  468. package/src/modules/business_rules/setup.ts +9 -0
  469. package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +50 -0
  470. package/src/modules/catalog/components/PriceKindSettings.tsx +2 -0
  471. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +2 -2
  472. package/src/modules/catalog/components/products/ProductsDataTable.tsx +2 -0
  473. package/src/modules/catalog/i18n/en.json +3 -1
  474. package/src/modules/catalog/notifications.ts +25 -0
  475. package/src/modules/catalog/setup.ts +22 -0
  476. package/src/modules/catalog/subscribers/low-stock-notification.ts +52 -0
  477. package/src/modules/configs/cli.ts +6 -0
  478. package/src/modules/configs/components/CachePanel.tsx +4 -4
  479. package/src/modules/configs/i18n/en.json +12 -2
  480. package/src/modules/configs/i18n/pl.json +12 -2
  481. package/src/modules/configs/lib/system-status.ts +48 -1
  482. package/src/modules/configs/lib/system-status.types.ts +1 -0
  483. package/src/modules/configs/lib/upgrade-actions.ts +5 -338
  484. package/src/modules/configs/setup.ts +14 -0
  485. package/src/modules/currencies/backend/currencies/page.tsx +3 -0
  486. package/src/modules/currencies/backend/exchange-rates/page.tsx +2 -0
  487. package/src/modules/currencies/setup.ts +15 -0
  488. package/src/modules/customers/backend/customers/companies/page.tsx +3 -0
  489. package/src/modules/customers/backend/customers/deals/page.tsx +3 -0
  490. package/src/modules/customers/backend/customers/people/page.tsx +3 -0
  491. package/src/modules/customers/commands/deals.ts +39 -0
  492. package/src/modules/customers/components/CustomerTodosTable.tsx +1 -0
  493. package/src/modules/customers/i18n/en.json +5 -1
  494. package/src/modules/customers/notifications.ts +44 -0
  495. package/src/modules/customers/setup.ts +36 -0
  496. package/src/modules/customers/widgets/dashboard/customer-todos/widget.ts +2 -2
  497. package/src/modules/customers/widgets/dashboard/new-customers/widget.ts +2 -2
  498. package/src/modules/customers/widgets/dashboard/new-deals/widget.ts +2 -2
  499. package/src/modules/customers/widgets/dashboard/next-interactions/widget.ts +2 -2
  500. package/src/modules/dashboards/cli.ts +55 -5
  501. package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +22 -11
  502. package/src/modules/dashboards/lib/role-widgets.ts +80 -0
  503. package/src/modules/dashboards/services/widgetDataService.ts +164 -4
  504. package/src/modules/dashboards/setup.ts +26 -0
  505. package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.ts +2 -2
  506. package/src/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.ts +2 -2
  507. package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.ts +2 -2
  508. package/src/modules/dashboards/widgets/dashboard/orders-kpi/widget.ts +2 -2
  509. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.ts +2 -2
  510. package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.ts +2 -2
  511. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.ts +2 -2
  512. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.ts +2 -2
  513. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.ts +2 -2
  514. package/src/modules/dashboards/widgets/dashboard/top-products/widget.ts +2 -2
  515. package/src/modules/dictionaries/components/DictionaryTable.tsx +2 -0
  516. package/src/modules/dictionaries/setup.ts +10 -0
  517. package/src/modules/directory/api/get/tenants/lookup.ts +75 -0
  518. package/src/modules/directory/backend/directory/organizations/page.tsx +2 -2
  519. package/src/modules/directory/backend/directory/tenants/page.tsx +2 -2
  520. package/src/modules/directory/setup.ts +10 -0
  521. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +2 -2
  522. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -1
  523. package/src/modules/entities/components/UserEntitiesTable.tsx +2 -2
  524. package/src/modules/entities/setup.ts +9 -0
  525. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +3 -4
  526. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -1
  527. package/src/modules/feature_toggles/setup.ts +9 -0
  528. package/src/modules/notifications/__tests__/deliver-notification.test.ts +195 -0
  529. package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +19 -0
  530. package/src/modules/notifications/__tests__/notificationService.test.ts +208 -0
  531. package/src/modules/notifications/acl.ts +7 -0
  532. package/src/modules/notifications/api/[id]/action/route.ts +75 -0
  533. package/src/modules/notifications/api/[id]/dismiss/route.ts +12 -0
  534. package/src/modules/notifications/api/[id]/read/route.ts +12 -0
  535. package/src/modules/notifications/api/[id]/restore/route.ts +53 -0
  536. package/src/modules/notifications/api/batch/route.ts +14 -0
  537. package/src/modules/notifications/api/feature/route.ts +14 -0
  538. package/src/modules/notifications/api/mark-all-read/route.ts +34 -0
  539. package/src/modules/notifications/api/openapi.ts +76 -0
  540. package/src/modules/notifications/api/role/route.ts +14 -0
  541. package/src/modules/notifications/api/route.ts +92 -0
  542. package/src/modules/notifications/api/settings/route.ts +157 -0
  543. package/src/modules/notifications/api/unread-count/route.ts +38 -0
  544. package/src/modules/notifications/backend/config/notifications/page.meta.ts +22 -0
  545. package/src/modules/notifications/backend/config/notifications/page.tsx +12 -0
  546. package/src/modules/notifications/cli.ts +18 -0
  547. package/src/modules/notifications/data/entities.ts +99 -0
  548. package/src/modules/notifications/data/validators.ts +115 -0
  549. package/src/modules/notifications/di.ts +11 -0
  550. package/src/modules/notifications/emails/NotificationEmail.tsx +98 -0
  551. package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +42 -0
  552. package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +233 -0
  553. package/src/modules/notifications/i18n/de.json +50 -0
  554. package/src/modules/notifications/i18n/en.json +50 -0
  555. package/src/modules/notifications/i18n/es.json +50 -0
  556. package/src/modules/notifications/i18n/pl.json +50 -0
  557. package/src/modules/notifications/index.ts +12 -0
  558. package/src/modules/notifications/lib/deliveryConfig.ts +153 -0
  559. package/src/modules/notifications/lib/deliveryStrategies.ts +50 -0
  560. package/src/modules/notifications/lib/events.ts +48 -0
  561. package/src/modules/notifications/lib/notificationBuilder.ts +121 -0
  562. package/src/modules/notifications/lib/notificationFactory.ts +76 -0
  563. package/src/modules/notifications/lib/notificationMapper.ts +33 -0
  564. package/src/modules/notifications/lib/notificationRecipients.ts +83 -0
  565. package/src/modules/notifications/lib/notificationService.ts +414 -0
  566. package/src/modules/notifications/lib/routeHelpers.ts +151 -0
  567. package/src/modules/notifications/lib/safeHref.ts +29 -0
  568. package/src/modules/notifications/migrations/.snapshot-open-mercato.json +336 -0
  569. package/src/modules/notifications/migrations/Migration20260123000001.ts +73 -0
  570. package/src/modules/notifications/migrations/Migration20260126150000.ts +39 -0
  571. package/src/modules/notifications/migrations/Migration20260129082610.ts +13 -0
  572. package/src/modules/notifications/subscribers/deliver-notification.ts +204 -0
  573. package/src/modules/notifications/workers/create-notification.worker.ts +122 -0
  574. package/src/modules/perspectives/setup.ts +10 -0
  575. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +2 -2
  576. package/src/modules/planner/setup.ts +21 -0
  577. package/src/modules/query_index/cli.ts +82 -13
  578. package/src/modules/query_index/components/QueryIndexesTable.tsx +8 -2
  579. package/src/modules/query_index/setup.ts +9 -0
  580. package/src/modules/resources/backend/resources/resource-types/page.tsx +2 -2
  581. package/src/modules/resources/backend/resources/resources/page.tsx +2 -2
  582. package/src/modules/resources/setup.ts +21 -0
  583. package/src/modules/sales/acl.ts +0 -1
  584. package/src/modules/sales/backend/sales/channels/offers/page.tsx +2 -0
  585. package/src/modules/sales/backend/sales/channels/page.tsx +2 -0
  586. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +0 -16
  587. package/src/modules/sales/cli.ts +2 -43
  588. package/src/modules/sales/commands/documents.ts +62 -70
  589. package/src/modules/sales/commands/payments.ts +33 -0
  590. package/src/modules/sales/components/AdjustmentKindSettings.tsx +2 -2
  591. package/src/modules/sales/components/PaymentMethodsSettings.tsx +2 -2
  592. package/src/modules/sales/components/ShippingMethodsSettings.tsx +2 -2
  593. package/src/modules/sales/components/TaxRatesSettings.tsx +2 -2
  594. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +2 -0
  595. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +2 -0
  596. package/src/modules/sales/components/documents/PaymentsSection.tsx +2 -1
  597. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +2 -0
  598. package/src/modules/sales/i18n/de.json +20 -0
  599. package/src/modules/sales/i18n/en.json +25 -1
  600. package/src/modules/sales/i18n/es.json +20 -0
  601. package/src/modules/sales/i18n/pl.json +20 -0
  602. package/src/modules/sales/lib/dictionaries.ts +0 -3
  603. package/src/modules/sales/lib/seeds.ts +53 -0
  604. package/src/modules/sales/notifications.client.ts +65 -0
  605. package/src/modules/sales/notifications.ts +82 -0
  606. package/src/modules/sales/setup.ts +108 -0
  607. package/src/modules/sales/subscribers/quote-expiring-notification.ts +53 -0
  608. package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +156 -0
  609. package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +156 -0
  610. package/src/modules/sales/widgets/notifications/index.ts +2 -0
  611. package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +81 -0
  612. package/src/modules/staff/backend/staff/team-members/page.tsx +1 -1
  613. package/src/modules/staff/backend/staff/team-roles/page.tsx +2 -2
  614. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +2 -2
  615. package/src/modules/staff/backend/staff/teams/page.tsx +2 -2
  616. package/src/modules/staff/commands/leave-requests.ts +94 -0
  617. package/src/modules/staff/i18n/de.json +4 -0
  618. package/src/modules/staff/i18n/en.json +9 -1
  619. package/src/modules/staff/i18n/es.json +4 -0
  620. package/src/modules/staff/i18n/pl.json +4 -0
  621. package/src/modules/staff/notifications.ts +71 -0
  622. package/src/modules/staff/setup.ts +27 -0
  623. package/src/modules/workflows/acl.ts +0 -2
  624. package/src/modules/workflows/api/__tests__/instances.route.test.ts +2 -5
  625. package/src/modules/workflows/api/instances/route.ts +7 -21
  626. package/src/modules/workflows/api/tasks/route.ts +1 -7
  627. package/src/modules/workflows/backend/definitions/[id]/page.meta.ts +1 -1
  628. package/src/modules/workflows/backend/definitions/[id]/page.tsx +0 -9
  629. package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
  630. package/src/modules/workflows/backend/definitions/create/page.tsx +0 -9
  631. package/src/modules/workflows/backend/definitions/page.tsx +5 -0
  632. package/src/modules/workflows/backend/definitions/visual-editor/page.meta.ts +1 -1
  633. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3 -21
  634. package/src/modules/workflows/backend/events/[id]/page.meta.ts +2 -2
  635. package/src/modules/workflows/backend/events/[id]/page.tsx +1 -1
  636. package/src/modules/workflows/backend/instances/[id]/page.meta.ts +2 -2
  637. package/src/modules/workflows/backend/instances/page.tsx +4 -1
  638. package/src/modules/workflows/backend/tasks/[id]/page.meta.ts +2 -2
  639. package/src/modules/workflows/backend/tasks/[id]/page.tsx +1 -1
  640. package/src/modules/workflows/backend/tasks/page.tsx +10 -6
  641. package/src/modules/workflows/cli.ts +12 -123
  642. package/src/modules/workflows/data/entities.ts +0 -124
  643. package/src/modules/workflows/data/validators.ts +0 -138
  644. package/src/modules/workflows/examples/checkout-demo-definition.json +5 -1
  645. package/src/modules/workflows/i18n/en.json +3 -72
  646. package/src/modules/workflows/lib/__tests__/activity-executor.test.ts +36 -43
  647. package/src/modules/workflows/lib/__tests__/transition-handler.test.ts +90 -170
  648. package/src/modules/workflows/lib/activity-executor.ts +16 -129
  649. package/src/modules/workflows/lib/graph-utils.ts +2 -117
  650. package/src/modules/workflows/lib/seeds.ts +12 -50
  651. package/src/modules/workflows/lib/start-validator.ts +28 -38
  652. package/src/modules/workflows/lib/transition-handler.ts +71 -212
  653. package/src/modules/workflows/migrations/Migration20251207131955.ts +77 -143
  654. package/src/modules/workflows/notifications.ts +25 -0
  655. package/src/modules/workflows/setup.ts +15 -0
  656. package/src/modules/workflows/subscribers/task-assigned-notification.ts +53 -0
  657. package/dist/generated/entities/workflow_event_trigger/index.js +0 -33
  658. package/dist/generated/entities/workflow_event_trigger/index.js.map +0 -7
  659. package/dist/modules/auth/events.js +0 -30
  660. package/dist/modules/auth/events.js.map +0 -7
  661. package/dist/modules/business_rules/api/execute/[ruleId]/route.js +0 -145
  662. package/dist/modules/business_rules/api/execute/[ruleId]/route.js.map +0 -7
  663. package/dist/modules/catalog/events.js +0 -34
  664. package/dist/modules/catalog/events.js.map +0 -7
  665. package/dist/modules/customers/events.js +0 -49
  666. package/dist/modules/customers/events.js.map +0 -7
  667. package/dist/modules/directory/events.js +0 -23
  668. package/dist/modules/directory/events.js.map +0 -7
  669. package/dist/modules/sales/events.js +0 -63
  670. package/dist/modules/sales/events.js.map +0 -7
  671. package/dist/modules/sales/lib/frontend/documentDataEvents.js +0 -25
  672. package/dist/modules/sales/lib/frontend/documentDataEvents.js.map +0 -7
  673. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +0 -481
  674. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +0 -7
  675. package/dist/modules/workflows/components/EventTriggersEditor.js +0 -553
  676. package/dist/modules/workflows/components/EventTriggersEditor.js.map +0 -7
  677. package/dist/modules/workflows/events.js +0 -38
  678. package/dist/modules/workflows/events.js.map +0 -7
  679. package/dist/modules/workflows/examples/order-approval-definition.json +0 -257
  680. package/dist/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  681. package/dist/modules/workflows/lib/event-trigger-service.js +0 -308
  682. package/dist/modules/workflows/lib/event-trigger-service.js.map +0 -7
  683. package/dist/modules/workflows/migrations/Migration20260123143500.js +0 -36
  684. package/dist/modules/workflows/migrations/Migration20260123143500.js.map +0 -7
  685. package/dist/modules/workflows/subscribers/event-trigger.js +0 -78
  686. package/dist/modules/workflows/subscribers/event-trigger.js.map +0 -7
  687. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +0 -323
  688. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +0 -7
  689. package/dist/modules/workflows/widgets/injection/order-approval/widget.js +0 -17
  690. package/dist/modules/workflows/widgets/injection/order-approval/widget.js.map +0 -7
  691. package/dist/modules/workflows/widgets/injection-table.js +0 -19
  692. package/dist/modules/workflows/widgets/injection-table.js.map +0 -7
  693. package/generated/entities/workflow_event_trigger/index.ts +0 -15
  694. package/src/modules/auth/events.ts +0 -39
  695. package/src/modules/business_rules/api/execute/[ruleId]/route.ts +0 -163
  696. package/src/modules/catalog/events.ts +0 -45
  697. package/src/modules/customers/events.ts +0 -63
  698. package/src/modules/directory/events.ts +0 -31
  699. package/src/modules/sales/events.ts +0 -82
  700. package/src/modules/sales/lib/frontend/documentDataEvents.ts +0 -28
  701. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +0 -581
  702. package/src/modules/workflows/components/EventTriggersEditor.tsx +0 -664
  703. package/src/modules/workflows/events.ts +0 -49
  704. package/src/modules/workflows/examples/order-approval-definition.json +0 -257
  705. package/src/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  706. package/src/modules/workflows/lib/event-trigger-service.ts +0 -557
  707. package/src/modules/workflows/migrations/Migration20260123143500.ts +0 -38
  708. package/src/modules/workflows/subscribers/event-trigger.ts +0 -109
  709. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +0 -446
  710. package/src/modules/workflows/widgets/injection/order-approval/widget.ts +0 -16
  711. package/src/modules/workflows/widgets/injection-table.ts +0 -21
@@ -72,6 +72,7 @@ export default function UserTasksListPage() {
72
72
  params.set('offset', offset.toString())
73
73
 
74
74
  if (filterValues.status) params.set('status', filterValues.status as string)
75
+ if (filterValues.myTasks === 'true') params.set('myTasks', 'true')
75
76
  if (filterValues.overdue === 'true') params.set('overdue', 'true')
76
77
  if (filterValues.workflowInstanceId) params.set('workflowInstanceId', filterValues.workflowInstanceId as string)
77
78
 
@@ -154,10 +155,10 @@ export default function UserTasksListPage() {
154
155
  label: t('workflows.tasks.filters.status'),
155
156
  options: [
156
157
  { label: t('common.all'), value: '' },
157
- { label: t('workflows.tasks.statuses.PENDING'), value: 'PENDING' },
158
- { label: t('workflows.tasks.statuses.IN_PROGRESS'), value: 'IN_PROGRESS' },
159
- { label: t('workflows.tasks.statuses.COMPLETED'), value: 'COMPLETED' },
160
- { label: t('workflows.tasks.statuses.CANCELLED'), value: 'CANCELLED' },
158
+ { label: t('workflows.tasks.status.PENDING'), value: 'PENDING' },
159
+ { label: t('workflows.tasks.status.IN_PROGRESS'), value: 'IN_PROGRESS' },
160
+ { label: t('workflows.tasks.status.COMPLETED'), value: 'COMPLETED' },
161
+ { label: t('workflows.tasks.status.CANCELLED'), value: 'CANCELLED' },
161
162
  ],
162
163
  },
163
164
  {
@@ -213,7 +214,7 @@ export default function UserTasksListPage() {
213
214
  accessorKey: 'status',
214
215
  cell: ({ row }) => (
215
216
  <span className={`inline-flex items-center px-2 py-1 rounded text-xs font-medium ${getStatusBadgeClass(row.original.status)}`}>
216
- {t(`workflows.tasks.statuses.${row.original.status}`)}
217
+ {t(`workflows.tasks.status.${row.original.status}`)}
217
218
  </span>
218
219
  ),
219
220
  },
@@ -272,8 +273,9 @@ export default function UserTasksListPage() {
272
273
  id: 'actions',
273
274
  header: '',
274
275
  cell: ({ row }) => {
275
- const items: Array<{label: string; href?: string; onSelect?: () => void}> = [
276
+ const items: Array<{ id: string; label: string; href?: string; onSelect?: () => void }> = [
276
277
  {
278
+ id: 'view',
277
279
  label: t('workflows.tasks.actions.viewDetails'),
278
280
  href: `/backend/tasks/${row.original.id}`,
279
281
  },
@@ -287,6 +289,7 @@ export default function UserTasksListPage() {
287
289
  row.original.assignedToRoles.length > 0
288
290
  ) {
289
291
  items.push({
292
+ id: 'claim',
290
293
  label: t('workflows.tasks.actions.claim'),
291
294
  onSelect: () => handleClaim(row.original.id, row.original.taskName),
292
295
  })
@@ -295,6 +298,7 @@ export default function UserTasksListPage() {
295
298
  // Allow completing if task is in progress or pending
296
299
  if (row.original.status === 'PENDING' || row.original.status === 'IN_PROGRESS') {
297
300
  items.push({
301
+ id: 'complete',
298
302
  label: t('workflows.tasks.actions.complete'),
299
303
  href: `/backend/tasks/${row.original.id}`,
300
304
  })
@@ -2,7 +2,6 @@ import type { ModuleCli } from '@open-mercato/shared/modules/registry'
2
2
  import { createRequestContainer } from '@open-mercato/shared/lib/di/container'
3
3
  import type { EntityManager } from '@mikro-orm/postgresql'
4
4
  import { WorkflowDefinition } from './data/entities'
5
- import { BusinessRule, type RuleType } from '@open-mercato/core/modules/business_rules/data/entities'
6
5
  import * as fs from 'fs'
7
6
  import * as path from 'path'
8
7
  import { fileURLToPath } from 'url'
@@ -57,7 +56,7 @@ const seedDemo: ModuleCli = {
57
56
  })
58
57
 
59
58
  if (existing) {
60
- console.log(`✓ Demo workflow '${demoData.workflowId}' already exists (ID: ${existing.id})`)
59
+ console.log(`ℹ️ Demo workflow '${demoData.workflowId}' already exists (ID: ${existing.id})`)
61
60
  return
62
61
  }
63
62
 
@@ -70,7 +69,7 @@ const seedDemo: ModuleCli = {
70
69
 
71
70
  await em.persistAndFlush(workflow)
72
71
 
73
- console.log(`✓ Seeded demo workflow: ${workflow.workflowName}`)
72
+ console.log(`✅ Seeded demo workflow: ${workflow.workflowName}`)
74
73
  console.log(` - ID: ${workflow.id}`)
75
74
  console.log(` - Workflow ID: ${workflow.workflowId}`)
76
75
  console.log(` - Version: ${workflow.version}`)
@@ -108,15 +107,15 @@ const seedDemoWithRules: ModuleCli = {
108
107
  return
109
108
  }
110
109
 
111
- console.log('Seeding demo workflow with guard rules...\n')
110
+ console.log('🧩 Seeding demo workflow with guard rules...\n')
112
111
 
113
112
  try {
114
113
  // Seed the workflow definition
115
- console.log('1. Seeding demo workflow...')
114
+ console.log('1. 🧩 Seeding demo workflow...')
116
115
  await seedDemo.run(rest)
117
116
 
118
117
  // Seed the guard rules
119
- console.log('\n2. Seeding guard rules...')
118
+ console.log('\n2. 🧠 Seeding guard rules...')
120
119
  const { resolve } = await createRequestContainer()
121
120
  const em = resolve<EntityManager>('em')
122
121
 
@@ -154,7 +153,7 @@ const seedDemoWithRules: ModuleCli = {
154
153
  seededCount++
155
154
  }
156
155
 
157
- console.log(`\n Demo workflow with guard rules seeded successfully!`)
156
+ console.log(`\n Demo workflow with guard rules seeded successfully!`)
158
157
  console.log(` - Workflow: checkout_simple_v1`)
159
158
  console.log(` - Guard rules seeded: ${seededCount}`)
160
159
  console.log(` - Guard rules skipped: ${skippedCount}`)
@@ -196,7 +195,7 @@ const seedSalesPipeline: ModuleCli = {
196
195
  })
197
196
 
198
197
  if (existing) {
199
- console.log(`✓ Sales pipeline workflow '${pipelineData.workflowId}' already exists (ID: ${existing.id})`)
198
+ console.log(`ℹ️ Sales pipeline workflow '${pipelineData.workflowId}' already exists (ID: ${existing.id})`)
200
199
  return
201
200
  }
202
201
 
@@ -209,7 +208,7 @@ const seedSalesPipeline: ModuleCli = {
209
208
 
210
209
  await em.persistAndFlush(workflow)
211
210
 
212
- console.log(`✓ Seeded sales pipeline workflow: ${workflow.workflowName}`)
211
+ console.log(`✅ Seeded sales pipeline workflow: ${workflow.workflowName}`)
213
212
  console.log(` - ID: ${workflow.id}`)
214
213
  console.log(` - Workflow ID: ${workflow.workflowId}`)
215
214
  console.log(` - Version: ${workflow.version}`)
@@ -256,7 +255,7 @@ const seedSimpleApproval: ModuleCli = {
256
255
  })
257
256
 
258
257
  if (existing) {
259
- console.log(`✓ Simple approval workflow '${approvalData.workflowId}' already exists (ID: ${existing.id})`)
258
+ console.log(`ℹ️ Simple approval workflow '${approvalData.workflowId}' already exists (ID: ${existing.id})`)
260
259
  return
261
260
  }
262
261
 
@@ -269,7 +268,7 @@ const seedSimpleApproval: ModuleCli = {
269
268
 
270
269
  await em.persistAndFlush(workflow)
271
270
 
272
- console.log(`✓ Seeded simple approval workflow: ${workflow.workflowName}`)
271
+ console.log(`✅ Seeded simple approval workflow: ${workflow.workflowName}`)
273
272
  console.log(` - ID: ${workflow.id}`)
274
273
  console.log(` - Workflow ID: ${workflow.workflowId}`)
275
274
  console.log(` - Version: ${workflow.version}`)
@@ -284,111 +283,6 @@ const seedSimpleApproval: ModuleCli = {
284
283
  },
285
284
  }
286
285
 
287
- /**
288
- * Seed order approval example
289
- */
290
- const seedOrderApproval: ModuleCli = {
291
- command: 'seed-order-approval',
292
- async run(rest: string[]) {
293
- const args = parseArgs(rest)
294
- const tenantId = String(args.tenantId ?? args.tenant ?? args.t ?? '')
295
- const organizationId = String(args.organizationId ?? args.orgId ?? args.org ?? args.o ?? '')
296
-
297
- if (!tenantId || !organizationId) {
298
- console.error('Usage: mercato workflows seed-order-approval --tenant <tenantId> --org <organizationId>')
299
- return
300
- }
301
-
302
- try {
303
- const { resolve } = await createRequestContainer()
304
- const em = resolve<EntityManager>('em')
305
-
306
- // 1. Seed order approval guard rules first
307
- const guardRulesPath = path.join(__dirname, 'examples', 'order-approval-guard-rules.json')
308
- const guardRulesData = JSON.parse(fs.readFileSync(guardRulesPath, 'utf8')) as Array<{
309
- ruleId: string
310
- ruleName: string
311
- ruleType: RuleType
312
- entityType: string
313
- description?: string
314
- eventType?: string
315
- conditionExpression?: Record<string, unknown>
316
- enabled?: boolean
317
- priority?: number
318
- }>
319
-
320
- let rulesSeeded = 0
321
- let rulesSkipped = 0
322
- for (const rule of guardRulesData) {
323
- const existingRule = await em.findOne(BusinessRule, {
324
- ruleId: rule.ruleId,
325
- tenantId,
326
- organizationId,
327
- })
328
-
329
- if (existingRule) {
330
- rulesSkipped++
331
- continue
332
- }
333
-
334
- const newRule = em.create(BusinessRule, {
335
- ...rule,
336
- tenantId,
337
- organizationId,
338
- })
339
- em.persist(newRule)
340
- console.log(` ✓ Seeded guard rule: ${rule.ruleName}`)
341
- rulesSeeded++
342
- }
343
-
344
- if (rulesSeeded > 0) {
345
- await em.flush()
346
- }
347
-
348
- // 2. Read the order approval workflow definition
349
- const approvalPath = path.join(__dirname, 'examples', 'order-approval-definition.json')
350
- const approvalData = JSON.parse(fs.readFileSync(approvalPath, 'utf8'))
351
-
352
- // Check if it already exists
353
- const existing = await em.findOne(WorkflowDefinition, {
354
- workflowId: approvalData.workflowId,
355
- tenantId,
356
- organizationId,
357
- })
358
-
359
- if (existing) {
360
- console.log(`✓ Order approval workflow '${approvalData.workflowId}' already exists (ID: ${existing.id})`)
361
- console.log(` - Guard rules seeded: ${rulesSeeded}`)
362
- console.log(` - Guard rules skipped: ${rulesSkipped}`)
363
- return
364
- }
365
-
366
- // Create the workflow definition
367
- const workflow = em.create(WorkflowDefinition, {
368
- ...approvalData,
369
- tenantId,
370
- organizationId,
371
- })
372
-
373
- await em.persistAndFlush(workflow)
374
-
375
- console.log(`✓ Seeded order approval workflow: ${workflow.workflowName}`)
376
- console.log(` - ID: ${workflow.id}`)
377
- console.log(` - Workflow ID: ${workflow.workflowId}`)
378
- console.log(` - Version: ${workflow.version}`)
379
- console.log(` - Steps: ${workflow.definition.steps.length}`)
380
- console.log(` - Transitions: ${workflow.definition.transitions.length}`)
381
- console.log(` - Guard rules seeded: ${rulesSeeded}`)
382
- console.log(` - Guard rules skipped: ${rulesSkipped}`)
383
- console.log('')
384
- console.log('Order approval workflow is ready!')
385
- } catch (error) {
386
- console.error('Error seeding order approval workflow:', error)
387
- throw error
388
- }
389
- },
390
- }
391
-
392
286
  /**
393
287
  * Start workflow activity worker
394
288
  */
@@ -457,7 +351,7 @@ const seedAll: ModuleCli = {
457
351
  return
458
352
  }
459
353
 
460
- console.log('Seeding all example workflows...\n')
354
+ console.log('🧩 Seeding all example workflows...\n')
461
355
 
462
356
  try {
463
357
  // Seed demo checkout with rules
@@ -472,11 +366,7 @@ const seedAll: ModuleCli = {
472
366
  await seedSimpleApproval.run(rest)
473
367
  console.log('')
474
368
 
475
- // Seed order approval
476
- await seedOrderApproval.run(rest)
477
- console.log('')
478
-
479
- console.log('✓ All example workflows seeded successfully!')
369
+ console.log('✅ All example workflows seeded successfully!')
480
370
  } catch (error) {
481
371
  console.error('Error seeding workflows:', error)
482
372
  throw error
@@ -554,7 +444,6 @@ const workflowsCliCommands = [
554
444
  seedDemoWithRules,
555
445
  seedSalesPipeline,
556
446
  seedSimpleApproval,
557
- seedOrderApproval,
558
447
  seedAll,
559
448
  ]
560
449
 
@@ -46,63 +46,6 @@ export type UserTaskStatus =
46
46
  | 'CANCELLED'
47
47
  | 'ESCALATED'
48
48
 
49
- // ============================================================================
50
- // Event Trigger Types
51
- // ============================================================================
52
-
53
- export type TriggerFilterOperator =
54
- | 'eq'
55
- | 'neq'
56
- | 'gt'
57
- | 'gte'
58
- | 'lt'
59
- | 'lte'
60
- | 'contains'
61
- | 'startsWith'
62
- | 'endsWith'
63
- | 'in'
64
- | 'notIn'
65
- | 'exists'
66
- | 'notExists'
67
- | 'regex'
68
-
69
- export interface TriggerFilterCondition {
70
- field: string // JSON path (e.g., "status", "metadata.type")
71
- operator: TriggerFilterOperator
72
- value: unknown
73
- }
74
-
75
- export interface TriggerContextMapping {
76
- targetKey: string // Key in workflow initial context
77
- sourceExpression: string // Path from event payload (supports dot notation)
78
- defaultValue?: unknown
79
- }
80
-
81
- export interface WorkflowEventTriggerConfig {
82
- filterConditions?: TriggerFilterCondition[]
83
- contextMapping?: TriggerContextMapping[]
84
- debounceMs?: number // Debounce rapid events
85
- maxConcurrentInstances?: number // Limit concurrent instances
86
- entityType?: string // Entity type for workflow instance metadata (e.g., "SalesOrder")
87
- }
88
-
89
- /**
90
- * WorkflowDefinitionTrigger - Embedded trigger configuration
91
- *
92
- * Triggers are now embedded directly in the workflow definition,
93
- * allowing users to configure event-based workflow starts during
94
- * workflow creation in the visual editor.
95
- */
96
- export interface WorkflowDefinitionTrigger {
97
- triggerId: string
98
- name: string
99
- description?: string | null
100
- eventPattern: string // e.g., "sales.orders.created", "customers.*"
101
- config?: WorkflowEventTriggerConfig | null
102
- enabled: boolean
103
- priority: number
104
- }
105
-
106
49
  // ============================================================================
107
50
  // JSONB Structure Interfaces
108
51
  // ============================================================================
@@ -110,7 +53,6 @@ export interface WorkflowDefinitionTrigger {
110
53
  export interface WorkflowDefinitionData {
111
54
  steps: any[] // WorkflowStep[] - will define schema in validators.ts
112
55
  transitions: any[] // WorkflowTransition[] - will define schema in validators.ts
113
- triggers?: WorkflowDefinitionTrigger[] // Event triggers for automatic workflow start
114
56
  activities?: any[] // ActivityDefinition[] - will define schema in validators.ts
115
57
  queries?: any[]
116
58
  signals?: any[]
@@ -487,71 +429,6 @@ export class WorkflowEvent {
487
429
  organizationId!: string
488
430
  }
489
431
 
490
- // ============================================================================
491
- // Entity: WorkflowEventTrigger
492
- // ============================================================================
493
-
494
- /**
495
- * WorkflowEventTrigger entity
496
- *
497
- * Maps event patterns to workflow definitions for automatic triggering.
498
- * When a matching event is emitted, the corresponding workflow is started
499
- * with context mapped from the event payload.
500
- */
501
- @Entity({ tableName: 'workflow_event_triggers' })
502
- @Index({ name: 'workflow_event_triggers_event_pattern_idx', properties: ['eventPattern', 'enabled'] })
503
- @Index({ name: 'workflow_event_triggers_definition_idx', properties: ['workflowDefinitionId'] })
504
- @Index({ name: 'workflow_event_triggers_tenant_org_idx', properties: ['tenantId', 'organizationId'] })
505
- @Index({ name: 'workflow_event_triggers_enabled_priority_idx', properties: ['enabled', 'priority'] })
506
- export class WorkflowEventTrigger {
507
- [OptionalProps]?: 'enabled' | 'priority' | 'createdAt' | 'updatedAt' | 'deletedAt'
508
-
509
- @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })
510
- id!: string
511
-
512
- @Property({ name: 'name', type: 'varchar', length: 255 })
513
- name!: string
514
-
515
- @Property({ name: 'description', type: 'text', nullable: true })
516
- description?: string | null
517
-
518
- @Property({ name: 'workflow_definition_id', type: 'uuid' })
519
- workflowDefinitionId!: string
520
-
521
- @Property({ name: 'event_pattern', type: 'varchar', length: 255 })
522
- eventPattern!: string
523
-
524
- @Property({ name: 'config', type: 'jsonb', nullable: true })
525
- config?: WorkflowEventTriggerConfig | null
526
-
527
- @Property({ name: 'enabled', type: 'boolean', default: true })
528
- enabled: boolean = true
529
-
530
- @Property({ name: 'priority', type: 'integer', default: 0 })
531
- priority: number = 0
532
-
533
- @Property({ name: 'tenant_id', type: 'uuid' })
534
- tenantId!: string
535
-
536
- @Property({ name: 'organization_id', type: 'uuid' })
537
- organizationId!: string
538
-
539
- @Property({ name: 'created_by', type: 'varchar', length: 255, nullable: true })
540
- createdBy?: string | null
541
-
542
- @Property({ name: 'updated_by', type: 'varchar', length: 255, nullable: true })
543
- updatedBy?: string | null
544
-
545
- @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })
546
- createdAt: Date = new Date()
547
-
548
- @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })
549
- updatedAt: Date = new Date()
550
-
551
- @Property({ name: 'deleted_at', type: Date, nullable: true })
552
- deletedAt?: Date | null
553
- }
554
-
555
432
  // Export all entities as default for MikroORM discovery
556
433
  export default [
557
434
  WorkflowDefinition,
@@ -559,5 +436,4 @@ export default [
559
436
  StepInstance,
560
437
  UserTask,
561
438
  WorkflowEvent,
562
- WorkflowEventTrigger,
563
439
  ]
@@ -215,43 +215,10 @@ export const workflowTransitionSchema = z.object({
215
215
  priority: z.number().int().min(0).max(9999).default(0),
216
216
  })
217
217
 
218
- // Workflow definition trigger schema (embedded in definition)
219
- // Note: Uses forward reference pattern since eventPatternSchema and eventTriggerConfigSchema are defined later
220
- export const workflowDefinitionTriggerSchema = z.object({
221
- triggerId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Trigger ID must contain only lowercase letters, numbers, hyphens, and underscores'),
222
- name: z.string().min(1).max(255),
223
- description: z.string().max(2000).optional().nullable(),
224
- eventPattern: z.string()
225
- .min(1, 'Event pattern is required')
226
- .max(255, 'Event pattern must be at most 255 characters')
227
- .regex(
228
- /^(\*|[a-z0-9_]+(\.[a-z0-9_*]+)*)$/i,
229
- 'Event pattern must be "*" or a dot-separated pattern with optional wildcards (e.g., "customers.people.created", "sales.orders.*")'
230
- ),
231
- config: z.object({
232
- filterConditions: z.array(z.object({
233
- field: z.string().min(1).max(255),
234
- operator: z.enum(['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'contains', 'startsWith', 'endsWith', 'in', 'notIn', 'exists', 'notExists', 'regex']),
235
- value: z.any(),
236
- })).max(20).optional(),
237
- contextMapping: z.array(z.object({
238
- targetKey: z.string().min(1).max(100),
239
- sourceExpression: z.string().min(1).max(255),
240
- defaultValue: z.any().optional(),
241
- })).max(50).optional(),
242
- debounceMs: z.number().int().min(0).max(3600000).optional(),
243
- maxConcurrentInstances: z.number().int().min(1).max(1000).optional(),
244
- }).optional().nullable(),
245
- enabled: z.boolean().default(true),
246
- priority: z.number().int().min(0).max(9999).default(0),
247
- })
248
- export type WorkflowDefinitionTrigger = z.infer<typeof workflowDefinitionTriggerSchema>
249
-
250
218
  // Workflow definition data (JSONB structure)
251
219
  export const workflowDefinitionDataSchema = z.object({
252
220
  steps: z.array(workflowStepSchema).min(2, 'Workflow must have at least START and END steps'),
253
221
  transitions: z.array(workflowTransitionSchema).min(1, 'Workflow must have at least one transition'),
254
- triggers: z.array(workflowDefinitionTriggerSchema).optional(), // Event triggers for automatic workflow start
255
222
  queries: z.array(z.any()).optional(), // For Phase 7
256
223
  signals: z.array(z.any()).optional(), // For Phase 9
257
224
  timers: z.array(z.any()).optional(), // For Phase 9
@@ -521,108 +488,3 @@ export const startWorkflowInputSchema = z.object({
521
488
  })
522
489
 
523
490
  export type StartWorkflowApiInput = z.infer<typeof startWorkflowInputSchema>
524
-
525
- // ============================================================================
526
- // WorkflowEventTrigger Schemas
527
- // ============================================================================
528
-
529
- export const triggerFilterOperatorSchema = z.enum([
530
- 'eq',
531
- 'neq',
532
- 'gt',
533
- 'gte',
534
- 'lt',
535
- 'lte',
536
- 'contains',
537
- 'startsWith',
538
- 'endsWith',
539
- 'in',
540
- 'notIn',
541
- 'exists',
542
- 'notExists',
543
- 'regex',
544
- ])
545
- export type TriggerFilterOperator = z.infer<typeof triggerFilterOperatorSchema>
546
-
547
- export const triggerFilterConditionSchema = z.object({
548
- field: z.string().min(1).max(255, 'Field path must be at most 255 characters'),
549
- operator: triggerFilterOperatorSchema,
550
- value: z.any(),
551
- })
552
- export type TriggerFilterCondition = z.infer<typeof triggerFilterConditionSchema>
553
-
554
- export const triggerContextMappingSchema = z.object({
555
- targetKey: z.string().min(1).max(100, 'Target key must be at most 100 characters'),
556
- sourceExpression: z.string().min(1).max(255, 'Source expression must be at most 255 characters'),
557
- defaultValue: z.any().optional(),
558
- })
559
- export type TriggerContextMapping = z.infer<typeof triggerContextMappingSchema>
560
-
561
- export const eventTriggerConfigSchema = z.object({
562
- filterConditions: z.array(triggerFilterConditionSchema).max(20, 'Maximum 20 filter conditions allowed').optional(),
563
- contextMapping: z.array(triggerContextMappingSchema).max(50, 'Maximum 50 context mappings allowed').optional(),
564
- debounceMs: z.number().int().min(0).max(3600000, 'Debounce cannot exceed 1 hour').optional(),
565
- maxConcurrentInstances: z.number().int().min(1).max(1000, 'Max concurrent instances must be between 1 and 1000').optional(),
566
- })
567
- export type EventTriggerConfig = z.infer<typeof eventTriggerConfigSchema>
568
-
569
- export const eventPatternSchema = z.string()
570
- .min(1, 'Event pattern is required')
571
- .max(255, 'Event pattern must be at most 255 characters')
572
- .regex(
573
- /^(\*|[a-z0-9_]+(\.[a-z0-9_*]+)*)$/i,
574
- 'Event pattern must be "*" or a dot-separated pattern with optional wildcards (e.g., "customers.people.created", "sales.orders.*")'
575
- )
576
-
577
- export const createEventTriggerSchema = z.object({
578
- name: z.string().min(1).max(255),
579
- description: z.string().max(2000).optional().nullable(),
580
- workflowDefinitionId: uuid,
581
- eventPattern: eventPatternSchema,
582
- config: eventTriggerConfigSchema.optional().nullable(),
583
- enabled: z.boolean().default(true),
584
- priority: z.number().int().min(0).max(9999).default(0),
585
- tenantId: uuid,
586
- organizationId: uuid,
587
- createdBy: z.string().max(255).optional().nullable(),
588
- })
589
- export type CreateEventTriggerInput = z.infer<typeof createEventTriggerSchema>
590
-
591
- // API input schema (omits tenant fields - injected from auth context)
592
- export const createEventTriggerInputSchema = z.object({
593
- name: z.string().min(1).max(255),
594
- description: z.string().max(2000).optional().nullable(),
595
- workflowDefinitionId: uuid,
596
- eventPattern: eventPatternSchema,
597
- config: eventTriggerConfigSchema.optional().nullable(),
598
- enabled: z.boolean().default(true).optional(),
599
- priority: z.number().int().min(0).max(9999).default(0).optional(),
600
- })
601
- export type CreateEventTriggerApiInput = z.infer<typeof createEventTriggerInputSchema>
602
-
603
- export const updateEventTriggerSchema = createEventTriggerSchema.partial().extend({
604
- id: uuid,
605
- })
606
- export type UpdateEventTriggerInput = z.infer<typeof updateEventTriggerSchema>
607
-
608
- // API update schema (omits tenant fields and allows partial updates)
609
- export const updateEventTriggerInputSchema = z.object({
610
- name: z.string().min(1).max(255).optional(),
611
- description: z.string().max(2000).optional().nullable(),
612
- workflowDefinitionId: uuid.optional(),
613
- eventPattern: eventPatternSchema.optional(),
614
- config: eventTriggerConfigSchema.optional().nullable(),
615
- enabled: z.boolean().optional(),
616
- priority: z.number().int().min(0).max(9999).optional(),
617
- }).strict()
618
- export type UpdateEventTriggerApiInput = z.infer<typeof updateEventTriggerInputSchema>
619
-
620
- export const eventTriggerFilterSchema = z.object({
621
- name: z.string().optional(),
622
- workflowDefinitionId: uuid.optional(),
623
- eventPattern: z.string().optional(),
624
- enabled: z.boolean().optional(),
625
- tenantId: uuid.optional(),
626
- organizationId: uuid.optional(),
627
- })
628
- export type EventTriggerFilter = z.infer<typeof eventTriggerFilterSchema>
@@ -137,7 +137,11 @@
137
137
  "priority": 100,
138
138
  "preConditions": [
139
139
  {
140
- "ruleId": "workflow_checkout_cart_not_empty",
140
+ "ruleId": "cart_not_empty",
141
+ "required": true
142
+ },
143
+ {
144
+ "ruleId": "inventory_available",
141
145
  "required": true
142
146
  }
143
147
  ],