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

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 (241) hide show
  1. package/dist/generated/entities.ids.generated.js +0 -1
  2. package/dist/generated/entities.ids.generated.js.map +2 -2
  3. package/dist/generated/entity-fields-registry.js +0 -2
  4. package/dist/generated/entity-fields-registry.js.map +2 -2
  5. package/dist/modules/api_keys/setup.js +11 -0
  6. package/dist/modules/api_keys/setup.js.map +7 -0
  7. package/dist/modules/attachments/components/AttachmentLibrary.js +1 -1
  8. package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
  9. package/dist/modules/attachments/lib/assignmentDetails.js +31 -17
  10. package/dist/modules/attachments/lib/assignmentDetails.js.map +2 -2
  11. package/dist/modules/attachments/lib/partitions.js +3 -3
  12. package/dist/modules/attachments/lib/partitions.js.map +2 -2
  13. package/dist/modules/attachments/setup.js +11 -0
  14. package/dist/modules/attachments/setup.js.map +7 -0
  15. package/dist/modules/audit_logs/setup.js +12 -0
  16. package/dist/modules/audit_logs/setup.js.map +7 -0
  17. package/dist/modules/auth/lib/setup-app.js +29 -159
  18. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  19. package/dist/modules/auth/setup.js +11 -0
  20. package/dist/modules/auth/setup.js.map +7 -0
  21. package/dist/modules/business_rules/data/validators.js +0 -34
  22. package/dist/modules/business_rules/data/validators.js.map +2 -2
  23. package/dist/modules/business_rules/index.js +1 -21
  24. package/dist/modules/business_rules/index.js.map +2 -2
  25. package/dist/modules/business_rules/lib/rule-engine.js +1 -182
  26. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  27. package/dist/modules/business_rules/setup.js +11 -0
  28. package/dist/modules/business_rules/setup.js.map +7 -0
  29. package/dist/modules/catalog/setup.js +22 -0
  30. package/dist/modules/catalog/setup.js.map +7 -0
  31. package/dist/modules/configs/lib/upgrade-actions.js +65 -15
  32. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  33. package/dist/modules/configs/setup.js +16 -0
  34. package/dist/modules/configs/setup.js.map +7 -0
  35. package/dist/modules/currencies/setup.js +16 -0
  36. package/dist/modules/currencies/setup.js.map +7 -0
  37. package/dist/modules/customers/setup.js +36 -0
  38. package/dist/modules/customers/setup.js.map +7 -0
  39. package/dist/modules/dashboards/setup.js +12 -0
  40. package/dist/modules/dashboards/setup.js.map +7 -0
  41. package/dist/modules/dictionaries/setup.js +12 -0
  42. package/dist/modules/dictionaries/setup.js.map +7 -0
  43. package/dist/modules/directory/setup.js +12 -0
  44. package/dist/modules/directory/setup.js.map +7 -0
  45. package/dist/modules/entities/setup.js +11 -0
  46. package/dist/modules/entities/setup.js.map +7 -0
  47. package/dist/modules/feature_toggles/setup.js +11 -0
  48. package/dist/modules/feature_toggles/setup.js.map +7 -0
  49. package/dist/modules/perspectives/setup.js +12 -0
  50. package/dist/modules/perspectives/setup.js.map +7 -0
  51. package/dist/modules/planner/setup.js +21 -0
  52. package/dist/modules/planner/setup.js.map +7 -0
  53. package/dist/modules/query_index/setup.js +11 -0
  54. package/dist/modules/query_index/setup.js.map +7 -0
  55. package/dist/modules/resources/setup.js +21 -0
  56. package/dist/modules/resources/setup.js.map +7 -0
  57. package/dist/modules/sales/acl.js +0 -1
  58. package/dist/modules/sales/acl.js.map +2 -2
  59. package/dist/modules/sales/backend/sales/documents/[id]/page.js +0 -12
  60. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  61. package/dist/modules/sales/commands/documents.js +0 -62
  62. package/dist/modules/sales/commands/documents.js.map +2 -2
  63. package/dist/modules/sales/lib/dictionaries.js +0 -3
  64. package/dist/modules/sales/lib/dictionaries.js.map +2 -2
  65. package/dist/modules/sales/setup.js +99 -0
  66. package/dist/modules/sales/setup.js.map +7 -0
  67. package/dist/modules/staff/setup.js +27 -0
  68. package/dist/modules/staff/setup.js.map +7 -0
  69. package/dist/modules/workflows/acl.js +0 -2
  70. package/dist/modules/workflows/acl.js.map +2 -2
  71. package/dist/modules/workflows/api/instances/route.js +6 -18
  72. package/dist/modules/workflows/api/instances/route.js.map +2 -2
  73. package/dist/modules/workflows/api/tasks/route.js +1 -6
  74. package/dist/modules/workflows/api/tasks/route.js.map +2 -2
  75. package/dist/modules/workflows/backend/definitions/[id]/page.js +1 -9
  76. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
  77. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js +1 -1
  78. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js.map +2 -2
  79. package/dist/modules/workflows/backend/definitions/create/page.js +15 -24
  80. package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
  81. package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
  82. package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
  83. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +132 -150
  84. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  85. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js +1 -1
  86. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js.map +2 -2
  87. package/dist/modules/workflows/backend/events/[id]/page.js +1 -1
  88. package/dist/modules/workflows/backend/events/[id]/page.js.map +2 -2
  89. package/dist/modules/workflows/backend/events/[id]/page.meta.js +2 -2
  90. package/dist/modules/workflows/backend/events/[id]/page.meta.js.map +2 -2
  91. package/dist/modules/workflows/backend/instances/[id]/page.meta.js +2 -2
  92. package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +2 -2
  93. package/dist/modules/workflows/backend/tasks/[id]/page.js +1 -1
  94. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  95. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js +2 -2
  96. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js.map +2 -2
  97. package/dist/modules/workflows/backend/tasks/page.js +6 -5
  98. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  99. package/dist/modules/workflows/cli.js +3 -81
  100. package/dist/modules/workflows/cli.js.map +3 -3
  101. package/dist/modules/workflows/data/entities.js +1 -64
  102. package/dist/modules/workflows/data/entities.js.map +2 -2
  103. package/dist/modules/workflows/data/validators.js +0 -115
  104. package/dist/modules/workflows/data/validators.js.map +2 -2
  105. package/dist/modules/workflows/examples/checkout-demo-definition.json +5 -1
  106. package/dist/modules/workflows/lib/activity-executor.js +13 -75
  107. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  108. package/dist/modules/workflows/lib/graph-utils.js +2 -71
  109. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  110. package/dist/modules/workflows/lib/seeds.js +7 -36
  111. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  112. package/dist/modules/workflows/lib/start-validator.js +23 -33
  113. package/dist/modules/workflows/lib/start-validator.js.map +2 -2
  114. package/dist/modules/workflows/lib/transition-handler.js +45 -157
  115. package/dist/modules/workflows/lib/transition-handler.js.map +3 -3
  116. package/dist/modules/workflows/migrations/Migration20251207131955.js +76 -72
  117. package/dist/modules/workflows/migrations/Migration20251207131955.js.map +2 -2
  118. package/dist/modules/workflows/setup.js +16 -0
  119. package/dist/modules/workflows/setup.js.map +7 -0
  120. package/generated/entities.ids.generated.ts +0 -1
  121. package/generated/entity-fields-registry.ts +0 -2
  122. package/package.json +2 -2
  123. package/src/__tests__/module-decoupling.test.ts +356 -0
  124. package/src/modules/api_keys/setup.ts +9 -0
  125. package/src/modules/attachments/components/AttachmentLibrary.tsx +2 -2
  126. package/src/modules/attachments/lib/assignmentDetails.ts +32 -16
  127. package/src/modules/attachments/lib/partitions.ts +3 -3
  128. package/src/modules/attachments/setup.ts +9 -0
  129. package/src/modules/audit_logs/setup.ts +10 -0
  130. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +30 -0
  131. package/src/modules/auth/lib/setup-app.ts +40 -177
  132. package/src/modules/auth/setup.ts +9 -0
  133. package/src/modules/business_rules/data/validators.ts +0 -40
  134. package/src/modules/business_rules/index.ts +0 -25
  135. package/src/modules/business_rules/lib/rule-engine.ts +1 -281
  136. package/src/modules/business_rules/setup.ts +9 -0
  137. package/src/modules/catalog/setup.ts +22 -0
  138. package/src/modules/configs/lib/upgrade-actions.ts +78 -17
  139. package/src/modules/configs/setup.ts +14 -0
  140. package/src/modules/currencies/setup.ts +15 -0
  141. package/src/modules/customers/setup.ts +36 -0
  142. package/src/modules/dashboards/setup.ts +10 -0
  143. package/src/modules/dictionaries/setup.ts +10 -0
  144. package/src/modules/directory/setup.ts +10 -0
  145. package/src/modules/entities/setup.ts +9 -0
  146. package/src/modules/feature_toggles/setup.ts +9 -0
  147. package/src/modules/perspectives/setup.ts +10 -0
  148. package/src/modules/planner/setup.ts +21 -0
  149. package/src/modules/query_index/setup.ts +9 -0
  150. package/src/modules/resources/setup.ts +21 -0
  151. package/src/modules/sales/acl.ts +0 -1
  152. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +0 -16
  153. package/src/modules/sales/commands/documents.ts +1 -74
  154. package/src/modules/sales/lib/dictionaries.ts +0 -3
  155. package/src/modules/sales/setup.ts +108 -0
  156. package/src/modules/staff/setup.ts +27 -0
  157. package/src/modules/workflows/acl.ts +0 -2
  158. package/src/modules/workflows/api/__tests__/instances.route.test.ts +2 -5
  159. package/src/modules/workflows/api/instances/route.ts +7 -21
  160. package/src/modules/workflows/api/tasks/route.ts +1 -7
  161. package/src/modules/workflows/backend/definitions/[id]/page.meta.ts +1 -1
  162. package/src/modules/workflows/backend/definitions/[id]/page.tsx +0 -9
  163. package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
  164. package/src/modules/workflows/backend/definitions/create/page.tsx +0 -9
  165. package/src/modules/workflows/backend/definitions/visual-editor/page.meta.ts +1 -1
  166. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3 -21
  167. package/src/modules/workflows/backend/events/[id]/page.meta.ts +2 -2
  168. package/src/modules/workflows/backend/events/[id]/page.tsx +1 -1
  169. package/src/modules/workflows/backend/instances/[id]/page.meta.ts +2 -2
  170. package/src/modules/workflows/backend/tasks/[id]/page.meta.ts +2 -2
  171. package/src/modules/workflows/backend/tasks/[id]/page.tsx +1 -1
  172. package/src/modules/workflows/backend/tasks/page.tsx +6 -5
  173. package/src/modules/workflows/cli.ts +0 -111
  174. package/src/modules/workflows/data/entities.ts +0 -124
  175. package/src/modules/workflows/data/validators.ts +0 -138
  176. package/src/modules/workflows/examples/checkout-demo-definition.json +5 -1
  177. package/src/modules/workflows/i18n/en.json +0 -71
  178. package/src/modules/workflows/lib/__tests__/activity-executor.test.ts +36 -43
  179. package/src/modules/workflows/lib/__tests__/transition-handler.test.ts +90 -170
  180. package/src/modules/workflows/lib/activity-executor.ts +16 -129
  181. package/src/modules/workflows/lib/graph-utils.ts +2 -117
  182. package/src/modules/workflows/lib/seeds.ts +12 -50
  183. package/src/modules/workflows/lib/start-validator.ts +28 -38
  184. package/src/modules/workflows/lib/transition-handler.ts +55 -208
  185. package/src/modules/workflows/migrations/Migration20251207131955.ts +77 -143
  186. package/src/modules/workflows/setup.ts +15 -0
  187. package/dist/generated/entities/workflow_event_trigger/index.js +0 -33
  188. package/dist/generated/entities/workflow_event_trigger/index.js.map +0 -7
  189. package/dist/modules/auth/events.js +0 -30
  190. package/dist/modules/auth/events.js.map +0 -7
  191. package/dist/modules/business_rules/api/execute/[ruleId]/route.js +0 -145
  192. package/dist/modules/business_rules/api/execute/[ruleId]/route.js.map +0 -7
  193. package/dist/modules/catalog/events.js +0 -34
  194. package/dist/modules/catalog/events.js.map +0 -7
  195. package/dist/modules/customers/events.js +0 -49
  196. package/dist/modules/customers/events.js.map +0 -7
  197. package/dist/modules/directory/events.js +0 -23
  198. package/dist/modules/directory/events.js.map +0 -7
  199. package/dist/modules/sales/events.js +0 -63
  200. package/dist/modules/sales/events.js.map +0 -7
  201. package/dist/modules/sales/lib/frontend/documentDataEvents.js +0 -25
  202. package/dist/modules/sales/lib/frontend/documentDataEvents.js.map +0 -7
  203. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +0 -481
  204. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +0 -7
  205. package/dist/modules/workflows/components/EventTriggersEditor.js +0 -553
  206. package/dist/modules/workflows/components/EventTriggersEditor.js.map +0 -7
  207. package/dist/modules/workflows/events.js +0 -38
  208. package/dist/modules/workflows/events.js.map +0 -7
  209. package/dist/modules/workflows/examples/order-approval-definition.json +0 -257
  210. package/dist/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  211. package/dist/modules/workflows/lib/event-trigger-service.js +0 -308
  212. package/dist/modules/workflows/lib/event-trigger-service.js.map +0 -7
  213. package/dist/modules/workflows/migrations/Migration20260123143500.js +0 -36
  214. package/dist/modules/workflows/migrations/Migration20260123143500.js.map +0 -7
  215. package/dist/modules/workflows/subscribers/event-trigger.js +0 -78
  216. package/dist/modules/workflows/subscribers/event-trigger.js.map +0 -7
  217. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +0 -323
  218. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +0 -7
  219. package/dist/modules/workflows/widgets/injection/order-approval/widget.js +0 -17
  220. package/dist/modules/workflows/widgets/injection/order-approval/widget.js.map +0 -7
  221. package/dist/modules/workflows/widgets/injection-table.js +0 -19
  222. package/dist/modules/workflows/widgets/injection-table.js.map +0 -7
  223. package/generated/entities/workflow_event_trigger/index.ts +0 -15
  224. package/src/modules/auth/events.ts +0 -39
  225. package/src/modules/business_rules/api/execute/[ruleId]/route.ts +0 -163
  226. package/src/modules/catalog/events.ts +0 -45
  227. package/src/modules/customers/events.ts +0 -63
  228. package/src/modules/directory/events.ts +0 -31
  229. package/src/modules/sales/events.ts +0 -82
  230. package/src/modules/sales/lib/frontend/documentDataEvents.ts +0 -28
  231. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +0 -581
  232. package/src/modules/workflows/components/EventTriggersEditor.tsx +0 -664
  233. package/src/modules/workflows/events.ts +0 -49
  234. package/src/modules/workflows/examples/order-approval-definition.json +0 -257
  235. package/src/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  236. package/src/modules/workflows/lib/event-trigger-service.ts +0 -557
  237. package/src/modules/workflows/migrations/Migration20260123143500.ts +0 -38
  238. package/src/modules/workflows/subscribers/event-trigger.ts +0 -109
  239. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +0 -446
  240. package/src/modules/workflows/widgets/injection/order-approval/widget.ts +0 -16
  241. package/src/modules/workflows/widgets/injection-table.ts +0 -21
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/modules/workflows/components/EventTriggersEditor.tsx"],
4
- "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useState, useCallback } from 'react'\nimport { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { Label } from '@open-mercato/ui/primitives/label'\nimport { Switch } from '@open-mercato/ui/primitives/switch'\nimport { Spinner } from '@open-mercato/ui/primitives/spinner'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@open-mercato/ui/primitives/dialog'\nimport { Alert, AlertDescription, AlertTitle } from '@open-mercato/ui/primitives/alert'\nimport { apiCall } from '@open-mercato/ui/backend/utils/apiCall'\nimport { flash } from '@open-mercato/ui/backend/FlashMessages'\nimport { EventSelect } from '@open-mercato/ui/backend/inputs/EventSelect'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Plus, Trash2, Edit2, Zap, AlertCircle, X } from 'lucide-react'\n\ninterface EventTrigger {\n id: string\n name: string\n description?: string | null\n eventPattern: string\n config?: {\n filterConditions?: Array<{\n field: string\n operator: string\n value: unknown\n }>\n contextMapping?: Array<{\n targetKey: string\n sourceExpression: string\n defaultValue?: unknown\n }>\n debounceMs?: number\n maxConcurrentInstances?: number\n } | null\n enabled: boolean\n priority: number\n workflowDefinitionId: string\n createdAt: string\n updatedAt: string\n}\n\ninterface EventTriggersEditorProps {\n workflowDefinitionId: string\n workflowId?: string\n className?: string\n}\n\nconst FILTER_OPERATORS = [\n { value: 'eq', label: 'Equals' },\n { value: 'neq', label: 'Not Equals' },\n { value: 'gt', label: 'Greater Than' },\n { value: 'gte', label: 'Greater Than or Equal' },\n { value: 'lt', label: 'Less Than' },\n { value: 'lte', label: 'Less Than or Equal' },\n { value: 'contains', label: 'Contains' },\n { value: 'startsWith', label: 'Starts With' },\n { value: 'endsWith', label: 'Ends With' },\n { value: 'in', label: 'In (array)' },\n { value: 'notIn', label: 'Not In (array)' },\n { value: 'exists', label: 'Exists' },\n { value: 'notExists', label: 'Not Exists' },\n { value: 'regex', label: 'Regex Match' },\n]\n\ntype TriggerFormValues = {\n name: string\n description: string\n eventPattern: string\n enabled: boolean\n priority: number\n filterConditions: Array<{ field: string; operator: string; value: string }>\n contextMappings: Array<{ targetKey: string; sourceExpression: string; defaultValue: string }>\n debounceMs: string\n maxConcurrentInstances: string\n}\n\nconst defaultFormValues: TriggerFormValues = {\n name: '',\n description: '',\n eventPattern: '',\n enabled: true,\n priority: 0,\n filterConditions: [],\n contextMappings: [],\n debounceMs: '',\n maxConcurrentInstances: '',\n}\n\nexport function EventTriggersEditor({\n workflowDefinitionId,\n workflowId,\n className,\n}: EventTriggersEditorProps) {\n const t = useT()\n const queryClient = useQueryClient()\n const [showDialog, setShowDialog] = useState(false)\n const [editingTrigger, setEditingTrigger] = useState<EventTrigger | null>(null)\n const [formValues, setFormValues] = useState<TriggerFormValues>(defaultFormValues)\n const [deleteConfirmId, setDeleteConfirmId] = useState<string | null>(null)\n\n // Fetch triggers for this workflow definition\n const { data: triggersData, isLoading } = useQuery({\n queryKey: ['workflow-triggers', workflowDefinitionId],\n queryFn: async () => {\n const result = await apiCall<{ data: EventTrigger[]; pagination: any }>(\n `/api/workflows/triggers?workflowDefinitionId=${workflowDefinitionId}&limit=100`\n )\n if (!result.ok) {\n throw new Error('Failed to load triggers')\n }\n return result.result?.data || []\n },\n enabled: !!workflowDefinitionId,\n })\n\n const triggers = triggersData || []\n\n // Create trigger mutation\n const createMutation = useMutation({\n mutationFn: async (values: TriggerFormValues) => {\n const payload = buildTriggerPayload(values)\n const result = await apiCall<{ data: EventTrigger; error?: string }>(\n '/api/workflows/triggers',\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n ...payload,\n workflowDefinitionId,\n }),\n }\n )\n if (!result.ok) {\n throw new Error(result.result?.error || 'Failed to create trigger')\n }\n return result.result?.data\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflow-triggers', workflowDefinitionId] })\n flash('Event trigger created successfully', 'success')\n handleCloseDialog()\n },\n onError: (error: Error) => {\n flash(error.message, 'error')\n },\n })\n\n // Update trigger mutation\n const updateMutation = useMutation({\n mutationFn: async ({ id, values }: { id: string; values: TriggerFormValues }) => {\n const payload = buildTriggerPayload(values)\n const result = await apiCall<{ data: EventTrigger; error?: string }>(\n `/api/workflows/triggers/${id}`,\n {\n method: 'PUT',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(payload),\n }\n )\n if (!result.ok) {\n throw new Error(result.result?.error || 'Failed to update trigger')\n }\n return result.result?.data\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflow-triggers', workflowDefinitionId] })\n flash('Event trigger updated successfully', 'success')\n handleCloseDialog()\n },\n onError: (error: Error) => {\n flash(error.message, 'error')\n },\n })\n\n // Delete trigger mutation\n const deleteMutation = useMutation({\n mutationFn: async (id: string) => {\n const result = await apiCall<{ error?: string }>(\n `/api/workflows/triggers/${id}`,\n { method: 'DELETE' }\n )\n if (!result.ok) {\n throw new Error(result.result?.error || 'Failed to delete trigger')\n }\n },\n onSuccess: () => {\n queryClient.invalidateQueries({ queryKey: ['workflow-triggers', workflowDefinitionId] })\n flash('Event trigger deleted successfully', 'success')\n setDeleteConfirmId(null)\n },\n onError: (error: Error) => {\n flash(error.message, 'error')\n },\n })\n\n // Build API payload from form values\n const buildTriggerPayload = useCallback((values: TriggerFormValues) => {\n const config: EventTrigger['config'] = {}\n\n if (values.filterConditions.length > 0) {\n config.filterConditions = values.filterConditions.map(fc => ({\n field: fc.field,\n operator: fc.operator,\n value: parseConditionValue(fc.value),\n }))\n }\n\n if (values.contextMappings.length > 0) {\n config.contextMapping = values.contextMappings.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue ? parseConditionValue(cm.defaultValue) : undefined,\n }))\n }\n\n if (values.debounceMs) {\n config.debounceMs = parseInt(values.debounceMs, 10)\n }\n\n if (values.maxConcurrentInstances) {\n config.maxConcurrentInstances = parseInt(values.maxConcurrentInstances, 10)\n }\n\n return {\n name: values.name,\n description: values.description || null,\n eventPattern: values.eventPattern,\n enabled: values.enabled,\n priority: values.priority,\n config: Object.keys(config).length > 0 ? config : null,\n }\n }, [])\n\n // Parse condition value (try JSON, fallback to string)\n const parseConditionValue = (value: string): unknown => {\n try {\n return JSON.parse(value)\n } catch {\n return value\n }\n }\n\n // Open dialog for creating new trigger\n const handleCreateNew = useCallback(() => {\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n setShowDialog(true)\n }, [])\n\n // Open dialog for editing trigger\n const handleEdit = useCallback((trigger: EventTrigger) => {\n setEditingTrigger(trigger)\n setFormValues({\n name: trigger.name,\n description: trigger.description || '',\n eventPattern: trigger.eventPattern,\n enabled: trigger.enabled,\n priority: trigger.priority,\n filterConditions: trigger.config?.filterConditions?.map(fc => ({\n field: fc.field,\n operator: fc.operator,\n value: typeof fc.value === 'string' ? fc.value : JSON.stringify(fc.value),\n })) || [],\n contextMappings: trigger.config?.contextMapping?.map(cm => ({\n targetKey: cm.targetKey,\n sourceExpression: cm.sourceExpression,\n defaultValue: cm.defaultValue !== undefined\n ? (typeof cm.defaultValue === 'string' ? cm.defaultValue : JSON.stringify(cm.defaultValue))\n : '',\n })) || [],\n debounceMs: trigger.config?.debounceMs?.toString() || '',\n maxConcurrentInstances: trigger.config?.maxConcurrentInstances?.toString() || '',\n })\n setShowDialog(true)\n }, [])\n\n // Close dialog\n const handleCloseDialog = useCallback(() => {\n setShowDialog(false)\n setEditingTrigger(null)\n setFormValues(defaultFormValues)\n }, [])\n\n // Submit form\n const handleSubmit = useCallback(() => {\n if (!formValues.name.trim()) {\n flash('Name is required', 'error')\n return\n }\n if (!formValues.eventPattern.trim()) {\n flash('Event pattern is required', 'error')\n return\n }\n\n if (editingTrigger) {\n updateMutation.mutate({ id: editingTrigger.id, values: formValues })\n } else {\n createMutation.mutate(formValues)\n }\n }, [formValues, editingTrigger, createMutation, updateMutation])\n\n // Add filter condition\n const addFilterCondition = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: [...prev.filterConditions, { field: '', operator: 'eq', value: '' }],\n }))\n }, [])\n\n // Remove filter condition\n const removeFilterCondition = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update filter condition\n const updateFilterCondition = useCallback((index: number, field: string, value: string) => {\n setFormValues(prev => ({\n ...prev,\n filterConditions: prev.filterConditions.map((fc, i) =>\n i === index ? { ...fc, [field]: value } : fc\n ),\n }))\n }, [])\n\n // Add context mapping\n const addContextMapping = useCallback(() => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: [...prev.contextMappings, { targetKey: '', sourceExpression: '', defaultValue: '' }],\n }))\n }, [])\n\n // Remove context mapping\n const removeContextMapping = useCallback((index: number) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.filter((_, i) => i !== index),\n }))\n }, [])\n\n // Update context mapping\n const updateContextMapping = useCallback((index: number, field: string, value: string) => {\n setFormValues(prev => ({\n ...prev,\n contextMappings: prev.contextMappings.map((cm, i) =>\n i === index ? { ...cm, [field]: value } : cm\n ),\n }))\n }, [])\n\n const isSaving = createMutation.isPending || updateMutation.isPending\n\n return (\n <div className={className}>\n <div className=\"rounded-lg border bg-card p-4\">\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"flex items-center gap-2\">\n <Zap className=\"w-5 h-5 text-amber-500\" />\n <h3 className=\"text-sm font-semibold uppercase text-muted-foreground\">Event Triggers</h3>\n </div>\n <Button size=\"sm\" variant=\"outline\" onClick={handleCreateNew}>\n <Plus className=\"w-4 h-4 mr-1\" />\n Add Trigger\n </Button>\n </div>\n\n <p className=\"text-xs text-muted-foreground mb-4\">\n Configure events that automatically start this workflow. When a matching event occurs in the system,\n a new workflow instance will be created with the mapped context.\n </p>\n\n {isLoading ? (\n <div className=\"flex items-center justify-center py-8\">\n <Spinner className=\"w-6 h-6\" />\n </div>\n ) : triggers.length === 0 ? (\n <Alert variant=\"info\">\n <AlertCircle className=\"w-4 h-4\" />\n <AlertTitle>No triggers configured</AlertTitle>\n <AlertDescription>\n Click \"Add Trigger\" to create an event trigger that automatically starts this workflow.\n </AlertDescription>\n </Alert>\n ) : (\n <div className=\"space-y-2\">\n {triggers.map(trigger => (\n <div\n key={trigger.id}\n className=\"flex items-center justify-between p-3 rounded-lg border bg-background hover:bg-accent/50 transition-colors\"\n >\n <div className=\"flex items-center gap-3\">\n <Badge variant={trigger.enabled ? 'default' : 'secondary'}>\n {trigger.enabled ? 'Active' : 'Disabled'}\n </Badge>\n <div>\n <div className=\"font-medium text-sm\">{trigger.name}</div>\n <code className=\"text-xs text-muted-foreground\">{trigger.eventPattern}</code>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => handleEdit(trigger)}>\n <Edit2 className=\"w-4 h-4\" />\n </Button>\n <Button\n size=\"sm\"\n variant=\"ghost\"\n className=\"text-destructive hover:text-destructive\"\n onClick={() => setDeleteConfirmId(trigger.id)}\n >\n <Trash2 className=\"w-4 h-4\" />\n </Button>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n\n {/* Create/Edit Dialog */}\n <Dialog open={showDialog} onOpenChange={setShowDialog}>\n <DialogContent className=\"max-w-2xl max-h-[90vh] overflow-y-auto\">\n <DialogHeader>\n <DialogTitle>\n {editingTrigger ? 'Edit Event Trigger' : 'Create Event Trigger'}\n </DialogTitle>\n <DialogDescription>\n Configure when this workflow should be automatically started based on system events.\n </DialogDescription>\n </DialogHeader>\n\n <div className=\"space-y-4 py-4\">\n {/* Basic Info */}\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-name\">Name *</Label>\n <Input\n id=\"trigger-name\"\n value={formValues.name}\n onChange={e => setFormValues(prev => ({ ...prev, name: e.target.value }))}\n placeholder=\"Order Approval Trigger\"\n />\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-priority\">Priority</Label>\n <Input\n id=\"trigger-priority\"\n type=\"number\"\n value={formValues.priority}\n onChange={e => setFormValues(prev => ({ ...prev, priority: parseInt(e.target.value) || 0 }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">Higher priority triggers execute first</p>\n </div>\n </div>\n\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-description\">Description</Label>\n <Textarea\n id=\"trigger-description\"\n value={formValues.description}\n onChange={e => setFormValues(prev => ({ ...prev, description: e.target.value }))}\n placeholder=\"Describe when this trigger should fire...\"\n rows={2}\n />\n </div>\n\n {/* Event Pattern */}\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-pattern\">Event Pattern *</Label>\n <div className=\"flex gap-2\">\n <Input\n id=\"trigger-pattern\"\n value={formValues.eventPattern}\n onChange={e => setFormValues(prev => ({ ...prev, eventPattern: e.target.value }))}\n placeholder=\"sales.orders.updated\"\n className=\"flex-1\"\n />\n <EventSelect\n value=\"\"\n onChange={(eventId) => setFormValues(prev => ({ ...prev, eventPattern: eventId }))}\n placeholder=\"Quick select...\"\n className=\"w-[200px]\"\n />\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Use * as wildcard: \"sales.orders.*\" matches any order event\n </p>\n </div>\n\n {/* Enabled Switch */}\n <div className=\"flex items-center gap-2\">\n <Switch\n id=\"trigger-enabled\"\n checked={formValues.enabled}\n onCheckedChange={checked => setFormValues(prev => ({ ...prev, enabled: checked }))}\n />\n <Label htmlFor=\"trigger-enabled\">Enabled</Label>\n </div>\n\n {/* Filter Conditions */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label>Filter Conditions</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addFilterCondition}>\n <Plus className=\"w-4 h-4 mr-1\" />\n Add Condition\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Only trigger when the event payload matches these conditions (all must match)\n </p>\n {formValues.filterConditions.map((fc, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n <Input\n value={fc.field}\n onChange={e => updateFilterCondition(index, 'field', e.target.value)}\n placeholder=\"status\"\n className=\"w-1/3\"\n />\n <select\n value={fc.operator}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => updateFilterCondition(index, 'operator', e.target.value)}\n className=\"h-10 w-[140px] rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\"\n >\n {FILTER_OPERATORS.map(op => (\n <option key={op.value} value={op.value}>\n {op.label}\n </option>\n ))}\n </select>\n <Input\n value={fc.value}\n onChange={e => updateFilterCondition(index, 'value', e.target.value)}\n placeholder=\"submitted\"\n className=\"flex-1\"\n />\n <Button size=\"icon\" variant=\"ghost\" onClick={() => removeFilterCondition(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Context Mapping */}\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label>Context Mapping</Label>\n <Button size=\"sm\" variant=\"ghost\" onClick={addContextMapping}>\n <Plus className=\"w-4 h-4 mr-1\" />\n Add Mapping\n </Button>\n </div>\n <p className=\"text-xs text-muted-foreground\">\n Map values from the event payload to the workflow's initial context\n </p>\n {formValues.contextMappings.map((cm, index) => (\n <div key={index} className=\"flex items-center gap-2\">\n <Input\n value={cm.targetKey}\n onChange={e => updateContextMapping(index, 'targetKey', e.target.value)}\n placeholder=\"orderId\"\n className=\"w-1/3\"\n />\n <span className=\"text-muted-foreground\">=</span>\n <Input\n value={cm.sourceExpression}\n onChange={e => updateContextMapping(index, 'sourceExpression', e.target.value)}\n placeholder=\"id\"\n className=\"flex-1\"\n />\n <Input\n value={cm.defaultValue}\n onChange={e => updateContextMapping(index, 'defaultValue', e.target.value)}\n placeholder=\"default\"\n className=\"w-24\"\n />\n <Button size=\"icon\" variant=\"ghost\" onClick={() => removeContextMapping(index)}>\n <X className=\"w-4 h-4\" />\n </Button>\n </div>\n ))}\n </div>\n\n {/* Advanced Options */}\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-debounce\">Debounce (ms)</Label>\n <Input\n id=\"trigger-debounce\"\n type=\"number\"\n value={formValues.debounceMs}\n onChange={e => setFormValues(prev => ({ ...prev, debounceMs: e.target.value }))}\n placeholder=\"0\"\n />\n <p className=\"text-xs text-muted-foreground\">Delay to prevent rapid re-triggers</p>\n </div>\n <div className=\"space-y-1\">\n <Label htmlFor=\"trigger-max-concurrent\">Max Concurrent Instances</Label>\n <Input\n id=\"trigger-max-concurrent\"\n type=\"number\"\n value={formValues.maxConcurrentInstances}\n onChange={e => setFormValues(prev => ({ ...prev, maxConcurrentInstances: e.target.value }))}\n placeholder=\"Unlimited\"\n />\n <p className=\"text-xs text-muted-foreground\">Limit simultaneous workflow instances</p>\n </div>\n </div>\n </div>\n\n <DialogFooter>\n <Button variant=\"outline\" onClick={handleCloseDialog} disabled={isSaving}>\n Cancel\n </Button>\n <Button onClick={handleSubmit} disabled={isSaving}>\n {isSaving ? <Spinner className=\"w-4 h-4 mr-2\" /> : null}\n {editingTrigger ? 'Update' : 'Create'}\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n\n {/* Delete Confirmation Dialog */}\n <Dialog open={!!deleteConfirmId} onOpenChange={() => setDeleteConfirmId(null)}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Delete Event Trigger?</DialogTitle>\n <DialogDescription>\n This will permanently delete the event trigger. Workflows will no longer be automatically started by this trigger.\n </DialogDescription>\n </DialogHeader>\n <DialogFooter>\n <Button variant=\"outline\" onClick={() => setDeleteConfirmId(null)}>\n Cancel\n </Button>\n <Button\n variant=\"destructive\"\n onClick={() => deleteConfirmId && deleteMutation.mutate(deleteConfirmId)}\n disabled={deleteMutation.isPending}\n >\n {deleteMutation.isPending ? <Spinner className=\"w-4 h-4 mr-2\" /> : null}\n Delete\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,38 +0,0 @@
1
- import { createModuleEvents } from "@open-mercato/shared/modules/events";
2
- const events = [
3
- // Workflow Definitions
4
- { id: "workflows.definitions.created", label: "Workflow Definition Created", entity: "definitions", category: "crud" },
5
- { id: "workflows.definitions.updated", label: "Workflow Definition Updated", entity: "definitions", category: "crud" },
6
- { id: "workflows.definitions.deleted", label: "Workflow Definition Deleted", entity: "definitions", category: "crud" },
7
- // Workflow Instances
8
- { id: "workflows.instances.created", label: "Workflow Instance Created", entity: "instances", category: "crud" },
9
- { id: "workflows.instances.updated", label: "Workflow Instance Updated", entity: "instances", category: "crud" },
10
- { id: "workflows.instances.deleted", label: "Workflow Instance Deleted", entity: "instances", category: "crud" },
11
- // Workflow Lifecycle Events
12
- { id: "workflows.instance.started", label: "Workflow Started", category: "lifecycle" },
13
- { id: "workflows.instance.completed", label: "Workflow Completed", category: "lifecycle" },
14
- { id: "workflows.instance.failed", label: "Workflow Failed", category: "lifecycle" },
15
- { id: "workflows.instance.cancelled", label: "Workflow Cancelled", category: "lifecycle" },
16
- { id: "workflows.instance.paused", label: "Workflow Paused", category: "lifecycle" },
17
- { id: "workflows.instance.resumed", label: "Workflow Resumed", category: "lifecycle" },
18
- // Activity Events
19
- { id: "workflows.activity.started", label: "Activity Started", category: "lifecycle" },
20
- { id: "workflows.activity.completed", label: "Activity Completed", category: "lifecycle" },
21
- { id: "workflows.activity.failed", label: "Activity Failed", category: "lifecycle" },
22
- // Event Triggers
23
- { id: "workflows.triggers.created", label: "Trigger Created", entity: "triggers", category: "crud" },
24
- { id: "workflows.triggers.updated", label: "Trigger Updated", entity: "triggers", category: "crud" },
25
- { id: "workflows.triggers.deleted", label: "Trigger Deleted", entity: "triggers", category: "crud" }
26
- ];
27
- const eventsConfig = createModuleEvents({
28
- moduleId: "workflows",
29
- events
30
- });
31
- const emitWorkflowsEvent = eventsConfig.emit;
32
- var events_default = eventsConfig;
33
- export {
34
- events_default as default,
35
- emitWorkflowsEvent,
36
- eventsConfig
37
- };
38
- //# sourceMappingURL=events.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 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.definitions.created', label: 'Workflow Definition Created', entity: 'definitions', category: 'crud' },\n { id: 'workflows.definitions.updated', label: 'Workflow Definition Updated', entity: 'definitions', category: 'crud' },\n { id: 'workflows.definitions.deleted', label: 'Workflow Definition Deleted', entity: 'definitions', category: 'crud' },\n\n // Workflow Instances\n { id: 'workflows.instances.created', label: 'Workflow Instance Created', entity: 'instances', category: 'crud' },\n { id: 'workflows.instances.updated', label: 'Workflow Instance Updated', entity: 'instances', category: 'crud' },\n { id: 'workflows.instances.deleted', label: 'Workflow Instance Deleted', entity: 'instances', 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.triggers.created', label: 'Trigger Created', entity: 'triggers', category: 'crud' },\n { id: 'workflows.triggers.updated', label: 'Trigger Updated', entity: 'triggers', category: 'crud' },\n { id: 'workflows.triggers.deleted', label: 'Trigger Deleted', entity: 'triggers', category: 'crud' },\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,iCAAiC,OAAO,+BAA+B,QAAQ,eAAe,UAAU,OAAO;AAAA,EACrH,EAAE,IAAI,iCAAiC,OAAO,+BAA+B,QAAQ,eAAe,UAAU,OAAO;AAAA,EACrH,EAAE,IAAI,iCAAiC,OAAO,+BAA+B,QAAQ,eAAe,UAAU,OAAO;AAAA;AAAA,EAGrH,EAAE,IAAI,+BAA+B,OAAO,6BAA6B,QAAQ,aAAa,UAAU,OAAO;AAAA,EAC/G,EAAE,IAAI,+BAA+B,OAAO,6BAA6B,QAAQ,aAAa,UAAU,OAAO;AAAA,EAC/G,EAAE,IAAI,+BAA+B,OAAO,6BAA6B,QAAQ,aAAa,UAAU,OAAO;AAAA;AAAA,EAG/G,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,8BAA8B,OAAO,mBAAmB,QAAQ,YAAY,UAAU,OAAO;AAAA,EACnG,EAAE,IAAI,8BAA8B,OAAO,mBAAmB,QAAQ,YAAY,UAAU,OAAO;AAAA,EACnG,EAAE,IAAI,8BAA8B,OAAO,mBAAmB,QAAQ,YAAY,UAAU,OAAO;AACrG;AAEO,MAAM,eAAe,mBAAmB;AAAA,EAC7C,UAAU;AAAA,EACV;AACF,CAAC;AAGM,MAAM,qBAAqB,aAAa;AAK/C,IAAO,iBAAQ;",
6
- "names": []
7
- }
@@ -1,257 +0,0 @@
1
- {
2
- "workflowId": "sales_order_approval_v1",
3
- "workflowName": "Sales Order Approval Workflow",
4
- "description": "Approval workflow for sales orders requiring authorization before processing",
5
- "version": 1,
6
- "enabled": true,
7
- "metadata": {
8
- "category": "Sales",
9
- "tags": [
10
- "sales",
11
- "approval",
12
- "order"
13
- ],
14
- "icon": "check-circle",
15
- "entityType": "SalesOrder"
16
- },
17
- "definition": {
18
- "steps": [
19
- {
20
- "stepId": "start",
21
- "stepName": "Start",
22
- "stepType": "START",
23
- "description": "Initialize order approval workflow"
24
- },
25
- {
26
- "stepId": "pending_approval",
27
- "stepName": "Pending Approval",
28
- "stepType": "USER_TASK",
29
- "description": "Order awaiting approval decision",
30
- "userTaskConfig": {
31
- "formSchema": {
32
- "type": "object",
33
- "required": [
34
- "decision"
35
- ],
36
- "properties": {
37
- "comments": {
38
- "type": "string",
39
- "title": "Comments",
40
- "description": "Optional comments for the decision"
41
- },
42
- "decision": {
43
- "enum": [
44
- "approve",
45
- "reject"
46
- ],
47
- "type": "string",
48
- "title": "Decision",
49
- "description": "Approve or reject the order"
50
- }
51
- }
52
- },
53
- "slaDuration": "PT24H"
54
- }
55
- },
56
- {
57
- "stepId": "approved",
58
- "stepName": "Approved",
59
- "stepType": "AUTOMATED",
60
- "description": "Order has been approved"
61
- },
62
- {
63
- "stepId": "rejected",
64
- "stepName": "Rejected",
65
- "stepType": "AUTOMATED",
66
- "description": "Order has been rejected"
67
- },
68
- {
69
- "stepId": "end",
70
- "stepName": "Complete",
71
- "stepType": "END",
72
- "description": "Workflow complete"
73
- }
74
- ],
75
- "triggers": [
76
- {
77
- "name": "Order Approval Trigger",
78
- "config": {
79
- "entityType": "SalesOrder"
80
- },
81
- "enabled": true,
82
- "priority": 0,
83
- "triggerId": "order_approval_trigger",
84
- "description": "Triggers when a new sales order is created",
85
- "eventPattern": "sales.orders.created"
86
- }
87
- ],
88
- "transitions": [
89
- {
90
- "transitionId": "start_to_pending",
91
- "transitionName": "Submit for Approval",
92
- "fromStepId": "start",
93
- "toStepId": "pending_approval",
94
- "trigger": "auto",
95
- "priority": 100,
96
- "continueOnActivityFailure": true,
97
- "activities": [
98
- {
99
- "activityId": "set_pending_status",
100
- "activityName": "Set Order to Pending Approval",
101
- "activityType": "UPDATE_ENTITY",
102
- "async": false,
103
- "config": {
104
- "commandId": "sales.orders.update",
105
- "statusDictionary": "sales.order_status",
106
- "input": {
107
- "id": "{{context.id}}",
108
- "statusValue": "pending_approval"
109
- }
110
- },
111
- "retryPolicy": {
112
- "maxAttempts": 3,
113
- "initialIntervalMs": 1000,
114
- "backoffCoefficient": 2,
115
- "maxIntervalMs": 10000
116
- }
117
- },
118
- {
119
- "activityId": "emit_approval_requested",
120
- "activityName": "Emit Approval Requested Event",
121
- "activityType": "EMIT_EVENT",
122
- "async": true,
123
- "config": {
124
- "eventName": "sales.order.approval.requested",
125
- "payload": {
126
- "orderId": "{{context.id}}",
127
- "workflowInstanceId": "{{workflow.instanceId}}"
128
- }
129
- }
130
- }
131
- ]
132
- },
133
- {
134
- "transitionId": "pending_approval_to_approved",
135
- "transitionName": "Approve Order",
136
- "fromStepId": "pending_approval",
137
- "toStepId": "approved",
138
- "trigger": "auto",
139
- "priority": 100,
140
- "preConditions": [
141
- {
142
- "ruleId": "workflow_order_approval_check_approved",
143
- "required": true
144
- }
145
- ],
146
- "continueOnActivityFailure": true,
147
- "activities": [
148
- {
149
- "activityId": "set_approved_status",
150
- "activityName": "Set Order to Approved",
151
- "activityType": "UPDATE_ENTITY",
152
- "async": false,
153
- "config": {
154
- "commandId": "sales.orders.update",
155
- "statusDictionary": "sales.order_status",
156
- "input": {
157
- "id": "{{context.id}}",
158
- "statusValue": "approved"
159
- }
160
- },
161
- "retryPolicy": {
162
- "maxAttempts": 3,
163
- "initialIntervalMs": 1000,
164
- "backoffCoefficient": 2,
165
- "maxIntervalMs": 10000
166
- }
167
- },
168
- {
169
- "activityId": "emit_order_approved",
170
- "activityName": "Emit Order Approved Event",
171
- "activityType": "EMIT_EVENT",
172
- "async": true,
173
- "config": {
174
- "eventName": "sales.order.approval.approved",
175
- "payload": {
176
- "orderId": "{{context.id}}",
177
- "workflowInstanceId": "{{workflow.instanceId}}",
178
- "approvedBy": "{{context.completedBy}}",
179
- "comments": "{{context.comments}}"
180
- }
181
- }
182
- }
183
- ]
184
- },
185
- {
186
- "transitionId": "pending_approval_to_rejected",
187
- "transitionName": "Reject Order",
188
- "fromStepId": "pending_approval",
189
- "toStepId": "rejected",
190
- "trigger": "auto",
191
- "priority": 90,
192
- "preConditions": [
193
- {
194
- "ruleId": "workflow_order_approval_check_rejected",
195
- "required": true
196
- }
197
- ],
198
- "continueOnActivityFailure": true,
199
- "activities": [
200
- {
201
- "activityId": "set_rejected_status",
202
- "activityName": "Set Order to Rejected",
203
- "activityType": "UPDATE_ENTITY",
204
- "async": false,
205
- "config": {
206
- "commandId": "sales.orders.update",
207
- "statusDictionary": "sales.order_status",
208
- "input": {
209
- "id": "{{context.id}}",
210
- "statusValue": "rejected"
211
- }
212
- },
213
- "retryPolicy": {
214
- "maxAttempts": 3,
215
- "initialIntervalMs": 1000,
216
- "backoffCoefficient": 2,
217
- "maxIntervalMs": 10000
218
- }
219
- },
220
- {
221
- "activityId": "emit_order_rejected",
222
- "activityName": "Emit Order Rejected Event",
223
- "activityType": "EMIT_EVENT",
224
- "async": true,
225
- "config": {
226
- "eventName": "sales.order.approval.rejected",
227
- "payload": {
228
- "orderId": "{{context.id}}",
229
- "workflowInstanceId": "{{workflow.instanceId}}",
230
- "rejectedBy": "{{context.completedBy}}",
231
- "comments": "{{context.comments}}"
232
- }
233
- }
234
- }
235
- ]
236
- },
237
- {
238
- "transitionId": "approved_to_end",
239
- "transitionName": "Complete After Approval",
240
- "fromStepId": "approved",
241
- "toStepId": "end",
242
- "trigger": "auto",
243
- "priority": 100,
244
- "continueOnActivityFailure": true
245
- },
246
- {
247
- "transitionId": "rejected_to_end",
248
- "transitionName": "Complete After Rejection",
249
- "fromStepId": "rejected",
250
- "toStepId": "end",
251
- "trigger": "auto",
252
- "priority": 100,
253
- "continueOnActivityFailure": true
254
- }
255
- ]
256
- }
257
- }
@@ -1,32 +0,0 @@
1
- [
2
- {
3
- "ruleId": "workflow_order_approval_check_approved",
4
- "ruleName": "Check Decision is Approve",
5
- "description": "Validates that the approval task decision is 'approve'",
6
- "ruleType": "GUARD",
7
- "entityType": "workflow:sales_order_approval_v1:transition",
8
- "eventType": "pre_transition",
9
- "conditionExpression": {
10
- "field": "workflowContext.decision",
11
- "operator": "=",
12
- "value": "approve"
13
- },
14
- "enabled": true,
15
- "priority": 100
16
- },
17
- {
18
- "ruleId": "workflow_order_approval_check_rejected",
19
- "ruleName": "Check Decision is Reject",
20
- "description": "Validates that the approval task decision is 'reject'",
21
- "ruleType": "GUARD",
22
- "entityType": "workflow:sales_order_approval_v1:transition",
23
- "eventType": "pre_transition",
24
- "conditionExpression": {
25
- "field": "workflowContext.decision",
26
- "operator": "=",
27
- "value": "reject"
28
- },
29
- "enabled": true,
30
- "priority": 100
31
- }
32
- ]