@open-mercato/core 0.6.7-develop.6862.1.c11a64ce0a → 0.6.7

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 (1458) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/AGENTS.md +3 -3
  3. package/agentic/standalone-guide.md +0 -13
  4. package/dist/bootstrap.js +1 -16
  5. package/dist/bootstrap.js.map +2 -2
  6. package/dist/generated/entities/customer_deal_person_link/index.js +0 -2
  7. package/dist/generated/entities/customer_deal_person_link/index.js.map +2 -2
  8. package/dist/generated/entities/customer_user_invitation/index.js +0 -2
  9. package/dist/generated/entities/customer_user_invitation/index.js.map +2 -2
  10. package/dist/generated/entities/gateway_payment_operation/index.js +0 -2
  11. package/dist/generated/entities/gateway_payment_operation/index.js.map +2 -2
  12. package/dist/generated/entities/gateway_transaction/index.js +0 -2
  13. package/dist/generated/entities/gateway_transaction/index.js.map +2 -2
  14. package/dist/generated/entities/organization/index.js +0 -2
  15. package/dist/generated/entities/organization/index.js.map +2 -2
  16. package/dist/generated/entities/resources_resource/index.js +0 -2
  17. package/dist/generated/entities/resources_resource/index.js.map +2 -2
  18. package/dist/generated/entities.ids.generated.js +1 -3
  19. package/dist/generated/entities.ids.generated.js.map +2 -2
  20. package/dist/generated/entity-fields-registry.js +0 -23
  21. package/dist/generated/entity-fields-registry.js.map +2 -2
  22. package/dist/helpers/integration/salesFixtures.js +2 -31
  23. package/dist/helpers/integration/salesFixtures.js.map +2 -2
  24. package/dist/helpers/integration/salesUi.js +0 -5
  25. package/dist/helpers/integration/salesUi.js.map +2 -2
  26. package/dist/modules/api_keys/backend/api-keys/page.js +1 -2
  27. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  28. package/dist/modules/attachments/api/route.js +10 -120
  29. package/dist/modules/attachments/api/route.js.map +2 -2
  30. package/dist/modules/attachments/data/entities.js +1 -67
  31. package/dist/modules/attachments/data/entities.js.map +2 -2
  32. package/dist/modules/attachments/di.js +1 -7
  33. package/dist/modules/attachments/di.js.map +2 -2
  34. package/dist/modules/attachments/fields/attachment.js +1 -1
  35. package/dist/modules/attachments/fields/attachment.js.map +2 -2
  36. package/dist/modules/attachments/lib/drivers/index.js.map +1 -1
  37. package/dist/modules/attachments/lib/drivers/localDriver.js +6 -19
  38. package/dist/modules/attachments/lib/drivers/localDriver.js.map +2 -2
  39. package/dist/modules/attachments/lib/upload-limits.js +0 -33
  40. package/dist/modules/attachments/lib/upload-limits.js.map +2 -2
  41. package/dist/modules/audit_logs/api/audit-logs/access/route.js +1 -5
  42. package/dist/modules/audit_logs/api/audit-logs/access/route.js.map +2 -2
  43. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js +1 -5
  44. package/dist/modules/audit_logs/api/audit-logs/actions/export/route.js.map +2 -2
  45. package/dist/modules/audit_logs/api/audit-logs/actions/route.js +1 -5
  46. package/dist/modules/audit_logs/api/audit-logs/actions/route.js.map +2 -2
  47. package/dist/modules/audit_logs/components/AccessLogsTable.js +1 -2
  48. package/dist/modules/audit_logs/components/AccessLogsTable.js.map +2 -2
  49. package/dist/modules/audit_logs/components/AuditLogsActions.js +1 -2
  50. package/dist/modules/audit_logs/components/AuditLogsActions.js.map +2 -2
  51. package/dist/modules/auth/api/admin/nav.js +4 -17
  52. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  53. package/dist/modules/auth/api/profile/route.js +2 -8
  54. package/dist/modules/auth/api/profile/route.js.map +2 -2
  55. package/dist/modules/auth/api/users/route.js +19 -8
  56. package/dist/modules/auth/api/users/route.js.map +2 -2
  57. package/dist/modules/auth/backend/auth/profile/page.js.map +2 -2
  58. package/dist/modules/auth/backend/profile/change-password/page.js.map +2 -2
  59. package/dist/modules/auth/backend/roles/page.js +1 -2
  60. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  61. package/dist/modules/auth/backend/settings/page.js +9 -14
  62. package/dist/modules/auth/backend/settings/page.js.map +2 -2
  63. package/dist/modules/auth/backend/users/page.js +1 -2
  64. package/dist/modules/auth/backend/users/page.js.map +2 -2
  65. package/dist/modules/auth/cli.js +1 -1
  66. package/dist/modules/auth/cli.js.map +2 -2
  67. package/dist/modules/auth/components/UserConsentsPanel.js +9 -9
  68. package/dist/modules/auth/components/UserConsentsPanel.js.map +2 -2
  69. package/dist/modules/auth/frontend/login.js +5 -6
  70. package/dist/modules/auth/frontend/login.js.map +2 -2
  71. package/dist/modules/auth/frontend/reset.js +2 -2
  72. package/dist/modules/auth/frontend/reset.js.map +2 -2
  73. package/dist/modules/auth/lib/backendChrome.js +29 -45
  74. package/dist/modules/auth/lib/backendChrome.js.map +2 -2
  75. package/dist/modules/auth/lib/setup-app.js +2 -17
  76. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  77. package/dist/modules/auth/lib/tenantAccess.js +0 -7
  78. package/dist/modules/auth/lib/tenantAccess.js.map +2 -2
  79. package/dist/modules/auth/services/rbacService.js +44 -29
  80. package/dist/modules/auth/services/rbacService.js.map +2 -2
  81. package/dist/modules/business_rules/api/rules/route.js +4 -71
  82. package/dist/modules/business_rules/api/rules/route.js.map +2 -2
  83. package/dist/modules/business_rules/backend/rules/page.js +1 -2
  84. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  85. package/dist/modules/business_rules/components/ActionBuilder.js +4 -47
  86. package/dist/modules/business_rules/components/ActionBuilder.js.map +3 -3
  87. package/dist/modules/business_rules/components/ActionRow.js +16 -106
  88. package/dist/modules/business_rules/components/ActionRow.js.map +2 -2
  89. package/dist/modules/business_rules/components/ConditionRow.js +4 -8
  90. package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
  91. package/dist/modules/business_rules/components/utils/actionValidation.js +0 -6
  92. package/dist/modules/business_rules/components/utils/actionValidation.js.map +2 -2
  93. package/dist/modules/business_rules/lib/action-executor.js +0 -148
  94. package/dist/modules/business_rules/lib/action-executor.js.map +2 -2
  95. package/dist/modules/business_rules/lib/rule-engine.js +1 -5
  96. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  97. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +5 -6
  98. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  99. package/dist/modules/catalog/backend/catalog/products/create/page.js +6 -7
  100. package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
  101. package/dist/modules/catalog/components/PriceKindSettings.js +3 -3
  102. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  103. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +1 -2
  104. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  105. package/dist/modules/catalog/components/products/ProductCategorizeSection.js +3 -3
  106. package/dist/modules/catalog/components/products/ProductCategorizeSection.js.map +2 -2
  107. package/dist/modules/catalog/components/products/ProductMediaManager.js +1 -1
  108. package/dist/modules/catalog/components/products/ProductMediaManager.js.map +2 -2
  109. package/dist/modules/catalog/components/products/ProductsDataTable.js +2 -3
  110. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  111. package/dist/modules/catalog/components/products/VariantBuilder.js +5 -5
  112. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  113. package/dist/modules/catalog/events.js +0 -1
  114. package/dist/modules/catalog/events.js.map +2 -2
  115. package/dist/modules/catalog/widgets/injection/product-seo/widget.js +1 -1
  116. package/dist/modules/catalog/widgets/injection/product-seo/widget.js.map +2 -2
  117. package/dist/modules/communication_channels/api/post/test-seed/route.js +2 -52
  118. package/dist/modules/communication_channels/api/post/test-seed/route.js.map +2 -2
  119. package/dist/modules/communication_channels/api/post/webhook/[provider]/route.js +1 -11
  120. package/dist/modules/communication_channels/api/post/webhook/[provider]/route.js.map +2 -2
  121. package/dist/modules/communication_channels/api/post/webhooks/gmail/route.js +6 -11
  122. package/dist/modules/communication_channels/api/post/webhooks/gmail/route.js.map +2 -2
  123. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js +1 -2
  124. package/dist/modules/communication_channels/backend/communication_channels/channels/page.js.map +2 -2
  125. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js +3 -4
  126. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js.map +2 -2
  127. package/dist/modules/communication_channels/data/enrichers.js +4 -4
  128. package/dist/modules/communication_channels/data/enrichers.js.map +2 -2
  129. package/dist/modules/communication_channels/lib/access-control.js +2 -2
  130. package/dist/modules/communication_channels/lib/access-control.js.map +2 -2
  131. package/dist/modules/configs/backend/config/system-status/page.js +1 -2
  132. package/dist/modules/configs/backend/config/system-status/page.js.map +2 -2
  133. package/dist/modules/configs/lib/upgrade-actions.js +0 -12
  134. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  135. package/dist/modules/currencies/backend/currencies/page.js +1 -2
  136. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  137. package/dist/modules/currencies/backend/exchange-rates/page.js +1 -2
  138. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  139. package/dist/modules/currencies/di.js +0 -4
  140. package/dist/modules/currencies/di.js.map +2 -2
  141. package/dist/modules/customer_accounts/api/admin/users/[id].js +1 -10
  142. package/dist/modules/customer_accounts/api/admin/users/[id].js.map +2 -2
  143. package/dist/modules/customer_accounts/api/admin/users-invite.js +4 -63
  144. package/dist/modules/customer_accounts/api/admin/users-invite.js.map +2 -2
  145. package/dist/modules/customer_accounts/api/invitations/accept.js +2 -1
  146. package/dist/modules/customer_accounts/api/invitations/accept.js.map +2 -2
  147. package/dist/modules/customer_accounts/api/login.js +2 -4
  148. package/dist/modules/customer_accounts/api/login.js.map +2 -2
  149. package/dist/modules/customer_accounts/api/magic-link/verify.js +2 -4
  150. package/dist/modules/customer_accounts/api/magic-link/verify.js.map +2 -2
  151. package/dist/modules/customer_accounts/api/portal/feature-check.js +4 -5
  152. package/dist/modules/customer_accounts/api/portal/feature-check.js.map +2 -2
  153. package/dist/modules/customer_accounts/api/portal/nav.js +4 -6
  154. package/dist/modules/customer_accounts/api/portal/nav.js.map +2 -2
  155. package/dist/modules/customer_accounts/api/portal/profile.js +1 -5
  156. package/dist/modules/customer_accounts/api/portal/profile.js.map +2 -2
  157. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js +3 -3
  158. package/dist/modules/customer_accounts/api/portal/sessions-refresh.js.map +2 -2
  159. package/dist/modules/customer_accounts/api/portal/users-invite.js +2 -22
  160. package/dist/modules/customer_accounts/api/portal/users-invite.js.map +2 -2
  161. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js +1 -2
  162. package/dist/modules/customer_accounts/backend/customer_accounts/roles/page.js.map +2 -2
  163. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +1 -2
  164. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  165. package/dist/modules/customer_accounts/data/entities.js +0 -3
  166. package/dist/modules/customer_accounts/data/entities.js.map +2 -2
  167. package/dist/modules/customer_accounts/data/validators.js +0 -1
  168. package/dist/modules/customer_accounts/data/validators.js.map +2 -2
  169. package/dist/modules/customer_accounts/lib/customerAuth.js +2 -7
  170. package/dist/modules/customer_accounts/lib/customerAuth.js.map +2 -2
  171. package/dist/modules/customer_accounts/lib/customerAuthServer.js +1 -2
  172. package/dist/modules/customer_accounts/lib/customerAuthServer.js.map +2 -2
  173. package/dist/modules/customer_accounts/lib/customerEntityOwnership.js +3 -29
  174. package/dist/modules/customer_accounts/lib/customerEntityOwnership.js.map +2 -2
  175. package/dist/modules/customer_accounts/lib/customerUrl.js +10 -19
  176. package/dist/modules/customer_accounts/lib/customerUrl.js.map +2 -2
  177. package/dist/modules/customer_accounts/services/customerInvitationService.js +2 -32
  178. package/dist/modules/customer_accounts/services/customerInvitationService.js.map +2 -2
  179. package/dist/modules/customer_accounts/services/customerRbacService.js +3 -12
  180. package/dist/modules/customer_accounts/services/customerRbacService.js.map +2 -2
  181. package/dist/modules/customer_accounts/setup.js +0 -6
  182. package/dist/modules/customer_accounts/setup.js.map +2 -2
  183. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js +7 -47
  184. package/dist/modules/customer_accounts/subscribers/autoLinkCrm.js.map +2 -2
  185. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +2 -2
  186. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +2 -2
  187. package/dist/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.js +1 -1
  188. package/dist/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.js.map +2 -2
  189. package/dist/modules/customer_accounts/widgets/injection-table.js +1 -1
  190. package/dist/modules/customer_accounts/widgets/injection-table.js.map +2 -2
  191. package/dist/modules/customers/analytics.js +1 -4
  192. package/dist/modules/customers/analytics.js.map +2 -2
  193. package/dist/modules/customers/api/companies/[id]/route.js +4 -3
  194. package/dist/modules/customers/api/companies/[id]/route.js.map +2 -2
  195. package/dist/modules/customers/api/deals/[id]/people/route.js +2 -4
  196. package/dist/modules/customers/api/deals/[id]/people/route.js.map +2 -2
  197. package/dist/modules/customers/api/deals/[id]/route.js +3 -7
  198. package/dist/modules/customers/api/deals/[id]/route.js.map +2 -2
  199. package/dist/modules/customers/api/deals/aggregate/route.js +4 -5
  200. package/dist/modules/customers/api/deals/aggregate/route.js.map +2 -2
  201. package/dist/modules/customers/api/deals/summary/route.js +119 -14
  202. package/dist/modules/customers/api/deals/summary/route.js.map +2 -2
  203. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js +2 -3
  204. package/dist/modules/customers/api/people/[id]/companies/enriched/route.js.map +2 -2
  205. package/dist/modules/customers/api/utils.js +18 -12
  206. package/dist/modules/customers/api/utils.js.map +2 -2
  207. package/dist/modules/customers/backend/customers/companies/[id]/page.js +1 -2
  208. package/dist/modules/customers/backend/customers/companies/[id]/page.js.map +2 -2
  209. package/dist/modules/customers/backend/customers/companies/page.js +1 -2
  210. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  211. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js +5 -16
  212. package/dist/modules/customers/backend/customers/companies-v2/[id]/page.js.map +2 -2
  213. package/dist/modules/customers/backend/customers/deals/[id]/page.js +11 -18
  214. package/dist/modules/customers/backend/customers/deals/[id]/page.js.map +2 -2
  215. package/dist/modules/customers/backend/customers/deals/page.js +1 -2
  216. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  217. package/dist/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.js +3 -17
  218. package/dist/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.js.map +2 -2
  219. package/dist/modules/customers/backend/customers/deals/pipeline/page.js +1 -7
  220. package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +2 -2
  221. package/dist/modules/customers/backend/customers/people/[id]/page.js +1 -2
  222. package/dist/modules/customers/backend/customers/people/[id]/page.js.map +2 -2
  223. package/dist/modules/customers/backend/customers/people/page.js +1 -2
  224. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  225. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js +10 -26
  226. package/dist/modules/customers/backend/customers/people-v2/[id]/page.js.map +2 -2
  227. package/dist/modules/customers/cli.js +11 -28
  228. package/dist/modules/customers/cli.js.map +2 -2
  229. package/dist/modules/customers/commands/deals.js +10 -48
  230. package/dist/modules/customers/commands/deals.js.map +2 -2
  231. package/dist/modules/customers/commands/people.js +0 -2
  232. package/dist/modules/customers/commands/people.js.map +2 -2
  233. package/dist/modules/customers/components/CustomerTodosTable.js +1 -2
  234. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  235. package/dist/modules/customers/components/detail/ActiveDealCard.js +1 -2
  236. package/dist/modules/customers/components/detail/ActiveDealCard.js.map +2 -2
  237. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js +3 -2
  238. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js.map +2 -2
  239. package/dist/modules/customers/components/detail/CompanyDetailTabs.js +6 -26
  240. package/dist/modules/customers/components/detail/CompanyDetailTabs.js.map +2 -2
  241. package/dist/modules/customers/components/detail/CompanyKpiBar.js +5 -6
  242. package/dist/modules/customers/components/detail/CompanyKpiBar.js.map +2 -2
  243. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js +1 -1
  244. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js.map +1 -1
  245. package/dist/modules/customers/components/detail/DealDetailTabs.js +8 -30
  246. package/dist/modules/customers/components/detail/DealDetailTabs.js.map +2 -2
  247. package/dist/modules/customers/components/detail/DealForm.js +1 -2
  248. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  249. package/dist/modules/customers/components/detail/DealsSection.js +1 -1
  250. package/dist/modules/customers/components/detail/DealsSection.js.map +2 -2
  251. package/dist/modules/customers/components/detail/PersonDetailTabs.js +8 -30
  252. package/dist/modules/customers/components/detail/PersonDetailTabs.js.map +2 -2
  253. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js +216 -231
  254. package/dist/modules/customers/components/detail/ScheduleActivityDialog.js.map +2 -2
  255. package/dist/modules/customers/components/detail/dashboard/helpers.js +3 -4
  256. package/dist/modules/customers/components/detail/dashboard/helpers.js.map +2 -2
  257. package/dist/modules/customers/components/formConfig.js +10 -14
  258. package/dist/modules/customers/components/formConfig.js.map +2 -2
  259. package/dist/modules/customers/data/entities.js +0 -8
  260. package/dist/modules/customers/data/entities.js.map +2 -2
  261. package/dist/modules/customers/data/validators.js +2 -5
  262. package/dist/modules/customers/data/validators.js.map +2 -2
  263. package/dist/modules/customers/lib/calendar/format.js +4 -8
  264. package/dist/modules/customers/lib/calendar/format.js.map +2 -2
  265. package/dist/modules/customers/lib/visibilityFilter.js +4 -6
  266. package/dist/modules/customers/lib/visibilityFilter.js.map +2 -2
  267. package/dist/modules/customers/search.js +29 -50
  268. package/dist/modules/customers/search.js.map +2 -2
  269. package/dist/modules/dashboards/api/layout/[itemId]/route.js +3 -6
  270. package/dist/modules/dashboards/api/layout/[itemId]/route.js.map +2 -2
  271. package/dist/modules/dashboards/api/layout/route.js +9 -22
  272. package/dist/modules/dashboards/api/layout/route.js.map +2 -2
  273. package/dist/modules/dashboards/api/roles/widgets/route.js +3 -9
  274. package/dist/modules/dashboards/api/roles/widgets/route.js.map +2 -2
  275. package/dist/modules/dashboards/api/users/widgets/route.js +3 -9
  276. package/dist/modules/dashboards/api/users/widgets/route.js.map +2 -2
  277. package/dist/modules/dashboards/api/widgets/catalog.js +3 -6
  278. package/dist/modules/dashboards/api/widgets/catalog.js.map +2 -2
  279. package/dist/modules/dashboards/api/widgets/data/batch/route.js +3 -12
  280. package/dist/modules/dashboards/api/widgets/data/batch/route.js.map +2 -2
  281. package/dist/modules/dashboards/api/widgets/data/route.js +3 -28
  282. package/dist/modules/dashboards/api/widgets/data/route.js.map +2 -2
  283. package/dist/modules/dashboards/api/widgets/data/schema.js +18 -28
  284. package/dist/modules/dashboards/api/widgets/data/schema.js.map +2 -2
  285. package/dist/modules/dashboards/lib/access.js +3 -5
  286. package/dist/modules/dashboards/lib/access.js.map +2 -2
  287. package/dist/modules/dashboards/lib/aggregations.js +46 -113
  288. package/dist/modules/dashboards/lib/aggregations.js.map +2 -2
  289. package/dist/modules/dashboards/lib/formatters.js +11 -84
  290. package/dist/modules/dashboards/lib/formatters.js.map +2 -2
  291. package/dist/modules/dashboards/services/widgetDataService.js +14 -316
  292. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  293. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js +3 -9
  294. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.js.map +2 -2
  295. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/config.js +2 -52
  296. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/config.js.map +2 -2
  297. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.js +30 -52
  298. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.js.map +2 -2
  299. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js +2 -2
  300. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js.map +2 -2
  301. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js +3 -9
  302. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.js.map +2 -2
  303. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js +3 -8
  304. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js.map +2 -2
  305. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js +18 -26
  306. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js.map +2 -2
  307. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js +14 -22
  308. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js.map +2 -2
  309. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js +4 -10
  310. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js.map +2 -2
  311. package/dist/modules/data_sync/api/mappings/[id]/route.js +9 -22
  312. package/dist/modules/data_sync/api/mappings/[id]/route.js.map +2 -2
  313. package/dist/modules/data_sync/api/mappings/route.js +4 -13
  314. package/dist/modules/data_sync/api/mappings/route.js.map +2 -2
  315. package/dist/modules/data_sync/api/options.js +2 -7
  316. package/dist/modules/data_sync/api/options.js.map +2 -2
  317. package/dist/modules/data_sync/api/run.js +2 -7
  318. package/dist/modules/data_sync/api/run.js.map +2 -2
  319. package/dist/modules/data_sync/api/runs/[id]/cancel.js +3 -8
  320. package/dist/modules/data_sync/api/runs/[id]/cancel.js.map +2 -2
  321. package/dist/modules/data_sync/api/runs/[id]/retry.js +2 -7
  322. package/dist/modules/data_sync/api/runs/[id]/retry.js.map +2 -2
  323. package/dist/modules/data_sync/api/runs/[id]/route.js +3 -8
  324. package/dist/modules/data_sync/api/runs/[id]/route.js.map +2 -2
  325. package/dist/modules/data_sync/api/runs.js +2 -7
  326. package/dist/modules/data_sync/api/runs.js.map +2 -2
  327. package/dist/modules/data_sync/api/schedules/[id]/route.js +6 -19
  328. package/dist/modules/data_sync/api/schedules/[id]/route.js.map +2 -2
  329. package/dist/modules/data_sync/api/schedules/route.js +4 -13
  330. package/dist/modules/data_sync/api/schedules/route.js.map +2 -2
  331. package/dist/modules/data_sync/api/validate.js +4 -9
  332. package/dist/modules/data_sync/api/validate.js.map +2 -2
  333. package/dist/modules/data_sync/backend/data-sync/page.js +1 -2
  334. package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
  335. package/dist/modules/data_sync/lib/queue.js +1 -16
  336. package/dist/modules/data_sync/lib/queue.js.map +2 -2
  337. package/dist/modules/data_sync/lib/start-run.js +1 -2
  338. package/dist/modules/data_sync/lib/start-run.js.map +2 -2
  339. package/dist/modules/data_sync/lib/sync-engine.js +2 -35
  340. package/dist/modules/data_sync/lib/sync-engine.js.map +2 -2
  341. package/dist/modules/data_sync/lib/sync-run-service.js +2 -70
  342. package/dist/modules/data_sync/lib/sync-run-service.js.map +2 -2
  343. package/dist/modules/data_sync/workers/sync-export.js +2 -9
  344. package/dist/modules/data_sync/workers/sync-export.js.map +2 -2
  345. package/dist/modules/data_sync/workers/sync-import.js +2 -9
  346. package/dist/modules/data_sync/workers/sync-import.js.map +2 -2
  347. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js +12 -34
  348. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js.map +2 -2
  349. package/dist/modules/dictionaries/api/openapi.js +2 -15
  350. package/dist/modules/dictionaries/api/openapi.js.map +2 -2
  351. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +1 -1
  352. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
  353. package/dist/modules/dictionaries/components/hooks/useDictionaryEntries.js +29 -30
  354. package/dist/modules/dictionaries/components/hooks/useDictionaryEntries.js.map +2 -2
  355. package/dist/modules/dictionaries/data/validators.js +0 -7
  356. package/dist/modules/dictionaries/data/validators.js.map +2 -2
  357. package/dist/modules/dictionaries/lib/clientEntries.js +3 -4
  358. package/dist/modules/dictionaries/lib/clientEntries.js.map +2 -2
  359. package/dist/modules/directory/api/organization-branding/route.js +3 -10
  360. package/dist/modules/directory/api/organization-branding/route.js.map +2 -2
  361. package/dist/modules/directory/api/organization-switcher/route.js +20 -84
  362. package/dist/modules/directory/api/organization-switcher/route.js.map +2 -2
  363. package/dist/modules/directory/api/organizations/route.js +0 -7
  364. package/dist/modules/directory/api/organizations/route.js.map +3 -3
  365. package/dist/modules/directory/api/tenants/route.js +2 -8
  366. package/dist/modules/directory/api/tenants/route.js.map +2 -2
  367. package/dist/modules/directory/backend/directory/branding/page.js +8 -31
  368. package/dist/modules/directory/backend/directory/branding/page.js.map +2 -2
  369. package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js +16 -7
  370. package/dist/modules/directory/backend/directory/organizations/[id]/edit/page.js.map +2 -2
  371. package/dist/modules/directory/backend/directory/organizations/page.js +1 -2
  372. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  373. package/dist/modules/directory/backend/directory/tenants/page.js +1 -2
  374. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  375. package/dist/modules/directory/commands/organizations.js +1 -8
  376. package/dist/modules/directory/commands/organizations.js.map +2 -2
  377. package/dist/modules/directory/commands/tenants.js +0 -6
  378. package/dist/modules/directory/commands/tenants.js.map +2 -2
  379. package/dist/modules/directory/data/entities.js +0 -4
  380. package/dist/modules/directory/data/entities.js.map +2 -2
  381. package/dist/modules/directory/data/validators.js +0 -2
  382. package/dist/modules/directory/data/validators.js.map +2 -2
  383. package/dist/modules/directory/subscribers/invalidateOrgScopeCache.js +1 -5
  384. package/dist/modules/directory/subscribers/invalidateOrgScopeCache.js.map +2 -2
  385. package/dist/modules/directory/utils/organizationScope.js +3 -11
  386. package/dist/modules/directory/utils/organizationScope.js.map +2 -2
  387. package/dist/modules/entities/api/definitions.js +3 -53
  388. package/dist/modules/entities/api/definitions.js.map +2 -2
  389. package/dist/modules/entities/api/entities.js +2 -21
  390. package/dist/modules/entities/api/entities.js.map +2 -2
  391. package/dist/modules/entities/api/entity-settings.js +9 -59
  392. package/dist/modules/entities/api/entity-settings.js.map +2 -2
  393. package/dist/modules/entities/api/records.js +24 -3
  394. package/dist/modules/entities/api/records.js.map +2 -2
  395. package/dist/modules/entities/api/relations/options.js +16 -11
  396. package/dist/modules/entities/api/relations/options.js.map +2 -2
  397. package/dist/modules/entities/api/sidebar-entities.js +12 -34
  398. package/dist/modules/entities/api/sidebar-entities.js.map +2 -2
  399. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +4 -23
  400. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  401. package/dist/modules/entities/backend/entities/user/create/page.js +7 -16
  402. package/dist/modules/entities/backend/entities/user/create/page.js.map +2 -2
  403. package/dist/modules/entities/cli.js +19 -193
  404. package/dist/modules/entities/cli.js.map +2 -2
  405. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -2
  406. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  407. package/dist/modules/entities/components/UserEntitiesTable.js +1 -2
  408. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  409. package/dist/modules/entities/lib/entityAcl.js +9 -87
  410. package/dist/modules/entities/lib/entityAcl.js.map +3 -3
  411. package/dist/modules/feature_toggles/components/FeatureGuard.js +2 -3
  412. package/dist/modules/feature_toggles/components/FeatureGuard.js.map +2 -2
  413. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.js +2 -5
  414. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.js.map +2 -2
  415. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagJson.js +2 -5
  416. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagJson.js.map +2 -2
  417. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagNumber.js +2 -5
  418. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagNumber.js.map +2 -2
  419. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagString.js +2 -5
  420. package/dist/modules/feature_toggles/components/hooks/useFeatureFlagString.js.map +2 -2
  421. package/dist/modules/inbox_ops/ai-tools.js +2 -5
  422. package/dist/modules/inbox_ops/ai-tools.js.map +2 -2
  423. package/dist/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.js +1 -14
  424. package/dist/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.js.map +2 -2
  425. package/dist/modules/inbox_ops/api/proposals/route.js +1 -16
  426. package/dist/modules/inbox_ops/api/proposals/route.js.map +2 -2
  427. package/dist/modules/inbox_ops/api/webhook/inbound.js +10 -14
  428. package/dist/modules/inbox_ops/api/webhook/inbound.js.map +2 -2
  429. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +6 -6
  430. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  431. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +20 -25
  432. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
  433. package/dist/modules/inbox_ops/search.js +4 -15
  434. package/dist/modules/inbox_ops/search.js.map +2 -2
  435. package/dist/modules/integrations/api/[id]/credentials/route.js +5 -11
  436. package/dist/modules/integrations/api/[id]/credentials/route.js.map +2 -2
  437. package/dist/modules/integrations/api/[id]/health/route.js +3 -6
  438. package/dist/modules/integrations/api/[id]/health/route.js.map +2 -2
  439. package/dist/modules/integrations/api/[id]/route.js +3 -6
  440. package/dist/modules/integrations/api/[id]/route.js.map +2 -2
  441. package/dist/modules/integrations/api/[id]/state/route.js +3 -6
  442. package/dist/modules/integrations/api/[id]/state/route.js.map +2 -2
  443. package/dist/modules/integrations/api/[id]/version/route.js +3 -6
  444. package/dist/modules/integrations/api/[id]/version/route.js.map +2 -2
  445. package/dist/modules/integrations/api/logs/route.js +3 -6
  446. package/dist/modules/integrations/api/logs/route.js.map +2 -2
  447. package/dist/modules/integrations/api/route.js +3 -6
  448. package/dist/modules/integrations/api/route.js.map +2 -2
  449. package/dist/modules/integrations/api/umes-read.js +2 -2
  450. package/dist/modules/integrations/api/umes-read.js.map +2 -2
  451. package/dist/modules/integrations/backend/integrations/[id]/page.js +4 -2
  452. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  453. package/dist/modules/integrations/lib/organization-scope.js +9 -2
  454. package/dist/modules/integrations/lib/organization-scope.js.map +2 -2
  455. package/dist/modules/integrations/widgets/injection/external-ids/widget.client.js +5 -0
  456. package/dist/modules/integrations/widgets/injection/external-ids/widget.client.js.map +2 -2
  457. package/dist/modules/messages/api/[id]/route.js +0 -15
  458. package/dist/modules/messages/api/[id]/route.js.map +2 -2
  459. package/dist/modules/messages/api/route.js +8 -77
  460. package/dist/modules/messages/api/route.js.map +2 -2
  461. package/dist/modules/messages/components/ComposeMessagePageClient.js +1 -2
  462. package/dist/modules/messages/components/ComposeMessagePageClient.js.map +2 -2
  463. package/dist/modules/messages/components/MessageDetailPageClient.js +2 -3
  464. package/dist/modules/messages/components/MessageDetailPageClient.js.map +2 -2
  465. package/dist/modules/messages/components/MessagesInboxPageClient.js +1 -2
  466. package/dist/modules/messages/components/MessagesInboxPageClient.js.map +2 -2
  467. package/dist/modules/messages/components/message-detail/panels/dialogs.js +1 -1
  468. package/dist/modules/messages/components/message-detail/panels/dialogs.js.map +1 -1
  469. package/dist/modules/messages/lib/routeHelpers.js +3 -1
  470. package/dist/modules/messages/lib/routeHelpers.js.map +2 -2
  471. package/dist/modules/messages/lib/searchLookup.js +16 -8
  472. package/dist/modules/messages/lib/searchLookup.js.map +2 -2
  473. package/dist/modules/messages/search.js +5 -10
  474. package/dist/modules/messages/search.js.map +2 -2
  475. package/dist/modules/notifications/api/route.js +4 -83
  476. package/dist/modules/notifications/api/route.js.map +2 -2
  477. package/dist/modules/notifications/api/unread-count/route.js +6 -25
  478. package/dist/modules/notifications/api/unread-count/route.js.map +2 -2
  479. package/dist/modules/notifications/di.js +1 -1
  480. package/dist/modules/notifications/di.js.map +2 -2
  481. package/dist/modules/notifications/events.js +2 -4
  482. package/dist/modules/notifications/events.js.map +2 -2
  483. package/dist/modules/notifications/lib/notificationRecipients.js +7 -6
  484. package/dist/modules/notifications/lib/notificationRecipients.js.map +2 -2
  485. package/dist/modules/notifications/lib/notificationService.js +4 -48
  486. package/dist/modules/notifications/lib/notificationService.js.map +2 -2
  487. package/dist/modules/notifications/lib/routeHelpers.js +2 -16
  488. package/dist/modules/notifications/lib/routeHelpers.js.map +2 -2
  489. package/dist/modules/payment_gateways/api/capture/route.js +1 -1
  490. package/dist/modules/payment_gateways/api/capture/route.js.map +2 -2
  491. package/dist/modules/payment_gateways/api/sessions/route.js +3 -6
  492. package/dist/modules/payment_gateways/api/sessions/route.js.map +2 -2
  493. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js +1 -11
  494. package/dist/modules/payment_gateways/api/webhook/[provider]/route.js.map +2 -2
  495. package/dist/modules/payment_gateways/backend/payment-gateways/page.js +2 -3
  496. package/dist/modules/payment_gateways/backend/payment-gateways/page.js.map +2 -2
  497. package/dist/modules/payment_gateways/data/entities.js +0 -11
  498. package/dist/modules/payment_gateways/data/entities.js.map +2 -2
  499. package/dist/modules/payment_gateways/di.js +1 -17
  500. package/dist/modules/payment_gateways/di.js.map +2 -2
  501. package/dist/modules/payment_gateways/lib/gateway-service.js +14 -93
  502. package/dist/modules/payment_gateways/lib/gateway-service.js.map +2 -2
  503. package/dist/modules/payment_gateways/lib/payment-operation-idempotency.js +0 -1
  504. package/dist/modules/payment_gateways/lib/payment-operation-idempotency.js.map +2 -2
  505. package/dist/modules/payment_gateways/lib/session-idempotency.js +0 -33
  506. package/dist/modules/payment_gateways/lib/session-idempotency.js.map +2 -2
  507. package/dist/modules/payment_gateways/setup.js +0 -47
  508. package/dist/modules/payment_gateways/setup.js.map +2 -2
  509. package/dist/modules/planner/components/AvailabilityRulesEditor.js +4 -4
  510. package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
  511. package/dist/modules/planner/components/unavailabilityReasons.js +3 -3
  512. package/dist/modules/planner/components/unavailabilityReasons.js.map +2 -2
  513. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js +3 -3
  514. package/dist/modules/portal/frontend/[orgSlug]/portal/dashboard/page.js.map +2 -2
  515. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +3 -3
  516. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +2 -2
  517. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js +3 -3
  518. package/dist/modules/portal/frontend/[orgSlug]/portal/page.js.map +2 -2
  519. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js +3 -3
  520. package/dist/modules/portal/frontend/[orgSlug]/portal/profile/page.js.map +2 -2
  521. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js +3 -3
  522. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js.map +2 -2
  523. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +3 -3
  524. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +2 -2
  525. package/dist/modules/progress/lib/progressService.js +0 -2
  526. package/dist/modules/progress/lib/progressService.js.map +2 -2
  527. package/dist/modules/progress/lib/progressServiceImpl.js +104 -322
  528. package/dist/modules/progress/lib/progressServiceImpl.js.map +2 -2
  529. package/dist/modules/query_index/api/openapi.js +1 -13
  530. package/dist/modules/query_index/api/openapi.js.map +2 -2
  531. package/dist/modules/query_index/api/reindex.js +0 -10
  532. package/dist/modules/query_index/api/reindex.js.map +2 -2
  533. package/dist/modules/query_index/api/status.js +105 -165
  534. package/dist/modules/query_index/api/status.js.map +2 -2
  535. package/dist/modules/query_index/cli.js +1 -125
  536. package/dist/modules/query_index/cli.js.map +2 -2
  537. package/dist/modules/query_index/components/QueryIndexesTable.js +42 -130
  538. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  539. package/dist/modules/query_index/data/entities.js +1 -2
  540. package/dist/modules/query_index/data/entities.js.map +2 -2
  541. package/dist/modules/query_index/di.js +0 -3
  542. package/dist/modules/query_index/di.js.map +2 -2
  543. package/dist/modules/query_index/lib/batch.js +4 -11
  544. package/dist/modules/query_index/lib/batch.js.map +2 -2
  545. package/dist/modules/query_index/lib/coverage.js +9 -21
  546. package/dist/modules/query_index/lib/coverage.js.map +2 -2
  547. package/dist/modules/query_index/lib/document.js +5 -12
  548. package/dist/modules/query_index/lib/document.js.map +2 -2
  549. package/dist/modules/query_index/lib/engine.js +48 -105
  550. package/dist/modules/query_index/lib/engine.js.map +2 -2
  551. package/dist/modules/query_index/lib/indexer.js +19 -95
  552. package/dist/modules/query_index/lib/indexer.js.map +2 -2
  553. package/dist/modules/query_index/lib/reindexer.js +37 -43
  554. package/dist/modules/query_index/lib/reindexer.js.map +2 -2
  555. package/dist/modules/query_index/lib/search-tokens.js +15 -34
  556. package/dist/modules/query_index/lib/search-tokens.js.map +2 -2
  557. package/dist/modules/query_index/lib/subscriber-scope.js +3 -2
  558. package/dist/modules/query_index/lib/subscriber-scope.js.map +2 -2
  559. package/dist/modules/query_index/subscribers/coverage_refresh.js +0 -4
  560. package/dist/modules/query_index/subscribers/coverage_refresh.js.map +2 -2
  561. package/dist/modules/query_index/subscribers/delete_one.js +1 -53
  562. package/dist/modules/query_index/subscribers/delete_one.js.map +3 -3
  563. package/dist/modules/query_index/subscribers/upsert_one.js +0 -60
  564. package/dist/modules/query_index/subscribers/upsert_one.js.map +3 -3
  565. package/dist/modules/resources/api/resources.js +0 -2
  566. package/dist/modules/resources/api/resources.js.map +2 -2
  567. package/dist/modules/resources/backend/resources/resource-types/page.js +1 -2
  568. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  569. package/dist/modules/resources/backend/resources/resources/[id]/page.js +2 -3
  570. package/dist/modules/resources/backend/resources/resources/[id]/page.js.map +2 -2
  571. package/dist/modules/resources/backend/resources/resources/page.js +1 -2
  572. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  573. package/dist/modules/resources/commands/resources.js +0 -9
  574. package/dist/modules/resources/commands/resources.js.map +2 -2
  575. package/dist/modules/resources/components/detail/dictionaries.js +3 -3
  576. package/dist/modules/resources/components/detail/dictionaries.js.map +2 -2
  577. package/dist/modules/resources/data/entities.js +0 -3
  578. package/dist/modules/resources/data/entities.js.map +2 -2
  579. package/dist/modules/resources/data/validators.js +2 -6
  580. package/dist/modules/resources/data/validators.js.map +2 -2
  581. package/dist/modules/resources/lib/seeds.js +9 -16
  582. package/dist/modules/resources/lib/seeds.js.map +2 -2
  583. package/dist/modules/sales/analytics.js +3 -7
  584. package/dist/modules/sales/analytics.js.map +2 -2
  585. package/dist/modules/sales/api/document-history/route.js +1 -2
  586. package/dist/modules/sales/api/document-history/route.js.map +2 -2
  587. package/dist/modules/sales/api/documents/factory.js +3 -14
  588. package/dist/modules/sales/api/documents/factory.js.map +2 -2
  589. package/dist/modules/sales/backend/sales/documents/[id]/page.js +3 -11
  590. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  591. package/dist/modules/sales/backend/sales/documents/create/page.js +14 -11
  592. package/dist/modules/sales/backend/sales/documents/create/page.js.map +2 -2
  593. package/dist/modules/sales/commands/documents.js +23 -184
  594. package/dist/modules/sales/commands/documents.js.map +2 -2
  595. package/dist/modules/sales/components/documents/ItemsSection.js +10 -20
  596. package/dist/modules/sales/components/documents/ItemsSection.js.map +2 -2
  597. package/dist/modules/sales/components/documents/LineItemDialog.js +5 -12
  598. package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
  599. package/dist/modules/sales/components/documents/SalesDocumentForm.js +2 -48
  600. package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
  601. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +1 -4
  602. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  603. package/dist/modules/sales/components/useSalesChannelsEnabled.js +35 -2
  604. package/dist/modules/sales/components/useSalesChannelsEnabled.js.map +2 -2
  605. package/dist/modules/sales/data/validators.js +5 -32
  606. package/dist/modules/sales/data/validators.js.map +2 -2
  607. package/dist/modules/sales/di.js +0 -7
  608. package/dist/modules/sales/di.js.map +2 -2
  609. package/dist/modules/sales/events.js +0 -1
  610. package/dist/modules/sales/events.js.map +2 -2
  611. package/dist/modules/sales/lib/historyHelpers.js +1 -69
  612. package/dist/modules/sales/lib/historyHelpers.js.map +2 -2
  613. package/dist/modules/sales/widgets/injection/document-history/widget.client.js +2 -51
  614. package/dist/modules/sales/widgets/injection/document-history/widget.client.js.map +2 -2
  615. package/dist/modules/sales/workflows.js +7 -10
  616. package/dist/modules/sales/workflows.js.map +2 -2
  617. package/dist/modules/shipping_carriers/api/webhook/[provider]/route.js +1 -11
  618. package/dist/modules/shipping_carriers/api/webhook/[provider]/route.js.map +2 -2
  619. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js +1 -1
  620. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js.map +1 -1
  621. package/dist/modules/staff/api/interceptors.js +3 -5
  622. package/dist/modules/staff/api/interceptors.js.map +2 -2
  623. package/dist/modules/staff/api/leave-requests.js +42 -45
  624. package/dist/modules/staff/api/leave-requests.js.map +2 -2
  625. package/dist/modules/staff/components/detail/dictionaries.js +3 -3
  626. package/dist/modules/staff/components/detail/dictionaries.js.map +2 -2
  627. package/dist/modules/sync_excel/api/upload/route.js +2 -15
  628. package/dist/modules/sync_excel/api/upload/route.js.map +2 -2
  629. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js +1 -1
  630. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js.map +1 -1
  631. package/dist/modules/wms/components/backend/WmsConfigurationPage.js +4 -5
  632. package/dist/modules/wms/components/backend/WmsConfigurationPage.js.map +2 -2
  633. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js +3 -4
  634. package/dist/modules/wms/components/backend/WmsInventoryConsolePage.js.map +2 -2
  635. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js +2 -3
  636. package/dist/modules/wms/components/backend/WmsLocationDetailPage.js.map +2 -2
  637. package/dist/modules/wms/components/backend/WmsLotDetailPage.js +2 -3
  638. package/dist/modules/wms/components/backend/WmsLotDetailPage.js.map +2 -2
  639. package/dist/modules/wms/components/backend/WmsLotsListPage.js +1 -2
  640. package/dist/modules/wms/components/backend/WmsLotsListPage.js.map +2 -2
  641. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js +2 -3
  642. package/dist/modules/wms/components/backend/WmsSkuDetailPage.js.map +2 -2
  643. package/dist/modules/workflows/backend/definitions/page.js +2 -3
  644. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  645. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +3 -6
  646. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  647. package/dist/modules/workflows/backend/instances/page.js +9 -10
  648. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  649. package/dist/modules/workflows/backend/tasks/page.js +7 -8
  650. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  651. package/dist/modules/workflows/components/ActivitiesEditor.js +13 -69
  652. package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
  653. package/dist/modules/workflows/components/BusinessRulesSelector.js +1 -1
  654. package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
  655. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +2 -2
  656. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
  657. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +2 -1
  658. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
  659. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +2 -1
  660. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
  661. package/dist/modules/workflows/components/StepsEditor.js +2 -2
  662. package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
  663. package/dist/modules/workflows/components/TransitionsEditor.js +165 -207
  664. package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
  665. package/dist/modules/workflows/components/WorkflowLegend.js +1 -1
  666. package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
  667. package/dist/modules/workflows/components/WorkflowSelector.js +1 -1
  668. package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
  669. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +1 -1
  670. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  671. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +1 -1
  672. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
  673. package/dist/modules/workflows/components/fields/MappingArrayEditor.js +1 -1
  674. package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
  675. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +1 -1
  676. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  677. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js +4 -4
  678. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js.map +2 -2
  679. package/dist/modules/workflows/data/validators.js +1 -34
  680. package/dist/modules/workflows/data/validators.js.map +3 -3
  681. package/dist/modules/workflows/events.js +0 -1
  682. package/dist/modules/workflows/events.js.map +2 -2
  683. package/dist/modules/workflows/lib/activity-executor.js +14 -59
  684. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  685. package/dist/modules/workflows/lib/format-validation-error.js +1 -46
  686. package/dist/modules/workflows/lib/format-validation-error.js.map +2 -2
  687. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +10 -21
  688. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +2 -2
  689. package/generated/entities/customer_deal_person_link/index.ts +0 -1
  690. package/generated/entities/customer_user_invitation/index.ts +0 -1
  691. package/generated/entities/gateway_payment_operation/index.ts +0 -1
  692. package/generated/entities/gateway_transaction/index.ts +0 -1
  693. package/generated/entities/organization/index.ts +0 -1
  694. package/generated/entities/resources_resource/index.ts +0 -1
  695. package/generated/entities.ids.generated.ts +1 -3
  696. package/generated/entity-fields-registry.ts +0 -23
  697. package/package.json +18 -19
  698. package/src/bootstrap.ts +2 -17
  699. package/src/helpers/integration/salesFixtures.ts +2 -34
  700. package/src/helpers/integration/salesUi.ts +0 -8
  701. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -2
  702. package/src/modules/attachments/api/route.ts +9 -130
  703. package/src/modules/attachments/data/entities.ts +0 -59
  704. package/src/modules/attachments/di.ts +1 -9
  705. package/src/modules/attachments/fields/attachment.tsx +1 -1
  706. package/src/modules/attachments/i18n/de.json +0 -15
  707. package/src/modules/attachments/i18n/en.json +0 -15
  708. package/src/modules/attachments/i18n/es.json +0 -15
  709. package/src/modules/attachments/i18n/pl.json +0 -15
  710. package/src/modules/attachments/lib/drivers/index.ts +1 -1
  711. package/src/modules/attachments/lib/drivers/localDriver.ts +8 -23
  712. package/src/modules/attachments/lib/drivers/types.ts +0 -5
  713. package/src/modules/attachments/lib/upload-limits.ts +0 -35
  714. package/src/modules/attachments/migrations/.snapshot-open-mercato.json +120 -648
  715. package/src/modules/audit_logs/api/audit-logs/access/route.ts +0 -5
  716. package/src/modules/audit_logs/api/audit-logs/actions/export/route.ts +0 -5
  717. package/src/modules/audit_logs/api/audit-logs/actions/route.ts +0 -5
  718. package/src/modules/audit_logs/components/AccessLogsTable.tsx +1 -2
  719. package/src/modules/audit_logs/components/AuditLogsActions.tsx +1 -2
  720. package/src/modules/auth/AGENTS.md +8 -12
  721. package/src/modules/auth/api/admin/nav.ts +4 -28
  722. package/src/modules/auth/api/profile/route.ts +2 -8
  723. package/src/modules/auth/api/users/route.ts +28 -8
  724. package/src/modules/auth/backend/auth/profile/page.tsx +0 -1
  725. package/src/modules/auth/backend/profile/change-password/page.tsx +0 -1
  726. package/src/modules/auth/backend/roles/page.tsx +1 -2
  727. package/src/modules/auth/backend/settings/page.tsx +8 -17
  728. package/src/modules/auth/backend/users/page.tsx +1 -2
  729. package/src/modules/auth/cli.ts +1 -1
  730. package/src/modules/auth/components/UserConsentsPanel.tsx +9 -9
  731. package/src/modules/auth/frontend/login.tsx +4 -5
  732. package/src/modules/auth/frontend/reset.tsx +2 -2
  733. package/src/modules/auth/i18n/de.json +0 -1
  734. package/src/modules/auth/i18n/en.json +0 -1
  735. package/src/modules/auth/i18n/es.json +0 -1
  736. package/src/modules/auth/i18n/pl.json +0 -1
  737. package/src/modules/auth/lib/backendChrome.tsx +33 -71
  738. package/src/modules/auth/lib/setup-app.ts +2 -21
  739. package/src/modules/auth/lib/tenantAccess.ts +0 -8
  740. package/src/modules/auth/services/rbacService.ts +46 -41
  741. package/src/modules/business_rules/api/rules/route.ts +4 -92
  742. package/src/modules/business_rules/backend/rules/page.tsx +1 -2
  743. package/src/modules/business_rules/components/ActionBuilder.tsx +5 -54
  744. package/src/modules/business_rules/components/ActionRow.tsx +18 -156
  745. package/src/modules/business_rules/components/ConditionRow.tsx +6 -9
  746. package/src/modules/business_rules/components/utils/actionValidation.ts +0 -6
  747. package/src/modules/business_rules/i18n/de.json +0 -12
  748. package/src/modules/business_rules/i18n/en.json +0 -12
  749. package/src/modules/business_rules/i18n/es.json +0 -12
  750. package/src/modules/business_rules/i18n/pl.json +0 -12
  751. package/src/modules/business_rules/lib/action-executor.ts +0 -198
  752. package/src/modules/business_rules/lib/rule-engine.ts +0 -4
  753. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +5 -6
  754. package/src/modules/catalog/backend/catalog/products/create/page.tsx +6 -7
  755. package/src/modules/catalog/components/PriceKindSettings.tsx +3 -3
  756. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +1 -2
  757. package/src/modules/catalog/components/products/ProductCategorizeSection.tsx +3 -3
  758. package/src/modules/catalog/components/products/ProductMediaManager.tsx +1 -1
  759. package/src/modules/catalog/components/products/ProductsDataTable.tsx +2 -3
  760. package/src/modules/catalog/components/products/VariantBuilder.tsx +5 -5
  761. package/src/modules/catalog/events.ts +0 -1
  762. package/src/modules/catalog/i18n/de.json +0 -18
  763. package/src/modules/catalog/i18n/en.json +0 -18
  764. package/src/modules/catalog/i18n/es.json +0 -18
  765. package/src/modules/catalog/i18n/pl.json +0 -18
  766. package/src/modules/catalog/widgets/injection/product-seo/widget.ts +1 -1
  767. package/src/modules/communication_channels/api/post/test-seed/route.ts +2 -69
  768. package/src/modules/communication_channels/api/post/webhook/[provider]/route.ts +1 -11
  769. package/src/modules/communication_channels/api/post/webhooks/gmail/route.ts +11 -17
  770. package/src/modules/communication_channels/backend/communication_channels/channels/page.tsx +1 -2
  771. package/src/modules/communication_channels/backend/profile/communication-channels/page.tsx +3 -4
  772. package/src/modules/communication_channels/data/enrichers.ts +26 -6
  773. package/src/modules/communication_channels/lib/access-control.ts +3 -3
  774. package/src/modules/configs/backend/config/system-status/page.tsx +1 -2
  775. package/src/modules/configs/lib/upgrade-actions.ts +0 -14
  776. package/src/modules/currencies/backend/currencies/page.tsx +1 -2
  777. package/src/modules/currencies/backend/exchange-rates/page.tsx +1 -2
  778. package/src/modules/currencies/di.ts +1 -4
  779. package/src/modules/currencies/i18n/de.json +0 -1
  780. package/src/modules/currencies/i18n/en.json +0 -1
  781. package/src/modules/currencies/i18n/es.json +0 -1
  782. package/src/modules/currencies/i18n/pl.json +0 -1
  783. package/src/modules/customer_accounts/AGENTS.md +3 -3
  784. package/src/modules/customer_accounts/api/admin/users/[id].ts +1 -16
  785. package/src/modules/customer_accounts/api/admin/users-invite.ts +3 -81
  786. package/src/modules/customer_accounts/api/invitations/accept.ts +2 -1
  787. package/src/modules/customer_accounts/api/login.ts +2 -4
  788. package/src/modules/customer_accounts/api/magic-link/verify.ts +2 -4
  789. package/src/modules/customer_accounts/api/portal/feature-check.ts +7 -5
  790. package/src/modules/customer_accounts/api/portal/nav.ts +3 -5
  791. package/src/modules/customer_accounts/api/portal/profile.ts +1 -5
  792. package/src/modules/customer_accounts/api/portal/sessions-refresh.ts +3 -3
  793. package/src/modules/customer_accounts/api/portal/users-invite.ts +1 -25
  794. package/src/modules/customer_accounts/backend/customer_accounts/roles/page.tsx +1 -2
  795. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +1 -2
  796. package/src/modules/customer_accounts/data/entities.ts +0 -3
  797. package/src/modules/customer_accounts/data/validators.ts +0 -1
  798. package/src/modules/customer_accounts/i18n/de.json +0 -6
  799. package/src/modules/customer_accounts/i18n/en.json +0 -6
  800. package/src/modules/customer_accounts/i18n/es.json +0 -6
  801. package/src/modules/customer_accounts/i18n/pl.json +0 -6
  802. package/src/modules/customer_accounts/lib/customerAuth.ts +2 -8
  803. package/src/modules/customer_accounts/lib/customerAuthServer.ts +0 -1
  804. package/src/modules/customer_accounts/lib/customerEntityOwnership.ts +2 -68
  805. package/src/modules/customer_accounts/lib/customerUrl.ts +11 -27
  806. package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +0 -16
  807. package/src/modules/customer_accounts/services/customerInvitationService.ts +3 -56
  808. package/src/modules/customer_accounts/services/customerRbacService.ts +3 -16
  809. package/src/modules/customer_accounts/setup.ts +0 -7
  810. package/src/modules/customer_accounts/subscribers/autoLinkCrm.ts +8 -75
  811. package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +2 -2
  812. package/src/modules/customer_accounts/widgets/injection/portal-ai-assistant-trigger/widget.client.tsx +3 -1
  813. package/src/modules/customer_accounts/widgets/injection-table.ts +1 -4
  814. package/src/modules/customers/analytics.ts +0 -3
  815. package/src/modules/customers/api/companies/[id]/route.ts +4 -3
  816. package/src/modules/customers/api/deals/[id]/people/route.ts +0 -3
  817. package/src/modules/customers/api/deals/[id]/route.ts +2 -10
  818. package/src/modules/customers/api/deals/aggregate/route.ts +4 -5
  819. package/src/modules/customers/api/deals/summary/route.ts +162 -15
  820. package/src/modules/customers/api/people/[id]/companies/enriched/route.ts +2 -3
  821. package/src/modules/customers/api/utils.ts +31 -12
  822. package/src/modules/customers/backend/customers/companies/[id]/page.tsx +1 -2
  823. package/src/modules/customers/backend/customers/companies/page.tsx +1 -2
  824. package/src/modules/customers/backend/customers/companies-v2/[id]/page.tsx +5 -17
  825. package/src/modules/customers/backend/customers/deals/[id]/hooks/types.ts +0 -1
  826. package/src/modules/customers/backend/customers/deals/[id]/page.tsx +12 -19
  827. package/src/modules/customers/backend/customers/deals/page.tsx +1 -2
  828. package/src/modules/customers/backend/customers/deals/pipeline/components/QuickDealDialog.tsx +3 -35
  829. package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +1 -10
  830. package/src/modules/customers/backend/customers/people/[id]/page.tsx +1 -2
  831. package/src/modules/customers/backend/customers/people/page.tsx +1 -2
  832. package/src/modules/customers/backend/customers/people-v2/[id]/page.tsx +10 -29
  833. package/src/modules/customers/cli.ts +11 -28
  834. package/src/modules/customers/commands/deals.ts +9 -50
  835. package/src/modules/customers/commands/people.ts +0 -3
  836. package/src/modules/customers/components/CustomerTodosTable.tsx +1 -2
  837. package/src/modules/customers/components/detail/ActiveDealCard.tsx +1 -2
  838. package/src/modules/customers/components/detail/ActivitiesDayStrip.tsx +3 -2
  839. package/src/modules/customers/components/detail/CompanyDetailTabs.tsx +7 -30
  840. package/src/modules/customers/components/detail/CompanyKpiBar.tsx +5 -6
  841. package/src/modules/customers/components/detail/ConfirmDealLostDialog.tsx +1 -1
  842. package/src/modules/customers/components/detail/DealDetailTabs.tsx +9 -34
  843. package/src/modules/customers/components/detail/DealForm.tsx +1 -5
  844. package/src/modules/customers/components/detail/DealsSection.tsx +1 -1
  845. package/src/modules/customers/components/detail/PersonDetailTabs.tsx +9 -34
  846. package/src/modules/customers/components/detail/ScheduleActivityDialog.tsx +13 -28
  847. package/src/modules/customers/components/detail/dashboard/helpers.ts +3 -4
  848. package/src/modules/customers/components/formConfig.tsx +8 -12
  849. package/src/modules/customers/data/entities.ts +1 -9
  850. package/src/modules/customers/data/validators.ts +1 -6
  851. package/src/modules/customers/i18n/de.json +0 -72
  852. package/src/modules/customers/i18n/en.json +0 -72
  853. package/src/modules/customers/i18n/es.json +0 -72
  854. package/src/modules/customers/i18n/pl.json +0 -72
  855. package/src/modules/customers/lib/calendar/format.ts +4 -10
  856. package/src/modules/customers/lib/visibilityFilter.ts +5 -7
  857. package/src/modules/customers/migrations/.snapshot-open-mercato.json +1 -27
  858. package/src/modules/customers/search.ts +27 -59
  859. package/src/modules/dashboards/api/layout/[itemId]/route.ts +3 -6
  860. package/src/modules/dashboards/api/layout/route.ts +9 -22
  861. package/src/modules/dashboards/api/roles/widgets/route.ts +3 -9
  862. package/src/modules/dashboards/api/users/widgets/route.ts +3 -9
  863. package/src/modules/dashboards/api/widgets/catalog.ts +3 -6
  864. package/src/modules/dashboards/api/widgets/data/batch/route.ts +1 -12
  865. package/src/modules/dashboards/api/widgets/data/route.ts +1 -29
  866. package/src/modules/dashboards/api/widgets/data/schema.ts +19 -49
  867. package/src/modules/dashboards/i18n/de.json +0 -5
  868. package/src/modules/dashboards/i18n/en.json +0 -5
  869. package/src/modules/dashboards/i18n/es.json +0 -5
  870. package/src/modules/dashboards/i18n/pl.json +0 -5
  871. package/src/modules/dashboards/lib/access.ts +3 -5
  872. package/src/modules/dashboards/lib/aggregations.ts +48 -198
  873. package/src/modules/dashboards/lib/formatters.ts +12 -137
  874. package/src/modules/dashboards/services/widgetDataService.ts +12 -453
  875. package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.client.tsx +3 -9
  876. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/config.ts +0 -86
  877. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.client.tsx +21 -42
  878. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.ts +2 -2
  879. package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.client.tsx +3 -9
  880. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.tsx +2 -7
  881. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.tsx +15 -25
  882. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.client.tsx +11 -21
  883. package/src/modules/dashboards/widgets/dashboard/top-products/widget.client.tsx +3 -9
  884. package/src/modules/data_sync/AGENTS.md +0 -1
  885. package/src/modules/data_sync/api/mappings/[id]/route.ts +9 -22
  886. package/src/modules/data_sync/api/mappings/route.ts +4 -13
  887. package/src/modules/data_sync/api/options.ts +2 -7
  888. package/src/modules/data_sync/api/run.ts +2 -7
  889. package/src/modules/data_sync/api/runs/[id]/cancel.ts +3 -8
  890. package/src/modules/data_sync/api/runs/[id]/retry.ts +2 -7
  891. package/src/modules/data_sync/api/runs/[id]/route.ts +3 -8
  892. package/src/modules/data_sync/api/runs.ts +2 -7
  893. package/src/modules/data_sync/api/schedules/[id]/route.ts +6 -19
  894. package/src/modules/data_sync/api/schedules/route.ts +4 -13
  895. package/src/modules/data_sync/api/validate.ts +4 -9
  896. package/src/modules/data_sync/backend/data-sync/page.tsx +1 -2
  897. package/src/modules/data_sync/lib/adapter.ts +0 -18
  898. package/src/modules/data_sync/lib/queue.ts +1 -19
  899. package/src/modules/data_sync/lib/start-run.ts +1 -2
  900. package/src/modules/data_sync/lib/sync-engine.ts +0 -46
  901. package/src/modules/data_sync/lib/sync-run-service.ts +1 -82
  902. package/src/modules/data_sync/workers/sync-export.ts +1 -8
  903. package/src/modules/data_sync/workers/sync-import.ts +1 -8
  904. package/src/modules/dictionaries/api/[dictionaryId]/entries/route.ts +11 -39
  905. package/src/modules/dictionaries/api/openapi.ts +0 -19
  906. package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +1 -1
  907. package/src/modules/dictionaries/components/hooks/useDictionaryEntries.ts +36 -35
  908. package/src/modules/dictionaries/data/validators.ts +0 -14
  909. package/src/modules/dictionaries/lib/clientEntries.ts +3 -4
  910. package/src/modules/directory/api/organization-branding/route.ts +1 -12
  911. package/src/modules/directory/api/organization-switcher/route.ts +26 -97
  912. package/src/modules/directory/api/organizations/route.ts +0 -7
  913. package/src/modules/directory/api/tenants/route.ts +1 -9
  914. package/src/modules/directory/backend/directory/branding/page.tsx +9 -34
  915. package/src/modules/directory/backend/directory/organizations/[id]/edit/page.tsx +14 -10
  916. package/src/modules/directory/backend/directory/organizations/page.tsx +1 -2
  917. package/src/modules/directory/backend/directory/tenants/page.tsx +1 -2
  918. package/src/modules/directory/commands/organizations.ts +1 -9
  919. package/src/modules/directory/commands/tenants.ts +0 -6
  920. package/src/modules/directory/data/entities.ts +0 -3
  921. package/src/modules/directory/data/validators.ts +0 -2
  922. package/src/modules/directory/i18n/de.json +1 -4
  923. package/src/modules/directory/i18n/en.json +1 -4
  924. package/src/modules/directory/i18n/es.json +1 -4
  925. package/src/modules/directory/i18n/pl.json +1 -4
  926. package/src/modules/directory/migrations/.snapshot-open-mercato.json +1 -18
  927. package/src/modules/directory/subscribers/invalidateOrgScopeCache.ts +1 -4
  928. package/src/modules/directory/utils/organizationScope.ts +3 -9
  929. package/src/modules/entities/api/definitions.ts +3 -55
  930. package/src/modules/entities/api/entities.ts +2 -30
  931. package/src/modules/entities/api/entity-settings.ts +22 -66
  932. package/src/modules/entities/api/records.ts +27 -3
  933. package/src/modules/entities/api/relations/options.ts +25 -11
  934. package/src/modules/entities/api/sidebar-entities.ts +14 -43
  935. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +75 -96
  936. package/src/modules/entities/backend/entities/user/create/page.tsx +7 -16
  937. package/src/modules/entities/cli.ts +21 -238
  938. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -2
  939. package/src/modules/entities/components/UserEntitiesTable.tsx +1 -2
  940. package/src/modules/entities/i18n/de.json +0 -9
  941. package/src/modules/entities/i18n/en.json +0 -9
  942. package/src/modules/entities/i18n/es.json +0 -9
  943. package/src/modules/entities/i18n/pl.json +0 -9
  944. package/src/modules/entities/lib/entityAcl.ts +11 -98
  945. package/src/modules/feature_toggles/components/FeatureGuard.tsx +2 -9
  946. package/src/modules/feature_toggles/components/hooks/useFeatureFlagBoolean.ts +1 -13
  947. package/src/modules/feature_toggles/components/hooks/useFeatureFlagJson.ts +3 -12
  948. package/src/modules/feature_toggles/components/hooks/useFeatureFlagNumber.ts +1 -10
  949. package/src/modules/feature_toggles/components/hooks/useFeatureFlagString.ts +1 -10
  950. package/src/modules/inbox_ops/ai-tools.ts +3 -5
  951. package/src/modules/inbox_ops/api/proposals/[id]/actions/[actionId]/route.ts +1 -17
  952. package/src/modules/inbox_ops/api/proposals/route.ts +1 -20
  953. package/src/modules/inbox_ops/api/webhook/inbound.ts +12 -14
  954. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +6 -6
  955. package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +19 -24
  956. package/src/modules/inbox_ops/components/proposals/types.ts +0 -1
  957. package/src/modules/inbox_ops/i18n/de.json +0 -3
  958. package/src/modules/inbox_ops/i18n/en.json +0 -3
  959. package/src/modules/inbox_ops/i18n/es.json +0 -3
  960. package/src/modules/inbox_ops/i18n/pl.json +0 -3
  961. package/src/modules/inbox_ops/search.ts +4 -20
  962. package/src/modules/integrations/api/[id]/credentials/route.ts +5 -11
  963. package/src/modules/integrations/api/[id]/health/route.ts +3 -6
  964. package/src/modules/integrations/api/[id]/route.ts +3 -6
  965. package/src/modules/integrations/api/[id]/state/route.ts +3 -6
  966. package/src/modules/integrations/api/[id]/version/route.ts +3 -6
  967. package/src/modules/integrations/api/logs/route.ts +3 -6
  968. package/src/modules/integrations/api/route.ts +3 -6
  969. package/src/modules/integrations/api/umes-read.ts +2 -2
  970. package/src/modules/integrations/backend/integrations/[id]/page.tsx +2 -2
  971. package/src/modules/integrations/lib/organization-scope.ts +25 -5
  972. package/src/modules/integrations/widgets/injection/external-ids/widget.client.tsx +5 -0
  973. package/src/modules/messages/api/[id]/route.ts +0 -21
  974. package/src/modules/messages/api/route.ts +9 -109
  975. package/src/modules/messages/components/ComposeMessagePageClient.tsx +1 -2
  976. package/src/modules/messages/components/MessageDetailPageClient.tsx +2 -3
  977. package/src/modules/messages/components/MessagesInboxPageClient.tsx +1 -2
  978. package/src/modules/messages/components/message-detail/panels/dialogs.tsx +1 -1
  979. package/src/modules/messages/i18n/de.json +0 -2
  980. package/src/modules/messages/i18n/en.json +0 -2
  981. package/src/modules/messages/i18n/es.json +0 -2
  982. package/src/modules/messages/i18n/pl.json +0 -2
  983. package/src/modules/messages/lib/routeHelpers.ts +6 -4
  984. package/src/modules/messages/lib/searchLookup.ts +34 -11
  985. package/src/modules/messages/search.ts +5 -11
  986. package/src/modules/notifications/api/route.ts +3 -123
  987. package/src/modules/notifications/api/unread-count/route.ts +5 -42
  988. package/src/modules/notifications/di.ts +1 -1
  989. package/src/modules/notifications/events.ts +0 -2
  990. package/src/modules/notifications/lib/notificationRecipients.ts +8 -6
  991. package/src/modules/notifications/lib/notificationService.ts +1 -63
  992. package/src/modules/notifications/lib/routeHelpers.ts +2 -19
  993. package/src/modules/payment_gateways/api/capture/route.ts +1 -1
  994. package/src/modules/payment_gateways/api/sessions/route.ts +3 -6
  995. package/src/modules/payment_gateways/api/webhook/[provider]/route.ts +1 -13
  996. package/src/modules/payment_gateways/backend/payment-gateways/page.tsx +2 -3
  997. package/src/modules/payment_gateways/data/entities.ts +2 -13
  998. package/src/modules/payment_gateways/di.ts +2 -28
  999. package/src/modules/payment_gateways/i18n/de.json +1 -8
  1000. package/src/modules/payment_gateways/i18n/en.json +1 -8
  1001. package/src/modules/payment_gateways/i18n/es.json +1 -8
  1002. package/src/modules/payment_gateways/i18n/pl.json +1 -8
  1003. package/src/modules/payment_gateways/lib/gateway-service.ts +18 -114
  1004. package/src/modules/payment_gateways/lib/payment-operation-idempotency.ts +0 -1
  1005. package/src/modules/payment_gateways/lib/session-idempotency.ts +0 -36
  1006. package/src/modules/payment_gateways/migrations/.snapshot-open-mercato.json +1 -44
  1007. package/src/modules/payment_gateways/setup.ts +0 -62
  1008. package/src/modules/planner/components/AvailabilityRulesEditor.tsx +4 -4
  1009. package/src/modules/planner/components/unavailabilityReasons.ts +3 -3
  1010. package/src/modules/portal/frontend/[orgSlug]/portal/dashboard/page.tsx +3 -3
  1011. package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +3 -3
  1012. package/src/modules/portal/frontend/[orgSlug]/portal/page.tsx +3 -3
  1013. package/src/modules/portal/frontend/[orgSlug]/portal/profile/page.tsx +3 -3
  1014. package/src/modules/portal/frontend/[orgSlug]/portal/reset-password/page.tsx +4 -4
  1015. package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +3 -3
  1016. package/src/modules/portal/i18n/de.json +0 -18
  1017. package/src/modules/portal/i18n/en.json +0 -18
  1018. package/src/modules/portal/i18n/es.json +0 -18
  1019. package/src/modules/portal/i18n/pl.json +0 -18
  1020. package/src/modules/progress/AGENTS.md +1 -11
  1021. package/src/modules/progress/lib/progressService.ts +0 -1
  1022. package/src/modules/progress/lib/progressServiceImpl.ts +117 -385
  1023. package/src/modules/query_index/api/openapi.ts +0 -12
  1024. package/src/modules/query_index/api/reindex.ts +0 -15
  1025. package/src/modules/query_index/api/status.ts +136 -238
  1026. package/src/modules/query_index/cli.ts +1 -180
  1027. package/src/modules/query_index/components/QueryIndexesTable.tsx +47 -194
  1028. package/src/modules/query_index/data/entities.ts +0 -7
  1029. package/src/modules/query_index/di.ts +0 -6
  1030. package/src/modules/query_index/i18n/de.json +3 -5
  1031. package/src/modules/query_index/i18n/en.json +3 -5
  1032. package/src/modules/query_index/i18n/es.json +3 -5
  1033. package/src/modules/query_index/i18n/pl.json +3 -5
  1034. package/src/modules/query_index/lib/batch.ts +4 -11
  1035. package/src/modules/query_index/lib/coverage.ts +14 -47
  1036. package/src/modules/query_index/lib/document.ts +4 -35
  1037. package/src/modules/query_index/lib/engine.ts +59 -136
  1038. package/src/modules/query_index/lib/indexer.ts +21 -130
  1039. package/src/modules/query_index/lib/reindexer.ts +40 -62
  1040. package/src/modules/query_index/lib/search-tokens.ts +16 -48
  1041. package/src/modules/query_index/lib/subscriber-scope.ts +7 -2
  1042. package/src/modules/query_index/migrations/.snapshot-open-mercato.json +0 -12
  1043. package/src/modules/query_index/subscribers/coverage_refresh.ts +0 -4
  1044. package/src/modules/query_index/subscribers/delete_one.ts +1 -65
  1045. package/src/modules/query_index/subscribers/upsert_one.ts +1 -68
  1046. package/src/modules/resources/api/resources.ts +0 -2
  1047. package/src/modules/resources/backend/resources/resource-types/page.tsx +1 -2
  1048. package/src/modules/resources/backend/resources/resources/[id]/page.tsx +3 -9
  1049. package/src/modules/resources/backend/resources/resources/page.tsx +1 -2
  1050. package/src/modules/resources/commands/resources.ts +0 -10
  1051. package/src/modules/resources/components/detail/dictionaries.ts +3 -3
  1052. package/src/modules/resources/data/entities.ts +0 -3
  1053. package/src/modules/resources/data/validators.ts +0 -5
  1054. package/src/modules/resources/lib/seeds.ts +9 -16
  1055. package/src/modules/resources/migrations/.snapshot-open-mercato.json +1 -17
  1056. package/src/modules/sales/analytics.ts +0 -4
  1057. package/src/modules/sales/api/document-history/route.ts +0 -1
  1058. package/src/modules/sales/api/documents/factory.ts +3 -28
  1059. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +3 -11
  1060. package/src/modules/sales/backend/sales/documents/create/page.tsx +4 -2
  1061. package/src/modules/sales/commands/documents.ts +31 -298
  1062. package/src/modules/sales/components/documents/ItemsSection.tsx +11 -21
  1063. package/src/modules/sales/components/documents/LineItemDialog.tsx +5 -13
  1064. package/src/modules/sales/components/documents/SalesDocumentForm.tsx +6 -48
  1065. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +1 -6
  1066. package/src/modules/sales/components/useSalesChannelsEnabled.ts +48 -2
  1067. package/src/modules/sales/data/validators.ts +6 -59
  1068. package/src/modules/sales/di.ts +0 -9
  1069. package/src/modules/sales/events.ts +0 -1
  1070. package/src/modules/sales/i18n/de.json +0 -22
  1071. package/src/modules/sales/i18n/en.json +0 -22
  1072. package/src/modules/sales/i18n/es.json +0 -22
  1073. package/src/modules/sales/i18n/pl.json +0 -22
  1074. package/src/modules/sales/lib/historyHelpers.ts +1 -88
  1075. package/src/modules/sales/widgets/injection/document-history/widget.client.tsx +3 -64
  1076. package/src/modules/sales/workflows.ts +7 -10
  1077. package/src/modules/shipping_carriers/api/webhook/[provider]/route.ts +1 -11
  1078. package/src/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.tsx +1 -1
  1079. package/src/modules/staff/api/interceptors.ts +4 -6
  1080. package/src/modules/staff/api/leave-requests.ts +47 -54
  1081. package/src/modules/staff/components/detail/dictionaries.ts +3 -3
  1082. package/src/modules/sync_excel/api/upload/route.ts +2 -15
  1083. package/src/modules/wms/components/backend/ReleaseReservationDialog.tsx +1 -1
  1084. package/src/modules/wms/components/backend/WmsConfigurationPage.tsx +4 -5
  1085. package/src/modules/wms/components/backend/WmsInventoryConsolePage.tsx +3 -4
  1086. package/src/modules/wms/components/backend/WmsLocationDetailPage.tsx +2 -3
  1087. package/src/modules/wms/components/backend/WmsLotDetailPage.tsx +2 -3
  1088. package/src/modules/wms/components/backend/WmsLotsListPage.tsx +1 -2
  1089. package/src/modules/wms/components/backend/WmsSkuDetailPage.tsx +2 -3
  1090. package/src/modules/wms/i18n/de.json +0 -2
  1091. package/src/modules/wms/i18n/en.json +0 -2
  1092. package/src/modules/wms/i18n/es.json +0 -2
  1093. package/src/modules/wms/i18n/pl.json +0 -2
  1094. package/src/modules/workflows/backend/definitions/page.tsx +2 -3
  1095. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +4 -13
  1096. package/src/modules/workflows/backend/instances/page.tsx +9 -10
  1097. package/src/modules/workflows/backend/tasks/page.tsx +7 -8
  1098. package/src/modules/workflows/components/ActivitiesEditor.tsx +14 -98
  1099. package/src/modules/workflows/components/BusinessRulesSelector.tsx +1 -1
  1100. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +2 -2
  1101. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +2 -1
  1102. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +2 -1
  1103. package/src/modules/workflows/components/StepsEditor.tsx +2 -2
  1104. package/src/modules/workflows/components/TransitionsEditor.tsx +20 -78
  1105. package/src/modules/workflows/components/WorkflowLegend.tsx +1 -1
  1106. package/src/modules/workflows/components/WorkflowSelector.tsx +1 -1
  1107. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +1 -1
  1108. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +1 -1
  1109. package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +1 -1
  1110. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +1 -1
  1111. package/src/modules/workflows/components/fields/WorkflowSelectorField.tsx +4 -4
  1112. package/src/modules/workflows/data/validators.ts +1 -52
  1113. package/src/modules/workflows/events.ts +0 -1
  1114. package/src/modules/workflows/i18n/de.json +0 -3
  1115. package/src/modules/workflows/i18n/en.json +0 -3
  1116. package/src/modules/workflows/i18n/es.json +0 -3
  1117. package/src/modules/workflows/i18n/pl.json +0 -3
  1118. package/src/modules/workflows/lib/activity-executor.ts +20 -99
  1119. package/src/modules/workflows/lib/format-validation-error.ts +0 -60
  1120. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +11 -27
  1121. package/dist/generated/entities/attachment_quota_reservation/index.js +0 -33
  1122. package/dist/generated/entities/attachment_quota_reservation/index.js.map +0 -7
  1123. package/dist/modules/api_keys/extension-points.js +0 -16
  1124. package/dist/modules/api_keys/extension-points.js.map +0 -7
  1125. package/dist/modules/attachments/lib/quota-recovery-queue.js +0 -9
  1126. package/dist/modules/attachments/lib/quota-recovery-queue.js.map +0 -7
  1127. package/dist/modules/attachments/lib/quota-service.js +0 -224
  1128. package/dist/modules/attachments/lib/quota-service.js.map +0 -7
  1129. package/dist/modules/attachments/migrations/Migration20260709234741_attachments.js +0 -13
  1130. package/dist/modules/attachments/migrations/Migration20260709234741_attachments.js.map +0 -7
  1131. package/dist/modules/attachments/workers/quota-recovery.js +0 -45
  1132. package/dist/modules/attachments/workers/quota-recovery.js.map +0 -7
  1133. package/dist/modules/audit_logs/api/audit-logs/readScope.js +0 -12
  1134. package/dist/modules/audit_logs/api/audit-logs/readScope.js.map +0 -7
  1135. package/dist/modules/audit_logs/extension-points.js +0 -14
  1136. package/dist/modules/audit_logs/extension-points.js.map +0 -7
  1137. package/dist/modules/auth/extension-points.js +0 -21
  1138. package/dist/modules/auth/extension-points.js.map +0 -7
  1139. package/dist/modules/business_rules/api/openmercato-call-options/route.js +0 -85
  1140. package/dist/modules/business_rules/api/openmercato-call-options/route.js.map +0 -7
  1141. package/dist/modules/business_rules/events.js +0 -13
  1142. package/dist/modules/business_rules/events.js.map +0 -7
  1143. package/dist/modules/business_rules/extension-points.js +0 -13
  1144. package/dist/modules/business_rules/extension-points.js.map +0 -7
  1145. package/dist/modules/business_rules/lib/openmercato-call-options-types.js +0 -5
  1146. package/dist/modules/business_rules/lib/openmercato-call-options-types.js.map +0 -7
  1147. package/dist/modules/business_rules/lib/openmercato-call-options.js +0 -231
  1148. package/dist/modules/business_rules/lib/openmercato-call-options.js.map +0 -7
  1149. package/dist/modules/catalog/extension-points.js +0 -27
  1150. package/dist/modules/catalog/extension-points.js.map +0 -7
  1151. package/dist/modules/communication_channels/extension-points.js +0 -20
  1152. package/dist/modules/communication_channels/extension-points.js.map +0 -7
  1153. package/dist/modules/configs/extension-points.js +0 -18
  1154. package/dist/modules/configs/extension-points.js.map +0 -7
  1155. package/dist/modules/currencies/extension-points.js +0 -14
  1156. package/dist/modules/currencies/extension-points.js.map +0 -7
  1157. package/dist/modules/currencies/services/baseCurrencyService.js +0 -42
  1158. package/dist/modules/currencies/services/baseCurrencyService.js.map +0 -7
  1159. package/dist/modules/customer_accounts/emails/CustomerInvitationEmail.js +0 -26
  1160. package/dist/modules/customer_accounts/emails/CustomerInvitationEmail.js.map +0 -7
  1161. package/dist/modules/customer_accounts/extension-points.js +0 -14
  1162. package/dist/modules/customer_accounts/extension-points.js.map +0 -7
  1163. package/dist/modules/customer_accounts/lib/invitationEmail.js +0 -35
  1164. package/dist/modules/customer_accounts/lib/invitationEmail.js.map +0 -7
  1165. package/dist/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.js +0 -13
  1166. package/dist/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.js.map +0 -7
  1167. package/dist/modules/customers/extension-points.js +0 -42
  1168. package/dist/modules/customers/extension-points.js.map +0 -7
  1169. package/dist/modules/customers/lib/dealStatus.js +0 -38
  1170. package/dist/modules/customers/lib/dealStatus.js.map +0 -7
  1171. package/dist/modules/customers/lib/dealsSummaryQueries.js +0 -144
  1172. package/dist/modules/customers/lib/dealsSummaryQueries.js.map +0 -7
  1173. package/dist/modules/customers/lib/optionalBaseCurrency.js +0 -19
  1174. package/dist/modules/customers/lib/optionalBaseCurrency.js.map +0 -7
  1175. package/dist/modules/customers/migrations/Migration20260723210000_customers.js +0 -15
  1176. package/dist/modules/customers/migrations/Migration20260723210000_customers.js.map +0 -7
  1177. package/dist/modules/dashboards/components/UnlabelledAmountNotice.js +0 -33
  1178. package/dist/modules/dashboards/components/UnlabelledAmountNotice.js.map +0 -7
  1179. package/dist/modules/dashboards/lib/exactDecimal.js +0 -69
  1180. package/dist/modules/dashboards/lib/exactDecimal.js.map +0 -7
  1181. package/dist/modules/dashboards/lib/optionalBaseCurrency.js +0 -11
  1182. package/dist/modules/dashboards/lib/optionalBaseCurrency.js.map +0 -7
  1183. package/dist/modules/dashboards/subscribers/invalidateWidgetDataCache.js +0 -26
  1184. package/dist/modules/dashboards/subscribers/invalidateWidgetDataCache.js.map +0 -7
  1185. package/dist/modules/data_sync/extension-points.js +0 -13
  1186. package/dist/modules/data_sync/extension-points.js.map +0 -7
  1187. package/dist/modules/data_sync/lib/queue-policy.js +0 -15
  1188. package/dist/modules/data_sync/lib/queue-policy.js.map +0 -7
  1189. package/dist/modules/design_system/acl.js +0 -9
  1190. package/dist/modules/design_system/acl.js.map +0 -7
  1191. package/dist/modules/design_system/backend/design-system/page.js +0 -11
  1192. package/dist/modules/design_system/backend/design-system/page.js.map +0 -7
  1193. package/dist/modules/design_system/backend/design-system/page.meta.js +0 -15
  1194. package/dist/modules/design_system/backend/design-system/page.meta.js.map +0 -7
  1195. package/dist/modules/design_system/gallery/components/CodeSnippet.js +0 -52
  1196. package/dist/modules/design_system/gallery/components/CodeSnippet.js.map +0 -7
  1197. package/dist/modules/design_system/gallery/components/EntryCard.js +0 -63
  1198. package/dist/modules/design_system/gallery/components/EntryCard.js.map +0 -7
  1199. package/dist/modules/design_system/gallery/components/GalleryShell.js +0 -163
  1200. package/dist/modules/design_system/gallery/components/GalleryShell.js.map +0 -7
  1201. package/dist/modules/design_system/gallery/components/VariantPreview.js +0 -9
  1202. package/dist/modules/design_system/gallery/components/VariantPreview.js.map +0 -7
  1203. package/dist/modules/design_system/gallery/entries/banners.js +0 -186
  1204. package/dist/modules/design_system/gallery/entries/banners.js.map +0 -7
  1205. package/dist/modules/design_system/gallery/entries/buttons.js +0 -361
  1206. package/dist/modules/design_system/gallery/entries/buttons.js.map +0 -7
  1207. package/dist/modules/design_system/gallery/entries/charts.js +0 -457
  1208. package/dist/modules/design_system/gallery/entries/charts.js.map +0 -7
  1209. package/dist/modules/design_system/gallery/entries/dates.js +0 -306
  1210. package/dist/modules/design_system/gallery/entries/dates.js.map +0 -7
  1211. package/dist/modules/design_system/gallery/entries/detail.js +0 -358
  1212. package/dist/modules/design_system/gallery/entries/detail.js.map +0 -7
  1213. package/dist/modules/design_system/gallery/entries/display.js +0 -785
  1214. package/dist/modules/design_system/gallery/entries/display.js.map +0 -7
  1215. package/dist/modules/design_system/gallery/entries/feedback.js +0 -658
  1216. package/dist/modules/design_system/gallery/entries/feedback.js.map +0 -7
  1217. package/dist/modules/design_system/gallery/entries/filters.js +0 -505
  1218. package/dist/modules/design_system/gallery/entries/filters.js.map +0 -7
  1219. package/dist/modules/design_system/gallery/entries/foundations.js +0 -453
  1220. package/dist/modules/design_system/gallery/entries/foundations.js.map +0 -7
  1221. package/dist/modules/design_system/gallery/entries/icons.js +0 -140
  1222. package/dist/modules/design_system/gallery/entries/icons.js.map +0 -7
  1223. package/dist/modules/design_system/gallery/entries/inputs.js +0 -1217
  1224. package/dist/modules/design_system/gallery/entries/inputs.js.map +0 -7
  1225. package/dist/modules/design_system/gallery/entries/messages.js +0 -334
  1226. package/dist/modules/design_system/gallery/entries/messages.js.map +0 -7
  1227. package/dist/modules/design_system/gallery/entries/navigation.js +0 -475
  1228. package/dist/modules/design_system/gallery/entries/navigation.js.map +0 -7
  1229. package/dist/modules/design_system/gallery/entries/notifications.js +0 -257
  1230. package/dist/modules/design_system/gallery/entries/notifications.js.map +0 -7
  1231. package/dist/modules/design_system/gallery/entries/overlays.js +0 -576
  1232. package/dist/modules/design_system/gallery/entries/overlays.js.map +0 -7
  1233. package/dist/modules/design_system/gallery/entries/scaffolding.js +0 -378
  1234. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +0 -7
  1235. package/dist/modules/design_system/gallery/entries/schedule.js +0 -297
  1236. package/dist/modules/design_system/gallery/entries/schedule.js.map +0 -7
  1237. package/dist/modules/design_system/gallery/registry.js +0 -139
  1238. package/dist/modules/design_system/gallery/registry.js.map +0 -7
  1239. package/dist/modules/design_system/gallery/types.js +0 -1
  1240. package/dist/modules/design_system/gallery/types.js.map +0 -7
  1241. package/dist/modules/design_system/index.js +0 -9
  1242. package/dist/modules/design_system/index.js.map +0 -7
  1243. package/dist/modules/design_system/setup.js +0 -14
  1244. package/dist/modules/design_system/setup.js.map +0 -7
  1245. package/dist/modules/dictionaries/lib/fetchAllEntries.js +0 -43
  1246. package/dist/modules/dictionaries/lib/fetchAllEntries.js.map +0 -7
  1247. package/dist/modules/directory/extension-points.js +0 -14
  1248. package/dist/modules/directory/extension-points.js.map +0 -7
  1249. package/dist/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.js +0 -13
  1250. package/dist/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.js.map +0 -7
  1251. package/dist/modules/entities/backend/config/settings/page.js +0 -10
  1252. package/dist/modules/entities/backend/config/settings/page.js.map +0 -7
  1253. package/dist/modules/entities/backend/config/settings/page.meta.js +0 -36
  1254. package/dist/modules/entities/backend/config/settings/page.meta.js.map +0 -7
  1255. package/dist/modules/entities/components/EntitySettingsManager.js +0 -136
  1256. package/dist/modules/entities/components/EntitySettingsManager.js.map +0 -7
  1257. package/dist/modules/entities/components/RecordListRelationCell.js +0 -63
  1258. package/dist/modules/entities/components/RecordListRelationCell.js.map +0 -7
  1259. package/dist/modules/entities/components/recordListRelationDisplays.js +0 -80
  1260. package/dist/modules/entities/components/recordListRelationDisplays.js.map +0 -7
  1261. package/dist/modules/entities/extension-points.js +0 -21
  1262. package/dist/modules/entities/extension-points.js.map +0 -7
  1263. package/dist/modules/feature_toggles/components/hooks/staleTime.js +0 -5
  1264. package/dist/modules/feature_toggles/components/hooks/staleTime.js.map +0 -7
  1265. package/dist/modules/inbox_ops/subscribers/search-reindex-proposal-created.js +0 -32
  1266. package/dist/modules/inbox_ops/subscribers/search-reindex-proposal-created.js.map +0 -7
  1267. package/dist/modules/integrations/extension-points.js +0 -30
  1268. package/dist/modules/integrations/extension-points.js.map +0 -7
  1269. package/dist/modules/integrations/widgets/injection/external-ids/widget.js +0 -14
  1270. package/dist/modules/integrations/widgets/injection/external-ids/widget.js.map +0 -7
  1271. package/dist/modules/messages/extension-points.js +0 -16
  1272. package/dist/modules/messages/extension-points.js.map +0 -7
  1273. package/dist/modules/messages/lib/participantScope.js +0 -15
  1274. package/dist/modules/messages/lib/participantScope.js.map +0 -7
  1275. package/dist/modules/notifications/lib/notificationScope.js +0 -26
  1276. package/dist/modules/notifications/lib/notificationScope.js.map +0 -7
  1277. package/dist/modules/payment_gateways/extension-points.js +0 -19
  1278. package/dist/modules/payment_gateways/extension-points.js.map +0 -7
  1279. package/dist/modules/payment_gateways/lib/capture-ledger.js +0 -183
  1280. package/dist/modules/payment_gateways/lib/capture-ledger.js.map +0 -7
  1281. package/dist/modules/payment_gateways/lib/order-amount-reconciliation.js +0 -58
  1282. package/dist/modules/payment_gateways/lib/order-amount-reconciliation.js.map +0 -7
  1283. package/dist/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.js +0 -16
  1284. package/dist/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.js.map +0 -7
  1285. package/dist/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.js +0 -18
  1286. package/dist/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.js.map +0 -7
  1287. package/dist/modules/payment_gateways/workers/session-initialization-prune.js +0 -50
  1288. package/dist/modules/payment_gateways/workers/session-initialization-prune.js.map +0 -7
  1289. package/dist/modules/portal/extension-points.js +0 -32
  1290. package/dist/modules/portal/extension-points.js.map +0 -7
  1291. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.js +0 -134
  1292. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.js.map +0 -7
  1293. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.js +0 -11
  1294. package/dist/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.js.map +0 -7
  1295. package/dist/modules/portal/lib/navigation.js +0 -7
  1296. package/dist/modules/portal/lib/navigation.js.map +0 -7
  1297. package/dist/modules/query_index/events.js +0 -20
  1298. package/dist/modules/query_index/events.js.map +0 -7
  1299. package/dist/modules/query_index/extension-points.js +0 -13
  1300. package/dist/modules/query_index/extension-points.js.map +0 -7
  1301. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js +0 -17
  1302. package/dist/modules/query_index/migrations/Migration20260731105052_query_index.js.map +0 -7
  1303. package/dist/modules/resources/extension-points.js +0 -14
  1304. package/dist/modules/resources/extension-points.js.map +0 -7
  1305. package/dist/modules/resources/migrations/Migration20260608231000.js +0 -13
  1306. package/dist/modules/resources/migrations/Migration20260608231000.js.map +0 -7
  1307. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js +0 -167
  1308. package/dist/modules/sales/components/documents/SalesOrderDraftLines.js.map +0 -7
  1309. package/dist/modules/sales/extension-points.js +0 -36
  1310. package/dist/modules/sales/extension-points.js.map +0 -7
  1311. package/dist/modules/sales/services/paymentOrderTotalResolver.js +0 -52
  1312. package/dist/modules/sales/services/paymentOrderTotalResolver.js.map +0 -7
  1313. package/dist/modules/wms/extension-points.js +0 -26
  1314. package/dist/modules/wms/extension-points.js.map +0 -7
  1315. package/dist/modules/workflows/extension-points.js +0 -15
  1316. package/dist/modules/workflows/extension-points.js.map +0 -7
  1317. package/dist/modules/workflows/widgets/injection/order-approval/context-keys.js +0 -10
  1318. package/dist/modules/workflows/widgets/injection/order-approval/context-keys.js.map +0 -7
  1319. package/generated/entities/attachment_quota_reservation/index.ts +0 -15
  1320. package/src/modules/api_keys/extension-points.ts +0 -13
  1321. package/src/modules/api_keys/i18n/ko.json +0 -42
  1322. package/src/modules/attachments/i18n/ko.json +0 -175
  1323. package/src/modules/attachments/lib/quota-recovery-queue.ts +0 -16
  1324. package/src/modules/attachments/lib/quota-service.ts +0 -442
  1325. package/src/modules/attachments/migrations/Migration20260709234741_attachments.ts +0 -12
  1326. package/src/modules/attachments/workers/quota-recovery.ts +0 -68
  1327. package/src/modules/audit_logs/api/audit-logs/readScope.ts +0 -28
  1328. package/src/modules/audit_logs/extension-points.ts +0 -11
  1329. package/src/modules/audit_logs/i18n/ko.json +0 -66
  1330. package/src/modules/auth/extension-points.ts +0 -18
  1331. package/src/modules/auth/i18n/ko.json +0 -255
  1332. package/src/modules/business_rules/api/openmercato-call-options/route.ts +0 -94
  1333. package/src/modules/business_rules/events.ts +0 -10
  1334. package/src/modules/business_rules/extension-points.ts +0 -10
  1335. package/src/modules/business_rules/i18n/ko.json +0 -396
  1336. package/src/modules/business_rules/lib/openmercato-call-options-types.ts +0 -31
  1337. package/src/modules/business_rules/lib/openmercato-call-options.ts +0 -297
  1338. package/src/modules/catalog/extension-points.ts +0 -24
  1339. package/src/modules/catalog/i18n/ko.json +0 -723
  1340. package/src/modules/communication_channels/extension-points.ts +0 -17
  1341. package/src/modules/communication_channels/i18n/ko.json +0 -138
  1342. package/src/modules/configs/extension-points.ts +0 -15
  1343. package/src/modules/configs/i18n/ko.json +0 -197
  1344. package/src/modules/currencies/extension-points.ts +0 -11
  1345. package/src/modules/currencies/i18n/ko.json +0 -160
  1346. package/src/modules/currencies/services/baseCurrencyService.ts +0 -59
  1347. package/src/modules/customer_accounts/emails/CustomerInvitationEmail.tsx +0 -45
  1348. package/src/modules/customer_accounts/extension-points.ts +0 -11
  1349. package/src/modules/customer_accounts/i18n/ko.json +0 -354
  1350. package/src/modules/customer_accounts/lib/invitationEmail.ts +0 -42
  1351. package/src/modules/customer_accounts/migrations/Migration20260723120000_customer_accounts.ts +0 -13
  1352. package/src/modules/customers/extension-points.ts +0 -40
  1353. package/src/modules/customers/i18n/ko.json +0 -2855
  1354. package/src/modules/customers/lib/dealStatus.ts +0 -48
  1355. package/src/modules/customers/lib/dealsSummaryQueries.ts +0 -211
  1356. package/src/modules/customers/lib/optionalBaseCurrency.ts +0 -34
  1357. package/src/modules/customers/migrations/Migration20260723210000_customers.ts +0 -15
  1358. package/src/modules/dashboards/components/UnlabelledAmountNotice.tsx +0 -43
  1359. package/src/modules/dashboards/i18n/ko.json +0 -118
  1360. package/src/modules/dashboards/lib/exactDecimal.ts +0 -96
  1361. package/src/modules/dashboards/lib/optionalBaseCurrency.ts +0 -22
  1362. package/src/modules/dashboards/subscribers/invalidateWidgetDataCache.ts +0 -32
  1363. package/src/modules/data_sync/extension-points.ts +0 -10
  1364. package/src/modules/data_sync/i18n/ko.json +0 -125
  1365. package/src/modules/data_sync/lib/queue-policy.ts +0 -30
  1366. package/src/modules/design_system/AGENTS.md +0 -34
  1367. package/src/modules/design_system/acl.ts +0 -5
  1368. package/src/modules/design_system/backend/design-system/page.meta.ts +0 -11
  1369. package/src/modules/design_system/backend/design-system/page.tsx +0 -14
  1370. package/src/modules/design_system/gallery/components/CodeSnippet.tsx +0 -55
  1371. package/src/modules/design_system/gallery/components/EntryCard.tsx +0 -95
  1372. package/src/modules/design_system/gallery/components/GalleryShell.tsx +0 -206
  1373. package/src/modules/design_system/gallery/components/VariantPreview.tsx +0 -15
  1374. package/src/modules/design_system/gallery/entries/banners.tsx +0 -226
  1375. package/src/modules/design_system/gallery/entries/buttons.tsx +0 -422
  1376. package/src/modules/design_system/gallery/entries/charts.tsx +0 -518
  1377. package/src/modules/design_system/gallery/entries/dates.tsx +0 -325
  1378. package/src/modules/design_system/gallery/entries/detail.tsx +0 -403
  1379. package/src/modules/design_system/gallery/entries/display.tsx +0 -893
  1380. package/src/modules/design_system/gallery/entries/feedback.tsx +0 -746
  1381. package/src/modules/design_system/gallery/entries/filters.tsx +0 -570
  1382. package/src/modules/design_system/gallery/entries/foundations.tsx +0 -529
  1383. package/src/modules/design_system/gallery/entries/icons.tsx +0 -168
  1384. package/src/modules/design_system/gallery/entries/inputs.tsx +0 -1516
  1385. package/src/modules/design_system/gallery/entries/messages.tsx +0 -339
  1386. package/src/modules/design_system/gallery/entries/navigation.tsx +0 -573
  1387. package/src/modules/design_system/gallery/entries/notifications.tsx +0 -285
  1388. package/src/modules/design_system/gallery/entries/overlays.tsx +0 -677
  1389. package/src/modules/design_system/gallery/entries/scaffolding.tsx +0 -430
  1390. package/src/modules/design_system/gallery/entries/schedule.tsx +0 -307
  1391. package/src/modules/design_system/gallery/registry.ts +0 -152
  1392. package/src/modules/design_system/gallery/types.ts +0 -32
  1393. package/src/modules/design_system/i18n/.hardcoded-allowlist.json +0 -71
  1394. package/src/modules/design_system/i18n/de.json +0 -58
  1395. package/src/modules/design_system/i18n/en.json +0 -58
  1396. package/src/modules/design_system/i18n/es.json +0 -58
  1397. package/src/modules/design_system/i18n/ko.json +0 -58
  1398. package/src/modules/design_system/i18n/pl.json +0 -58
  1399. package/src/modules/design_system/index.ts +0 -7
  1400. package/src/modules/design_system/setup.ts +0 -12
  1401. package/src/modules/dictionaries/i18n/ko.json +0 -130
  1402. package/src/modules/dictionaries/lib/fetchAllEntries.ts +0 -72
  1403. package/src/modules/directory/extension-points.ts +0 -11
  1404. package/src/modules/directory/i18n/ko.json +0 -105
  1405. package/src/modules/directory/migrations/Migration20260626145500_directory_logo_preserve_aspect_ratio.ts +0 -13
  1406. package/src/modules/entities/backend/config/settings/page.meta.ts +0 -34
  1407. package/src/modules/entities/backend/config/settings/page.tsx +0 -12
  1408. package/src/modules/entities/components/EntitySettingsManager.tsx +0 -160
  1409. package/src/modules/entities/components/RecordListRelationCell.tsx +0 -90
  1410. package/src/modules/entities/components/recordListRelationDisplays.ts +0 -109
  1411. package/src/modules/entities/extension-points.ts +0 -18
  1412. package/src/modules/entities/i18n/ko.json +0 -260
  1413. package/src/modules/feature_toggles/components/hooks/staleTime.ts +0 -5
  1414. package/src/modules/feature_toggles/i18n/ko.json +0 -96
  1415. package/src/modules/inbox_ops/i18n/ko.json +0 -196
  1416. package/src/modules/inbox_ops/subscribers/search-reindex-proposal-created.ts +0 -39
  1417. package/src/modules/integrations/extension-points.ts +0 -27
  1418. package/src/modules/integrations/i18n/ko.json +0 -129
  1419. package/src/modules/integrations/widgets/injection/external-ids/widget.ts +0 -13
  1420. package/src/modules/messages/extension-points.ts +0 -13
  1421. package/src/modules/messages/i18n/ko.json +0 -263
  1422. package/src/modules/messages/lib/participantScope.ts +0 -64
  1423. package/src/modules/notifications/i18n/ko.json +0 -55
  1424. package/src/modules/notifications/lib/notificationScope.ts +0 -40
  1425. package/src/modules/payment_gateways/extension-points.ts +0 -16
  1426. package/src/modules/payment_gateways/i18n/ko.json +0 -87
  1427. package/src/modules/payment_gateways/lib/capture-ledger.ts +0 -260
  1428. package/src/modules/payment_gateways/lib/order-amount-reconciliation.ts +0 -93
  1429. package/src/modules/payment_gateways/migrations/Migration20260725101500_payment_gateways.ts +0 -21
  1430. package/src/modules/payment_gateways/migrations/Migration20260803103035_payment_gateways.ts +0 -17
  1431. package/src/modules/payment_gateways/workers/session-initialization-prune.ts +0 -63
  1432. package/src/modules/planner/i18n/ko.json +0 -565
  1433. package/src/modules/portal/extension-points.ts +0 -30
  1434. package/src/modules/portal/frontend/[orgSlug]/portal/invite/page.meta.ts +0 -9
  1435. package/src/modules/portal/frontend/[orgSlug]/portal/invite/page.tsx +0 -164
  1436. package/src/modules/portal/i18n/ko.json +0 -143
  1437. package/src/modules/portal/lib/navigation.ts +0 -3
  1438. package/src/modules/progress/i18n/ko.json +0 -20
  1439. package/src/modules/query_index/events.ts +0 -17
  1440. package/src/modules/query_index/extension-points.ts +0 -10
  1441. package/src/modules/query_index/i18n/ko.json +0 -69
  1442. package/src/modules/query_index/migrations/Migration20260731105052_query_index.ts +0 -35
  1443. package/src/modules/resources/extension-points.ts +0 -11
  1444. package/src/modules/resources/i18n/ko.json +0 -770
  1445. package/src/modules/resources/migrations/Migration20260608231000.ts +0 -13
  1446. package/src/modules/sales/components/documents/SalesOrderDraftLines.tsx +0 -198
  1447. package/src/modules/sales/extension-points.ts +0 -33
  1448. package/src/modules/sales/i18n/ko.json +0 -1442
  1449. package/src/modules/sales/services/paymentOrderTotalResolver.ts +0 -67
  1450. package/src/modules/shipping_carriers/i18n/ko.json +0 -85
  1451. package/src/modules/staff/i18n/ko.json +0 -1162
  1452. package/src/modules/sync_excel/i18n/ko.json +0 -107
  1453. package/src/modules/translations/i18n/ko.json +0 -45
  1454. package/src/modules/wms/extension-points.ts +0 -23
  1455. package/src/modules/wms/i18n/ko.json +0 -1053
  1456. package/src/modules/workflows/extension-points.ts +0 -12
  1457. package/src/modules/workflows/i18n/ko.json +0 -1204
  1458. package/src/modules/workflows/widgets/injection/order-approval/context-keys.ts +0 -18
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/workflows/data/validators.ts"],
4
- "sourcesContent": ["import { z } from 'zod'\nimport { parseDuration } from '../lib/duration'\n\n/**\n * Workflows Module - Zod Validators\n *\n * Comprehensive validation schemas for workflow engine entities.\n */\n\nconst uuid = z.uuid()\n\n// Variable interpolation tokens (e.g., {{context.timeout}}) are resolved at\n// run time, so we must skip strict syntax checks on them at save time.\nconst containsTemplate = (value: string) => value.includes('{{')\n\nexport function isValidDurationString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n try {\n const ms = parseDuration(value)\n return Number.isFinite(ms) && ms > 0\n } catch {\n return false\n }\n}\n\nexport function isValidIsoDateString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n const d = new Date(value)\n return !Number.isNaN(d.getTime())\n}\n\nexport function isFutureIsoDateString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n const d = new Date(value)\n if (Number.isNaN(d.getTime())) return false\n return d.getTime() > Date.now()\n}\n\nconst DURATION_ERROR = 'Invalid duration. Use ISO 8601 (e.g., PT5M, PT1H, P1D) or simple format (5m, 1h, 3d)'\nconst UNTIL_ERROR = 'Invalid \"until\". Provide an ISO 8601 datetime string'\nconst UNTIL_PAST_ERROR = '\"until\" must be a future datetime'\n\n// ============================================================================\n// Enum Schemas - Workflow Types and Statuses\n// ============================================================================\n\nexport const workflowStepTypeSchema = z.enum([\n 'START',\n 'END',\n 'USER_TASK',\n 'AUTOMATED',\n 'PARALLEL_FORK',\n 'PARALLEL_JOIN',\n 'SUB_WORKFLOW',\n 'WAIT_FOR_SIGNAL',\n 'WAIT_FOR_TIMER',\n])\nexport type WorkflowStepType = z.infer<typeof workflowStepTypeSchema>\n\nexport const workflowInstanceStatusSchema = z.enum([\n 'RUNNING',\n 'PAUSED',\n 'COMPLETED',\n 'FAILED',\n 'CANCELLED',\n 'COMPENSATING',\n 'COMPENSATED',\n 'WAITING_FOR_ACTIVITIES',\n 'FORKED',\n])\nexport type WorkflowInstanceStatus = z.infer<typeof workflowInstanceStatusSchema>\n\nexport const workflowBranchInstanceStatusSchema = z.enum([\n 'ACTIVE',\n 'PAUSED',\n 'WAITING_FOR_ACTIVITIES',\n 'COMPLETED',\n 'FAILED',\n 'CANCELLED',\n])\nexport type WorkflowBranchInstanceStatus = z.infer<typeof workflowBranchInstanceStatusSchema>\n\nexport const stepInstanceStatusSchema = z.enum([\n 'PENDING',\n 'ACTIVE',\n 'COMPLETED',\n 'FAILED',\n 'SKIPPED',\n 'CANCELLED',\n])\nexport type StepInstanceStatus = z.infer<typeof stepInstanceStatusSchema>\n\nexport const userTaskStatusSchema = z.enum([\n 'PENDING',\n 'IN_PROGRESS',\n 'COMPLETED',\n 'CANCELLED',\n 'ESCALATED',\n])\nexport type UserTaskStatus = z.infer<typeof userTaskStatusSchema>\n\nexport const transitionTriggerSchema = z.enum(['auto', 'manual', 'signal', 'timer'])\nexport type TransitionTrigger = z.infer<typeof transitionTriggerSchema>\n\nexport const activityTypeSchema = z.enum([\n 'SEND_EMAIL',\n 'CALL_API',\n 'UPDATE_ENTITY',\n 'EMIT_EVENT',\n 'CALL_WEBHOOK',\n 'EXECUTE_FUNCTION',\n 'WAIT',\n])\nexport type ActivityType = z.infer<typeof activityTypeSchema>\n\nexport const escalationTriggerSchema = z.enum(['sla_breach', 'no_progress', 'custom'])\nexport type EscalationTrigger = z.infer<typeof escalationTriggerSchema>\n\nexport const escalationActionSchema = z.enum(['reassign', 'notify', 'escalate'])\nexport type EscalationAction = z.infer<typeof escalationActionSchema>\n\n// ============================================================================\n// Complex Object Schemas - Workflow Definition Components\n// ============================================================================\n\n// User task configuration\nexport const userTaskConfigSchema = z.object({\n // Support both custom fields array format and JSON Schema format\n formSchema: z.union([\n // Custom format with fields array\n z.object({\n fields: z.array(z.object({\n name: z.string().min(1),\n type: z.string().min(1),\n label: z.string().min(1),\n required: z.boolean().optional(),\n options: z.array(z.any()).optional(),\n }))\n }),\n // JSON Schema format with properties\n z.object({\n type: z.literal('object').optional(),\n properties: z.record(z.string(), z.any()),\n required: z.array(z.string()).optional(),\n }),\n ]).optional(),\n assignedTo: z.union([\n z.string(),\n z.array(z.string()),\n ]).optional(),\n assignmentRule: z.string().optional(), // Business rule ID\n slaDuration: z.string().optional(), // ISO 8601 duration\n escalationRules: z.array(z.object({\n trigger: escalationTriggerSchema,\n action: escalationActionSchema,\n escalateTo: z.string().optional(),\n notifyUsers: z.array(z.string()).optional(),\n })).optional(),\n})\n\n// Sub-workflow configuration (Phase 8)\nexport const subWorkflowConfigSchema = z.object({\n subWorkflowId: z.string().min(1, 'Sub-workflow ID is required'),\n version: z.number().int().positive().optional(),\n inputMapping: z.record(z.string(), z.string()).optional(),\n outputMapping: z.record(z.string(), z.string()).optional(),\n timeoutMs: z.number().int().positive().optional(),\n})\n\n// CALL_API activity configuration\nexport const callApiConfigSchema = z.object({\n endpoint: z.string().min(1, 'API endpoint is required'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']).default('GET'),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.any().optional(),\n validateTenantMatch: z.boolean().default(true).optional(),\n timeout: z.number().int().positive().optional(),\n})\n\nexport const callWebhookConfigSchema = z.object({\n url: z.string().min(1, 'Webhook URL is required'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST'),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.any().optional(),\n})\nexport type CallWebhookConfig = z.infer<typeof callWebhookConfigSchema>\n\n// Retry policy\nexport const retryPolicySchema = z.object({\n maxAttempts: z.number().int().min(1).max(10),\n backoffMs: z.number().int().min(0),\n})\n\n// Activity retry policy (more detailed)\nexport const activityRetryPolicySchema = z.object({\n maxAttempts: z.number().int().min(1).max(10),\n initialIntervalMs: z.number().int().min(0),\n backoffCoefficient: z.number().min(1).max(10),\n maxIntervalMs: z.number().int().min(0),\n})\n\n/**\n * Config fields each activity executor requires to run (see\n * `lib/activity-executor.ts`). WAIT is handled separately below because it\n * takes \"duration\" OR \"until\" rather than a fixed key set.\n */\nconst REQUIRED_ACTIVITY_CONFIG_KEYS: Partial<Record<ActivityType, readonly string[]>> = {\n SEND_EMAIL: ['to', 'subject'],\n CALL_API: ['endpoint'],\n CALL_WEBHOOK: ['url'],\n UPDATE_ENTITY: ['commandId', 'input'],\n EMIT_EVENT: ['eventName'],\n EXECUTE_FUNCTION: ['functionName'],\n}\n\n// Activity definition (embedded in transitions)\nexport const activityDefinitionSchema = z.object({\n activityId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Activity ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n activityName: z.string().min(1).max(255),\n activityType: activityTypeSchema,\n config: z.record(z.string(), z.any()),\n async: z.boolean().default(false).optional(), // For Phase 8.3\n retryPolicy: activityRetryPolicySchema.optional(),\n /**\n * Per-activity timeout in milliseconds. This is what the editor writes and\n * what `executeActivity` reads; it was missing from the schema, so\n * `z.object()` stripped it on save and UI-configured timeouts silently did\n * nothing (#4424).\n */\n timeoutMs: z.number().int().positive().optional(),\n /**\n * @deprecated Use `timeoutMs`. Accepted for definitions already stored with\n * an ISO 8601 duration string; the executor normalizes it to milliseconds.\n */\n timeout: z.string().optional(),\n compensation: z.object({\n activityId: z.string().min(1), // ID of compensation activity\n automatic: z.boolean().default(true).optional() // Auto-trigger on failure\n }).optional(), // Compensation configuration (Phase 8.2)\n}).superRefine((activity, ctx) => {\n // Config keys each activity executor requires at runtime. Without this, an\n // activity missing e.g. CALL_API's `endpoint` saved cleanly from the visual\n // editor and only failed once an instance ran it \u2014 the \"edit silently\n // disappeared / nothing told me why\" report in #4232 (and the class of bug\n // #4322 was an instance of). Validating here surfaces the exact missing field\n // at edit time, since both the editor's save path and the API route parse\n // through this schema.\n const requiredConfigKeys = REQUIRED_ACTIVITY_CONFIG_KEYS[activity.activityType]\n if (requiredConfigKeys) {\n const config = activity.config || {}\n for (const key of requiredConfigKeys) {\n const value = config[key]\n const isEmpty =\n value == null ||\n (typeof value === 'string' && value.trim() === '') ||\n (key === 'input' && typeof value !== 'object')\n if (isEmpty) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', key],\n message: `${activity.activityType} activity requires \"${key}\"`,\n })\n }\n }\n }\n\n if (activity.activityType !== 'WAIT') return\n const config = activity.config || {}\n const hasDuration = config.duration != null && config.duration !== ''\n const hasUntil = config.until != null && config.until !== ''\n if (!hasDuration && !hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT activity requires \"duration\" or \"until\"',\n })\n return\n }\n if (hasDuration && hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT activity accepts \"duration\" OR \"until\", not both',\n })\n return\n }\n if (hasDuration && !isValidDurationString(config.duration)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'duration'],\n message: DURATION_ERROR,\n })\n }\n if (hasUntil) {\n if (!isValidIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_ERROR,\n })\n } else if (!isFutureIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_PAST_ERROR,\n })\n }\n }\n})\n\n// Localized validation message schema (for START step pre-conditions)\nexport const localizedMessageSchema = z.record(z.string(), z.string())\n\n// START step pre-condition schema (with optional localized validation messages)\nexport const startPreConditionSchema = z.object({\n ruleId: z.string().min(1).max(50), // Business rule ID\n required: z.boolean().default(true),\n validationMessage: localizedMessageSchema.optional(), // Optional localized error messages\n})\n\nexport type StartPreCondition = z.infer<typeof startPreConditionSchema>\n\n// Step definition\nexport const workflowStepSchema = z.object({\n stepId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Step ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n stepName: z.string().min(1).max(255),\n stepType: workflowStepTypeSchema,\n description: z.string().max(1000).optional(),\n config: z.record(z.string(), z.any()).optional(),\n userTaskConfig: userTaskConfigSchema.optional(),\n subWorkflowConfig: subWorkflowConfigSchema.optional(),\n signalConfig: z.object({\n signalName: z.string().min(1),\n timeout: z.string().optional(),\n }).optional(),\n activities: z.array(activityDefinitionSchema).optional(),\n timeout: z.string().optional(), // ISO 8601 duration\n retryPolicy: retryPolicySchema.optional(),\n // Pre-conditions for START step (business rules to validate before workflow can be started)\n preConditions: z.array(startPreConditionSchema).optional(),\n}).superRefine((step, ctx) => {\n if (step.stepType !== 'WAIT_FOR_TIMER') return\n const config = step.config || {}\n const hasDuration = config.duration != null && config.duration !== ''\n const hasUntil = config.until != null && config.until !== ''\n if (!hasDuration && !hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT_FOR_TIMER step requires \"duration\" or \"until\"',\n })\n return\n }\n if (hasDuration && hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT_FOR_TIMER step accepts \"duration\" OR \"until\", not both',\n })\n return\n }\n if (hasDuration && !isValidDurationString(config.duration)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'duration'],\n message: DURATION_ERROR,\n })\n }\n if (hasUntil) {\n if (!isValidIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_ERROR,\n })\n } else if (!isFutureIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_PAST_ERROR,\n })\n }\n }\n})\n\n// Transition condition (reference to business rule)\nexport const transitionConditionSchema = z.object({\n ruleId: z.string().min(1).max(50), // Business rule ID\n required: z.boolean().default(true),\n})\n\n// Transition definition\nexport const workflowTransitionSchema = z.object({\n transitionId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Transition ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n fromStepId: z.string().min(1).max(100),\n toStepId: z.string().min(1).max(100),\n transitionName: z.string().max(255).optional(),\n trigger: transitionTriggerSchema,\n preConditions: z.array(transitionConditionSchema).optional(),\n postConditions: z.array(transitionConditionSchema).optional(),\n activities: z.array(activityDefinitionSchema).optional(), // Activities to execute during transition\n continueOnActivityFailure: z.boolean().default(false).optional(), // If true, transition continues even when activities fail\n priority: z.number().int().min(0).max(9999).default(0),\n})\n\n// Workflow definition trigger schema (embedded in definition)\n// Note: Uses forward reference pattern since eventPatternSchema and eventTriggerConfigSchema are defined later\nexport const workflowDefinitionTriggerSchema = z.object({\n triggerId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Trigger ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n eventPattern: z.string()\n .min(1, 'Event pattern is required')\n .max(255, 'Event pattern must be at most 255 characters')\n .regex(\n /^(\\*|[a-z0-9_]+(\\.[a-z0-9_*]+)*)$/i,\n 'Event pattern must be \"*\" or a dot-separated pattern with optional wildcards (e.g., \"customers.people.created\", \"sales.orders.*\")'\n ),\n config: z.object({\n filterConditions: z.array(z.object({\n field: z.string().min(1).max(255),\n operator: z.enum(['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'contains', 'startsWith', 'endsWith', 'in', 'notIn', 'exists', 'notExists', 'regex']),\n value: z.any(),\n })).max(20).optional(),\n contextMapping: z.array(z.object({\n targetKey: z.string().min(1).max(100),\n sourceExpression: z.string().min(1).max(255),\n defaultValue: z.any().optional(),\n })).max(50).optional(),\n debounceMs: z.number().int().min(0).max(3600000).optional(),\n maxConcurrentInstances: z.number().int().min(1).max(1000).optional(),\n }).optional().nullable(),\n enabled: z.boolean().default(true),\n priority: z.number().int().min(0).max(9999).default(0),\n})\nexport type WorkflowDefinitionTrigger = z.infer<typeof workflowDefinitionTriggerSchema>\n\n// ============================================================================\n// PARALLEL_FORK / PARALLEL_JOIN definition validation\n// ============================================================================\n\n// Error codes surfaced by FORK/JOIN definition validation. Stable identifiers\n// so the visual editor and tests can match on them.\nexport type ForkJoinValidationCode =\n | 'MISSING_JOIN_STEP_ID'\n | 'JOIN_STEP_NOT_FOUND'\n | 'JOIN_STEP_WRONG_TYPE'\n | 'MISSING_FORK_STEP_ID'\n | 'FORK_JOIN_MISMATCH'\n | 'FORK_TOO_FEW_BRANCHES'\n | 'JOIN_TOO_FEW_INCOMING'\n | 'DUPLICATE_BRANCH_KEY'\n | 'NESTED_FORK_NOT_SUPPORTED'\n | 'NO_CONVERGENCE_TO_JOIN'\n | 'FORK_JOIN_CYCLE'\n | 'UNPAIRED_JOIN'\n\nexport interface ForkJoinValidationIssue {\n code: ForkJoinValidationCode\n message: string\n stepId?: string\n}\n\ninterface ForkJoinStepLike {\n stepId: string\n stepType: string\n config?: Record<string, unknown> | null\n}\n\ninterface ForkJoinTransitionLike {\n transitionId: string\n fromStepId: string\n toStepId: string\n trigger: string\n}\n\ninterface ForkJoinDefinitionLike {\n steps: ForkJoinStepLike[]\n transitions: ForkJoinTransitionLike[]\n}\n\n/**\n * Validates PARALLEL_FORK / PARALLEL_JOIN structure of a workflow definition.\n * Pure and side-effect-free so it can be unit tested and reused by the editor.\n *\n * Rules (this iteration \u2014 wait-all, no nesting):\n * 1. Every FORK declares config.joinStepId pointing at an existing PARALLEL_JOIN.\n * 2. The paired JOIN back-references the fork via config.forkStepId.\n * 3. A FORK has >= 2 outgoing `auto` transitions (branch keys unique); a JOIN has >= 2 incoming.\n * 4. Every path from a FORK converges to its JOIN \u2014 no END inside a branch, no dead ends,\n * no path bypassing the JOIN, no path to a different JOIN.\n * 5. No nesting: no FORK appears on a path between a FORK and its JOIN.\n * 6. No cycles back to the FORK within its branch region.\n * 7. Every PARALLEL_JOIN is paired with exactly one FORK.\n */\nexport function validateParallelForkJoin(definition: ForkJoinDefinitionLike): ForkJoinValidationIssue[] {\n const issues: ForkJoinValidationIssue[] = []\n const steps = definition.steps ?? []\n const transitions = definition.transitions ?? []\n\n const stepById = new Map<string, ForkJoinStepLike>()\n for (const step of steps) stepById.set(step.stepId, step)\n\n const outgoingByStep = new Map<string, ForkJoinTransitionLike[]>()\n const incomingCountByStep = new Map<string, number>()\n for (const transition of transitions) {\n const list = outgoingByStep.get(transition.fromStepId) ?? []\n list.push(transition)\n outgoingByStep.set(transition.fromStepId, list)\n incomingCountByStep.set(transition.toStepId, (incomingCountByStep.get(transition.toStepId) ?? 0) + 1)\n }\n\n const forkSteps = steps.filter((step) => step.stepType === 'PARALLEL_FORK')\n const joinSteps = steps.filter((step) => step.stepType === 'PARALLEL_JOIN')\n\n // Track which JOIN steps are paired with a FORK so we can flag orphan joins.\n const pairedJoinIds = new Set<string>()\n\n for (const fork of forkSteps) {\n const joinStepId = (fork.config?.joinStepId as string | undefined) ?? undefined\n if (!joinStepId) {\n issues.push({ code: 'MISSING_JOIN_STEP_ID', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" must declare config.joinStepId` })\n continue\n }\n const joinStep = stepById.get(joinStepId)\n if (!joinStep) {\n issues.push({ code: 'JOIN_STEP_NOT_FOUND', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" references missing join step \"${joinStepId}\"` })\n continue\n }\n if (joinStep.stepType !== 'PARALLEL_JOIN') {\n issues.push({ code: 'JOIN_STEP_WRONG_TYPE', stepId: fork.stepId, message: `Step \"${joinStepId}\" referenced by fork \"${fork.stepId}\" is not a PARALLEL_JOIN` })\n continue\n }\n\n pairedJoinIds.add(joinStepId)\n\n const backForkStepId = (joinStep.config?.forkStepId as string | undefined) ?? undefined\n if (!backForkStepId) {\n issues.push({ code: 'MISSING_FORK_STEP_ID', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" must declare config.forkStepId` })\n } else if (backForkStepId !== fork.stepId) {\n issues.push({ code: 'FORK_JOIN_MISMATCH', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" back-reference forkStepId \"${backForkStepId}\" does not match fork \"${fork.stepId}\"` })\n }\n\n const autoBranches = (outgoingByStep.get(fork.stepId) ?? []).filter((transition) => transition.trigger === 'auto')\n if (autoBranches.length < 2) {\n issues.push({ code: 'FORK_TOO_FEW_BRANCHES', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" must have at least 2 outgoing auto transitions (found ${autoBranches.length})` })\n }\n const branchKeys = new Set<string>()\n for (const branch of autoBranches) {\n if (branchKeys.has(branch.transitionId)) {\n issues.push({ code: 'DUPLICATE_BRANCH_KEY', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" has duplicate branch key \"${branch.transitionId}\"` })\n }\n branchKeys.add(branch.transitionId)\n }\n\n if ((incomingCountByStep.get(joinStepId) ?? 0) < 2) {\n issues.push({ code: 'JOIN_TOO_FEW_INCOMING', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" must have at least 2 incoming transitions` })\n }\n\n // Convergence + no-nesting + no-cycle traversal over the branch region.\n const fullyExplored = new Set<string>()\n const onStack = new Set<string>()\n let reportedNesting = false\n let reportedNoConvergence = false\n let reportedCycle = false\n\n const visit = (stepId: string): void => {\n if (stepId === joinStepId) return // converged\n if (stepId === fork.stepId) {\n if (!reportedCycle) {\n issues.push({ code: 'FORK_JOIN_CYCLE', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" loops back to the fork before reaching join \"${joinStepId}\"` })\n reportedCycle = true\n }\n return\n }\n const step = stepById.get(stepId)\n if (!step) {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches missing step \"${stepId}\" instead of join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (step.stepType === 'END') {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches an END step before join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (step.stepType === 'PARALLEL_FORK') {\n if (!reportedNesting) {\n issues.push({ code: 'NESTED_FORK_NOT_SUPPORTED', stepId: fork.stepId, message: `Nested PARALLEL_FORK \"${stepId}\" inside fork \"${fork.stepId}\" is not supported` })\n reportedNesting = true\n }\n return\n }\n if (step.stepType === 'PARALLEL_JOIN') {\n // Reached a join that is not this fork's join \u2192 it does not converge correctly.\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches join \"${stepId}\" instead of its own join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (onStack.has(stepId)) {\n if (!reportedCycle) {\n issues.push({ code: 'FORK_JOIN_CYCLE', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" contains a cycle at step \"${stepId}\"` })\n reportedCycle = true\n }\n return\n }\n if (fullyExplored.has(stepId)) return\n\n const outgoing = outgoingByStep.get(stepId) ?? []\n if (outgoing.length === 0) {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" dead-ends at step \"${stepId}\" without reaching join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n onStack.add(stepId)\n for (const transition of outgoing) visit(transition.toStepId)\n onStack.delete(stepId)\n fullyExplored.add(stepId)\n }\n\n for (const branch of autoBranches) visit(branch.toStepId)\n }\n\n // Any PARALLEL_JOIN not paired with a fork is an orphan.\n for (const join of joinSteps) {\n if (!pairedJoinIds.has(join.stepId)) {\n issues.push({ code: 'UNPAIRED_JOIN', stepId: join.stepId, message: `PARALLEL_JOIN \"${join.stepId}\" is not paired with any PARALLEL_FORK` })\n }\n }\n\n return issues\n}\n\n// Workflow definition data (JSONB structure)\nexport const workflowDefinitionDataSchema = z.object({\n steps: z.array(workflowStepSchema).min(2, 'Workflow must have at least START and END steps'),\n transitions: z.array(workflowTransitionSchema).min(1, 'Workflow must have at least one transition'),\n triggers: z.array(workflowDefinitionTriggerSchema).optional(), // Event triggers for automatic workflow start\n queries: z.array(z.any()).optional(), // For Phase 7\n signals: z.array(z.any()).optional(), // For Phase 9\n timers: z.array(z.any()).optional(), // For Phase 9\n}).superRefine((definition, ctx) => {\n for (const issue of validateParallelForkJoin(definition as ForkJoinDefinitionLike)) {\n ctx.addIssue({\n code: 'custom',\n path: ['steps'],\n message: `[${issue.code}] ${issue.message}`,\n })\n }\n})\n\n// Workflow metadata\nexport const workflowMetadataSchema = z.object({\n tags: z.array(z.string().max(50)).optional(),\n category: z.string().max(100).optional(),\n icon: z.string().max(100).optional(),\n})\n\n// Date preprocessing helper\nconst dateOrNull = z.preprocess((value) => {\n if (value === undefined || value === null || value === '') return null\n const date = value instanceof Date ? value : new Date(String(value))\n return Number.isNaN(date.getTime()) ? null : date\n}, z.date().nullable())\n\n// ============================================================================\n// WorkflowDefinition Schemas\n// ============================================================================\n\n// Full schema for database entities (includes tenant fields)\nexport const createWorkflowDefinitionSchema = z.object({\n workflowId: z.string().min(1).max(100).regex(/^[a-z0-9._-]+$/, 'Workflow ID must contain only lowercase letters, numbers, dots, hyphens, and underscores'),\n workflowName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().default(1),\n definition: workflowDefinitionDataSchema,\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().default(true),\n effectiveFrom: dateOrNull.optional(),\n effectiveTo: dateOrNull.optional(),\n tenantId: uuid,\n organizationId: uuid,\n createdBy: z.string().max(255).optional().nullable(),\n})\n\nexport type CreateWorkflowDefinitionInput = z.infer<typeof createWorkflowDefinitionSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const createWorkflowDefinitionInputSchema = z.object({\n workflowId: z.string().min(1).max(100).regex(/^[a-z0-9._-]+$/, 'Workflow ID must contain only lowercase letters, numbers, dots, hyphens, and underscores'),\n workflowName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().default(1),\n definition: workflowDefinitionDataSchema,\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().default(true).optional(),\n})\n\nexport type CreateWorkflowDefinitionApiInput = z.infer<typeof createWorkflowDefinitionInputSchema>\n\nexport const updateWorkflowDefinitionSchema = createWorkflowDefinitionSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateWorkflowDefinitionInput = z.infer<typeof updateWorkflowDefinitionSchema>\n\n// API update schema (omits tenant fields and allows partial updates)\n// Accepts the same shape as the create form so the edit page can submit a\n// full payload without triggering \"Unrecognized keys\" validation errors.\n// workflowId is accepted but ignored by the route handler (it identifies the\n// row); version is applied when supplied so the form can bump it explicitly.\nexport const updateWorkflowDefinitionInputSchema = z.object({\n workflowId: z.string().min(1).max(100).optional(),\n workflowName: z.string().min(1).max(255).optional(),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().optional(),\n definition: workflowDefinitionDataSchema.optional(),\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().optional(),\n effectiveFrom: dateOrNull.optional(),\n effectiveTo: dateOrNull.optional(),\n}).strict()\n\nexport type UpdateWorkflowDefinitionApiInput = z.infer<typeof updateWorkflowDefinitionInputSchema>\n\nexport const workflowDefinitionFilterSchema = z.object({\n workflowId: z.string().optional(),\n workflowName: z.string().optional(),\n enabled: z.boolean().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type WorkflowDefinitionFilter = z.infer<typeof workflowDefinitionFilterSchema>\n\n// ============================================================================\n// WorkflowInstance Schemas\n// ============================================================================\n\nexport const workflowInstanceMetadataSchema = z.object({\n entityType: z.string().max(100).optional(),\n entityId: z.string().max(255).optional(),\n initiatedBy: z.string().max(255).optional(),\n labels: z.record(z.string(), z.string()).optional(),\n})\n\nexport const createWorkflowInstanceSchema = z.object({\n definitionId: uuid,\n workflowId: z.string().min(1).max(100),\n version: z.number().int().positive(),\n status: workflowInstanceStatusSchema,\n currentStepId: z.string().min(1).max(100),\n context: z.record(z.string(), z.any()),\n correlationKey: z.string().max(255).optional().nullable(),\n metadata: workflowInstanceMetadataSchema.optional().nullable(),\n startedAt: z.coerce.date(),\n completedAt: dateOrNull.optional(),\n pausedAt: dateOrNull.optional(),\n cancelledAt: dateOrNull.optional(),\n errorMessage: z.string().max(5000).optional().nullable(),\n errorDetails: z.any().optional().nullable(),\n retryCount: z.number().int().min(0).default(0),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateWorkflowInstanceInput = z.infer<typeof createWorkflowInstanceSchema>\n\nexport const updateWorkflowInstanceSchema = createWorkflowInstanceSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateWorkflowInstanceInput = z.infer<typeof updateWorkflowInstanceSchema>\n\nexport const workflowInstanceFilterSchema = z.object({\n definitionId: uuid.optional(),\n workflowId: z.string().optional(),\n status: workflowInstanceStatusSchema.optional(),\n correlationKey: z.string().optional(),\n currentStepId: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type WorkflowInstanceFilter = z.infer<typeof workflowInstanceFilterSchema>\n\n// ============================================================================\n// StepInstance Schemas\n// ============================================================================\n\nexport const createStepInstanceSchema = z.object({\n workflowInstanceId: uuid,\n stepId: z.string().min(1).max(100),\n stepName: z.string().min(1).max(255),\n stepType: z.string().min(1).max(50),\n status: stepInstanceStatusSchema,\n inputData: z.any().optional().nullable(),\n outputData: z.any().optional().nullable(),\n errorData: z.any().optional().nullable(),\n enteredAt: dateOrNull.optional(),\n exitedAt: dateOrNull.optional(),\n executionTimeMs: z.number().int().min(0).optional().nullable(),\n retryCount: z.number().int().min(0).default(0),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateStepInstanceInput = z.infer<typeof createStepInstanceSchema>\n\nexport const updateStepInstanceSchema = createStepInstanceSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateStepInstanceInput = z.infer<typeof updateStepInstanceSchema>\n\nexport const stepInstanceFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n stepId: z.string().optional(),\n status: stepInstanceStatusSchema.optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type StepInstanceFilter = z.infer<typeof stepInstanceFilterSchema>\n\n// ============================================================================\n// UserTask Schemas\n// ============================================================================\n\nexport const createUserTaskSchema = z.object({\n workflowInstanceId: uuid,\n stepInstanceId: uuid,\n taskName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n status: userTaskStatusSchema,\n formSchema: z.any().optional().nullable(),\n formData: z.any().optional().nullable(),\n assignedTo: z.string().max(255).optional().nullable(),\n assignedToRoles: z.array(z.string().max(100)).optional().nullable(),\n claimedBy: z.string().max(255).optional().nullable(),\n claimedAt: dateOrNull.optional(),\n dueDate: dateOrNull.optional(),\n escalatedAt: dateOrNull.optional(),\n escalatedTo: z.string().max(255).optional().nullable(),\n completedBy: z.string().max(255).optional().nullable(),\n completedAt: dateOrNull.optional(),\n comments: z.string().max(5000).optional().nullable(),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateUserTaskInput = z.infer<typeof createUserTaskSchema>\n\nexport const updateUserTaskSchema = createUserTaskSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateUserTaskInput = z.infer<typeof updateUserTaskSchema>\n\nexport const userTaskFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n status: userTaskStatusSchema.optional(),\n assignedTo: z.string().optional(),\n claimedBy: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type UserTaskFilter = z.infer<typeof userTaskFilterSchema>\n\n// ============================================================================\n// WorkflowEvent Schemas\n// ============================================================================\n\nexport const createWorkflowEventSchema = z.object({\n workflowInstanceId: uuid,\n stepInstanceId: uuid.optional().nullable(),\n eventType: z.string().min(1).max(50),\n eventData: z.any(),\n occurredAt: z.coerce.date().optional(),\n userId: z.string().max(255).optional().nullable(),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateWorkflowEventInput = z.infer<typeof createWorkflowEventSchema>\n\nexport const workflowEventFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n stepInstanceId: uuid.optional(),\n eventType: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n occurredAtFrom: z.date().optional(),\n occurredAtTo: z.date().optional(),\n})\n\nexport type WorkflowEventFilter = z.infer<typeof workflowEventFilterSchema>\n\n// ============================================================================\n// Workflow Execution Context Schema\n// ============================================================================\n\nexport const workflowExecutionContextSchema = z.looseObject({\n workflowId: z.string().min(1),\n version: z.number().int().positive().optional(),\n correlationKey: z.string().optional(),\n context: z.record(z.string(), z.any()).optional(),\n metadata: workflowInstanceMetadataSchema.optional(),\n tenantId: z.uuid('tenantId must be a valid UUID'),\n organizationId: z.uuid('organizationId must be a valid UUID'),\n initiatedBy: z.string().optional(),\n})\n\nexport type WorkflowExecutionContextInput = z.infer<typeof workflowExecutionContextSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const startWorkflowInputSchema = z.object({\n workflowId: z.string().min(1),\n version: z.number().int().positive().optional(),\n correlationKey: z.string().optional(),\n initialContext: z.record(z.string(), z.any()).optional(),\n metadata: workflowInstanceMetadataSchema.optional(),\n})\n\nexport type StartWorkflowApiInput = z.infer<typeof startWorkflowInputSchema>\n\n// ============================================================================\n// WorkflowEventTrigger Schemas\n// ============================================================================\n\nexport const triggerFilterOperatorSchema = z.enum([\n 'eq',\n 'neq',\n 'gt',\n 'gte',\n 'lt',\n 'lte',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'in',\n 'notIn',\n 'exists',\n 'notExists',\n 'regex',\n])\nexport type TriggerFilterOperator = z.infer<typeof triggerFilterOperatorSchema>\n\nexport const triggerFilterConditionSchema = z.object({\n field: z.string().min(1).max(255, 'Field path must be at most 255 characters'),\n operator: triggerFilterOperatorSchema,\n value: z.any(),\n})\nexport type TriggerFilterCondition = z.infer<typeof triggerFilterConditionSchema>\n\nexport const triggerContextMappingSchema = z.object({\n targetKey: z.string().min(1).max(100, 'Target key must be at most 100 characters'),\n sourceExpression: z.string().min(1).max(255, 'Source expression must be at most 255 characters'),\n defaultValue: z.any().optional(),\n})\nexport type TriggerContextMapping = z.infer<typeof triggerContextMappingSchema>\n\nexport const eventTriggerConfigSchema = z.object({\n filterConditions: z.array(triggerFilterConditionSchema).max(20, 'Maximum 20 filter conditions allowed').optional(),\n contextMapping: z.array(triggerContextMappingSchema).max(50, 'Maximum 50 context mappings allowed').optional(),\n debounceMs: z.number().int().min(0).max(3600000, 'Debounce cannot exceed 1 hour').optional(),\n maxConcurrentInstances: z.number().int().min(1).max(1000, 'Max concurrent instances must be between 1 and 1000').optional(),\n})\nexport type EventTriggerConfig = z.infer<typeof eventTriggerConfigSchema>\n\nexport const eventPatternSchema = z.string()\n .min(1, 'Event pattern is required')\n .max(255, 'Event pattern must be at most 255 characters')\n .regex(\n /^(\\*|[a-z0-9_]+(\\.[a-z0-9_*]+)*)$/i,\n 'Event pattern must be \"*\" or a dot-separated pattern with optional wildcards (e.g., \"customers.people.created\", \"sales.orders.*\")'\n )\n\nexport const createEventTriggerSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid,\n eventPattern: eventPatternSchema,\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().default(true),\n priority: z.number().int().min(0).max(9999).default(0),\n tenantId: uuid,\n organizationId: uuid,\n createdBy: z.string().max(255).optional().nullable(),\n})\nexport type CreateEventTriggerInput = z.infer<typeof createEventTriggerSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const createEventTriggerInputSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid,\n eventPattern: eventPatternSchema,\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().default(true).optional(),\n priority: z.number().int().min(0).max(9999).default(0).optional(),\n})\nexport type CreateEventTriggerApiInput = z.infer<typeof createEventTriggerInputSchema>\n\nexport const updateEventTriggerSchema = createEventTriggerSchema.partial().extend({\n id: uuid,\n})\nexport type UpdateEventTriggerInput = z.infer<typeof updateEventTriggerSchema>\n\n// API update schema (omits tenant fields and allows partial updates)\nexport const updateEventTriggerInputSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid.optional(),\n eventPattern: eventPatternSchema.optional(),\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().optional(),\n priority: z.number().int().min(0).max(9999).optional(),\n}).strict()\nexport type UpdateEventTriggerApiInput = z.infer<typeof updateEventTriggerInputSchema>\n\nexport const eventTriggerFilterSchema = z.object({\n name: z.string().optional(),\n workflowDefinitionId: uuid.optional(),\n eventPattern: z.string().optional(),\n enabled: z.boolean().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\nexport type EventTriggerFilter = z.infer<typeof eventTriggerFilterSchema>\n"],
5
- "mappings": "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",
6
- "names": ["config"]
4
+ "sourcesContent": ["import { z } from 'zod'\nimport { parseDuration } from '../lib/duration'\n\n/**\n * Workflows Module - Zod Validators\n *\n * Comprehensive validation schemas for workflow engine entities.\n */\n\nconst uuid = z.uuid()\n\n// Variable interpolation tokens (e.g., {{context.timeout}}) are resolved at\n// run time, so we must skip strict syntax checks on them at save time.\nconst containsTemplate = (value: string) => value.includes('{{')\n\nexport function isValidDurationString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n try {\n const ms = parseDuration(value)\n return Number.isFinite(ms) && ms > 0\n } catch {\n return false\n }\n}\n\nexport function isValidIsoDateString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n const d = new Date(value)\n return !Number.isNaN(d.getTime())\n}\n\nexport function isFutureIsoDateString(value: unknown): boolean {\n if (typeof value !== 'string' || value.length === 0) return false\n if (containsTemplate(value)) return true\n const d = new Date(value)\n if (Number.isNaN(d.getTime())) return false\n return d.getTime() > Date.now()\n}\n\nconst DURATION_ERROR = 'Invalid duration. Use ISO 8601 (e.g., PT5M, PT1H, P1D) or simple format (5m, 1h, 3d)'\nconst UNTIL_ERROR = 'Invalid \"until\". Provide an ISO 8601 datetime string'\nconst UNTIL_PAST_ERROR = '\"until\" must be a future datetime'\n\n// ============================================================================\n// Enum Schemas - Workflow Types and Statuses\n// ============================================================================\n\nexport const workflowStepTypeSchema = z.enum([\n 'START',\n 'END',\n 'USER_TASK',\n 'AUTOMATED',\n 'PARALLEL_FORK',\n 'PARALLEL_JOIN',\n 'SUB_WORKFLOW',\n 'WAIT_FOR_SIGNAL',\n 'WAIT_FOR_TIMER',\n])\nexport type WorkflowStepType = z.infer<typeof workflowStepTypeSchema>\n\nexport const workflowInstanceStatusSchema = z.enum([\n 'RUNNING',\n 'PAUSED',\n 'COMPLETED',\n 'FAILED',\n 'CANCELLED',\n 'COMPENSATING',\n 'COMPENSATED',\n 'WAITING_FOR_ACTIVITIES',\n 'FORKED',\n])\nexport type WorkflowInstanceStatus = z.infer<typeof workflowInstanceStatusSchema>\n\nexport const workflowBranchInstanceStatusSchema = z.enum([\n 'ACTIVE',\n 'PAUSED',\n 'WAITING_FOR_ACTIVITIES',\n 'COMPLETED',\n 'FAILED',\n 'CANCELLED',\n])\nexport type WorkflowBranchInstanceStatus = z.infer<typeof workflowBranchInstanceStatusSchema>\n\nexport const stepInstanceStatusSchema = z.enum([\n 'PENDING',\n 'ACTIVE',\n 'COMPLETED',\n 'FAILED',\n 'SKIPPED',\n 'CANCELLED',\n])\nexport type StepInstanceStatus = z.infer<typeof stepInstanceStatusSchema>\n\nexport const userTaskStatusSchema = z.enum([\n 'PENDING',\n 'IN_PROGRESS',\n 'COMPLETED',\n 'CANCELLED',\n 'ESCALATED',\n])\nexport type UserTaskStatus = z.infer<typeof userTaskStatusSchema>\n\nexport const transitionTriggerSchema = z.enum(['auto', 'manual', 'signal', 'timer'])\nexport type TransitionTrigger = z.infer<typeof transitionTriggerSchema>\n\nexport const activityTypeSchema = z.enum([\n 'SEND_EMAIL',\n 'CALL_API',\n 'UPDATE_ENTITY',\n 'EMIT_EVENT',\n 'CALL_WEBHOOK',\n 'EXECUTE_FUNCTION',\n 'WAIT',\n])\nexport type ActivityType = z.infer<typeof activityTypeSchema>\n\nexport const escalationTriggerSchema = z.enum(['sla_breach', 'no_progress', 'custom'])\nexport type EscalationTrigger = z.infer<typeof escalationTriggerSchema>\n\nexport const escalationActionSchema = z.enum(['reassign', 'notify', 'escalate'])\nexport type EscalationAction = z.infer<typeof escalationActionSchema>\n\n// ============================================================================\n// Complex Object Schemas - Workflow Definition Components\n// ============================================================================\n\n// User task configuration\nexport const userTaskConfigSchema = z.object({\n // Support both custom fields array format and JSON Schema format\n formSchema: z.union([\n // Custom format with fields array\n z.object({\n fields: z.array(z.object({\n name: z.string().min(1),\n type: z.string().min(1),\n label: z.string().min(1),\n required: z.boolean().optional(),\n options: z.array(z.any()).optional(),\n }))\n }),\n // JSON Schema format with properties\n z.object({\n type: z.literal('object').optional(),\n properties: z.record(z.string(), z.any()),\n required: z.array(z.string()).optional(),\n }),\n ]).optional(),\n assignedTo: z.union([\n z.string(),\n z.array(z.string()),\n ]).optional(),\n assignmentRule: z.string().optional(), // Business rule ID\n slaDuration: z.string().optional(), // ISO 8601 duration\n escalationRules: z.array(z.object({\n trigger: escalationTriggerSchema,\n action: escalationActionSchema,\n escalateTo: z.string().optional(),\n notifyUsers: z.array(z.string()).optional(),\n })).optional(),\n})\n\n// Sub-workflow configuration (Phase 8)\nexport const subWorkflowConfigSchema = z.object({\n subWorkflowId: z.string().min(1, 'Sub-workflow ID is required'),\n version: z.number().int().positive().optional(),\n inputMapping: z.record(z.string(), z.string()).optional(),\n outputMapping: z.record(z.string(), z.string()).optional(),\n timeoutMs: z.number().int().positive().optional(),\n})\n\n// CALL_API activity configuration\nexport const callApiConfigSchema = z.object({\n endpoint: z.string().min(1, 'API endpoint is required'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS']).default('GET'),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.any().optional(),\n validateTenantMatch: z.boolean().default(true).optional(),\n timeout: z.number().int().positive().optional(),\n})\n\nexport const callWebhookConfigSchema = z.object({\n url: z.string().min(1, 'Webhook URL is required'),\n method: z.enum(['GET', 'POST', 'PUT', 'PATCH', 'DELETE']).default('POST'),\n headers: z.record(z.string(), z.string()).optional(),\n body: z.any().optional(),\n})\nexport type CallWebhookConfig = z.infer<typeof callWebhookConfigSchema>\n\n// Retry policy\nexport const retryPolicySchema = z.object({\n maxAttempts: z.number().int().min(1).max(10),\n backoffMs: z.number().int().min(0),\n})\n\n// Activity retry policy (more detailed)\nexport const activityRetryPolicySchema = z.object({\n maxAttempts: z.number().int().min(1).max(10),\n initialIntervalMs: z.number().int().min(0),\n backoffCoefficient: z.number().min(1).max(10),\n maxIntervalMs: z.number().int().min(0),\n})\n\n// Activity definition (embedded in transitions)\nexport const activityDefinitionSchema = z.object({\n activityId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Activity ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n activityName: z.string().min(1).max(255),\n activityType: activityTypeSchema,\n config: z.record(z.string(), z.any()),\n async: z.boolean().default(false).optional(), // For Phase 8.3\n retryPolicy: activityRetryPolicySchema.optional(),\n timeout: z.string().optional(), // ISO 8601 duration\n compensation: z.object({\n activityId: z.string().min(1), // ID of compensation activity\n automatic: z.boolean().default(true).optional() // Auto-trigger on failure\n }).optional(), // Compensation configuration (Phase 8.2)\n}).superRefine((activity, ctx) => {\n if (activity.activityType !== 'WAIT') return\n const config = activity.config || {}\n const hasDuration = config.duration != null && config.duration !== ''\n const hasUntil = config.until != null && config.until !== ''\n if (!hasDuration && !hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT activity requires \"duration\" or \"until\"',\n })\n return\n }\n if (hasDuration && hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT activity accepts \"duration\" OR \"until\", not both',\n })\n return\n }\n if (hasDuration && !isValidDurationString(config.duration)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'duration'],\n message: DURATION_ERROR,\n })\n }\n if (hasUntil) {\n if (!isValidIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_ERROR,\n })\n } else if (!isFutureIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_PAST_ERROR,\n })\n }\n }\n})\n\n// Localized validation message schema (for START step pre-conditions)\nexport const localizedMessageSchema = z.record(z.string(), z.string())\n\n// START step pre-condition schema (with optional localized validation messages)\nexport const startPreConditionSchema = z.object({\n ruleId: z.string().min(1).max(50), // Business rule ID\n required: z.boolean().default(true),\n validationMessage: localizedMessageSchema.optional(), // Optional localized error messages\n})\n\nexport type StartPreCondition = z.infer<typeof startPreConditionSchema>\n\n// Step definition\nexport const workflowStepSchema = z.object({\n stepId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Step ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n stepName: z.string().min(1).max(255),\n stepType: workflowStepTypeSchema,\n description: z.string().max(1000).optional(),\n config: z.record(z.string(), z.any()).optional(),\n userTaskConfig: userTaskConfigSchema.optional(),\n subWorkflowConfig: subWorkflowConfigSchema.optional(),\n signalConfig: z.object({\n signalName: z.string().min(1),\n timeout: z.string().optional(),\n }).optional(),\n activities: z.array(activityDefinitionSchema).optional(),\n timeout: z.string().optional(), // ISO 8601 duration\n retryPolicy: retryPolicySchema.optional(),\n // Pre-conditions for START step (business rules to validate before workflow can be started)\n preConditions: z.array(startPreConditionSchema).optional(),\n}).superRefine((step, ctx) => {\n if (step.stepType !== 'WAIT_FOR_TIMER') return\n const config = step.config || {}\n const hasDuration = config.duration != null && config.duration !== ''\n const hasUntil = config.until != null && config.until !== ''\n if (!hasDuration && !hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT_FOR_TIMER step requires \"duration\" or \"until\"',\n })\n return\n }\n if (hasDuration && hasUntil) {\n ctx.addIssue({\n code: 'custom',\n path: ['config'],\n message: 'WAIT_FOR_TIMER step accepts \"duration\" OR \"until\", not both',\n })\n return\n }\n if (hasDuration && !isValidDurationString(config.duration)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'duration'],\n message: DURATION_ERROR,\n })\n }\n if (hasUntil) {\n if (!isValidIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_ERROR,\n })\n } else if (!isFutureIsoDateString(config.until)) {\n ctx.addIssue({\n code: 'custom',\n path: ['config', 'until'],\n message: UNTIL_PAST_ERROR,\n })\n }\n }\n})\n\n// Transition condition (reference to business rule)\nexport const transitionConditionSchema = z.object({\n ruleId: z.string().min(1).max(50), // Business rule ID\n required: z.boolean().default(true),\n})\n\n// Transition definition\nexport const workflowTransitionSchema = z.object({\n transitionId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Transition ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n fromStepId: z.string().min(1).max(100),\n toStepId: z.string().min(1).max(100),\n transitionName: z.string().max(255).optional(),\n trigger: transitionTriggerSchema,\n preConditions: z.array(transitionConditionSchema).optional(),\n postConditions: z.array(transitionConditionSchema).optional(),\n activities: z.array(activityDefinitionSchema).optional(), // Activities to execute during transition\n continueOnActivityFailure: z.boolean().default(false).optional(), // If true, transition continues even when activities fail\n priority: z.number().int().min(0).max(9999).default(0),\n})\n\n// Workflow definition trigger schema (embedded in definition)\n// Note: Uses forward reference pattern since eventPatternSchema and eventTriggerConfigSchema are defined later\nexport const workflowDefinitionTriggerSchema = z.object({\n triggerId: z.string().min(1).max(100).regex(/^[a-z0-9_-]+$/, 'Trigger ID must contain only lowercase letters, numbers, hyphens, and underscores'),\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n eventPattern: z.string()\n .min(1, 'Event pattern is required')\n .max(255, 'Event pattern must be at most 255 characters')\n .regex(\n /^(\\*|[a-z0-9_]+(\\.[a-z0-9_*]+)*)$/i,\n 'Event pattern must be \"*\" or a dot-separated pattern with optional wildcards (e.g., \"customers.people.created\", \"sales.orders.*\")'\n ),\n config: z.object({\n filterConditions: z.array(z.object({\n field: z.string().min(1).max(255),\n operator: z.enum(['eq', 'neq', 'gt', 'gte', 'lt', 'lte', 'contains', 'startsWith', 'endsWith', 'in', 'notIn', 'exists', 'notExists', 'regex']),\n value: z.any(),\n })).max(20).optional(),\n contextMapping: z.array(z.object({\n targetKey: z.string().min(1).max(100),\n sourceExpression: z.string().min(1).max(255),\n defaultValue: z.any().optional(),\n })).max(50).optional(),\n debounceMs: z.number().int().min(0).max(3600000).optional(),\n maxConcurrentInstances: z.number().int().min(1).max(1000).optional(),\n }).optional().nullable(),\n enabled: z.boolean().default(true),\n priority: z.number().int().min(0).max(9999).default(0),\n})\nexport type WorkflowDefinitionTrigger = z.infer<typeof workflowDefinitionTriggerSchema>\n\n// ============================================================================\n// PARALLEL_FORK / PARALLEL_JOIN definition validation\n// ============================================================================\n\n// Error codes surfaced by FORK/JOIN definition validation. Stable identifiers\n// so the visual editor and tests can match on them.\nexport type ForkJoinValidationCode =\n | 'MISSING_JOIN_STEP_ID'\n | 'JOIN_STEP_NOT_FOUND'\n | 'JOIN_STEP_WRONG_TYPE'\n | 'MISSING_FORK_STEP_ID'\n | 'FORK_JOIN_MISMATCH'\n | 'FORK_TOO_FEW_BRANCHES'\n | 'JOIN_TOO_FEW_INCOMING'\n | 'DUPLICATE_BRANCH_KEY'\n | 'NESTED_FORK_NOT_SUPPORTED'\n | 'NO_CONVERGENCE_TO_JOIN'\n | 'FORK_JOIN_CYCLE'\n | 'UNPAIRED_JOIN'\n\nexport interface ForkJoinValidationIssue {\n code: ForkJoinValidationCode\n message: string\n stepId?: string\n}\n\ninterface ForkJoinStepLike {\n stepId: string\n stepType: string\n config?: Record<string, unknown> | null\n}\n\ninterface ForkJoinTransitionLike {\n transitionId: string\n fromStepId: string\n toStepId: string\n trigger: string\n}\n\ninterface ForkJoinDefinitionLike {\n steps: ForkJoinStepLike[]\n transitions: ForkJoinTransitionLike[]\n}\n\n/**\n * Validates PARALLEL_FORK / PARALLEL_JOIN structure of a workflow definition.\n * Pure and side-effect-free so it can be unit tested and reused by the editor.\n *\n * Rules (this iteration \u2014 wait-all, no nesting):\n * 1. Every FORK declares config.joinStepId pointing at an existing PARALLEL_JOIN.\n * 2. The paired JOIN back-references the fork via config.forkStepId.\n * 3. A FORK has >= 2 outgoing `auto` transitions (branch keys unique); a JOIN has >= 2 incoming.\n * 4. Every path from a FORK converges to its JOIN \u2014 no END inside a branch, no dead ends,\n * no path bypassing the JOIN, no path to a different JOIN.\n * 5. No nesting: no FORK appears on a path between a FORK and its JOIN.\n * 6. No cycles back to the FORK within its branch region.\n * 7. Every PARALLEL_JOIN is paired with exactly one FORK.\n */\nexport function validateParallelForkJoin(definition: ForkJoinDefinitionLike): ForkJoinValidationIssue[] {\n const issues: ForkJoinValidationIssue[] = []\n const steps = definition.steps ?? []\n const transitions = definition.transitions ?? []\n\n const stepById = new Map<string, ForkJoinStepLike>()\n for (const step of steps) stepById.set(step.stepId, step)\n\n const outgoingByStep = new Map<string, ForkJoinTransitionLike[]>()\n const incomingCountByStep = new Map<string, number>()\n for (const transition of transitions) {\n const list = outgoingByStep.get(transition.fromStepId) ?? []\n list.push(transition)\n outgoingByStep.set(transition.fromStepId, list)\n incomingCountByStep.set(transition.toStepId, (incomingCountByStep.get(transition.toStepId) ?? 0) + 1)\n }\n\n const forkSteps = steps.filter((step) => step.stepType === 'PARALLEL_FORK')\n const joinSteps = steps.filter((step) => step.stepType === 'PARALLEL_JOIN')\n\n // Track which JOIN steps are paired with a FORK so we can flag orphan joins.\n const pairedJoinIds = new Set<string>()\n\n for (const fork of forkSteps) {\n const joinStepId = (fork.config?.joinStepId as string | undefined) ?? undefined\n if (!joinStepId) {\n issues.push({ code: 'MISSING_JOIN_STEP_ID', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" must declare config.joinStepId` })\n continue\n }\n const joinStep = stepById.get(joinStepId)\n if (!joinStep) {\n issues.push({ code: 'JOIN_STEP_NOT_FOUND', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" references missing join step \"${joinStepId}\"` })\n continue\n }\n if (joinStep.stepType !== 'PARALLEL_JOIN') {\n issues.push({ code: 'JOIN_STEP_WRONG_TYPE', stepId: fork.stepId, message: `Step \"${joinStepId}\" referenced by fork \"${fork.stepId}\" is not a PARALLEL_JOIN` })\n continue\n }\n\n pairedJoinIds.add(joinStepId)\n\n const backForkStepId = (joinStep.config?.forkStepId as string | undefined) ?? undefined\n if (!backForkStepId) {\n issues.push({ code: 'MISSING_FORK_STEP_ID', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" must declare config.forkStepId` })\n } else if (backForkStepId !== fork.stepId) {\n issues.push({ code: 'FORK_JOIN_MISMATCH', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" back-reference forkStepId \"${backForkStepId}\" does not match fork \"${fork.stepId}\"` })\n }\n\n const autoBranches = (outgoingByStep.get(fork.stepId) ?? []).filter((transition) => transition.trigger === 'auto')\n if (autoBranches.length < 2) {\n issues.push({ code: 'FORK_TOO_FEW_BRANCHES', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" must have at least 2 outgoing auto transitions (found ${autoBranches.length})` })\n }\n const branchKeys = new Set<string>()\n for (const branch of autoBranches) {\n if (branchKeys.has(branch.transitionId)) {\n issues.push({ code: 'DUPLICATE_BRANCH_KEY', stepId: fork.stepId, message: `PARALLEL_FORK \"${fork.stepId}\" has duplicate branch key \"${branch.transitionId}\"` })\n }\n branchKeys.add(branch.transitionId)\n }\n\n if ((incomingCountByStep.get(joinStepId) ?? 0) < 2) {\n issues.push({ code: 'JOIN_TOO_FEW_INCOMING', stepId: joinStepId, message: `PARALLEL_JOIN \"${joinStepId}\" must have at least 2 incoming transitions` })\n }\n\n // Convergence + no-nesting + no-cycle traversal over the branch region.\n const fullyExplored = new Set<string>()\n const onStack = new Set<string>()\n let reportedNesting = false\n let reportedNoConvergence = false\n let reportedCycle = false\n\n const visit = (stepId: string): void => {\n if (stepId === joinStepId) return // converged\n if (stepId === fork.stepId) {\n if (!reportedCycle) {\n issues.push({ code: 'FORK_JOIN_CYCLE', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" loops back to the fork before reaching join \"${joinStepId}\"` })\n reportedCycle = true\n }\n return\n }\n const step = stepById.get(stepId)\n if (!step) {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches missing step \"${stepId}\" instead of join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (step.stepType === 'END') {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches an END step before join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (step.stepType === 'PARALLEL_FORK') {\n if (!reportedNesting) {\n issues.push({ code: 'NESTED_FORK_NOT_SUPPORTED', stepId: fork.stepId, message: `Nested PARALLEL_FORK \"${stepId}\" inside fork \"${fork.stepId}\" is not supported` })\n reportedNesting = true\n }\n return\n }\n if (step.stepType === 'PARALLEL_JOIN') {\n // Reached a join that is not this fork's join \u2192 it does not converge correctly.\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" reaches join \"${stepId}\" instead of its own join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n if (onStack.has(stepId)) {\n if (!reportedCycle) {\n issues.push({ code: 'FORK_JOIN_CYCLE', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" contains a cycle at step \"${stepId}\"` })\n reportedCycle = true\n }\n return\n }\n if (fullyExplored.has(stepId)) return\n\n const outgoing = outgoingByStep.get(stepId) ?? []\n if (outgoing.length === 0) {\n if (!reportedNoConvergence) {\n issues.push({ code: 'NO_CONVERGENCE_TO_JOIN', stepId: fork.stepId, message: `A branch of fork \"${fork.stepId}\" dead-ends at step \"${stepId}\" without reaching join \"${joinStepId}\"` })\n reportedNoConvergence = true\n }\n return\n }\n onStack.add(stepId)\n for (const transition of outgoing) visit(transition.toStepId)\n onStack.delete(stepId)\n fullyExplored.add(stepId)\n }\n\n for (const branch of autoBranches) visit(branch.toStepId)\n }\n\n // Any PARALLEL_JOIN not paired with a fork is an orphan.\n for (const join of joinSteps) {\n if (!pairedJoinIds.has(join.stepId)) {\n issues.push({ code: 'UNPAIRED_JOIN', stepId: join.stepId, message: `PARALLEL_JOIN \"${join.stepId}\" is not paired with any PARALLEL_FORK` })\n }\n }\n\n return issues\n}\n\n// Workflow definition data (JSONB structure)\nexport const workflowDefinitionDataSchema = z.object({\n steps: z.array(workflowStepSchema).min(2, 'Workflow must have at least START and END steps'),\n transitions: z.array(workflowTransitionSchema).min(1, 'Workflow must have at least one transition'),\n triggers: z.array(workflowDefinitionTriggerSchema).optional(), // Event triggers for automatic workflow start\n queries: z.array(z.any()).optional(), // For Phase 7\n signals: z.array(z.any()).optional(), // For Phase 9\n timers: z.array(z.any()).optional(), // For Phase 9\n}).superRefine((definition, ctx) => {\n for (const issue of validateParallelForkJoin(definition as ForkJoinDefinitionLike)) {\n ctx.addIssue({\n code: 'custom',\n path: ['steps'],\n message: `[${issue.code}] ${issue.message}`,\n })\n }\n})\n\n// Workflow metadata\nexport const workflowMetadataSchema = z.object({\n tags: z.array(z.string().max(50)).optional(),\n category: z.string().max(100).optional(),\n icon: z.string().max(100).optional(),\n})\n\n// Date preprocessing helper\nconst dateOrNull = z.preprocess((value) => {\n if (value === undefined || value === null || value === '') return null\n const date = value instanceof Date ? value : new Date(String(value))\n return Number.isNaN(date.getTime()) ? null : date\n}, z.date().nullable())\n\n// ============================================================================\n// WorkflowDefinition Schemas\n// ============================================================================\n\n// Full schema for database entities (includes tenant fields)\nexport const createWorkflowDefinitionSchema = z.object({\n workflowId: z.string().min(1).max(100).regex(/^[a-z0-9._-]+$/, 'Workflow ID must contain only lowercase letters, numbers, dots, hyphens, and underscores'),\n workflowName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().default(1),\n definition: workflowDefinitionDataSchema,\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().default(true),\n effectiveFrom: dateOrNull.optional(),\n effectiveTo: dateOrNull.optional(),\n tenantId: uuid,\n organizationId: uuid,\n createdBy: z.string().max(255).optional().nullable(),\n})\n\nexport type CreateWorkflowDefinitionInput = z.infer<typeof createWorkflowDefinitionSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const createWorkflowDefinitionInputSchema = z.object({\n workflowId: z.string().min(1).max(100).regex(/^[a-z0-9._-]+$/, 'Workflow ID must contain only lowercase letters, numbers, dots, hyphens, and underscores'),\n workflowName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().default(1),\n definition: workflowDefinitionDataSchema,\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().default(true).optional(),\n})\n\nexport type CreateWorkflowDefinitionApiInput = z.infer<typeof createWorkflowDefinitionInputSchema>\n\nexport const updateWorkflowDefinitionSchema = createWorkflowDefinitionSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateWorkflowDefinitionInput = z.infer<typeof updateWorkflowDefinitionSchema>\n\n// API update schema (omits tenant fields and allows partial updates)\n// Accepts the same shape as the create form so the edit page can submit a\n// full payload without triggering \"Unrecognized keys\" validation errors.\n// workflowId is accepted but ignored by the route handler (it identifies the\n// row); version is applied when supplied so the form can bump it explicitly.\nexport const updateWorkflowDefinitionInputSchema = z.object({\n workflowId: z.string().min(1).max(100).optional(),\n workflowName: z.string().min(1).max(255).optional(),\n description: z.string().max(2000).optional().nullable(),\n version: z.number().int().positive().optional(),\n definition: workflowDefinitionDataSchema.optional(),\n metadata: workflowMetadataSchema.optional().nullable(),\n enabled: z.boolean().optional(),\n effectiveFrom: dateOrNull.optional(),\n effectiveTo: dateOrNull.optional(),\n}).strict()\n\nexport type UpdateWorkflowDefinitionApiInput = z.infer<typeof updateWorkflowDefinitionInputSchema>\n\nexport const workflowDefinitionFilterSchema = z.object({\n workflowId: z.string().optional(),\n workflowName: z.string().optional(),\n enabled: z.boolean().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type WorkflowDefinitionFilter = z.infer<typeof workflowDefinitionFilterSchema>\n\n// ============================================================================\n// WorkflowInstance Schemas\n// ============================================================================\n\nexport const workflowInstanceMetadataSchema = z.object({\n entityType: z.string().max(100).optional(),\n entityId: z.string().max(255).optional(),\n initiatedBy: z.string().max(255).optional(),\n labels: z.record(z.string(), z.string()).optional(),\n})\n\nexport const createWorkflowInstanceSchema = z.object({\n definitionId: uuid,\n workflowId: z.string().min(1).max(100),\n version: z.number().int().positive(),\n status: workflowInstanceStatusSchema,\n currentStepId: z.string().min(1).max(100),\n context: z.record(z.string(), z.any()),\n correlationKey: z.string().max(255).optional().nullable(),\n metadata: workflowInstanceMetadataSchema.optional().nullable(),\n startedAt: z.coerce.date(),\n completedAt: dateOrNull.optional(),\n pausedAt: dateOrNull.optional(),\n cancelledAt: dateOrNull.optional(),\n errorMessage: z.string().max(5000).optional().nullable(),\n errorDetails: z.any().optional().nullable(),\n retryCount: z.number().int().min(0).default(0),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateWorkflowInstanceInput = z.infer<typeof createWorkflowInstanceSchema>\n\nexport const updateWorkflowInstanceSchema = createWorkflowInstanceSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateWorkflowInstanceInput = z.infer<typeof updateWorkflowInstanceSchema>\n\nexport const workflowInstanceFilterSchema = z.object({\n definitionId: uuid.optional(),\n workflowId: z.string().optional(),\n status: workflowInstanceStatusSchema.optional(),\n correlationKey: z.string().optional(),\n currentStepId: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type WorkflowInstanceFilter = z.infer<typeof workflowInstanceFilterSchema>\n\n// ============================================================================\n// StepInstance Schemas\n// ============================================================================\n\nexport const createStepInstanceSchema = z.object({\n workflowInstanceId: uuid,\n stepId: z.string().min(1).max(100),\n stepName: z.string().min(1).max(255),\n stepType: z.string().min(1).max(50),\n status: stepInstanceStatusSchema,\n inputData: z.any().optional().nullable(),\n outputData: z.any().optional().nullable(),\n errorData: z.any().optional().nullable(),\n enteredAt: dateOrNull.optional(),\n exitedAt: dateOrNull.optional(),\n executionTimeMs: z.number().int().min(0).optional().nullable(),\n retryCount: z.number().int().min(0).default(0),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateStepInstanceInput = z.infer<typeof createStepInstanceSchema>\n\nexport const updateStepInstanceSchema = createStepInstanceSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateStepInstanceInput = z.infer<typeof updateStepInstanceSchema>\n\nexport const stepInstanceFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n stepId: z.string().optional(),\n status: stepInstanceStatusSchema.optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type StepInstanceFilter = z.infer<typeof stepInstanceFilterSchema>\n\n// ============================================================================\n// UserTask Schemas\n// ============================================================================\n\nexport const createUserTaskSchema = z.object({\n workflowInstanceId: uuid,\n stepInstanceId: uuid,\n taskName: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n status: userTaskStatusSchema,\n formSchema: z.any().optional().nullable(),\n formData: z.any().optional().nullable(),\n assignedTo: z.string().max(255).optional().nullable(),\n assignedToRoles: z.array(z.string().max(100)).optional().nullable(),\n claimedBy: z.string().max(255).optional().nullable(),\n claimedAt: dateOrNull.optional(),\n dueDate: dateOrNull.optional(),\n escalatedAt: dateOrNull.optional(),\n escalatedTo: z.string().max(255).optional().nullable(),\n completedBy: z.string().max(255).optional().nullable(),\n completedAt: dateOrNull.optional(),\n comments: z.string().max(5000).optional().nullable(),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateUserTaskInput = z.infer<typeof createUserTaskSchema>\n\nexport const updateUserTaskSchema = createUserTaskSchema.partial().extend({\n id: uuid,\n})\n\nexport type UpdateUserTaskInput = z.infer<typeof updateUserTaskSchema>\n\nexport const userTaskFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n status: userTaskStatusSchema.optional(),\n assignedTo: z.string().optional(),\n claimedBy: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\n\nexport type UserTaskFilter = z.infer<typeof userTaskFilterSchema>\n\n// ============================================================================\n// WorkflowEvent Schemas\n// ============================================================================\n\nexport const createWorkflowEventSchema = z.object({\n workflowInstanceId: uuid,\n stepInstanceId: uuid.optional().nullable(),\n eventType: z.string().min(1).max(50),\n eventData: z.any(),\n occurredAt: z.coerce.date().optional(),\n userId: z.string().max(255).optional().nullable(),\n tenantId: uuid,\n organizationId: uuid,\n})\n\nexport type CreateWorkflowEventInput = z.infer<typeof createWorkflowEventSchema>\n\nexport const workflowEventFilterSchema = z.object({\n workflowInstanceId: uuid.optional(),\n stepInstanceId: uuid.optional(),\n eventType: z.string().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n occurredAtFrom: z.date().optional(),\n occurredAtTo: z.date().optional(),\n})\n\nexport type WorkflowEventFilter = z.infer<typeof workflowEventFilterSchema>\n\n// ============================================================================\n// Workflow Execution Context Schema\n// ============================================================================\n\nexport const workflowExecutionContextSchema = z.looseObject({\n workflowId: z.string().min(1),\n version: z.number().int().positive().optional(),\n correlationKey: z.string().optional(),\n context: z.record(z.string(), z.any()).optional(),\n metadata: workflowInstanceMetadataSchema.optional(),\n tenantId: z.uuid('tenantId must be a valid UUID'),\n organizationId: z.uuid('organizationId must be a valid UUID'),\n initiatedBy: z.string().optional(),\n})\n\nexport type WorkflowExecutionContextInput = z.infer<typeof workflowExecutionContextSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const startWorkflowInputSchema = z.object({\n workflowId: z.string().min(1),\n version: z.number().int().positive().optional(),\n correlationKey: z.string().optional(),\n initialContext: z.record(z.string(), z.any()).optional(),\n metadata: workflowInstanceMetadataSchema.optional(),\n})\n\nexport type StartWorkflowApiInput = z.infer<typeof startWorkflowInputSchema>\n\n// ============================================================================\n// WorkflowEventTrigger Schemas\n// ============================================================================\n\nexport const triggerFilterOperatorSchema = z.enum([\n 'eq',\n 'neq',\n 'gt',\n 'gte',\n 'lt',\n 'lte',\n 'contains',\n 'startsWith',\n 'endsWith',\n 'in',\n 'notIn',\n 'exists',\n 'notExists',\n 'regex',\n])\nexport type TriggerFilterOperator = z.infer<typeof triggerFilterOperatorSchema>\n\nexport const triggerFilterConditionSchema = z.object({\n field: z.string().min(1).max(255, 'Field path must be at most 255 characters'),\n operator: triggerFilterOperatorSchema,\n value: z.any(),\n})\nexport type TriggerFilterCondition = z.infer<typeof triggerFilterConditionSchema>\n\nexport const triggerContextMappingSchema = z.object({\n targetKey: z.string().min(1).max(100, 'Target key must be at most 100 characters'),\n sourceExpression: z.string().min(1).max(255, 'Source expression must be at most 255 characters'),\n defaultValue: z.any().optional(),\n})\nexport type TriggerContextMapping = z.infer<typeof triggerContextMappingSchema>\n\nexport const eventTriggerConfigSchema = z.object({\n filterConditions: z.array(triggerFilterConditionSchema).max(20, 'Maximum 20 filter conditions allowed').optional(),\n contextMapping: z.array(triggerContextMappingSchema).max(50, 'Maximum 50 context mappings allowed').optional(),\n debounceMs: z.number().int().min(0).max(3600000, 'Debounce cannot exceed 1 hour').optional(),\n maxConcurrentInstances: z.number().int().min(1).max(1000, 'Max concurrent instances must be between 1 and 1000').optional(),\n})\nexport type EventTriggerConfig = z.infer<typeof eventTriggerConfigSchema>\n\nexport const eventPatternSchema = z.string()\n .min(1, 'Event pattern is required')\n .max(255, 'Event pattern must be at most 255 characters')\n .regex(\n /^(\\*|[a-z0-9_]+(\\.[a-z0-9_*]+)*)$/i,\n 'Event pattern must be \"*\" or a dot-separated pattern with optional wildcards (e.g., \"customers.people.created\", \"sales.orders.*\")'\n )\n\nexport const createEventTriggerSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid,\n eventPattern: eventPatternSchema,\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().default(true),\n priority: z.number().int().min(0).max(9999).default(0),\n tenantId: uuid,\n organizationId: uuid,\n createdBy: z.string().max(255).optional().nullable(),\n})\nexport type CreateEventTriggerInput = z.infer<typeof createEventTriggerSchema>\n\n// API input schema (omits tenant fields - injected from auth context)\nexport const createEventTriggerInputSchema = z.object({\n name: z.string().min(1).max(255),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid,\n eventPattern: eventPatternSchema,\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().default(true).optional(),\n priority: z.number().int().min(0).max(9999).default(0).optional(),\n})\nexport type CreateEventTriggerApiInput = z.infer<typeof createEventTriggerInputSchema>\n\nexport const updateEventTriggerSchema = createEventTriggerSchema.partial().extend({\n id: uuid,\n})\nexport type UpdateEventTriggerInput = z.infer<typeof updateEventTriggerSchema>\n\n// API update schema (omits tenant fields and allows partial updates)\nexport const updateEventTriggerInputSchema = z.object({\n name: z.string().min(1).max(255).optional(),\n description: z.string().max(2000).optional().nullable(),\n workflowDefinitionId: uuid.optional(),\n eventPattern: eventPatternSchema.optional(),\n config: eventTriggerConfigSchema.optional().nullable(),\n enabled: z.boolean().optional(),\n priority: z.number().int().min(0).max(9999).optional(),\n}).strict()\nexport type UpdateEventTriggerApiInput = z.infer<typeof updateEventTriggerInputSchema>\n\nexport const eventTriggerFilterSchema = z.object({\n name: z.string().optional(),\n workflowDefinitionId: uuid.optional(),\n eventPattern: z.string().optional(),\n enabled: z.boolean().optional(),\n tenantId: uuid.optional(),\n organizationId: uuid.optional(),\n})\nexport type EventTriggerFilter = z.infer<typeof eventTriggerFilterSchema>\n"],
5
+ "mappings": "AAAA,SAAS,SAAS;AAClB,SAAS,qBAAqB;AAQ9B,MAAM,OAAO,EAAE,KAAK;AAIpB,MAAM,mBAAmB,CAAC,UAAkB,MAAM,SAAS,IAAI;AAExD,SAAS,sBAAsB,OAAyB;AAC7D,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,EAAG,QAAO;AAC5D,MAAI,iBAAiB,KAAK,EAAG,QAAO;AACpC,MAAI;AACF,UAAM,KAAK,cAAc,KAAK;AAC9B,WAAO,OAAO,SAAS,EAAE,KAAK,KAAK;AAAA,EACrC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,qBAAqB,OAAyB;AAC5D,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,EAAG,QAAO;AAC5D,MAAI,iBAAiB,KAAK,EAAG,QAAO;AACpC,QAAM,IAAI,IAAI,KAAK,KAAK;AACxB,SAAO,CAAC,OAAO,MAAM,EAAE,QAAQ,CAAC;AAClC;AAEO,SAAS,sBAAsB,OAAyB;AAC7D,MAAI,OAAO,UAAU,YAAY,MAAM,WAAW,EAAG,QAAO;AAC5D,MAAI,iBAAiB,KAAK,EAAG,QAAO;AACpC,QAAM,IAAI,IAAI,KAAK,KAAK;AACxB,MAAI,OAAO,MAAM,EAAE,QAAQ,CAAC,EAAG,QAAO;AACtC,SAAO,EAAE,QAAQ,IAAI,KAAK,IAAI;AAChC;AAEA,MAAM,iBAAiB;AACvB,MAAM,cAAc;AACpB,MAAM,mBAAmB;AAMlB,MAAM,yBAAyB,EAAE,KAAK;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,+BAA+B,EAAE,KAAK;AAAA,EACjD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,qCAAqC,EAAE,KAAK;AAAA,EACvD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,2BAA2B,EAAE,KAAK;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,uBAAuB,EAAE,KAAK;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,0BAA0B,EAAE,KAAK,CAAC,QAAQ,UAAU,UAAU,OAAO,CAAC;AAG5E,MAAM,qBAAqB,EAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,0BAA0B,EAAE,KAAK,CAAC,cAAc,eAAe,QAAQ,CAAC;AAG9E,MAAM,yBAAyB,EAAE,KAAK,CAAC,YAAY,UAAU,UAAU,CAAC;AAQxE,MAAM,uBAAuB,EAAE,OAAO;AAAA;AAAA,EAE3C,YAAY,EAAE,MAAM;AAAA;AAAA,IAElB,EAAE,OAAO;AAAA,MACP,QAAQ,EAAE,MAAM,EAAE,OAAO;AAAA,QACvB,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,QACtB,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,QACtB,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,QACvB,UAAU,EAAE,QAAQ,EAAE,SAAS;AAAA,QAC/B,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,MACrC,CAAC,CAAC;AAAA,IACJ,CAAC;AAAA;AAAA,IAED,EAAE,OAAO;AAAA,MACP,MAAM,EAAE,QAAQ,QAAQ,EAAE,SAAS;AAAA,MACnC,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC;AAAA,MACxC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,IACzC,CAAC;AAAA,EACH,CAAC,EAAE,SAAS;AAAA,EACZ,YAAY,EAAE,MAAM;AAAA,IAClB,EAAE,OAAO;AAAA,IACT,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA,EACpB,CAAC,EAAE,SAAS;AAAA,EACZ,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACpC,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EACjC,iBAAiB,EAAE,MAAM,EAAE,OAAO;AAAA,IAChC,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,IAChC,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EAC5C,CAAC,CAAC,EAAE,SAAS;AACf,CAAC;AAGM,MAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,eAAe,EAAE,OAAO,EAAE,IAAI,GAAG,6BAA6B;AAAA,EAC9D,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,cAAc,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACxD,eAAe,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACzD,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAClD,CAAC;AAGM,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,0BAA0B;AAAA,EACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,QAAQ,SAAS,CAAC,EAAE,QAAQ,KAAK;AAAA,EAC1F,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnD,MAAM,EAAE,IAAI,EAAE,SAAS;AAAA,EACvB,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EACxD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAChD,CAAC;AAEM,MAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,KAAK,EAAE,OAAO,EAAE,IAAI,GAAG,yBAAyB;AAAA,EAChD,QAAQ,EAAE,KAAK,CAAC,OAAO,QAAQ,OAAO,SAAS,QAAQ,CAAC,EAAE,QAAQ,MAAM;AAAA,EACxE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,EACnD,MAAM,EAAE,IAAI,EAAE,SAAS;AACzB,CAAC;AAIM,MAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC3C,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACnC,CAAC;AAGM,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC3C,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AAAA,EACzC,oBAAoB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAC5C,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,CAAC;AAGM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,iBAAiB,oFAAoF;AAAA,EAClJ,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,cAAc;AAAA,EACd,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC;AAAA,EACpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS;AAAA;AAAA,EAC3C,aAAa,0BAA0B,SAAS;AAAA,EAChD,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC7B,cAAc,EAAE,OAAO;AAAA,IACrB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA;AAAA,IAC5B,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA;AAAA,EAChD,CAAC,EAAE,SAAS;AAAA;AACd,CAAC,EAAE,YAAY,CAAC,UAAU,QAAQ;AAChC,MAAI,SAAS,iBAAiB,OAAQ;AACtC,QAAM,SAAS,SAAS,UAAU,CAAC;AACnC,QAAM,cAAc,OAAO,YAAY,QAAQ,OAAO,aAAa;AACnE,QAAM,WAAW,OAAO,SAAS,QAAQ,OAAO,UAAU;AAC1D,MAAI,CAAC,eAAe,CAAC,UAAU;AAC7B,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AACD;AAAA,EACF;AACA,MAAI,eAAe,UAAU;AAC3B,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AACD;AAAA,EACF;AACA,MAAI,eAAe,CAAC,sBAAsB,OAAO,QAAQ,GAAG;AAC1D,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,UAAU;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,UAAU;AACZ,QAAI,CAAC,qBAAqB,OAAO,KAAK,GAAG;AACvC,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO;AAAA,QACxB,SAAS;AAAA,MACX,CAAC;AAAA,IACH,WAAW,CAAC,sBAAsB,OAAO,KAAK,GAAG;AAC/C,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO;AAAA,QACxB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAGM,MAAM,yBAAyB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC;AAG9D,MAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA;AAAA,EAChC,UAAU,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EAClC,mBAAmB,uBAAuB,SAAS;AAAA;AACrD,CAAC;AAKM,MAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,iBAAiB,gFAAgF;AAAA,EAC1I,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,UAAU;AAAA,EACV,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,EAC3C,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAC/C,gBAAgB,qBAAqB,SAAS;AAAA,EAC9C,mBAAmB,wBAAwB,SAAS;AAAA,EACpD,cAAc,EAAE,OAAO;AAAA,IACrB,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,IAC5B,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,CAAC,EAAE,SAAS;AAAA,EACZ,YAAY,EAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA,EACvD,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAC7B,aAAa,kBAAkB,SAAS;AAAA;AAAA,EAExC,eAAe,EAAE,MAAM,uBAAuB,EAAE,SAAS;AAC3D,CAAC,EAAE,YAAY,CAAC,MAAM,QAAQ;AAC5B,MAAI,KAAK,aAAa,iBAAkB;AACxC,QAAM,SAAS,KAAK,UAAU,CAAC;AAC/B,QAAM,cAAc,OAAO,YAAY,QAAQ,OAAO,aAAa;AACnE,QAAM,WAAW,OAAO,SAAS,QAAQ,OAAO,UAAU;AAC1D,MAAI,CAAC,eAAe,CAAC,UAAU;AAC7B,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AACD;AAAA,EACF;AACA,MAAI,eAAe,UAAU;AAC3B,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,QAAQ;AAAA,MACf,SAAS;AAAA,IACX,CAAC;AACD;AAAA,EACF;AACA,MAAI,eAAe,CAAC,sBAAsB,OAAO,QAAQ,GAAG;AAC1D,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,UAAU,UAAU;AAAA,MAC3B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACA,MAAI,UAAU;AACZ,QAAI,CAAC,qBAAqB,OAAO,KAAK,GAAG;AACvC,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO;AAAA,QACxB,SAAS;AAAA,MACX,CAAC;AAAA,IACH,WAAW,CAAC,sBAAsB,OAAO,KAAK,GAAG;AAC/C,UAAI,SAAS;AAAA,QACX,MAAM;AAAA,QACN,MAAM,CAAC,UAAU,OAAO;AAAA,QACxB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AACF,CAAC;AAGM,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA;AAAA,EAChC,UAAU,EAAE,QAAQ,EAAE,QAAQ,IAAI;AACpC,CAAC;AAGM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,iBAAiB,sFAAsF;AAAA,EACtJ,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACrC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,gBAAgB,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC7C,SAAS;AAAA,EACT,eAAe,EAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA,EAC3D,gBAAgB,EAAE,MAAM,yBAAyB,EAAE,SAAS;AAAA,EAC5D,YAAY,EAAE,MAAM,wBAAwB,EAAE,SAAS;AAAA;AAAA,EACvD,2BAA2B,EAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS;AAAA;AAAA,EAC/D,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC;AACvD,CAAC;AAIM,MAAM,kCAAkC,EAAE,OAAO;AAAA,EACtD,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,iBAAiB,mFAAmF;AAAA,EAChJ,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,cAAc,EAAE,OAAO,EACpB,IAAI,GAAG,2BAA2B,EAClC,IAAI,KAAK,8CAA8C,EACvD;AAAA,IACC;AAAA,IACA;AAAA,EACF;AAAA,EACF,QAAQ,EAAE,OAAO;AAAA,IACf,kBAAkB,EAAE,MAAM,EAAE,OAAO;AAAA,MACjC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MAChC,UAAU,EAAE,KAAK,CAAC,MAAM,OAAO,MAAM,OAAO,MAAM,OAAO,YAAY,cAAc,YAAY,MAAM,SAAS,UAAU,aAAa,OAAO,CAAC;AAAA,MAC7I,OAAO,EAAE,IAAI;AAAA,IACf,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACrB,gBAAgB,EAAE,MAAM,EAAE,OAAO;AAAA,MAC/B,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MACpC,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,MAC3C,cAAc,EAAE,IAAI,EAAE,SAAS;AAAA,IACjC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,IACrB,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAO,EAAE,SAAS;AAAA,IAC1D,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,GAAI,EAAE,SAAS;AAAA,EACrE,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EACvB,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC;AACvD,CAAC;AA6DM,SAAS,yBAAyB,YAA+D;AACtG,QAAM,SAAoC,CAAC;AAC3C,QAAM,QAAQ,WAAW,SAAS,CAAC;AACnC,QAAM,cAAc,WAAW,eAAe,CAAC;AAE/C,QAAM,WAAW,oBAAI,IAA8B;AACnD,aAAW,QAAQ,MAAO,UAAS,IAAI,KAAK,QAAQ,IAAI;AAExD,QAAM,iBAAiB,oBAAI,IAAsC;AACjE,QAAM,sBAAsB,oBAAI,IAAoB;AACpD,aAAW,cAAc,aAAa;AACpC,UAAM,OAAO,eAAe,IAAI,WAAW,UAAU,KAAK,CAAC;AAC3D,SAAK,KAAK,UAAU;AACpB,mBAAe,IAAI,WAAW,YAAY,IAAI;AAC9C,wBAAoB,IAAI,WAAW,WAAW,oBAAoB,IAAI,WAAW,QAAQ,KAAK,KAAK,CAAC;AAAA,EACtG;AAEA,QAAM,YAAY,MAAM,OAAO,CAAC,SAAS,KAAK,aAAa,eAAe;AAC1E,QAAM,YAAY,MAAM,OAAO,CAAC,SAAS,KAAK,aAAa,eAAe;AAG1E,QAAM,gBAAgB,oBAAI,IAAY;AAEtC,aAAW,QAAQ,WAAW;AAC5B,UAAM,aAAc,KAAK,QAAQ,cAAqC;AACtE,QAAI,CAAC,YAAY;AACf,aAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,KAAK,QAAQ,SAAS,kBAAkB,KAAK,MAAM,mCAAmC,CAAC;AAC3I;AAAA,IACF;AACA,UAAM,WAAW,SAAS,IAAI,UAAU;AACxC,QAAI,CAAC,UAAU;AACb,aAAO,KAAK,EAAE,MAAM,uBAAuB,QAAQ,KAAK,QAAQ,SAAS,kBAAkB,KAAK,MAAM,mCAAmC,UAAU,IAAI,CAAC;AACxJ;AAAA,IACF;AACA,QAAI,SAAS,aAAa,iBAAiB;AACzC,aAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,KAAK,QAAQ,SAAS,SAAS,UAAU,yBAAyB,KAAK,MAAM,2BAA2B,CAAC;AAC7J;AAAA,IACF;AAEA,kBAAc,IAAI,UAAU;AAE5B,UAAM,iBAAkB,SAAS,QAAQ,cAAqC;AAC9E,QAAI,CAAC,gBAAgB;AACnB,aAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,YAAY,SAAS,kBAAkB,UAAU,mCAAmC,CAAC;AAAA,IAC3I,WAAW,mBAAmB,KAAK,QAAQ;AACzC,aAAO,KAAK,EAAE,MAAM,sBAAsB,QAAQ,YAAY,SAAS,kBAAkB,UAAU,gCAAgC,cAAc,0BAA0B,KAAK,MAAM,IAAI,CAAC;AAAA,IAC7L;AAEA,UAAM,gBAAgB,eAAe,IAAI,KAAK,MAAM,KAAK,CAAC,GAAG,OAAO,CAAC,eAAe,WAAW,YAAY,MAAM;AACjH,QAAI,aAAa,SAAS,GAAG;AAC3B,aAAO,KAAK,EAAE,MAAM,yBAAyB,QAAQ,KAAK,QAAQ,SAAS,kBAAkB,KAAK,MAAM,2DAA2D,aAAa,MAAM,IAAI,CAAC;AAAA,IAC7L;AACA,UAAM,aAAa,oBAAI,IAAY;AACnC,eAAW,UAAU,cAAc;AACjC,UAAI,WAAW,IAAI,OAAO,YAAY,GAAG;AACvC,eAAO,KAAK,EAAE,MAAM,wBAAwB,QAAQ,KAAK,QAAQ,SAAS,kBAAkB,KAAK,MAAM,+BAA+B,OAAO,YAAY,IAAI,CAAC;AAAA,MAChK;AACA,iBAAW,IAAI,OAAO,YAAY;AAAA,IACpC;AAEA,SAAK,oBAAoB,IAAI,UAAU,KAAK,KAAK,GAAG;AAClD,aAAO,KAAK,EAAE,MAAM,yBAAyB,QAAQ,YAAY,SAAS,kBAAkB,UAAU,8CAA8C,CAAC;AAAA,IACvJ;AAGA,UAAM,gBAAgB,oBAAI,IAAY;AACtC,UAAM,UAAU,oBAAI,IAAY;AAChC,QAAI,kBAAkB;AACtB,QAAI,wBAAwB;AAC5B,QAAI,gBAAgB;AAEpB,UAAM,QAAQ,CAAC,WAAyB;AACtC,UAAI,WAAW,WAAY;AAC3B,UAAI,WAAW,KAAK,QAAQ;AAC1B,YAAI,CAAC,eAAe;AAClB,iBAAO,KAAK,EAAE,MAAM,mBAAmB,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,kDAAkD,UAAU,IAAI,CAAC;AACtK,0BAAgB;AAAA,QAClB;AACA;AAAA,MACF;AACA,YAAM,OAAO,SAAS,IAAI,MAAM;AAChC,UAAI,CAAC,MAAM;AACT,YAAI,CAAC,uBAAuB;AAC1B,iBAAO,KAAK,EAAE,MAAM,0BAA0B,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,2BAA2B,MAAM,sBAAsB,UAAU,IAAI,CAAC;AAClL,kCAAwB;AAAA,QAC1B;AACA;AAAA,MACF;AACA,UAAI,KAAK,aAAa,OAAO;AAC3B,YAAI,CAAC,uBAAuB;AAC1B,iBAAO,KAAK,EAAE,MAAM,0BAA0B,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,sCAAsC,UAAU,IAAI,CAAC;AACjK,kCAAwB;AAAA,QAC1B;AACA;AAAA,MACF;AACA,UAAI,KAAK,aAAa,iBAAiB;AACrC,YAAI,CAAC,iBAAiB;AACpB,iBAAO,KAAK,EAAE,MAAM,6BAA6B,QAAQ,KAAK,QAAQ,SAAS,yBAAyB,MAAM,kBAAkB,KAAK,MAAM,qBAAqB,CAAC;AACjK,4BAAkB;AAAA,QACpB;AACA;AAAA,MACF;AACA,UAAI,KAAK,aAAa,iBAAiB;AAErC,YAAI,CAAC,uBAAuB;AAC1B,iBAAO,KAAK,EAAE,MAAM,0BAA0B,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,mBAAmB,MAAM,8BAA8B,UAAU,IAAI,CAAC;AAClL,kCAAwB;AAAA,QAC1B;AACA;AAAA,MACF;AACA,UAAI,QAAQ,IAAI,MAAM,GAAG;AACvB,YAAI,CAAC,eAAe;AAClB,iBAAO,KAAK,EAAE,MAAM,mBAAmB,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,+BAA+B,MAAM,IAAI,CAAC;AAC/I,0BAAgB;AAAA,QAClB;AACA;AAAA,MACF;AACA,UAAI,cAAc,IAAI,MAAM,EAAG;AAE/B,YAAM,WAAW,eAAe,IAAI,MAAM,KAAK,CAAC;AAChD,UAAI,SAAS,WAAW,GAAG;AACzB,YAAI,CAAC,uBAAuB;AAC1B,iBAAO,KAAK,EAAE,MAAM,0BAA0B,QAAQ,KAAK,QAAQ,SAAS,qBAAqB,KAAK,MAAM,wBAAwB,MAAM,4BAA4B,UAAU,IAAI,CAAC;AACrL,kCAAwB;AAAA,QAC1B;AACA;AAAA,MACF;AACA,cAAQ,IAAI,MAAM;AAClB,iBAAW,cAAc,SAAU,OAAM,WAAW,QAAQ;AAC5D,cAAQ,OAAO,MAAM;AACrB,oBAAc,IAAI,MAAM;AAAA,IAC1B;AAEA,eAAW,UAAU,aAAc,OAAM,OAAO,QAAQ;AAAA,EAC1D;AAGA,aAAW,QAAQ,WAAW;AAC5B,QAAI,CAAC,cAAc,IAAI,KAAK,MAAM,GAAG;AACnC,aAAO,KAAK,EAAE,MAAM,iBAAiB,QAAQ,KAAK,QAAQ,SAAS,kBAAkB,KAAK,MAAM,yCAAyC,CAAC;AAAA,IAC5I;AAAA,EACF;AAEA,SAAO;AACT;AAGO,MAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,OAAO,EAAE,MAAM,kBAAkB,EAAE,IAAI,GAAG,iDAAiD;AAAA,EAC3F,aAAa,EAAE,MAAM,wBAAwB,EAAE,IAAI,GAAG,4CAA4C;AAAA,EAClG,UAAU,EAAE,MAAM,+BAA+B,EAAE,SAAS;AAAA;AAAA,EAC5D,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA;AAAA,EACnC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA;AAAA,EACnC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA;AACpC,CAAC,EAAE,YAAY,CAAC,YAAY,QAAQ;AAClC,aAAW,SAAS,yBAAyB,UAAoC,GAAG;AAClF,QAAI,SAAS;AAAA,MACX,MAAM;AAAA,MACN,MAAM,CAAC,OAAO;AAAA,MACd,SAAS,IAAI,MAAM,IAAI,KAAK,MAAM,OAAO;AAAA,IAC3C,CAAC;AAAA,EACH;AACF,CAAC;AAGM,MAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS;AAAA,EAC3C,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACvC,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AACrC,CAAC;AAGD,MAAM,aAAa,EAAE,WAAW,CAAC,UAAU;AACzC,MAAI,UAAU,UAAa,UAAU,QAAQ,UAAU,GAAI,QAAO;AAClE,QAAM,OAAO,iBAAiB,OAAO,QAAQ,IAAI,KAAK,OAAO,KAAK,CAAC;AACnE,SAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO;AAC/C,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC;AAOf,MAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,kBAAkB,0FAA0F;AAAA,EACzJ,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU,uBAAuB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,eAAe,WAAW,SAAS;AAAA,EACnC,aAAa,WAAW,SAAS;AAAA,EACjC,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AACrD,CAAC;AAKM,MAAM,sCAAsC,EAAE,OAAO;AAAA,EAC1D,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,MAAM,kBAAkB,0FAA0F;AAAA,EACzJ,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACvC,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC;AAAA,EAC9C,YAAY;AAAA,EACZ,UAAU,uBAAuB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAC9C,CAAC;AAIM,MAAM,iCAAiC,+BAA+B,QAAQ,EAAE,OAAO;AAAA,EAC5F,IAAI;AACN,CAAC;AASM,MAAM,sCAAsC,EAAE,OAAO;AAAA,EAC1D,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAChD,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAClD,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,YAAY,6BAA6B,SAAS;AAAA,EAClD,UAAU,uBAAuB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,eAAe,WAAW,SAAS;AAAA,EACnC,aAAa,WAAW,SAAS;AACnC,CAAC,EAAE,OAAO;AAIH,MAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAChC,CAAC;AAQM,MAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACzC,UAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EACvC,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC1C,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;AACpD,CAAC;AAEM,MAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,cAAc;AAAA,EACd,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACrC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;AAAA,EACnC,QAAQ;AAAA,EACR,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACxC,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC;AAAA,EACrC,gBAAgB,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EACxD,UAAU,+BAA+B,SAAS,EAAE,SAAS;AAAA,EAC7D,WAAW,EAAE,OAAO,KAAK;AAAA,EACzB,aAAa,WAAW,SAAS;AAAA,EACjC,UAAU,WAAW,SAAS;AAAA,EAC9B,aAAa,WAAW,SAAS;AAAA,EACjC,cAAc,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACvD,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC1C,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;AAAA,EAC7C,UAAU;AAAA,EACV,gBAAgB;AAClB,CAAC;AAIM,MAAM,+BAA+B,6BAA6B,QAAQ,EAAE,OAAO;AAAA,EACxF,IAAI;AACN,CAAC;AAIM,MAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,cAAc,KAAK,SAAS;AAAA,EAC5B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,6BAA6B,SAAS;AAAA,EAC9C,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,eAAe,EAAE,OAAO,EAAE,SAAS;AAAA,EACnC,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAChC,CAAC;AAQM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,oBAAoB;AAAA,EACpB,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EAClC,QAAQ;AAAA,EACR,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACvC,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACxC,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACvC,WAAW,WAAW,SAAS;AAAA,EAC/B,UAAU,WAAW,SAAS;AAAA,EAC9B,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EAC7D,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;AAAA,EAC7C,UAAU;AAAA,EACV,gBAAgB;AAClB,CAAC;AAIM,MAAM,2BAA2B,yBAAyB,QAAQ,EAAE,OAAO;AAAA,EAChF,IAAI;AACN,CAAC;AAIM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,oBAAoB,KAAK,SAAS;AAAA,EAClC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,QAAQ,yBAAyB,SAAS;AAAA,EAC1C,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAChC,CAAC;AAQM,MAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,oBAAoB;AAAA,EACpB,gBAAgB;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EACnC,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,QAAQ;AAAA,EACR,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACxC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtC,YAAY,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EACpD,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,SAAS;AAAA,EAClE,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EACnD,WAAW,WAAW,SAAS;AAAA,EAC/B,SAAS,WAAW,SAAS;AAAA,EAC7B,aAAa,WAAW,SAAS;AAAA,EACjC,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EACrD,aAAa,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EACrD,aAAa,WAAW,SAAS;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACnD,UAAU;AAAA,EACV,gBAAgB;AAClB,CAAC;AAIM,MAAM,uBAAuB,qBAAqB,QAAQ,EAAE,OAAO;AAAA,EACxE,IAAI;AACN,CAAC;AAIM,MAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,oBAAoB,KAAK,SAAS;AAAA,EAClC,QAAQ,qBAAqB,SAAS;AAAA,EACtC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAChC,CAAC;AAQM,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,oBAAoB;AAAA,EACpB,gBAAgB,KAAK,SAAS,EAAE,SAAS;AAAA,EACzC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE;AAAA,EACnC,WAAW,EAAE,IAAI;AAAA,EACjB,YAAY,EAAE,OAAO,KAAK,EAAE,SAAS;AAAA,EACrC,QAAQ,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AAAA,EAChD,UAAU;AAAA,EACV,gBAAgB;AAClB,CAAC;AAIM,MAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,oBAAoB,KAAK,SAAS;AAAA,EAClC,gBAAgB,KAAK,SAAS;AAAA,EAC9B,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAAA,EAC9B,gBAAgB,EAAE,KAAK,EAAE,SAAS;AAAA,EAClC,cAAc,EAAE,KAAK,EAAE,SAAS;AAClC,CAAC;AAQM,MAAM,iCAAiC,EAAE,YAAY;AAAA,EAC1D,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EAChD,UAAU,+BAA+B,SAAS;AAAA,EAClD,UAAU,EAAE,KAAK,+BAA+B;AAAA,EAChD,gBAAgB,EAAE,KAAK,qCAAqC;AAAA,EAC5D,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAKM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,EAC5B,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EAC9C,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,IAAI,CAAC,EAAE,SAAS;AAAA,EACvD,UAAU,+BAA+B,SAAS;AACpD,CAAC;AAQM,MAAM,8BAA8B,EAAE,KAAK;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,MAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,2CAA2C;AAAA,EAC7E,UAAU;AAAA,EACV,OAAO,EAAE,IAAI;AACf,CAAC;AAGM,MAAM,8BAA8B,EAAE,OAAO;AAAA,EAClD,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,2CAA2C;AAAA,EACjF,kBAAkB,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,KAAK,kDAAkD;AAAA,EAC/F,cAAc,EAAE,IAAI,EAAE,SAAS;AACjC,CAAC;AAGM,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,kBAAkB,EAAE,MAAM,4BAA4B,EAAE,IAAI,IAAI,sCAAsC,EAAE,SAAS;AAAA,EACjH,gBAAgB,EAAE,MAAM,2BAA2B,EAAE,IAAI,IAAI,qCAAqC,EAAE,SAAS;AAAA,EAC7G,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,MAAS,+BAA+B,EAAE,SAAS;AAAA,EAC3F,wBAAwB,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,KAAM,qDAAqD,EAAE,SAAS;AAC5H,CAAC;AAGM,MAAM,qBAAqB,EAAE,OAAO,EACxC,IAAI,GAAG,2BAA2B,EAClC,IAAI,KAAK,8CAA8C,EACvD;AAAA,EACC;AAAA,EACA;AACF;AAEK,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,QAAQ,yBAAyB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI;AAAA,EACjC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC;AAAA,EACrD,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,WAAW,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,SAAS,EAAE,SAAS;AACrD,CAAC;AAIM,MAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,sBAAsB;AAAA,EACtB,cAAc;AAAA,EACd,QAAQ,yBAAyB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE,SAAS;AAAA,EAC5C,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS;AAClE,CAAC;AAGM,MAAM,2BAA2B,yBAAyB,QAAQ,EAAE,OAAO;AAAA,EAChF,IAAI;AACN,CAAC;AAIM,MAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,SAAS;AAAA,EAC1C,aAAa,EAAE,OAAO,EAAE,IAAI,GAAI,EAAE,SAAS,EAAE,SAAS;AAAA,EACtD,sBAAsB,KAAK,SAAS;AAAA,EACpC,cAAc,mBAAmB,SAAS;AAAA,EAC1C,QAAQ,yBAAyB,SAAS,EAAE,SAAS;AAAA,EACrD,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,SAAS;AACvD,CAAC,EAAE,OAAO;AAGH,MAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,sBAAsB,KAAK,SAAS;AAAA,EACpC,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,UAAU,KAAK,SAAS;AAAA,EACxB,gBAAgB,KAAK,SAAS;AAChC,CAAC;",
6
+ "names": []
7
7
  }
@@ -21,7 +21,6 @@ const events = [
21
21
  { id: "workflows.activity.started", label: "Activity Started", category: "lifecycle" },
22
22
  { id: "workflows.activity.completed", label: "Activity Completed", category: "lifecycle" },
23
23
  { id: "workflows.activity.failed", label: "Activity Failed", category: "lifecycle" },
24
- { id: "workflows.task.assigned", label: "Task Assigned", entity: "task", category: "lifecycle" },
25
24
  // Event Triggers
26
25
  { id: "workflows.trigger.created", label: "Trigger Created", entity: "trigger", category: "crud" },
27
26
  { id: "workflows.trigger.updated", label: "Trigger Updated", entity: "trigger", category: "crud" },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/modules/workflows/events.ts"],
4
- "sourcesContent": ["import { createModuleEvents } from '@open-mercato/shared/modules/events'\n\n/**\n * Workflows Module Events\n *\n * Declares all events that can be emitted by the workflows module.\n */\nconst events = [\n // Workflow Definitions\n { id: 'workflows.definition.created', label: 'Workflow Definition Created', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.updated', label: 'Workflow Definition Updated', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.deleted', label: 'Workflow Definition Deleted', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.customized', label: 'Workflow Definition Customized', entity: 'definition', category: 'lifecycle' },\n { id: 'workflows.definition.reset_to_code', label: 'Workflow Definition Reset to Code', entity: 'definition', category: 'lifecycle' },\n\n // Workflow Instances\n { id: 'workflows.instance.created', label: 'Workflow Instance Created', entity: 'instance', category: 'crud' },\n { id: 'workflows.instance.updated', label: 'Workflow Instance Updated', entity: 'instance', category: 'crud' },\n { id: 'workflows.instance.deleted', label: 'Workflow Instance Deleted', entity: 'instance', category: 'crud' },\n\n // Workflow Lifecycle Events\n { id: 'workflows.instance.started', label: 'Workflow Started', category: 'lifecycle' },\n { id: 'workflows.instance.completed', label: 'Workflow Completed', category: 'lifecycle' },\n { id: 'workflows.instance.failed', label: 'Workflow Failed', category: 'lifecycle' },\n { id: 'workflows.instance.cancelled', label: 'Workflow Cancelled', category: 'lifecycle' },\n { id: 'workflows.instance.paused', label: 'Workflow Paused', category: 'lifecycle' },\n { id: 'workflows.instance.resumed', label: 'Workflow Resumed', category: 'lifecycle' },\n\n // Activity Events\n { id: 'workflows.activity.started', label: 'Activity Started', category: 'lifecycle' },\n { id: 'workflows.activity.completed', label: 'Activity Completed', category: 'lifecycle' },\n { id: 'workflows.activity.failed', label: 'Activity Failed', category: 'lifecycle' },\n { id: 'workflows.task.assigned', label: 'Task Assigned', entity: 'task', category: 'lifecycle' },\n\n // Event Triggers\n { id: 'workflows.trigger.created', label: 'Trigger Created', entity: 'trigger', category: 'crud' },\n { id: 'workflows.trigger.updated', label: 'Trigger Updated', entity: 'trigger', category: 'crud' },\n { id: 'workflows.trigger.deleted', label: 'Trigger Deleted', entity: 'trigger', category: 'crud' },\n\n // Parallel Fork / Join (branch lifecycle)\n { id: 'workflows.branch.opened', label: 'Parallel Branch Opened', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.completed', label: 'Parallel Branch Completed', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.cancelled', label: 'Parallel Branch Cancelled', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.failed', label: 'Parallel Branch Failed', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.join.completed', label: 'Parallel Join Completed', entity: 'branch', category: 'lifecycle' },\n] as const\n\nexport const eventsConfig = createModuleEvents({\n moduleId: 'workflows',\n events,\n})\n\n/** Type-safe event emitter for workflows module */\nexport const emitWorkflowsEvent = eventsConfig.emit\n\n/** Event IDs that can be emitted by the workflows module */\nexport type WorkflowsEventId = typeof events[number]['id']\n\nexport default eventsConfig\n"],
5
- "mappings": "AAAA,SAAS,0BAA0B;AAOnC,MAAM,SAAS;AAAA;AAAA,EAEb,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,mCAAmC,OAAO,kCAAkC,QAAQ,cAAc,UAAU,YAAY;AAAA,EAC9H,EAAE,IAAI,sCAAsC,OAAO,qCAAqC,QAAQ,cAAc,UAAU,YAAY;AAAA;AAAA,EAGpI,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC7G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC7G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA;AAAA,EAG7G,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA,EACrF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA,EACnF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA,EACnF,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA;AAAA,EAGrF,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA,EACrF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA,EACnF,EAAE,IAAI,2BAA2B,OAAO,iBAAiB,QAAQ,QAAQ,UAAU,YAAY;AAAA;AAAA,EAG/F,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA,EACjG,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA,EACjG,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA;AAAA,EAGjG,EAAE,IAAI,2BAA2B,OAAO,0BAA0B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAC1G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAChH,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAChH,EAAE,IAAI,2BAA2B,OAAO,0BAA0B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAC1G,EAAE,IAAI,4BAA4B,OAAO,2BAA2B,QAAQ,UAAU,UAAU,YAAY;AAC9G;AAEO,MAAM,eAAe,mBAAmB;AAAA,EAC7C,UAAU;AAAA,EACV;AACF,CAAC;AAGM,MAAM,qBAAqB,aAAa;AAK/C,IAAO,iBAAQ;",
4
+ "sourcesContent": ["import { createModuleEvents } from '@open-mercato/shared/modules/events'\n\n/**\n * Workflows Module Events\n *\n * Declares all events that can be emitted by the workflows module.\n */\nconst events = [\n // Workflow Definitions\n { id: 'workflows.definition.created', label: 'Workflow Definition Created', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.updated', label: 'Workflow Definition Updated', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.deleted', label: 'Workflow Definition Deleted', entity: 'definition', category: 'crud' },\n { id: 'workflows.definition.customized', label: 'Workflow Definition Customized', entity: 'definition', category: 'lifecycle' },\n { id: 'workflows.definition.reset_to_code', label: 'Workflow Definition Reset to Code', entity: 'definition', category: 'lifecycle' },\n\n // Workflow Instances\n { id: 'workflows.instance.created', label: 'Workflow Instance Created', entity: 'instance', category: 'crud' },\n { id: 'workflows.instance.updated', label: 'Workflow Instance Updated', entity: 'instance', category: 'crud' },\n { id: 'workflows.instance.deleted', label: 'Workflow Instance Deleted', entity: 'instance', category: 'crud' },\n\n // Workflow Lifecycle Events\n { id: 'workflows.instance.started', label: 'Workflow Started', category: 'lifecycle' },\n { id: 'workflows.instance.completed', label: 'Workflow Completed', category: 'lifecycle' },\n { id: 'workflows.instance.failed', label: 'Workflow Failed', category: 'lifecycle' },\n { id: 'workflows.instance.cancelled', label: 'Workflow Cancelled', category: 'lifecycle' },\n { id: 'workflows.instance.paused', label: 'Workflow Paused', category: 'lifecycle' },\n { id: 'workflows.instance.resumed', label: 'Workflow Resumed', category: 'lifecycle' },\n\n // Activity Events\n { id: 'workflows.activity.started', label: 'Activity Started', category: 'lifecycle' },\n { id: 'workflows.activity.completed', label: 'Activity Completed', category: 'lifecycle' },\n { id: 'workflows.activity.failed', label: 'Activity Failed', category: 'lifecycle' },\n\n // Event Triggers\n { id: 'workflows.trigger.created', label: 'Trigger Created', entity: 'trigger', category: 'crud' },\n { id: 'workflows.trigger.updated', label: 'Trigger Updated', entity: 'trigger', category: 'crud' },\n { id: 'workflows.trigger.deleted', label: 'Trigger Deleted', entity: 'trigger', category: 'crud' },\n\n // Parallel Fork / Join (branch lifecycle)\n { id: 'workflows.branch.opened', label: 'Parallel Branch Opened', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.completed', label: 'Parallel Branch Completed', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.cancelled', label: 'Parallel Branch Cancelled', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.branch.failed', label: 'Parallel Branch Failed', entity: 'branch', category: 'lifecycle' },\n { id: 'workflows.join.completed', label: 'Parallel Join Completed', entity: 'branch', category: 'lifecycle' },\n] as const\n\nexport const eventsConfig = createModuleEvents({\n moduleId: 'workflows',\n events,\n})\n\n/** Type-safe event emitter for workflows module */\nexport const emitWorkflowsEvent = eventsConfig.emit\n\n/** Event IDs that can be emitted by the workflows module */\nexport type WorkflowsEventId = typeof events[number]['id']\n\nexport default eventsConfig\n"],
5
+ "mappings": "AAAA,SAAS,0BAA0B;AAOnC,MAAM,SAAS;AAAA;AAAA,EAEb,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,gCAAgC,OAAO,+BAA+B,QAAQ,cAAc,UAAU,OAAO;AAAA,EACnH,EAAE,IAAI,mCAAmC,OAAO,kCAAkC,QAAQ,cAAc,UAAU,YAAY;AAAA,EAC9H,EAAE,IAAI,sCAAsC,OAAO,qCAAqC,QAAQ,cAAc,UAAU,YAAY;AAAA;AAAA,EAGpI,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC7G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA,EAC7G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,YAAY,UAAU,OAAO;AAAA;AAAA,EAG7G,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA,EACrF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA,EACnF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA,EACnF,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA;AAAA,EAGrF,EAAE,IAAI,8BAA8B,OAAO,oBAAoB,UAAU,YAAY;AAAA,EACrF,EAAE,IAAI,gCAAgC,OAAO,sBAAsB,UAAU,YAAY;AAAA,EACzF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,UAAU,YAAY;AAAA;AAAA,EAGnF,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA,EACjG,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA,EACjG,EAAE,IAAI,6BAA6B,OAAO,mBAAmB,QAAQ,WAAW,UAAU,OAAO;AAAA;AAAA,EAGjG,EAAE,IAAI,2BAA2B,OAAO,0BAA0B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAC1G,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAChH,EAAE,IAAI,8BAA8B,OAAO,6BAA6B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAChH,EAAE,IAAI,2BAA2B,OAAO,0BAA0B,QAAQ,UAAU,UAAU,YAAY;AAAA,EAC1G,EAAE,IAAI,4BAA4B,OAAO,2BAA2B,QAAQ,UAAU,UAAU,YAAY;AAC9G;AAEO,MAAM,eAAe,mBAAmB;AAAA,EAC7C,UAAU;AAAA,EACV;AACF,CAAC;AAGM,MAAM,qBAAqB,aAAa;AAK/C,IAAO,iBAAQ;",
6
6
  "names": []
7
7
  }
@@ -4,6 +4,7 @@ import {
4
4
  UnsafeOutboundUrlError
5
5
  } from "@open-mercato/shared/lib/url-safety";
6
6
  import { parseBooleanWithDefault } from "@open-mercato/shared/lib/boolean";
7
+ import { hasAllFeatures } from "@open-mercato/shared/security/features";
7
8
  import { callWebhookConfigSchema } from "../data/validators.js";
8
9
  import { WORKFLOW_ACTIVITIES_QUEUE_NAME } from "./activity-queue-types.js";
9
10
  import { logWorkflowEvent } from "./event-logger.js";
@@ -53,29 +54,15 @@ function resolveWorkflowEnvInterpolation(envKey) {
53
54
  }
54
55
  return process.env[envKey] ?? "";
55
56
  }
56
- function resolveActivityTimeoutMs(activity) {
57
- if (typeof activity.timeoutMs === "number" && activity.timeoutMs > 0) {
58
- return activity.timeoutMs;
59
- }
60
- if (typeof activity.timeout === "string" && activity.timeout.trim().length > 0) {
61
- try {
62
- const parsed = parseDuration(activity.timeout.trim());
63
- if (Number.isFinite(parsed) && parsed > 0) return parsed;
64
- } catch {
65
- return void 0;
66
- }
67
- }
68
- return void 0;
69
- }
70
- async function workflowUserHasAllFeatures(container, userId, required, tenantId, organizationId) {
57
+ async function resolveWorkflowUserFeatures(container, userId, tenantId, organizationId) {
71
58
  try {
72
59
  const rbac = container.resolve("rbacService");
73
- if (rbac?.userHasAllFeatures) {
74
- return await rbac.userHasAllFeatures(userId, [...required], { tenantId, organizationId });
60
+ if (rbac?.getGrantedFeatures) {
61
+ return await rbac.getGrantedFeatures(userId, { tenantId, organizationId });
75
62
  }
76
63
  } catch {
77
64
  }
78
- return false;
65
+ return [];
79
66
  }
80
67
  class ActivityExecutionError extends Error {
81
68
  constructor(message, activityType, activityName, details) {
@@ -165,10 +152,9 @@ async function executeActivity(em, container, activity, context) {
165
152
  for (let attempt = 0; attempt < retryPolicy.maxAttempts; attempt++) {
166
153
  try {
167
154
  const startTime = Date.now();
168
- const timeoutMs = resolveActivityTimeoutMs(activity);
169
- const result = timeoutMs ? await executeWithTimeout(
170
- (signal) => executeActivityByType(em, container, activity, context, signal),
171
- timeoutMs
155
+ const result = activity.timeoutMs ? await executeWithTimeout(
156
+ () => executeActivityByType(em, container, activity, context),
157
+ activity.timeoutMs
172
158
  ) : await executeActivityByType(em, container, activity, context);
173
159
  const executionTimeMs = Date.now() - startTime;
174
160
  return {
@@ -258,19 +244,19 @@ async function executeActivities(em, container, activities, context) {
258
244
  }
259
245
  return results;
260
246
  }
261
- async function executeActivityByType(em, container, activity, context, signal) {
247
+ async function executeActivityByType(em, container, activity, context) {
262
248
  const interpolatedConfig = interpolateVariables(activity.config, context.workflowContext, context.workflowInstance);
263
249
  switch (activity.activityType) {
264
250
  case "SEND_EMAIL":
265
251
  return await executeSendEmail(interpolatedConfig, context, container);
266
252
  case "CALL_API":
267
- return await executeCallApi(em, interpolatedConfig, context, container, signal);
253
+ return await executeCallApi(em, interpolatedConfig, context, container);
268
254
  case "EMIT_EVENT":
269
255
  return await executeEmitEvent(interpolatedConfig, context, container);
270
256
  case "UPDATE_ENTITY":
271
257
  return await executeUpdateEntity(em, interpolatedConfig, context, container);
272
258
  case "CALL_WEBHOOK":
273
- return await executeCallWebhook(interpolatedConfig, context, { signal });
259
+ return await executeCallWebhook(interpolatedConfig, context);
274
260
  case "EXECUTE_FUNCTION":
275
261
  return await executeFunction(interpolatedConfig, context, container);
276
262
  case "WAIT":
@@ -310,12 +296,6 @@ async function executeEmitEvent(config, context, container) {
310
296
  if (!eventName) {
311
297
  throw new Error('EMIT_EVENT requires "eventName" field');
312
298
  }
313
- const unresolvedPayloadKeys = findUnresolvedTemplateKeys(payload);
314
- if (unresolvedPayloadKeys.length > 0) {
315
- throw new Error(
316
- `EMIT_EVENT payload contains unresolved template variables for: ${unresolvedPayloadKeys.join(", ")}. Check that the workflow context provides these keys.`
317
- );
318
- }
319
299
  const eventBus = container.resolve("eventBus");
320
300
  if (!eventBus || typeof eventBus.emitEvent !== "function") {
321
301
  throw new Error("Event bus not available in container");
@@ -335,21 +315,6 @@ async function executeEmitEvent(config, context, container) {
335
315
  });
336
316
  return { emitted: true, eventName, payload: enrichedPayload };
337
317
  }
338
- const UNRESOLVED_TEMPLATE_PATTERN = /\{\{[^}]+\}\}/;
339
- function findUnresolvedTemplateKeys(value, path = "") {
340
- if (typeof value === "string") {
341
- return UNRESOLVED_TEMPLATE_PATTERN.test(value) ? [path] : [];
342
- }
343
- if (Array.isArray(value)) {
344
- return value.flatMap((item, index) => findUnresolvedTemplateKeys(item, `${path}[${index}]`));
345
- }
346
- if (value && typeof value === "object") {
347
- return Object.entries(value).flatMap(
348
- ([key, nested]) => findUnresolvedTemplateKeys(nested, path ? `${path}.${key}` : key)
349
- );
350
- }
351
- return [];
352
- }
353
318
  async function executeUpdateEntity(em, config, context, container) {
354
319
  const { commandId, input, statusDictionary } = config;
355
320
  if (!commandId) {
@@ -366,26 +331,19 @@ async function executeUpdateEntity(em, config, context, container) {
366
331
  if (!actorUserId) {
367
332
  throw new Error("UPDATE_ENTITY requires an authenticated workflow user");
368
333
  }
369
- const authorized = await workflowUserHasAllFeatures(
334
+ const userFeatures = await resolveWorkflowUserFeatures(
370
335
  container,
371
336
  actorUserId,
372
- workflowSafeCommand.requiredFeatures,
373
337
  context.workflowInstance.tenantId,
374
338
  context.workflowInstance.organizationId
375
339
  );
376
- if (!authorized) {
340
+ if (!hasAllFeatures(userFeatures, workflowSafeCommand.requiredFeatures)) {
377
341
  throw new Error("UPDATE_ENTITY command is not authorized");
378
342
  }
379
343
  const commandBus = container.resolve("commandBus");
380
344
  if (!commandBus || typeof commandBus.execute !== "function") {
381
345
  throw new Error("CommandBus not available in container");
382
346
  }
383
- const unresolvedKeys = findUnresolvedTemplateKeys(input);
384
- if (unresolvedKeys.length > 0) {
385
- throw new Error(
386
- `UPDATE_ENTITY input contains unresolved template variables for: ${unresolvedKeys.join(", ")}. Check that the workflow context provides these keys.`
387
- );
388
- }
389
347
  let finalInput = { ...input };
390
348
  if (finalInput.statusValue && statusDictionary) {
391
349
  const statusEntryId = await resolveDictionaryEntryId(
@@ -820,15 +778,13 @@ function sleep(ms) {
820
778
  }
821
779
  async function executeWithTimeout(executor, timeoutMs) {
822
780
  let timeoutId;
823
- const abortController = new AbortController();
824
781
  const timeoutPromise = new Promise((_, reject) => {
825
782
  timeoutId = setTimeout(() => {
826
- abortController.abort();
827
783
  reject(new Error(`Activity execution timeout after ${timeoutMs}ms`));
828
784
  }, timeoutMs);
829
785
  });
830
786
  try {
831
- return await Promise.race([executor(abortController.signal), timeoutPromise]);
787
+ return await Promise.race([executor(), timeoutPromise]);
832
788
  } finally {
833
789
  clearTimeout(timeoutId);
834
790
  }
@@ -846,7 +802,6 @@ export {
846
802
  executeSendEmail,
847
803
  executeUpdateEntity,
848
804
  isPrivateUrl,
849
- resolveActivityTimeoutMs,
850
805
  resolveCallApiRoleIds
851
806
  };
852
807
  //# sourceMappingURL=activity-executor.js.map