@contractspec/example.workflow-system 1.57.0 → 1.58.0

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 (209) hide show
  1. package/dist/approval/approval.enum.d.ts +2 -7
  2. package/dist/approval/approval.enum.d.ts.map +1 -1
  3. package/dist/approval/approval.enum.js +20 -26
  4. package/dist/approval/approval.event.d.ts +108 -114
  5. package/dist/approval/approval.event.d.ts.map +1 -1
  6. package/dist/approval/approval.event.js +103 -210
  7. package/dist/approval/approval.handler.d.ts +17 -18
  8. package/dist/approval/approval.handler.d.ts.map +1 -1
  9. package/dist/approval/approval.operations.d.ts +429 -435
  10. package/dist/approval/approval.operations.d.ts.map +1 -1
  11. package/dist/approval/approval.operations.js +364 -339
  12. package/dist/approval/approval.schema.d.ts +86 -91
  13. package/dist/approval/approval.schema.d.ts.map +1 -1
  14. package/dist/approval/approval.schema.js +71 -107
  15. package/dist/approval/index.d.ts +8 -5
  16. package/dist/approval/index.d.ts.map +1 -0
  17. package/dist/approval/index.js +484 -5
  18. package/dist/browser/approval/approval.enum.js +22 -0
  19. package/dist/browser/approval/approval.event.js +112 -0
  20. package/dist/browser/approval/approval.operations.js +369 -0
  21. package/dist/browser/approval/approval.schema.js +73 -0
  22. package/dist/browser/approval/index.js +484 -0
  23. package/dist/browser/docs/index.js +103 -0
  24. package/dist/browser/docs/workflow-system.docblock.js +103 -0
  25. package/dist/browser/entities/approval.js +119 -0
  26. package/dist/browser/entities/index.js +508 -0
  27. package/dist/browser/entities/instance.js +161 -0
  28. package/dist/browser/entities/step.js +124 -0
  29. package/dist/browser/entities/workflow.js +82 -0
  30. package/dist/browser/example.js +42 -0
  31. package/dist/browser/handlers/index.js +253 -0
  32. package/dist/browser/handlers/workflow.handlers.js +253 -0
  33. package/dist/browser/index.js +3120 -0
  34. package/dist/browser/instance/index.js +677 -0
  35. package/dist/browser/instance/instance.enum.js +15 -0
  36. package/dist/browser/instance/instance.event.js +164 -0
  37. package/dist/browser/instance/instance.handler.js +356 -0
  38. package/dist/browser/instance/instance.operations.js +9 -0
  39. package/dist/browser/instance/instance.schema.js +101 -0
  40. package/dist/browser/presentations/index.js +109 -0
  41. package/dist/browser/seeders/index.js +3 -0
  42. package/dist/browser/shared/index.js +3 -0
  43. package/dist/browser/shared/mock-data.js +11 -0
  44. package/dist/browser/shared/types.js +0 -0
  45. package/dist/browser/state-machine/index.js +6 -0
  46. package/dist/browser/tests/operations.test-spec.js +6 -0
  47. package/dist/browser/ui/WorkflowDashboard.js +3 -0
  48. package/dist/browser/ui/hooks/index.js +50 -0
  49. package/dist/browser/ui/hooks/useWorkflowList.js +50 -0
  50. package/dist/browser/ui/index.js +54 -0
  51. package/dist/browser/ui/renderers/index.js +227 -0
  52. package/dist/browser/ui/renderers/workflow.markdown.js +227 -0
  53. package/dist/browser/workflow/index.js +21 -0
  54. package/dist/browser/workflow/workflow.enum.js +36 -0
  55. package/dist/browser/workflow/workflow.event.js +6 -0
  56. package/dist/browser/workflow/workflow.handler.js +5 -0
  57. package/dist/browser/workflow/workflow.operations.js +8 -0
  58. package/dist/browser/workflow/workflow.schema.js +151 -0
  59. package/dist/browser/workflow-system.capability.js +5 -0
  60. package/dist/browser/workflow-system.feature.js +3 -0
  61. package/dist/docs/index.d.ts +2 -1
  62. package/dist/docs/index.d.ts.map +1 -0
  63. package/dist/docs/index.js +104 -1
  64. package/dist/docs/workflow-system.docblock.d.ts +2 -1
  65. package/dist/docs/workflow-system.docblock.d.ts.map +1 -0
  66. package/dist/docs/workflow-system.docblock.js +45 -56
  67. package/dist/entities/approval.d.ts +35 -40
  68. package/dist/entities/approval.d.ts.map +1 -1
  69. package/dist/entities/approval.js +116 -124
  70. package/dist/entities/index.d.ts +132 -137
  71. package/dist/entities/index.d.ts.map +1 -1
  72. package/dist/entities/index.js +506 -29
  73. package/dist/entities/instance.d.ts +46 -51
  74. package/dist/entities/instance.d.ts.map +1 -1
  75. package/dist/entities/instance.js +158 -164
  76. package/dist/entities/step.d.ts +31 -36
  77. package/dist/entities/step.d.ts.map +1 -1
  78. package/dist/entities/step.js +122 -132
  79. package/dist/entities/workflow.d.ts +22 -27
  80. package/dist/entities/workflow.d.ts.map +1 -1
  81. package/dist/entities/workflow.js +80 -99
  82. package/dist/example.d.ts +2 -6
  83. package/dist/example.d.ts.map +1 -1
  84. package/dist/example.js +41 -55
  85. package/dist/handlers/index.d.ts +2 -2
  86. package/dist/handlers/index.d.ts.map +1 -0
  87. package/dist/handlers/index.js +254 -3
  88. package/dist/handlers/workflow.handlers.d.ts +107 -106
  89. package/dist/handlers/workflow.handlers.d.ts.map +1 -1
  90. package/dist/handlers/workflow.handlers.js +237 -246
  91. package/dist/index.d.ts +15 -26
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +3121 -26
  94. package/dist/instance/index.d.ts +8 -5
  95. package/dist/instance/index.d.ts.map +1 -0
  96. package/dist/instance/index.js +677 -5
  97. package/dist/instance/instance.enum.d.ts +1 -6
  98. package/dist/instance/instance.enum.d.ts.map +1 -1
  99. package/dist/instance/instance.enum.js +14 -18
  100. package/dist/instance/instance.event.d.ts +313 -319
  101. package/dist/instance/instance.event.d.ts.map +1 -1
  102. package/dist/instance/instance.event.js +151 -279
  103. package/dist/instance/instance.handler.d.ts +21 -22
  104. package/dist/instance/instance.handler.d.ts.map +1 -1
  105. package/dist/instance/instance.handler.js +352 -89
  106. package/dist/instance/instance.operations.d.ts +819 -825
  107. package/dist/instance/instance.operations.d.ts.map +1 -1
  108. package/dist/instance/instance.operations.js +10 -464
  109. package/dist/instance/instance.schema.d.ts +196 -201
  110. package/dist/instance/instance.schema.d.ts.map +1 -1
  111. package/dist/instance/instance.schema.js +97 -167
  112. package/dist/presentations/index.d.ts +23 -28
  113. package/dist/presentations/index.d.ts.map +1 -1
  114. package/dist/presentations/index.js +104 -334
  115. package/dist/seeders/index.d.ts +4 -8
  116. package/dist/seeders/index.d.ts.map +1 -1
  117. package/dist/seeders/index.js +4 -19
  118. package/dist/shared/index.d.ts +6 -3
  119. package/dist/shared/index.d.ts.map +1 -0
  120. package/dist/shared/index.js +4 -3
  121. package/dist/shared/mock-data.d.ts +16 -16
  122. package/dist/shared/mock-data.d.ts.map +1 -1
  123. package/dist/shared/mock-data.js +11 -11
  124. package/dist/shared/types.d.ts +69 -72
  125. package/dist/shared/types.d.ts.map +1 -1
  126. package/dist/shared/types.js +1 -0
  127. package/dist/state-machine/index.d.ts +92 -95
  128. package/dist/state-machine/index.d.ts.map +1 -1
  129. package/dist/state-machine/index.js +6 -157
  130. package/dist/tests/operations.test-spec.d.ts +4 -9
  131. package/dist/tests/operations.test-spec.d.ts.map +1 -1
  132. package/dist/tests/operations.test-spec.js +7 -123
  133. package/dist/ui/WorkflowDashboard.d.ts +1 -6
  134. package/dist/ui/WorkflowDashboard.d.ts.map +1 -1
  135. package/dist/ui/WorkflowDashboard.js +3 -222
  136. package/dist/ui/hooks/index.d.ts +2 -2
  137. package/dist/ui/hooks/index.d.ts.map +1 -0
  138. package/dist/ui/hooks/index.js +51 -5
  139. package/dist/ui/hooks/useWorkflowList.d.ts +15 -19
  140. package/dist/ui/hooks/useWorkflowList.d.ts.map +1 -1
  141. package/dist/ui/hooks/useWorkflowList.js +47 -51
  142. package/dist/ui/index.d.ts +7 -6
  143. package/dist/ui/index.d.ts.map +1 -0
  144. package/dist/ui/index.js +55 -6
  145. package/dist/ui/renderers/index.d.ts +2 -2
  146. package/dist/ui/renderers/index.d.ts.map +1 -0
  147. package/dist/ui/renderers/index.js +227 -2
  148. package/dist/ui/renderers/workflow.markdown.d.ts +13 -14
  149. package/dist/ui/renderers/workflow.markdown.d.ts.map +1 -1
  150. package/dist/ui/renderers/workflow.markdown.js +223 -229
  151. package/dist/workflow/index.d.ts +8 -5
  152. package/dist/workflow/index.d.ts.map +1 -0
  153. package/dist/workflow/index.js +22 -6
  154. package/dist/workflow/workflow.enum.d.ts +4 -9
  155. package/dist/workflow/workflow.enum.d.ts.map +1 -1
  156. package/dist/workflow/workflow.enum.js +32 -42
  157. package/dist/workflow/workflow.event.d.ts +112 -118
  158. package/dist/workflow/workflow.event.d.ts.map +1 -1
  159. package/dist/workflow/workflow.event.js +7 -150
  160. package/dist/workflow/workflow.handler.d.ts +23 -24
  161. package/dist/workflow/workflow.handler.d.ts.map +1 -1
  162. package/dist/workflow/workflow.handler.js +6 -66
  163. package/dist/workflow/workflow.operations.d.ts +847 -853
  164. package/dist/workflow/workflow.operations.d.ts.map +1 -1
  165. package/dist/workflow/workflow.operations.js +9 -345
  166. package/dist/workflow/workflow.schema.d.ts +229 -234
  167. package/dist/workflow/workflow.schema.d.ts.map +1 -1
  168. package/dist/workflow/workflow.schema.js +146 -243
  169. package/dist/workflow-system.capability.d.ts +3 -8
  170. package/dist/workflow-system.capability.d.ts.map +1 -1
  171. package/dist/workflow-system.capability.js +6 -34
  172. package/dist/workflow-system.feature.d.ts +1 -6
  173. package/dist/workflow-system.feature.d.ts.map +1 -1
  174. package/dist/workflow-system.feature.js +4 -346
  175. package/package.json +415 -93
  176. package/dist/approval/approval.enum.js.map +0 -1
  177. package/dist/approval/approval.event.js.map +0 -1
  178. package/dist/approval/approval.handler.js +0 -72
  179. package/dist/approval/approval.handler.js.map +0 -1
  180. package/dist/approval/approval.operations.js.map +0 -1
  181. package/dist/approval/approval.schema.js.map +0 -1
  182. package/dist/docs/workflow-system.docblock.js.map +0 -1
  183. package/dist/entities/approval.js.map +0 -1
  184. package/dist/entities/index.js.map +0 -1
  185. package/dist/entities/instance.js.map +0 -1
  186. package/dist/entities/step.js.map +0 -1
  187. package/dist/entities/workflow.js.map +0 -1
  188. package/dist/example.js.map +0 -1
  189. package/dist/handlers/workflow.handlers.js.map +0 -1
  190. package/dist/instance/instance.enum.js.map +0 -1
  191. package/dist/instance/instance.event.js.map +0 -1
  192. package/dist/instance/instance.handler.js.map +0 -1
  193. package/dist/instance/instance.operations.js.map +0 -1
  194. package/dist/instance/instance.schema.js.map +0 -1
  195. package/dist/presentations/index.js.map +0 -1
  196. package/dist/seeders/index.js.map +0 -1
  197. package/dist/shared/mock-data.js.map +0 -1
  198. package/dist/state-machine/index.js.map +0 -1
  199. package/dist/tests/operations.test-spec.js.map +0 -1
  200. package/dist/ui/WorkflowDashboard.js.map +0 -1
  201. package/dist/ui/hooks/useWorkflowList.js.map +0 -1
  202. package/dist/ui/renderers/workflow.markdown.js.map +0 -1
  203. package/dist/workflow/workflow.enum.js.map +0 -1
  204. package/dist/workflow/workflow.event.js.map +0 -1
  205. package/dist/workflow/workflow.handler.js.map +0 -1
  206. package/dist/workflow/workflow.operations.js.map +0 -1
  207. package/dist/workflow/workflow.schema.js.map +0 -1
  208. package/dist/workflow-system.capability.js.map +0 -1
  209. package/dist/workflow-system.feature.js.map +0 -1
@@ -1,340 +1,110 @@
1
- import { WorkflowDefinitionModel } from "../workflow/workflow.schema.js";
2
- import { WorkflowInstanceModel } from "../instance/instance.schema.js";
3
- import { ApprovalRequestModel } from "../approval/approval.schema.js";
4
- import { StabilityEnum, definePresentation } from "@contractspec/lib.contracts";
1
+ // @bun
2
+ // src/instance/instance.enum.ts
3
+ import { defineEnum } from "@contractspec/lib.schema";
4
+ var InstanceStatusEnum = defineEnum("InstanceStatus", [
5
+ "PENDING",
6
+ "RUNNING",
7
+ "WAITING",
8
+ "PAUSED",
9
+ "COMPLETED",
10
+ "CANCELLED",
11
+ "FAILED",
12
+ "TIMEOUT"
13
+ ]);
5
14
 
6
- //#region src/presentations/index.ts
7
- /**
8
- * Workflow System Presentation Descriptors
9
- */
10
- /**
11
- * Workflow designer canvas for building workflows.
12
- */
13
- const WorkflowDesignerPresentation = definePresentation({
14
- meta: {
15
- key: "workflow.designer",
16
- version: "1.0.0",
17
- title: "Workflow Designer",
18
- description: "Visual workflow designer with drag-and-drop steps",
19
- domain: "workflow-system",
20
- owners: ["@workflow-team"],
21
- tags: [
22
- "workflow",
23
- "designer",
24
- "admin"
25
- ],
26
- stability: StabilityEnum.Experimental,
27
- goal: "Building and modifying workflow definitions",
28
- context: "Workflow administration and setup"
29
- },
30
- source: {
31
- type: "component",
32
- framework: "react",
33
- componentKey: "WorkflowDesigner",
34
- props: WorkflowDefinitionModel
35
- },
36
- targets: ["react"],
37
- policy: { flags: ["workflow.designer.enabled"] }
15
+ // src/instance/instance.schema.ts
16
+ import { defineSchemaModel, ScalarTypeEnum } from "@contractspec/lib.schema";
17
+ var WorkflowInstanceModel = defineSchemaModel({
18
+ name: "WorkflowInstanceModel",
19
+ description: "A running workflow instance",
20
+ fields: {
21
+ id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
22
+ workflowDefinitionId: {
23
+ type: ScalarTypeEnum.String_unsecure(),
24
+ isOptional: false
25
+ },
26
+ referenceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
27
+ referenceType: {
28
+ type: ScalarTypeEnum.String_unsecure(),
29
+ isOptional: true
30
+ },
31
+ status: { type: InstanceStatusEnum, isOptional: false },
32
+ currentStepId: {
33
+ type: ScalarTypeEnum.String_unsecure(),
34
+ isOptional: true
35
+ },
36
+ contextData: { type: ScalarTypeEnum.JSON(), isOptional: true },
37
+ triggeredBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
38
+ organizationId: {
39
+ type: ScalarTypeEnum.String_unsecure(),
40
+ isOptional: false
41
+ },
42
+ priority: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
43
+ dueAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
44
+ outcome: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
45
+ resultData: { type: ScalarTypeEnum.JSON(), isOptional: true },
46
+ errorMessage: {
47
+ type: ScalarTypeEnum.String_unsecure(),
48
+ isOptional: true
49
+ },
50
+ createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },
51
+ startedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },
52
+ completedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true }
53
+ }
38
54
  });
39
- /**
40
- * List of workflow definitions.
41
- */
42
- const WorkflowListPresentation = definePresentation({
43
- meta: {
44
- key: "workflow.definition.viewList",
45
- version: "1.0.0",
46
- title: "Workflow List",
47
- description: "List of workflow definitions with status and actions",
48
- domain: "workflow-system",
49
- owners: ["@workflow-team"],
50
- tags: [
51
- "workflow",
52
- "list",
53
- "admin"
54
- ],
55
- stability: StabilityEnum.Experimental,
56
- goal: "Overview of all defined workflows",
57
- context: "Workflow management dashboard"
58
- },
59
- source: {
60
- type: "component",
61
- framework: "react",
62
- componentKey: "WorkflowDefinitionList",
63
- props: WorkflowDefinitionModel
64
- },
65
- targets: ["react", "markdown"],
66
- policy: { flags: ["workflow.enabled"] }
55
+ var StartWorkflowInputModel = defineSchemaModel({
56
+ name: "StartWorkflowInput",
57
+ description: "Input for starting a workflow",
58
+ fields: {
59
+ workflowKey: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
60
+ contextData: { type: ScalarTypeEnum.JSON(), isOptional: true },
61
+ referenceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
62
+ referenceType: {
63
+ type: ScalarTypeEnum.String_unsecure(),
64
+ isOptional: true
65
+ },
66
+ priority: { type: ScalarTypeEnum.Int_unsecure(), isOptional: true },
67
+ dueAt: { type: ScalarTypeEnum.DateTime(), isOptional: true }
68
+ }
67
69
  });
68
- /**
69
- * Workflow definition detail view.
70
- */
71
- const WorkflowDetailPresentation = definePresentation({
72
- meta: {
73
- key: "workflow.definition.detail",
74
- version: "1.0.0",
75
- title: "Workflow Details",
76
- description: "Detailed view of a workflow definition with steps",
77
- domain: "workflow-system",
78
- owners: ["@workflow-team"],
79
- tags: ["workflow", "detail"],
80
- stability: StabilityEnum.Experimental,
81
- goal: "Viewing technical details of a workflow definition",
82
- context: "Workflow inspection and debugging"
83
- },
84
- source: {
85
- type: "component",
86
- framework: "react",
87
- componentKey: "WorkflowDefinitionDetail",
88
- props: WorkflowDefinitionModel
89
- },
90
- targets: ["react", "markdown"],
91
- policy: { flags: ["workflow.enabled"] }
70
+ var TransitionInputModel = defineSchemaModel({
71
+ name: "TransitionInput",
72
+ description: "Input for transitioning a workflow",
73
+ fields: {
74
+ instanceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },
75
+ action: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },
76
+ data: { type: ScalarTypeEnum.JSON(), isOptional: true },
77
+ comment: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
78
+ }
92
79
  });
93
- /**
94
- * List of running workflow instances.
95
- */
96
- const InstanceListPresentation = definePresentation({
97
- meta: {
98
- key: "workflow.instance.viewList",
99
- version: "1.0.0",
100
- title: "Instance List",
101
- description: "List of workflow instances with status and progress",
102
- domain: "workflow-system",
103
- owners: ["@workflow-team"],
104
- tags: [
105
- "workflow",
106
- "instance",
107
- "list"
108
- ],
109
- stability: StabilityEnum.Experimental,
110
- goal: "Monitoring active and past workflow executions",
111
- context: "Operations monitoring"
112
- },
113
- source: {
114
- type: "component",
115
- framework: "react",
116
- componentKey: "WorkflowInstanceList",
117
- props: WorkflowInstanceModel
118
- },
119
- targets: ["react", "markdown"],
120
- policy: { flags: ["workflow.enabled"] }
80
+ var TransitionResultModel = defineSchemaModel({
81
+ name: "TransitionResult",
82
+ description: "Result of a workflow transition",
83
+ fields: {
84
+ success: { type: ScalarTypeEnum.Boolean(), isOptional: false },
85
+ instance: { type: WorkflowInstanceModel, isOptional: false },
86
+ previousStepKey: {
87
+ type: ScalarTypeEnum.String_unsecure(),
88
+ isOptional: true
89
+ },
90
+ currentStepKey: {
91
+ type: ScalarTypeEnum.String_unsecure(),
92
+ isOptional: true
93
+ },
94
+ message: { type: ScalarTypeEnum.String_unsecure(), isOptional: true }
95
+ }
121
96
  });
122
- /**
123
- * Workflow instance detail view with timeline.
124
- */
125
- const InstanceDetailPresentation = definePresentation({
126
- meta: {
127
- key: "workflow.instance.detail",
128
- version: "1.0.0",
129
- title: "Instance Details",
130
- description: "Detailed view of a workflow instance with step timeline",
131
- domain: "workflow-system",
132
- owners: ["@workflow-team"],
133
- tags: [
134
- "workflow",
135
- "instance",
136
- "detail",
137
- "timeline"
138
- ],
139
- stability: StabilityEnum.Experimental,
140
- goal: "Detailed inspection of a specific workflow instance",
141
- context: "Case management and troubleshooting"
142
- },
143
- source: {
144
- type: "component",
145
- framework: "react",
146
- componentKey: "WorkflowInstanceDetail",
147
- props: WorkflowInstanceModel
148
- },
149
- targets: ["react", "markdown"],
150
- policy: { flags: ["workflow.enabled"] }
151
- });
152
- /**
153
- * Workflow progress tracker widget.
154
- */
155
- const ProgressTrackerPresentation = definePresentation({
156
- meta: {
157
- key: "workflow.instance.progress",
158
- version: "1.0.0",
159
- title: "Progress Tracker",
160
- description: "Visual progress tracker showing current step in workflow",
161
- domain: "workflow-system",
162
- owners: ["@workflow-team"],
163
- tags: [
164
- "workflow",
165
- "progress",
166
- "widget"
167
- ],
168
- stability: StabilityEnum.Experimental,
169
- goal: "Quick view of current progress for a workflow",
170
- context: "Embedded progress indicator in entity views"
171
- },
172
- source: {
173
- type: "component",
174
- framework: "react",
175
- componentKey: "WorkflowProgressTracker",
176
- props: WorkflowInstanceModel
177
- },
178
- targets: ["react"],
179
- policy: { flags: ["workflow.enabled"] }
180
- });
181
- /**
182
- * Approval inbox - list of pending approvals.
183
- */
184
- const ApprovalInboxPresentation = definePresentation({
185
- meta: {
186
- key: "workflow.approval.inbox",
187
- version: "1.0.0",
188
- title: "Approval Inbox",
189
- description: "Inbox showing pending approval requests for current user",
190
- domain: "workflow-system",
191
- owners: ["@workflow-team"],
192
- tags: [
193
- "workflow",
194
- "approval",
195
- "inbox"
196
- ],
197
- stability: StabilityEnum.Experimental,
198
- goal: "Managing personal workload of approval requests",
199
- context: "Personal task management"
200
- },
201
- source: {
202
- type: "component",
203
- framework: "react",
204
- componentKey: "ApprovalInbox",
205
- props: ApprovalRequestModel
206
- },
207
- targets: ["react", "markdown"],
208
- policy: { flags: ["workflow.approvals.enabled"] }
209
- });
210
- /**
211
- * Approval request detail view.
212
- */
213
- const ApprovalDetailPresentation = definePresentation({
214
- meta: {
215
- key: "workflow.approval.detail",
216
- version: "1.0.0",
217
- title: "Approval Details",
218
- description: "Detailed approval request view with context and actions",
219
- domain: "workflow-system",
220
- owners: ["@workflow-team"],
221
- tags: [
222
- "workflow",
223
- "approval",
224
- "detail"
225
- ],
226
- stability: StabilityEnum.Experimental,
227
- goal: "Decision support for an approval request",
228
- context: "Specific approval action"
229
- },
230
- source: {
231
- type: "component",
232
- framework: "react",
233
- componentKey: "ApprovalRequestDetail",
234
- props: ApprovalRequestModel
235
- },
236
- targets: ["react", "markdown"],
237
- policy: { flags: ["workflow.approvals.enabled"] }
238
- });
239
- /**
240
- * Approval decision form.
241
- */
242
- const ApprovalFormPresentation = definePresentation({
243
- meta: {
244
- key: "workflow.approval.form",
245
- version: "1.0.0",
246
- title: "Approval Form",
247
- description: "Form for submitting approval decisions",
248
- domain: "workflow-system",
249
- owners: ["@workflow-team"],
250
- tags: [
251
- "workflow",
252
- "approval",
253
- "form"
254
- ],
255
- stability: StabilityEnum.Experimental,
256
- goal: "Submitting a decision on an approval request",
257
- context: "Approval decision dialog"
258
- },
259
- source: {
260
- type: "component",
261
- framework: "react",
262
- componentKey: "ApprovalDecisionForm"
263
- },
264
- targets: ["react"],
265
- policy: { flags: ["workflow.approvals.enabled"] }
266
- });
267
- /**
268
- * Pending approvals count badge.
269
- */
270
- const PendingApprovalsBadgePresentation = definePresentation({
271
- meta: {
272
- key: "workflow.approval.badge",
273
- version: "1.0.0",
274
- title: "Pending Approvals Badge",
275
- description: "Badge showing count of pending approvals",
276
- domain: "workflow-system",
277
- owners: ["@workflow-team"],
278
- tags: [
279
- "workflow",
280
- "approval",
281
- "badge",
282
- "widget"
283
- ],
284
- stability: StabilityEnum.Experimental,
285
- goal: "Visual notification of pending approvals",
286
- context: "Global navigation or sidebar"
287
- },
288
- source: {
289
- type: "component",
290
- framework: "react",
291
- componentKey: "PendingApprovalsBadge"
292
- },
293
- targets: ["react"],
294
- policy: { flags: ["workflow.approvals.enabled"] }
295
- });
296
- /**
297
- * Workflow metrics dashboard widget.
298
- */
299
- const WorkflowMetricsPresentation = definePresentation({
300
- meta: {
301
- key: "workflow.metrics",
302
- version: "1.0.0",
303
- title: "Workflow Metrics",
304
- description: "Dashboard widget showing workflow metrics and statistics",
305
- domain: "workflow-system",
306
- owners: ["@workflow-team"],
307
- tags: [
308
- "workflow",
309
- "metrics",
310
- "dashboard"
311
- ],
312
- stability: StabilityEnum.Experimental,
313
- goal: "Monitoring throughput and bottlenecks",
314
- context: "System performance dashboard"
315
- },
316
- source: {
317
- type: "component",
318
- framework: "react",
319
- componentKey: "WorkflowMetricsDashboard"
320
- },
321
- targets: ["react", "markdown"],
322
- policy: { flags: ["workflow.metrics.enabled"] }
323
- });
324
- const WorkflowSystemPresentations = {
325
- WorkflowDesignerPresentation,
326
- WorkflowListPresentation,
327
- WorkflowDetailPresentation,
328
- InstanceListPresentation,
329
- InstanceDetailPresentation,
330
- ProgressTrackerPresentation,
331
- ApprovalInboxPresentation,
332
- ApprovalDetailPresentation,
333
- ApprovalFormPresentation,
334
- PendingApprovalsBadgePresentation,
335
- WorkflowMetricsPresentation
97
+ export {
98
+ WorkflowSystemPresentations,
99
+ WorkflowMetricsPresentation,
100
+ WorkflowListPresentation,
101
+ WorkflowDetailPresentation,
102
+ WorkflowDesignerPresentation,
103
+ ProgressTrackerPresentation,
104
+ PendingApprovalsBadgePresentation,
105
+ InstanceListPresentation,
106
+ InstanceDetailPresentation,
107
+ ApprovalInboxPresentation,
108
+ ApprovalFormPresentation,
109
+ ApprovalDetailPresentation
336
110
  };
337
-
338
- //#endregion
339
- export { ApprovalDetailPresentation, ApprovalFormPresentation, ApprovalInboxPresentation, InstanceDetailPresentation, InstanceListPresentation, PendingApprovalsBadgePresentation, ProgressTrackerPresentation, WorkflowDesignerPresentation, WorkflowDetailPresentation, WorkflowListPresentation, WorkflowMetricsPresentation, WorkflowSystemPresentations };
340
- //# sourceMappingURL=index.js.map
@@ -1,10 +1,6 @@
1
- import { DatabasePort } from "@contractspec/lib.runtime-sandbox";
2
-
3
- //#region src/seeders/index.d.ts
4
- declare function seedWorkflowSystem(params: {
5
- projectId: string;
6
- db: DatabasePort;
1
+ import type { DatabasePort } from '@contractspec/lib.runtime-sandbox';
2
+ export declare function seedWorkflowSystem(params: {
3
+ projectId: string;
4
+ db: DatabasePort;
7
5
  }): Promise<void>;
8
- //#endregion
9
- export { seedWorkflowSystem };
10
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/seeders/index.ts"],"mappings":";;;iBAEsB,kBAAA,CAAmB,MAAA;EACvC,SAAA;EACA,EAAA,EAAI,YAAA;AAAA,IACL,OAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seeders/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEtE,wBAAsB,kBAAkB,CAAC,MAAM,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,YAAY,CAAC;CAClB,iBAsBA"}
@@ -1,19 +1,4 @@
1
- //#region src/seeders/index.ts
2
- async function seedWorkflowSystem(params) {
3
- const { projectId, db } = params;
4
- if ((await db.query(`SELECT COUNT(*) as count FROM workflow_definition WHERE "projectId" = $1`, [projectId])).rows[0]?.count > 0) return;
5
- await db.execute(`INSERT INTO workflow_definition (id, "projectId", "organizationId", name, description, type, status)
6
- VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
7
- "wf_1",
8
- projectId,
9
- "org_demo",
10
- "Approval Workflow",
11
- "Demo approval workflow",
12
- "APPROVAL",
13
- "ACTIVE"
14
- ]);
15
- }
16
-
17
- //#endregion
18
- export { seedWorkflowSystem };
19
- //# sourceMappingURL=index.js.map
1
+ // @bun
2
+ export {
3
+ seedWorkflowSystem
4
+ };
@@ -1,3 +1,6 @@
1
- import { ApprovalRequestRecord, HandlerContext, WorkflowDefinitionRecord, WorkflowInstanceRecord, WorkflowStepRecord } from "./types.js";
2
- import { mockDataStore } from "./mock-data.js";
3
- export { ApprovalRequestRecord, HandlerContext, WorkflowDefinitionRecord, WorkflowInstanceRecord, WorkflowStepRecord, mockDataStore };
1
+ /**
2
+ * Shared utilities and types for workflow system.
3
+ */
4
+ export * from './types';
5
+ export * from './mock-data';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
- import { mockDataStore } from "./mock-data.js";
2
-
3
- export { mockDataStore };
1
+ // @bun
2
+ export {
3
+ mockDataStore
4
+ };
@@ -1,18 +1,18 @@
1
- import { ApprovalRequestRecord, WorkflowDefinitionRecord, WorkflowInstanceRecord, WorkflowStepRecord } from "./types.js";
2
-
3
- //#region src/shared/mock-data.d.ts
4
- declare const mockDataStore: {
5
- workflows: Map<string, WorkflowDefinitionRecord>;
6
- steps: Map<string, WorkflowStepRecord>;
7
- instances: Map<string, WorkflowInstanceRecord>;
8
- approvals: Map<string, ApprovalRequestRecord>;
9
- stepExecutions: Map<string, {
10
- id: string;
11
- instanceId: string;
12
- stepId: string;
13
- status: string;
14
- }>;
1
+ /**
2
+ * Mock data store for workflow system.
3
+ * In production, this would be backed by a database.
4
+ */
5
+ import type { WorkflowDefinitionRecord, WorkflowStepRecord, WorkflowInstanceRecord, ApprovalRequestRecord } from './types';
6
+ export declare const mockDataStore: {
7
+ workflows: Map<string, WorkflowDefinitionRecord>;
8
+ steps: Map<string, WorkflowStepRecord>;
9
+ instances: Map<string, WorkflowInstanceRecord>;
10
+ approvals: Map<string, ApprovalRequestRecord>;
11
+ stepExecutions: Map<string, {
12
+ id: string;
13
+ instanceId: string;
14
+ stepId: string;
15
+ status: string;
16
+ }>;
15
17
  };
16
- //#endregion
17
- export { mockDataStore };
18
18
  //# sourceMappingURL=mock-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mock-data.d.ts","names":[],"sources":["../../src/shared/mock-data.ts"],"mappings":";;;cAYa,aAAA"}
1
+ {"version":3,"file":"mock-data.d.ts","sourceRoot":"","sources":["../../src/shared/mock-data.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,aAAa;;;;;;YAOhB,MAAM;oBAAc,MAAM;gBAAU,MAAM;gBAAU,MAAM;;CAEnE,CAAC"}
@@ -1,12 +1,12 @@
1
- //#region src/shared/mock-data.ts
2
- const mockDataStore = {
3
- workflows: /* @__PURE__ */ new Map(),
4
- steps: /* @__PURE__ */ new Map(),
5
- instances: /* @__PURE__ */ new Map(),
6
- approvals: /* @__PURE__ */ new Map(),
7
- stepExecutions: /* @__PURE__ */ new Map()
1
+ // @bun
2
+ // src/shared/mock-data.ts
3
+ var mockDataStore = {
4
+ workflows: new Map,
5
+ steps: new Map,
6
+ instances: new Map,
7
+ approvals: new Map,
8
+ stepExecutions: new Map
9
+ };
10
+ export {
11
+ mockDataStore
8
12
  };
9
-
10
- //#endregion
11
- export { mockDataStore };
12
- //# sourceMappingURL=mock-data.js.map