@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,21 +1,16 @@
1
+ // @bun
2
+ // src/docs/workflow-system.docblock.ts
1
3
  import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
2
-
3
- //#region src/docs/workflow-system.docblock.ts
4
- registerDocBlocks([
5
- {
6
- id: "docs.examples.workflow-system",
7
- title: "Workflow / Approval System",
8
- summary: "Reference app showing state-machine driven approvals with RBAC, audit trail, notifications, and jobs.",
9
- kind: "reference",
10
- visibility: "public",
11
- route: "/docs/examples/workflow-system",
12
- tags: [
13
- "workflow",
14
- "approval",
15
- "state-machine",
16
- "rbac"
17
- ],
18
- body: `## Entities
4
+ var workflowSystemDocBlocks = [
5
+ {
6
+ id: "docs.examples.workflow-system",
7
+ title: "Workflow / Approval System",
8
+ summary: "Reference app showing state-machine driven approvals with RBAC, audit trail, notifications, and jobs.",
9
+ kind: "reference",
10
+ visibility: "public",
11
+ route: "/docs/examples/workflow-system",
12
+ tags: ["workflow", "approval", "state-machine", "rbac"],
13
+ body: `## Entities
19
14
 
20
15
  - WorkflowDefinition, WorkflowStep, WorkflowInstance, Approval.
21
16
  - State machine expressed in \`src/state-machine\` with allowed transitions and role gates.
@@ -40,16 +35,16 @@ registerDocBlocks([
40
35
  - Keep transitions declarative to enable safe regeneration; role guards live in spec.
41
36
  - Use Notification Center for approval requests and outcomes; attach files via Files module if needed.
42
37
  `
43
- },
44
- {
45
- id: "docs.examples.workflow-system.goal",
46
- title: "Workflow System Goal",
47
- summary: "Why the workflow/approval template exists and outcomes it targets.",
48
- kind: "goal",
49
- visibility: "public",
50
- route: "/docs/examples/workflow-system/goal",
51
- tags: ["workflow", "goal"],
52
- body: `## Why it matters
38
+ },
39
+ {
40
+ id: "docs.examples.workflow-system.goal",
41
+ title: "Workflow System \u2014 Goal",
42
+ summary: "Why the workflow/approval template exists and outcomes it targets.",
43
+ kind: "goal",
44
+ visibility: "public",
45
+ route: "/docs/examples/workflow-system/goal",
46
+ tags: ["workflow", "goal"],
47
+ body: `## Why it matters
53
48
  - Provides a regenerable, role-gated approval engine using declarative state machines.
54
49
  - Keeps workflow rules consistent across UI/API/events with auditability.
55
50
 
@@ -60,16 +55,16 @@ registerDocBlocks([
60
55
  ## Success criteria
61
56
  - State changes are declarative and regenerate cleanly.
62
57
  - Every transition emits auditable events and respects RBAC guards.`
63
- },
64
- {
65
- id: "docs.examples.workflow-system.usage",
66
- title: "Workflow System Usage",
67
- summary: "How to configure workflows, transitions, and regenerate safely.",
68
- kind: "usage",
69
- visibility: "public",
70
- route: "/docs/examples/workflow-system/usage",
71
- tags: ["workflow", "usage"],
72
- body: `## Setup
58
+ },
59
+ {
60
+ id: "docs.examples.workflow-system.usage",
61
+ title: "Workflow System \u2014 Usage",
62
+ summary: "How to configure workflows, transitions, and regenerate safely.",
63
+ kind: "usage",
64
+ visibility: "public",
65
+ route: "/docs/examples/workflow-system/usage",
66
+ tags: ["workflow", "usage"],
67
+ body: `## Setup
73
68
  1) Define WorkflowDefinition steps and allowed transitions with role gates in spec.
74
69
  2) Seed sample workflows/instances (if provided) or create via UI; enable reminders via Jobs.
75
70
 
@@ -82,20 +77,16 @@ registerDocBlocks([
82
77
  - Emit events for every transition; log to Audit Trail.
83
78
  - Use Notifications for approvals/rejections; schedule reminders for pending steps.
84
79
  - Keep transitions declarative; avoid imperative branching in handlers.`
85
- },
86
- {
87
- id: "docs.examples.workflow-system.constraints",
88
- title: "Workflow System Constraints & Safety",
89
- summary: "Internal guardrails for state machines, RBAC, and regeneration semantics.",
90
- kind: "reference",
91
- visibility: "internal",
92
- route: "/docs/examples/workflow-system/constraints",
93
- tags: [
94
- "workflow",
95
- "constraints",
96
- "internal"
97
- ],
98
- body: `## Constraints
80
+ },
81
+ {
82
+ id: "docs.examples.workflow-system.constraints",
83
+ title: "Workflow System \u2014 Constraints & Safety",
84
+ summary: "Internal guardrails for state machines, RBAC, and regeneration semantics.",
85
+ kind: "reference",
86
+ visibility: "internal",
87
+ route: "/docs/examples/workflow-system/constraints",
88
+ tags: ["workflow", "constraints", "internal"],
89
+ body: `## Constraints
99
90
  - State machine (steps/transitions) must stay declarative in spec; no hidden code paths.
100
91
  - Events to emit: instance.started, step.completed/rejected, instance.finished.
101
92
  - Regeneration must not change approval logic without explicit spec diff.
@@ -108,8 +99,6 @@ registerDocBlocks([
108
99
  - Add fixtures for transition changes and role gates.
109
100
  - Validate reminders (Jobs) stay aligned with pending states after regeneration.
110
101
  - Use Feature Flags for new transitions/escalation rules; default safe/off.`
111
- }
112
- ]);
113
-
114
- //#endregion
115
- //# sourceMappingURL=workflow-system.docblock.js.map
102
+ }
103
+ ];
104
+ registerDocBlocks(workflowSystemDocBlocks);
@@ -1,58 +1,53 @@
1
- import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
2
-
3
- //#region src/entities/approval.d.ts
4
1
  /**
5
2
  * Approval status enum.
6
3
  */
7
- declare const ApprovalStatusEnum: _contractspec_lib_schema0.EntityEnumDef;
4
+ export declare const ApprovalStatusEnum: import("@contractspec/lib.schema").EntityEnumDef;
8
5
  /**
9
6
  * Approval decision enum.
10
7
  */
11
- declare const ApprovalDecisionEnum: _contractspec_lib_schema0.EntityEnumDef;
8
+ export declare const ApprovalDecisionEnum: import("@contractspec/lib.schema").EntityEnumDef;
12
9
  /**
13
10
  * ApprovalRequest entity - a request for approval from a user.
14
11
  *
15
12
  * Created when a workflow reaches an APPROVAL step. Multiple requests
16
13
  * may be created depending on the approval mode.
17
14
  */
18
- declare const ApprovalRequestEntity: _contractspec_lib_schema0.EntitySpec<{
19
- id: _contractspec_lib_schema0.EntityScalarField;
20
- workflowInstanceId: _contractspec_lib_schema0.EntityScalarField;
21
- stepExecutionId: _contractspec_lib_schema0.EntityScalarField;
22
- approverId: _contractspec_lib_schema0.EntityScalarField;
23
- approverRole: _contractspec_lib_schema0.EntityScalarField;
24
- title: _contractspec_lib_schema0.EntityScalarField;
25
- description: _contractspec_lib_schema0.EntityScalarField;
26
- status: _contractspec_lib_schema0.EntityEnumField;
27
- decision: _contractspec_lib_schema0.EntityEnumField;
28
- decisionComment: _contractspec_lib_schema0.EntityScalarField;
29
- decidedAt: _contractspec_lib_schema0.EntityScalarField;
30
- delegatedTo: _contractspec_lib_schema0.EntityScalarField;
31
- delegationReason: _contractspec_lib_schema0.EntityScalarField;
32
- escalationLevel: _contractspec_lib_schema0.EntityScalarField;
33
- escalatedAt: _contractspec_lib_schema0.EntityScalarField;
34
- dueAt: _contractspec_lib_schema0.EntityScalarField;
35
- reminderSentAt: _contractspec_lib_schema0.EntityScalarField;
36
- contextSnapshot: _contractspec_lib_schema0.EntityScalarField;
37
- sequenceOrder: _contractspec_lib_schema0.EntityScalarField;
38
- createdAt: _contractspec_lib_schema0.EntityScalarField;
39
- updatedAt: _contractspec_lib_schema0.EntityScalarField;
40
- workflowInstance: _contractspec_lib_schema0.EntityRelationField;
41
- stepExecution: _contractspec_lib_schema0.EntityRelationField;
15
+ export declare const ApprovalRequestEntity: import("@contractspec/lib.schema").EntitySpec<{
16
+ id: import("@contractspec/lib.schema").EntityScalarField;
17
+ workflowInstanceId: import("@contractspec/lib.schema").EntityScalarField;
18
+ stepExecutionId: import("@contractspec/lib.schema").EntityScalarField;
19
+ approverId: import("@contractspec/lib.schema").EntityScalarField;
20
+ approverRole: import("@contractspec/lib.schema").EntityScalarField;
21
+ title: import("@contractspec/lib.schema").EntityScalarField;
22
+ description: import("@contractspec/lib.schema").EntityScalarField;
23
+ status: import("@contractspec/lib.schema").EntityEnumField;
24
+ decision: import("@contractspec/lib.schema").EntityEnumField;
25
+ decisionComment: import("@contractspec/lib.schema").EntityScalarField;
26
+ decidedAt: import("@contractspec/lib.schema").EntityScalarField;
27
+ delegatedTo: import("@contractspec/lib.schema").EntityScalarField;
28
+ delegationReason: import("@contractspec/lib.schema").EntityScalarField;
29
+ escalationLevel: import("@contractspec/lib.schema").EntityScalarField;
30
+ escalatedAt: import("@contractspec/lib.schema").EntityScalarField;
31
+ dueAt: import("@contractspec/lib.schema").EntityScalarField;
32
+ reminderSentAt: import("@contractspec/lib.schema").EntityScalarField;
33
+ contextSnapshot: import("@contractspec/lib.schema").EntityScalarField;
34
+ sequenceOrder: import("@contractspec/lib.schema").EntityScalarField;
35
+ createdAt: import("@contractspec/lib.schema").EntityScalarField;
36
+ updatedAt: import("@contractspec/lib.schema").EntityScalarField;
37
+ workflowInstance: import("@contractspec/lib.schema").EntityRelationField;
38
+ stepExecution: import("@contractspec/lib.schema").EntityRelationField;
42
39
  }>;
43
40
  /**
44
41
  * ApprovalComment entity - comments on approval requests.
45
42
  */
46
- declare const ApprovalCommentEntity: _contractspec_lib_schema0.EntitySpec<{
47
- id: _contractspec_lib_schema0.EntityScalarField;
48
- approvalRequestId: _contractspec_lib_schema0.EntityScalarField;
49
- authorId: _contractspec_lib_schema0.EntityScalarField;
50
- content: _contractspec_lib_schema0.EntityScalarField;
51
- isInternal: _contractspec_lib_schema0.EntityScalarField;
52
- createdAt: _contractspec_lib_schema0.EntityScalarField;
53
- updatedAt: _contractspec_lib_schema0.EntityScalarField;
54
- approvalRequest: _contractspec_lib_schema0.EntityRelationField;
43
+ export declare const ApprovalCommentEntity: import("@contractspec/lib.schema").EntitySpec<{
44
+ id: import("@contractspec/lib.schema").EntityScalarField;
45
+ approvalRequestId: import("@contractspec/lib.schema").EntityScalarField;
46
+ authorId: import("@contractspec/lib.schema").EntityScalarField;
47
+ content: import("@contractspec/lib.schema").EntityScalarField;
48
+ isInternal: import("@contractspec/lib.schema").EntityScalarField;
49
+ createdAt: import("@contractspec/lib.schema").EntityScalarField;
50
+ updatedAt: import("@contractspec/lib.schema").EntityScalarField;
51
+ approvalRequest: import("@contractspec/lib.schema").EntityRelationField;
55
52
  }>;
56
- //#endregion
57
- export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum };
58
53
  //# sourceMappingURL=approval.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"approval.d.ts","names":[],"sources":["../../src/entities/approval.ts"],"mappings":";;;;;;cAUa,kBAAA,EAaX,yBAAA,CAb6B,aAAA;;;;cAkBlB,oBAAA,EAWX,yBAAA,CAX+B,aAAA;AAAjC;;;;;AAmBA;AAnBA,cAmBa,qBAAA,4BAAqB,UAAA;MA4FhC,yBAAA,CAAA,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,qBAAA,4BAAqB,UAAA;MAmChC,yBAAA,CAAA,iBAAA"}
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/entities/approval.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,eAAO,MAAM,kBAAkB,kDAa7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,kDAW/B,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;EA4FhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;EAmChC,CAAC"}
@@ -1,128 +1,120 @@
1
- import { defineEntity, defineEntityEnum, field, index } from "@contractspec/lib.schema";
2
-
3
- //#region src/entities/approval.ts
4
- /**
5
- * Approval status enum.
6
- */
7
- const ApprovalStatusEnum = defineEntityEnum({
8
- name: "ApprovalStatus",
9
- values: [
10
- "PENDING",
11
- "APPROVED",
12
- "REJECTED",
13
- "DELEGATED",
14
- "ESCALATED",
15
- "WITHDRAWN",
16
- "EXPIRED"
17
- ],
18
- schema: "workflow",
19
- description: "Status of an approval request."
1
+ // @bun
2
+ // src/entities/approval.ts
3
+ import {
4
+ defineEntity,
5
+ defineEntityEnum,
6
+ field,
7
+ index
8
+ } from "@contractspec/lib.schema";
9
+ var ApprovalStatusEnum = defineEntityEnum({
10
+ name: "ApprovalStatus",
11
+ values: [
12
+ "PENDING",
13
+ "APPROVED",
14
+ "REJECTED",
15
+ "DELEGATED",
16
+ "ESCALATED",
17
+ "WITHDRAWN",
18
+ "EXPIRED"
19
+ ],
20
+ schema: "workflow",
21
+ description: "Status of an approval request."
20
22
  });
21
- /**
22
- * Approval decision enum.
23
- */
24
- const ApprovalDecisionEnum = defineEntityEnum({
25
- name: "ApprovalDecision",
26
- values: [
27
- "APPROVE",
28
- "REJECT",
29
- "REQUEST_CHANGES",
30
- "DELEGATE",
31
- "ABSTAIN"
32
- ],
33
- schema: "workflow",
34
- description: "Possible approval decisions."
23
+ var ApprovalDecisionEnum = defineEntityEnum({
24
+ name: "ApprovalDecision",
25
+ values: [
26
+ "APPROVE",
27
+ "REJECT",
28
+ "REQUEST_CHANGES",
29
+ "DELEGATE",
30
+ "ABSTAIN"
31
+ ],
32
+ schema: "workflow",
33
+ description: "Possible approval decisions."
35
34
  });
36
- /**
37
- * ApprovalRequest entity - a request for approval from a user.
38
- *
39
- * Created when a workflow reaches an APPROVAL step. Multiple requests
40
- * may be created depending on the approval mode.
41
- */
42
- const ApprovalRequestEntity = defineEntity({
43
- name: "ApprovalRequest",
44
- description: "A pending approval request for a workflow step.",
45
- schema: "workflow",
46
- map: "approval_request",
47
- fields: {
48
- id: field.id({ description: "Unique approval request ID" }),
49
- workflowInstanceId: field.foreignKey(),
50
- stepExecutionId: field.foreignKey(),
51
- approverId: field.foreignKey({ description: "User requested to approve" }),
52
- approverRole: field.string({
53
- isOptional: true,
54
- description: "Role of the approver"
55
- }),
56
- title: field.string({ description: "Approval request title" }),
57
- description: field.string({ isOptional: true }),
58
- status: field.enum("ApprovalStatus", { default: "PENDING" }),
59
- decision: field.enum("ApprovalDecision", { isOptional: true }),
60
- decisionComment: field.string({
61
- isOptional: true,
62
- description: "Comment explaining decision"
63
- }),
64
- decidedAt: field.dateTime({ isOptional: true }),
65
- delegatedTo: field.string({
66
- isOptional: true,
67
- description: "User delegated to"
68
- }),
69
- delegationReason: field.string({ isOptional: true }),
70
- escalationLevel: field.int({
71
- default: 0,
72
- description: "Current escalation level"
73
- }),
74
- escalatedAt: field.dateTime({ isOptional: true }),
75
- dueAt: field.dateTime({
76
- isOptional: true,
77
- description: "When approval is due"
78
- }),
79
- reminderSentAt: field.dateTime({ isOptional: true }),
80
- contextSnapshot: field.json({
81
- isOptional: true,
82
- description: "Snapshot of relevant data for review"
83
- }),
84
- sequenceOrder: field.int({
85
- default: 0,
86
- description: "Order in approval chain"
87
- }),
88
- createdAt: field.createdAt(),
89
- updatedAt: field.updatedAt(),
90
- workflowInstance: field.belongsTo("WorkflowInstance", ["workflowInstanceId"], ["id"], { onDelete: "Cascade" }),
91
- stepExecution: field.belongsTo("StepExecution", ["stepExecutionId"], ["id"])
92
- },
93
- indexes: [
94
- index.on(["approverId", "status"]),
95
- index.on(["workflowInstanceId", "status"]),
96
- index.on(["stepExecutionId"]),
97
- index.on(["status", "dueAt"]),
98
- index.on(["createdAt"])
99
- ],
100
- enums: [ApprovalStatusEnum, ApprovalDecisionEnum]
35
+ var ApprovalRequestEntity = defineEntity({
36
+ name: "ApprovalRequest",
37
+ description: "A pending approval request for a workflow step.",
38
+ schema: "workflow",
39
+ map: "approval_request",
40
+ fields: {
41
+ id: field.id({ description: "Unique approval request ID" }),
42
+ workflowInstanceId: field.foreignKey(),
43
+ stepExecutionId: field.foreignKey(),
44
+ approverId: field.foreignKey({ description: "User requested to approve" }),
45
+ approverRole: field.string({
46
+ isOptional: true,
47
+ description: "Role of the approver"
48
+ }),
49
+ title: field.string({ description: "Approval request title" }),
50
+ description: field.string({ isOptional: true }),
51
+ status: field.enum("ApprovalStatus", { default: "PENDING" }),
52
+ decision: field.enum("ApprovalDecision", { isOptional: true }),
53
+ decisionComment: field.string({
54
+ isOptional: true,
55
+ description: "Comment explaining decision"
56
+ }),
57
+ decidedAt: field.dateTime({ isOptional: true }),
58
+ delegatedTo: field.string({
59
+ isOptional: true,
60
+ description: "User delegated to"
61
+ }),
62
+ delegationReason: field.string({ isOptional: true }),
63
+ escalationLevel: field.int({
64
+ default: 0,
65
+ description: "Current escalation level"
66
+ }),
67
+ escalatedAt: field.dateTime({ isOptional: true }),
68
+ dueAt: field.dateTime({
69
+ isOptional: true,
70
+ description: "When approval is due"
71
+ }),
72
+ reminderSentAt: field.dateTime({ isOptional: true }),
73
+ contextSnapshot: field.json({
74
+ isOptional: true,
75
+ description: "Snapshot of relevant data for review"
76
+ }),
77
+ sequenceOrder: field.int({
78
+ default: 0,
79
+ description: "Order in approval chain"
80
+ }),
81
+ createdAt: field.createdAt(),
82
+ updatedAt: field.updatedAt(),
83
+ workflowInstance: field.belongsTo("WorkflowInstance", ["workflowInstanceId"], ["id"], { onDelete: "Cascade" }),
84
+ stepExecution: field.belongsTo("StepExecution", ["stepExecutionId"], ["id"])
85
+ },
86
+ indexes: [
87
+ index.on(["approverId", "status"]),
88
+ index.on(["workflowInstanceId", "status"]),
89
+ index.on(["stepExecutionId"]),
90
+ index.on(["status", "dueAt"]),
91
+ index.on(["createdAt"])
92
+ ],
93
+ enums: [ApprovalStatusEnum, ApprovalDecisionEnum]
101
94
  });
102
- /**
103
- * ApprovalComment entity - comments on approval requests.
104
- */
105
- const ApprovalCommentEntity = defineEntity({
106
- name: "ApprovalComment",
107
- description: "A comment on an approval request.",
108
- schema: "workflow",
109
- map: "approval_comment",
110
- fields: {
111
- id: field.id(),
112
- approvalRequestId: field.foreignKey(),
113
- authorId: field.foreignKey(),
114
- content: field.string({ description: "Comment text" }),
115
- isInternal: field.boolean({
116
- default: false,
117
- description: "Internal note vs public comment"
118
- }),
119
- createdAt: field.createdAt(),
120
- updatedAt: field.updatedAt(),
121
- approvalRequest: field.belongsTo("ApprovalRequest", ["approvalRequestId"], ["id"], { onDelete: "Cascade" })
122
- },
123
- indexes: [index.on(["approvalRequestId", "createdAt"])]
95
+ var ApprovalCommentEntity = defineEntity({
96
+ name: "ApprovalComment",
97
+ description: "A comment on an approval request.",
98
+ schema: "workflow",
99
+ map: "approval_comment",
100
+ fields: {
101
+ id: field.id(),
102
+ approvalRequestId: field.foreignKey(),
103
+ authorId: field.foreignKey(),
104
+ content: field.string({ description: "Comment text" }),
105
+ isInternal: field.boolean({
106
+ default: false,
107
+ description: "Internal note vs public comment"
108
+ }),
109
+ createdAt: field.createdAt(),
110
+ updatedAt: field.updatedAt(),
111
+ approvalRequest: field.belongsTo("ApprovalRequest", ["approvalRequestId"], ["id"], { onDelete: "Cascade" })
112
+ },
113
+ indexes: [index.on(["approvalRequestId", "createdAt"])]
124
114
  });
125
-
126
- //#endregion
127
- export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum };
128
- //# sourceMappingURL=approval.js.map
115
+ export {
116
+ ApprovalStatusEnum,
117
+ ApprovalRequestEntity,
118
+ ApprovalDecisionEnum,
119
+ ApprovalCommentEntity
120
+ };