@open-mercato/core 0.6.2-develop.3400.2.d948268f50 → 0.6.2-develop.3406.1.2b403f40da

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 (95) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/generated/entities/workflow_definition/index.js +2 -0
  3. package/dist/generated/entities/workflow_definition/index.js.map +2 -2
  4. package/dist/generated/entity-fields-registry.js +1 -0
  5. package/dist/generated/entity-fields-registry.js.map +2 -2
  6. package/dist/modules/sales/workflows.js +180 -0
  7. package/dist/modules/sales/workflows.js.map +7 -0
  8. package/dist/modules/workflows/api/definitions/[id]/customize/route.js +172 -0
  9. package/dist/modules/workflows/api/definitions/[id]/customize/route.js.map +7 -0
  10. package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js +205 -0
  11. package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js.map +7 -0
  12. package/dist/modules/workflows/api/definitions/[id]/route.js +91 -2
  13. package/dist/modules/workflows/api/definitions/[id]/route.js.map +2 -2
  14. package/dist/modules/workflows/api/definitions/route.js +32 -9
  15. package/dist/modules/workflows/api/definitions/route.js.map +2 -2
  16. package/dist/modules/workflows/api/definitions/serialize.js +36 -1
  17. package/dist/modules/workflows/api/definitions/serialize.js.map +2 -2
  18. package/dist/modules/workflows/backend/definitions/[id]/page.js +161 -52
  19. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
  20. package/dist/modules/workflows/backend/definitions/page.js +37 -34
  21. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  22. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +134 -41
  23. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  24. package/dist/modules/workflows/cli.js +19 -121
  25. package/dist/modules/workflows/cli.js.map +2 -2
  26. package/dist/modules/workflows/components/formConfig.js +1 -1
  27. package/dist/modules/workflows/components/formConfig.js.map +2 -2
  28. package/dist/modules/workflows/data/entities.js +3 -0
  29. package/dist/modules/workflows/data/entities.js.map +2 -2
  30. package/dist/modules/workflows/data/validators.js +2 -2
  31. package/dist/modules/workflows/data/validators.js.map +2 -2
  32. package/dist/modules/workflows/events.js +2 -0
  33. package/dist/modules/workflows/events.js.map +2 -2
  34. package/dist/modules/workflows/examples/guard-rules-example.json +6 -6
  35. package/dist/modules/workflows/examples/order-approval-guard-rules.json +2 -2
  36. package/dist/modules/workflows/frontend/checkout-demo/page.js +4 -4
  37. package/dist/modules/workflows/frontend/checkout-demo/page.js.map +2 -2
  38. package/dist/modules/workflows/lib/code-registry.js +40 -0
  39. package/dist/modules/workflows/lib/code-registry.js.map +7 -0
  40. package/dist/modules/workflows/lib/find-definition.js +58 -0
  41. package/dist/modules/workflows/lib/find-definition.js.map +7 -0
  42. package/dist/modules/workflows/lib/seeds.js +0 -3
  43. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  44. package/dist/modules/workflows/lib/start-validator.js +1 -20
  45. package/dist/modules/workflows/lib/start-validator.js.map +2 -2
  46. package/dist/modules/workflows/lib/workflow-executor.js +1 -19
  47. package/dist/modules/workflows/lib/workflow-executor.js.map +2 -2
  48. package/dist/modules/workflows/migrations/Migration20260414120000.js +13 -0
  49. package/dist/modules/workflows/migrations/Migration20260414120000.js.map +7 -0
  50. package/dist/modules/workflows/migrations/Migration20260428102318.js +32 -0
  51. package/dist/modules/workflows/migrations/Migration20260428102318.js.map +7 -0
  52. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +1 -1
  53. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +1 -1
  54. package/dist/modules/workflows/workflows.js +260 -0
  55. package/dist/modules/workflows/workflows.js.map +7 -0
  56. package/generated/entities/workflow_definition/index.ts +1 -0
  57. package/generated/entity-fields-registry.ts +1 -0
  58. package/package.json +7 -7
  59. package/src/modules/sales/workflows.ts +184 -0
  60. package/src/modules/workflows/api/definitions/[id]/customize/route.ts +197 -0
  61. package/src/modules/workflows/api/definitions/[id]/reset-to-code/route.ts +252 -0
  62. package/src/modules/workflows/api/definitions/[id]/route.ts +108 -4
  63. package/src/modules/workflows/api/definitions/route.ts +54 -10
  64. package/src/modules/workflows/api/definitions/serialize.ts +42 -0
  65. package/src/modules/workflows/backend/definitions/[id]/page.tsx +135 -11
  66. package/src/modules/workflows/backend/definitions/page.tsx +45 -33
  67. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +222 -97
  68. package/src/modules/workflows/cli.ts +32 -155
  69. package/src/modules/workflows/components/formConfig.tsx +2 -2
  70. package/src/modules/workflows/data/entities.ts +4 -1
  71. package/src/modules/workflows/data/validators.ts +4 -3
  72. package/src/modules/workflows/events.ts +2 -0
  73. package/src/modules/workflows/examples/guard-rules-example.json +6 -6
  74. package/src/modules/workflows/examples/order-approval-guard-rules.json +2 -2
  75. package/src/modules/workflows/frontend/checkout-demo/page.tsx +4 -4
  76. package/src/modules/workflows/i18n/de.json +16 -0
  77. package/src/modules/workflows/i18n/en.json +16 -0
  78. package/src/modules/workflows/i18n/es.json +16 -0
  79. package/src/modules/workflows/i18n/pl.json +16 -0
  80. package/src/modules/workflows/lib/code-registry.ts +65 -0
  81. package/src/modules/workflows/lib/find-definition.ts +100 -0
  82. package/src/modules/workflows/lib/seeds.ts +4 -3
  83. package/src/modules/workflows/lib/start-validator.ts +2 -35
  84. package/src/modules/workflows/lib/workflow-executor.ts +2 -39
  85. package/src/modules/workflows/migrations/.snapshot-open-mercato.json +10 -0
  86. package/src/modules/workflows/migrations/Migration20260414120000.ts +13 -0
  87. package/src/modules/workflows/migrations/Migration20260428102318.ts +57 -0
  88. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +1 -1
  89. package/src/modules/workflows/workflows.ts +278 -0
  90. package/dist/modules/workflows/examples/checkout-demo-definition.json +0 -486
  91. package/dist/modules/workflows/examples/order-approval-definition.json +0 -257
  92. package/dist/modules/workflows/examples/simple-approval-definition.json +0 -134
  93. package/src/modules/workflows/examples/checkout-demo-definition.json +0 -486
  94. package/src/modules/workflows/examples/order-approval-definition.json +0 -257
  95. package/src/modules/workflows/examples/simple-approval-definition.json +0 -134
@@ -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,134 +0,0 @@
1
- {
2
- "workflowId": "simple_approval_v1",
3
- "workflowName": "Simple Approval Workflow",
4
- "description": "Basic three-step approval workflow for testing: Start → Approval → End",
5
- "version": 1,
6
- "enabled": true,
7
- "metadata": {
8
- "category": "Testing",
9
- "tags": [
10
- "test",
11
- "approval",
12
- "simple"
13
- ],
14
- "icon": "check-circle"
15
- },
16
- "definition": {
17
- "steps": [
18
- {
19
- "stepId": "start",
20
- "stepName": "Start",
21
- "stepType": "START",
22
- "description": "Initialize workflow"
23
- },
24
- {
25
- "stepId": "approval",
26
- "stepName": "Pending Approval",
27
- "stepType": "USER_TASK",
28
- "description": "Approve or reject request",
29
- "userTaskConfig": {
30
- "assignedTo": "approver",
31
- "slaDuration": "PT1H"
32
- }
33
- },
34
- {
35
- "stepId": "end",
36
- "stepName": "Complete",
37
- "stepType": "END",
38
- "description": "Workflow complete"
39
- }
40
- ],
41
- "transitions": [
42
- {
43
- "transitionId": "start_to_approval",
44
- "transitionName": "Submit for Approval",
45
- "fromStepId": "start",
46
- "toStepId": "approval",
47
- "trigger": "auto",
48
- "priority": 100,
49
- "activities": [
50
- {
51
- "activityId": "notify_approver",
52
- "activityName": "Notify Approver",
53
- "activityType": "SEND_EMAIL",
54
- "config": {
55
- "to": "{{context.approver.email}}",
56
- "subject": "Approval Required: {{context.request.title}}",
57
- "template": "approval_request",
58
- "data": {
59
- "requestId": "{{context.request.id}}",
60
- "title": "{{context.request.title}}",
61
- "requester": "{{context.requester.name}}"
62
- }
63
- },
64
- "timeout": "PT10S",
65
- "async": true,
66
- "retryPolicy": {
67
- "maxAttempts": 3,
68
- "initialIntervalMs": 2000,
69
- "backoffCoefficient": 2,
70
- "maxIntervalMs": 20000
71
- }
72
- },
73
- {
74
- "activityId": "emit_approval_requested",
75
- "activityName": "Emit Approval Requested Event",
76
- "activityType": "EMIT_EVENT",
77
- "config": {
78
- "eventType": "approval.requested",
79
- "payload": {
80
- "requestId": "{{context.request.id}}",
81
- "workflowInstanceId": "{{workflow.instanceId}}"
82
- }
83
- },
84
- "async": true
85
- }
86
- ]
87
- },
88
- {
89
- "transitionId": "approval_to_end",
90
- "transitionName": "Approval Decision",
91
- "fromStepId": "approval",
92
- "toStepId": "end",
93
- "trigger": "manual",
94
- "priority": 100,
95
- "activities": [
96
- {
97
- "activityId": "notify_requester",
98
- "activityName": "Notify Requester of Decision",
99
- "activityType": "SEND_EMAIL",
100
- "config": {
101
- "to": "{{context.requester.email}}",
102
- "subject": "Approval Decision: {{context.request.title}}",
103
- "template": "approval_decision",
104
- "data": {
105
- "requestId": "{{context.request.id}}",
106
- "title": "{{context.request.title}}",
107
- "decision": "{{task.result.approved}}",
108
- "comments": "{{task.result.comments}}",
109
- "approver": "{{task.completedBy}}"
110
- }
111
- },
112
- "timeout": "PT10S",
113
- "async": true
114
- },
115
- {
116
- "activityId": "emit_approval_completed",
117
- "activityName": "Emit Approval Completed Event",
118
- "activityType": "EMIT_EVENT",
119
- "config": {
120
- "eventType": "approval.completed",
121
- "payload": {
122
- "requestId": "{{context.request.id}}",
123
- "approved": "{{task.result.approved}}",
124
- "approvedBy": "{{task.completedBy}}",
125
- "timestamp": "{{now}}"
126
- }
127
- },
128
- "async": true
129
- }
130
- ]
131
- }
132
- ]
133
- }
134
- }