@contractspec/example.workflow-system 1.57.0 → 1.59.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.
- package/dist/approval/approval.enum.d.ts +2 -7
- package/dist/approval/approval.enum.d.ts.map +1 -1
- package/dist/approval/approval.enum.js +20 -26
- package/dist/approval/approval.event.d.ts +108 -114
- package/dist/approval/approval.event.d.ts.map +1 -1
- package/dist/approval/approval.event.js +103 -210
- package/dist/approval/approval.handler.d.ts +17 -18
- package/dist/approval/approval.handler.d.ts.map +1 -1
- package/dist/approval/approval.operations.d.ts +429 -435
- package/dist/approval/approval.operations.d.ts.map +1 -1
- package/dist/approval/approval.operations.js +364 -339
- package/dist/approval/approval.schema.d.ts +86 -91
- package/dist/approval/approval.schema.d.ts.map +1 -1
- package/dist/approval/approval.schema.js +71 -107
- package/dist/approval/index.d.ts +8 -5
- package/dist/approval/index.d.ts.map +1 -0
- package/dist/approval/index.js +484 -5
- package/dist/browser/approval/approval.enum.js +22 -0
- package/dist/browser/approval/approval.event.js +112 -0
- package/dist/browser/approval/approval.operations.js +369 -0
- package/dist/browser/approval/approval.schema.js +73 -0
- package/dist/browser/approval/index.js +484 -0
- package/dist/browser/docs/index.js +103 -0
- package/dist/browser/docs/workflow-system.docblock.js +103 -0
- package/dist/browser/entities/approval.js +119 -0
- package/dist/browser/entities/index.js +508 -0
- package/dist/browser/entities/instance.js +161 -0
- package/dist/browser/entities/step.js +124 -0
- package/dist/browser/entities/workflow.js +82 -0
- package/dist/browser/example.js +42 -0
- package/dist/browser/handlers/index.js +253 -0
- package/dist/browser/handlers/workflow.handlers.js +253 -0
- package/dist/browser/index.js +3120 -0
- package/dist/browser/instance/index.js +677 -0
- package/dist/browser/instance/instance.enum.js +15 -0
- package/dist/browser/instance/instance.event.js +164 -0
- package/dist/browser/instance/instance.handler.js +356 -0
- package/dist/browser/instance/instance.operations.js +9 -0
- package/dist/browser/instance/instance.schema.js +101 -0
- package/dist/browser/presentations/index.js +109 -0
- package/dist/browser/seeders/index.js +3 -0
- package/dist/browser/shared/index.js +3 -0
- package/dist/browser/shared/mock-data.js +11 -0
- package/dist/browser/shared/types.js +0 -0
- package/dist/browser/state-machine/index.js +6 -0
- package/dist/browser/tests/operations.test-spec.js +6 -0
- package/dist/browser/ui/WorkflowDashboard.js +3 -0
- package/dist/browser/ui/hooks/index.js +50 -0
- package/dist/browser/ui/hooks/useWorkflowList.js +50 -0
- package/dist/browser/ui/index.js +54 -0
- package/dist/browser/ui/renderers/index.js +227 -0
- package/dist/browser/ui/renderers/workflow.markdown.js +227 -0
- package/dist/browser/workflow/index.js +21 -0
- package/dist/browser/workflow/workflow.enum.js +36 -0
- package/dist/browser/workflow/workflow.event.js +6 -0
- package/dist/browser/workflow/workflow.handler.js +5 -0
- package/dist/browser/workflow/workflow.operations.js +8 -0
- package/dist/browser/workflow/workflow.schema.js +151 -0
- package/dist/browser/workflow-system.capability.js +5 -0
- package/dist/browser/workflow-system.feature.js +3 -0
- package/dist/docs/index.d.ts +2 -1
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +104 -1
- package/dist/docs/workflow-system.docblock.d.ts +2 -1
- package/dist/docs/workflow-system.docblock.d.ts.map +1 -0
- package/dist/docs/workflow-system.docblock.js +45 -56
- package/dist/entities/approval.d.ts +35 -40
- package/dist/entities/approval.d.ts.map +1 -1
- package/dist/entities/approval.js +116 -124
- package/dist/entities/index.d.ts +132 -137
- package/dist/entities/index.d.ts.map +1 -1
- package/dist/entities/index.js +506 -29
- package/dist/entities/instance.d.ts +46 -51
- package/dist/entities/instance.d.ts.map +1 -1
- package/dist/entities/instance.js +158 -164
- package/dist/entities/step.d.ts +31 -36
- package/dist/entities/step.d.ts.map +1 -1
- package/dist/entities/step.js +122 -132
- package/dist/entities/workflow.d.ts +22 -27
- package/dist/entities/workflow.d.ts.map +1 -1
- package/dist/entities/workflow.js +80 -99
- package/dist/example.d.ts +2 -6
- package/dist/example.d.ts.map +1 -1
- package/dist/example.js +41 -55
- package/dist/handlers/index.d.ts +2 -2
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +254 -3
- package/dist/handlers/workflow.handlers.d.ts +107 -106
- package/dist/handlers/workflow.handlers.d.ts.map +1 -1
- package/dist/handlers/workflow.handlers.js +237 -246
- package/dist/index.d.ts +15 -26
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3121 -26
- package/dist/instance/index.d.ts +8 -5
- package/dist/instance/index.d.ts.map +1 -0
- package/dist/instance/index.js +677 -5
- package/dist/instance/instance.enum.d.ts +1 -6
- package/dist/instance/instance.enum.d.ts.map +1 -1
- package/dist/instance/instance.enum.js +14 -18
- package/dist/instance/instance.event.d.ts +313 -319
- package/dist/instance/instance.event.d.ts.map +1 -1
- package/dist/instance/instance.event.js +151 -279
- package/dist/instance/instance.handler.d.ts +21 -22
- package/dist/instance/instance.handler.d.ts.map +1 -1
- package/dist/instance/instance.handler.js +352 -89
- package/dist/instance/instance.operations.d.ts +819 -825
- package/dist/instance/instance.operations.d.ts.map +1 -1
- package/dist/instance/instance.operations.js +10 -464
- package/dist/instance/instance.schema.d.ts +196 -201
- package/dist/instance/instance.schema.d.ts.map +1 -1
- package/dist/instance/instance.schema.js +97 -167
- package/dist/presentations/index.d.ts +23 -28
- package/dist/presentations/index.d.ts.map +1 -1
- package/dist/presentations/index.js +104 -334
- package/dist/seeders/index.d.ts +4 -8
- package/dist/seeders/index.d.ts.map +1 -1
- package/dist/seeders/index.js +4 -19
- package/dist/shared/index.d.ts +6 -3
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +4 -3
- package/dist/shared/mock-data.d.ts +16 -16
- package/dist/shared/mock-data.d.ts.map +1 -1
- package/dist/shared/mock-data.js +11 -11
- package/dist/shared/types.d.ts +69 -72
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +1 -0
- package/dist/state-machine/index.d.ts +92 -95
- package/dist/state-machine/index.d.ts.map +1 -1
- package/dist/state-machine/index.js +6 -157
- package/dist/tests/operations.test-spec.d.ts +4 -9
- package/dist/tests/operations.test-spec.d.ts.map +1 -1
- package/dist/tests/operations.test-spec.js +7 -123
- package/dist/ui/WorkflowDashboard.d.ts +1 -6
- package/dist/ui/WorkflowDashboard.d.ts.map +1 -1
- package/dist/ui/WorkflowDashboard.js +3 -222
- package/dist/ui/hooks/index.d.ts +2 -2
- package/dist/ui/hooks/index.d.ts.map +1 -0
- package/dist/ui/hooks/index.js +51 -5
- package/dist/ui/hooks/useWorkflowList.d.ts +15 -19
- package/dist/ui/hooks/useWorkflowList.d.ts.map +1 -1
- package/dist/ui/hooks/useWorkflowList.js +47 -51
- package/dist/ui/index.d.ts +7 -6
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +55 -6
- package/dist/ui/renderers/index.d.ts +2 -2
- package/dist/ui/renderers/index.d.ts.map +1 -0
- package/dist/ui/renderers/index.js +227 -2
- package/dist/ui/renderers/workflow.markdown.d.ts +13 -14
- package/dist/ui/renderers/workflow.markdown.d.ts.map +1 -1
- package/dist/ui/renderers/workflow.markdown.js +223 -229
- package/dist/workflow/index.d.ts +8 -5
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +22 -6
- package/dist/workflow/workflow.enum.d.ts +4 -9
- package/dist/workflow/workflow.enum.d.ts.map +1 -1
- package/dist/workflow/workflow.enum.js +32 -42
- package/dist/workflow/workflow.event.d.ts +112 -118
- package/dist/workflow/workflow.event.d.ts.map +1 -1
- package/dist/workflow/workflow.event.js +7 -150
- package/dist/workflow/workflow.handler.d.ts +23 -24
- package/dist/workflow/workflow.handler.d.ts.map +1 -1
- package/dist/workflow/workflow.handler.js +6 -66
- package/dist/workflow/workflow.operations.d.ts +847 -853
- package/dist/workflow/workflow.operations.d.ts.map +1 -1
- package/dist/workflow/workflow.operations.js +9 -345
- package/dist/workflow/workflow.schema.d.ts +229 -234
- package/dist/workflow/workflow.schema.d.ts.map +1 -1
- package/dist/workflow/workflow.schema.js +146 -243
- package/dist/workflow-system.capability.d.ts +3 -8
- package/dist/workflow-system.capability.d.ts.map +1 -1
- package/dist/workflow-system.capability.js +6 -34
- package/dist/workflow-system.feature.d.ts +1 -6
- package/dist/workflow-system.feature.d.ts.map +1 -1
- package/dist/workflow-system.feature.js +4 -346
- package/package.json +415 -93
- package/dist/approval/approval.enum.js.map +0 -1
- package/dist/approval/approval.event.js.map +0 -1
- package/dist/approval/approval.handler.js +0 -72
- package/dist/approval/approval.handler.js.map +0 -1
- package/dist/approval/approval.operations.js.map +0 -1
- package/dist/approval/approval.schema.js.map +0 -1
- package/dist/docs/workflow-system.docblock.js.map +0 -1
- package/dist/entities/approval.js.map +0 -1
- package/dist/entities/index.js.map +0 -1
- package/dist/entities/instance.js.map +0 -1
- package/dist/entities/step.js.map +0 -1
- package/dist/entities/workflow.js.map +0 -1
- package/dist/example.js.map +0 -1
- package/dist/handlers/workflow.handlers.js.map +0 -1
- package/dist/instance/instance.enum.js.map +0 -1
- package/dist/instance/instance.event.js.map +0 -1
- package/dist/instance/instance.handler.js.map +0 -1
- package/dist/instance/instance.operations.js.map +0 -1
- package/dist/instance/instance.schema.js.map +0 -1
- package/dist/presentations/index.js.map +0 -1
- package/dist/seeders/index.js.map +0 -1
- package/dist/shared/mock-data.js.map +0 -1
- package/dist/state-machine/index.js.map +0 -1
- package/dist/tests/operations.test-spec.js.map +0 -1
- package/dist/ui/WorkflowDashboard.js.map +0 -1
- package/dist/ui/hooks/useWorkflowList.js.map +0 -1
- package/dist/ui/renderers/workflow.markdown.js.map +0 -1
- package/dist/workflow/workflow.enum.js.map +0 -1
- package/dist/workflow/workflow.event.js.map +0 -1
- package/dist/workflow/workflow.handler.js.map +0 -1
- package/dist/workflow/workflow.operations.js.map +0 -1
- package/dist/workflow/workflow.schema.js.map +0 -1
- package/dist/workflow-system.capability.js.map +0 -1
- package/dist/workflow-system.feature.js.map +0 -1
package/dist/entities/step.js
CHANGED
|
@@ -1,135 +1,125 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
// @bun
|
|
2
|
+
// src/entities/step.ts
|
|
3
|
+
import {
|
|
4
|
+
defineEntity,
|
|
5
|
+
defineEntityEnum,
|
|
6
|
+
field,
|
|
7
|
+
index
|
|
8
|
+
} from "@contractspec/lib.schema";
|
|
9
|
+
var StepTypeEnum = defineEntityEnum({
|
|
10
|
+
name: "StepType",
|
|
11
|
+
values: [
|
|
12
|
+
"START",
|
|
13
|
+
"APPROVAL",
|
|
14
|
+
"TASK",
|
|
15
|
+
"CONDITION",
|
|
16
|
+
"PARALLEL",
|
|
17
|
+
"WAIT",
|
|
18
|
+
"ACTION",
|
|
19
|
+
"END"
|
|
20
|
+
],
|
|
21
|
+
schema: "workflow",
|
|
22
|
+
description: "Type of workflow step."
|
|
21
23
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
],
|
|
33
|
-
schema: "workflow",
|
|
34
|
-
description: "How multiple approvers are handled."
|
|
24
|
+
var ApprovalModeEnum = defineEntityEnum({
|
|
25
|
+
name: "ApprovalMode",
|
|
26
|
+
values: [
|
|
27
|
+
"ANY",
|
|
28
|
+
"ALL",
|
|
29
|
+
"MAJORITY",
|
|
30
|
+
"SEQUENTIAL"
|
|
31
|
+
],
|
|
32
|
+
schema: "workflow",
|
|
33
|
+
description: "How multiple approvers are handled."
|
|
35
34
|
});
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
updatedAt: field.updatedAt(),
|
|
122
|
-
workflowDefinition: field.belongsTo("WorkflowDefinition", ["workflowDefinitionId"], ["id"], { onDelete: "Cascade" }),
|
|
123
|
-
executions: field.hasMany("StepExecution")
|
|
124
|
-
},
|
|
125
|
-
indexes: [
|
|
126
|
-
index.unique(["workflowDefinitionId", "key"]),
|
|
127
|
-
index.on(["workflowDefinitionId", "position"]),
|
|
128
|
-
index.on(["type"])
|
|
129
|
-
],
|
|
130
|
-
enums: [StepTypeEnum, ApprovalModeEnum]
|
|
35
|
+
var WorkflowStepEntity = defineEntity({
|
|
36
|
+
name: "WorkflowStep",
|
|
37
|
+
description: "A single step/state in a workflow definition.",
|
|
38
|
+
schema: "workflow",
|
|
39
|
+
map: "workflow_step",
|
|
40
|
+
fields: {
|
|
41
|
+
id: field.id({ description: "Unique step ID" }),
|
|
42
|
+
workflowDefinitionId: field.foreignKey(),
|
|
43
|
+
name: field.string({ description: "Human-readable step name" }),
|
|
44
|
+
key: field.string({
|
|
45
|
+
description: 'Unique key within workflow (e.g., "manager_approval")'
|
|
46
|
+
}),
|
|
47
|
+
description: field.string({ isOptional: true }),
|
|
48
|
+
type: field.enum("StepType", { default: "TASK" }),
|
|
49
|
+
position: field.int({ default: 0, description: "Order for display" }),
|
|
50
|
+
transitions: field.json({ description: "Map of action -> next step key" }),
|
|
51
|
+
approvalMode: field.enum("ApprovalMode", {
|
|
52
|
+
default: "ANY",
|
|
53
|
+
isOptional: true
|
|
54
|
+
}),
|
|
55
|
+
approverRoles: field.string({
|
|
56
|
+
isArray: true,
|
|
57
|
+
description: "Roles that can approve"
|
|
58
|
+
}),
|
|
59
|
+
approverUserIds: field.string({
|
|
60
|
+
isArray: true,
|
|
61
|
+
description: "Specific users that can approve"
|
|
62
|
+
}),
|
|
63
|
+
escalationConfig: field.json({
|
|
64
|
+
isOptional: true,
|
|
65
|
+
description: "Escalation rules"
|
|
66
|
+
}),
|
|
67
|
+
assigneeRoles: field.string({
|
|
68
|
+
isArray: true,
|
|
69
|
+
description: "Roles that can be assigned"
|
|
70
|
+
}),
|
|
71
|
+
taskTemplate: field.json({
|
|
72
|
+
isOptional: true,
|
|
73
|
+
description: "Template for task creation"
|
|
74
|
+
}),
|
|
75
|
+
conditionExpression: field.string({
|
|
76
|
+
isOptional: true,
|
|
77
|
+
description: "Expression for branching"
|
|
78
|
+
}),
|
|
79
|
+
waitDuration: field.int({
|
|
80
|
+
isOptional: true,
|
|
81
|
+
description: "Wait duration in seconds"
|
|
82
|
+
}),
|
|
83
|
+
waitForEvent: field.string({
|
|
84
|
+
isOptional: true,
|
|
85
|
+
description: "Event name to wait for"
|
|
86
|
+
}),
|
|
87
|
+
actionType: field.string({
|
|
88
|
+
isOptional: true,
|
|
89
|
+
description: "Action to execute"
|
|
90
|
+
}),
|
|
91
|
+
actionConfig: field.json({
|
|
92
|
+
isOptional: true,
|
|
93
|
+
description: "Action parameters"
|
|
94
|
+
}),
|
|
95
|
+
timeoutSeconds: field.int({
|
|
96
|
+
isOptional: true,
|
|
97
|
+
description: "Step timeout"
|
|
98
|
+
}),
|
|
99
|
+
slaSeconds: field.int({ isOptional: true, description: "SLA deadline" }),
|
|
100
|
+
notifyOnEnter: field.json({
|
|
101
|
+
isOptional: true,
|
|
102
|
+
description: "Notification config when entering step"
|
|
103
|
+
}),
|
|
104
|
+
notifyOnExit: field.json({
|
|
105
|
+
isOptional: true,
|
|
106
|
+
description: "Notification config when exiting step"
|
|
107
|
+
}),
|
|
108
|
+
metadata: field.json({ isOptional: true }),
|
|
109
|
+
createdAt: field.createdAt(),
|
|
110
|
+
updatedAt: field.updatedAt(),
|
|
111
|
+
workflowDefinition: field.belongsTo("WorkflowDefinition", ["workflowDefinitionId"], ["id"], { onDelete: "Cascade" }),
|
|
112
|
+
executions: field.hasMany("StepExecution")
|
|
113
|
+
},
|
|
114
|
+
indexes: [
|
|
115
|
+
index.unique(["workflowDefinitionId", "key"]),
|
|
116
|
+
index.on(["workflowDefinitionId", "position"]),
|
|
117
|
+
index.on(["type"])
|
|
118
|
+
],
|
|
119
|
+
enums: [StepTypeEnum, ApprovalModeEnum]
|
|
131
120
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
121
|
+
export {
|
|
122
|
+
WorkflowStepEntity,
|
|
123
|
+
StepTypeEnum,
|
|
124
|
+
ApprovalModeEnum
|
|
125
|
+
};
|
|
@@ -1,41 +1,36 @@
|
|
|
1
|
-
import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
|
|
2
|
-
|
|
3
|
-
//#region src/entities/workflow.d.ts
|
|
4
1
|
/**
|
|
5
2
|
* Workflow status enum - the lifecycle state of a workflow definition.
|
|
6
3
|
*/
|
|
7
|
-
declare const WorkflowStatusEnum:
|
|
4
|
+
export declare const WorkflowStatusEnum: import("@contractspec/lib.schema").EntityEnumDef;
|
|
8
5
|
/**
|
|
9
6
|
* Workflow trigger type enum - what initiates a workflow.
|
|
10
7
|
*/
|
|
11
|
-
declare const WorkflowTriggerTypeEnum:
|
|
8
|
+
export declare const WorkflowTriggerTypeEnum: import("@contractspec/lib.schema").EntityEnumDef;
|
|
12
9
|
/**
|
|
13
10
|
* WorkflowDefinition entity - defines a workflow blueprint.
|
|
14
11
|
*
|
|
15
12
|
* A workflow definition specifies the structure, steps, and rules
|
|
16
13
|
* for a business process. Instances are created from definitions.
|
|
17
14
|
*/
|
|
18
|
-
declare const WorkflowDefinitionEntity:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
15
|
+
export declare const WorkflowDefinitionEntity: import("@contractspec/lib.schema").EntitySpec<{
|
|
16
|
+
id: import("@contractspec/lib.schema").EntityScalarField;
|
|
17
|
+
name: import("@contractspec/lib.schema").EntityScalarField;
|
|
18
|
+
key: import("@contractspec/lib.schema").EntityScalarField;
|
|
19
|
+
description: import("@contractspec/lib.schema").EntityScalarField;
|
|
20
|
+
version: import("@contractspec/lib.schema").EntityScalarField;
|
|
21
|
+
status: import("@contractspec/lib.schema").EntityEnumField;
|
|
22
|
+
triggerType: import("@contractspec/lib.schema").EntityEnumField;
|
|
23
|
+
triggerConfig: import("@contractspec/lib.schema").EntityScalarField;
|
|
24
|
+
initialStepId: import("@contractspec/lib.schema").EntityScalarField;
|
|
25
|
+
featureFlagKey: import("@contractspec/lib.schema").EntityScalarField;
|
|
26
|
+
settings: import("@contractspec/lib.schema").EntityScalarField;
|
|
27
|
+
metadata: import("@contractspec/lib.schema").EntityScalarField;
|
|
28
|
+
organizationId: import("@contractspec/lib.schema").EntityScalarField;
|
|
29
|
+
createdBy: import("@contractspec/lib.schema").EntityScalarField;
|
|
30
|
+
createdAt: import("@contractspec/lib.schema").EntityScalarField;
|
|
31
|
+
updatedAt: import("@contractspec/lib.schema").EntityScalarField;
|
|
32
|
+
publishedAt: import("@contractspec/lib.schema").EntityScalarField;
|
|
33
|
+
steps: import("@contractspec/lib.schema").EntityRelationField;
|
|
34
|
+
instances: import("@contractspec/lib.schema").EntityRelationField;
|
|
38
35
|
}>;
|
|
39
|
-
//#endregion
|
|
40
|
-
export { WorkflowDefinitionEntity, WorkflowStatusEnum, WorkflowTriggerTypeEnum };
|
|
41
36
|
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/entities/workflow.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB,kDAK7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB,kDAKlC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;EA2EnC,CAAC"}
|
|
@@ -1,102 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
],
|
|
15
|
-
schema: "workflow",
|
|
16
|
-
description: "Status of a workflow definition."
|
|
1
|
+
// @bun
|
|
2
|
+
// src/entities/workflow.ts
|
|
3
|
+
import {
|
|
4
|
+
defineEntity,
|
|
5
|
+
defineEntityEnum,
|
|
6
|
+
field,
|
|
7
|
+
index
|
|
8
|
+
} from "@contractspec/lib.schema";
|
|
9
|
+
var WorkflowStatusEnum = defineEntityEnum({
|
|
10
|
+
name: "WorkflowStatus",
|
|
11
|
+
values: ["DRAFT", "ACTIVE", "DEPRECATED", "ARCHIVED"],
|
|
12
|
+
schema: "workflow",
|
|
13
|
+
description: "Status of a workflow definition."
|
|
17
14
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
values: [
|
|
24
|
-
"MANUAL",
|
|
25
|
-
"EVENT",
|
|
26
|
-
"SCHEDULED",
|
|
27
|
-
"API"
|
|
28
|
-
],
|
|
29
|
-
schema: "workflow",
|
|
30
|
-
description: "What triggers workflow instantiation."
|
|
15
|
+
var WorkflowTriggerTypeEnum = defineEntityEnum({
|
|
16
|
+
name: "WorkflowTriggerType",
|
|
17
|
+
values: ["MANUAL", "EVENT", "SCHEDULED", "API"],
|
|
18
|
+
schema: "workflow",
|
|
19
|
+
description: "What triggers workflow instantiation."
|
|
31
20
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
index.unique([
|
|
90
|
-
"organizationId",
|
|
91
|
-
"key",
|
|
92
|
-
"version"
|
|
93
|
-
]),
|
|
94
|
-
index.on(["organizationId", "status"]),
|
|
95
|
-
index.on(["key", "version"])
|
|
96
|
-
],
|
|
97
|
-
enums: [WorkflowStatusEnum, WorkflowTriggerTypeEnum]
|
|
21
|
+
var WorkflowDefinitionEntity = defineEntity({
|
|
22
|
+
name: "WorkflowDefinition",
|
|
23
|
+
description: "A workflow blueprint that defines the process structure.",
|
|
24
|
+
schema: "workflow",
|
|
25
|
+
map: "workflow_definition",
|
|
26
|
+
fields: {
|
|
27
|
+
id: field.id({ description: "Unique workflow definition ID" }),
|
|
28
|
+
name: field.string({ description: "Human-readable workflow name" }),
|
|
29
|
+
key: field.string({
|
|
30
|
+
description: 'Unique key for referencing (e.g., "purchase_approval")'
|
|
31
|
+
}),
|
|
32
|
+
description: field.string({
|
|
33
|
+
isOptional: true,
|
|
34
|
+
description: "Detailed description"
|
|
35
|
+
}),
|
|
36
|
+
version: field.int({
|
|
37
|
+
default: 1,
|
|
38
|
+
description: "Version number for versioning definitions"
|
|
39
|
+
}),
|
|
40
|
+
status: field.enum("WorkflowStatus", { default: "DRAFT" }),
|
|
41
|
+
triggerType: field.enum("WorkflowTriggerType", { default: "MANUAL" }),
|
|
42
|
+
triggerConfig: field.json({
|
|
43
|
+
isOptional: true,
|
|
44
|
+
description: "Trigger-specific configuration"
|
|
45
|
+
}),
|
|
46
|
+
initialStepId: field.string({
|
|
47
|
+
isOptional: true,
|
|
48
|
+
description: "First step when workflow starts"
|
|
49
|
+
}),
|
|
50
|
+
featureFlagKey: field.string({
|
|
51
|
+
isOptional: true,
|
|
52
|
+
description: "Feature flag to control availability"
|
|
53
|
+
}),
|
|
54
|
+
settings: field.json({
|
|
55
|
+
isOptional: true,
|
|
56
|
+
description: "Workflow-wide settings"
|
|
57
|
+
}),
|
|
58
|
+
metadata: field.json({ isOptional: true, description: "Custom metadata" }),
|
|
59
|
+
organizationId: field.foreignKey({ description: "Owning organization" }),
|
|
60
|
+
createdBy: field.foreignKey({
|
|
61
|
+
description: "User who created this workflow"
|
|
62
|
+
}),
|
|
63
|
+
createdAt: field.createdAt(),
|
|
64
|
+
updatedAt: field.updatedAt(),
|
|
65
|
+
publishedAt: field.dateTime({
|
|
66
|
+
isOptional: true,
|
|
67
|
+
description: "When workflow was activated"
|
|
68
|
+
}),
|
|
69
|
+
steps: field.hasMany("WorkflowStep"),
|
|
70
|
+
instances: field.hasMany("WorkflowInstance")
|
|
71
|
+
},
|
|
72
|
+
indexes: [
|
|
73
|
+
index.unique(["organizationId", "key", "version"]),
|
|
74
|
+
index.on(["organizationId", "status"]),
|
|
75
|
+
index.on(["key", "version"])
|
|
76
|
+
],
|
|
77
|
+
enums: [WorkflowStatusEnum, WorkflowTriggerTypeEnum]
|
|
98
78
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
79
|
+
export {
|
|
80
|
+
WorkflowTriggerTypeEnum,
|
|
81
|
+
WorkflowStatusEnum,
|
|
82
|
+
WorkflowDefinitionEntity
|
|
83
|
+
};
|
package/dist/example.d.ts
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
//#region src/example.d.ts
|
|
4
|
-
declare const example: _contractspec_lib_contracts0.ExampleSpec;
|
|
5
|
-
//#endregion
|
|
6
|
-
export { example as default };
|
|
1
|
+
declare const example: import("@contractspec/lib.contracts").ExampleSpec;
|
|
2
|
+
export default example;
|
|
7
3
|
//# sourceMappingURL=example.d.ts.map
|
package/dist/example.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"example.d.ts","
|
|
1
|
+
{"version":3,"file":"example.d.ts","sourceRoot":"","sources":["../src/example.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,OAAO,mDAoCX,CAAC;AAEH,eAAe,OAAO,CAAC"}
|
package/dist/example.js
CHANGED
|
@@ -1,57 +1,43 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
// src/example.ts
|
|
1
3
|
import { defineExample } from "@contractspec/lib.contracts";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
sandbox: {
|
|
38
|
-
enabled: true,
|
|
39
|
-
modes: [
|
|
40
|
-
"playground",
|
|
41
|
-
"specs",
|
|
42
|
-
"builder",
|
|
43
|
-
"markdown",
|
|
44
|
-
"evolution"
|
|
45
|
-
]
|
|
46
|
-
},
|
|
47
|
-
studio: {
|
|
48
|
-
enabled: true,
|
|
49
|
-
installable: true
|
|
50
|
-
},
|
|
51
|
-
mcp: { enabled: true }
|
|
52
|
-
}
|
|
4
|
+
var example = defineExample({
|
|
5
|
+
meta: {
|
|
6
|
+
key: "workflow-system",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
title: "Workflow / Approval System",
|
|
9
|
+
description: "State-machine driven approvals with RBAC, audit trail, notifications, and jobs.",
|
|
10
|
+
kind: "template",
|
|
11
|
+
visibility: "public",
|
|
12
|
+
stability: "experimental",
|
|
13
|
+
owners: ["@platform.core"],
|
|
14
|
+
tags: ["workflow", "approval", "state-machine", "rbac"]
|
|
15
|
+
},
|
|
16
|
+
docs: {
|
|
17
|
+
rootDocId: "docs.examples.workflow-system",
|
|
18
|
+
goalDocId: "docs.examples.workflow-system.goal",
|
|
19
|
+
usageDocId: "docs.examples.workflow-system.usage",
|
|
20
|
+
constraintsDocId: "docs.examples.workflow-system.constraints"
|
|
21
|
+
},
|
|
22
|
+
entrypoints: {
|
|
23
|
+
packageName: "@contractspec/example.workflow-system",
|
|
24
|
+
feature: "./feature",
|
|
25
|
+
contracts: "./contracts",
|
|
26
|
+
presentations: "./presentations",
|
|
27
|
+
handlers: "./handlers",
|
|
28
|
+
docs: "./docs"
|
|
29
|
+
},
|
|
30
|
+
surfaces: {
|
|
31
|
+
templates: true,
|
|
32
|
+
sandbox: {
|
|
33
|
+
enabled: true,
|
|
34
|
+
modes: ["playground", "specs", "builder", "markdown", "evolution"]
|
|
35
|
+
},
|
|
36
|
+
studio: { enabled: true, installable: true },
|
|
37
|
+
mcp: { enabled: true }
|
|
38
|
+
}
|
|
53
39
|
});
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
40
|
+
var example_default = example;
|
|
41
|
+
export {
|
|
42
|
+
example_default as default
|
|
43
|
+
};
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export * from './workflow.handlers';
|
|
2
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
|