@contractspec/example.workflow-system 0.0.0-canary-20260113170453

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 (157) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +124 -0
  3. package/dist/approval/approval.enum.d.ts +14 -0
  4. package/dist/approval/approval.enum.d.ts.map +1 -0
  5. package/dist/approval/approval.enum.js +29 -0
  6. package/dist/approval/approval.enum.js.map +1 -0
  7. package/dist/approval/approval.event.d.ts +131 -0
  8. package/dist/approval/approval.event.d.ts.map +1 -0
  9. package/dist/approval/approval.event.js +220 -0
  10. package/dist/approval/approval.event.js.map +1 -0
  11. package/dist/approval/approval.handler.d.ts +23 -0
  12. package/dist/approval/approval.handler.d.ts.map +1 -0
  13. package/dist/approval/approval.handler.js +72 -0
  14. package/dist/approval/approval.handler.js.map +1 -0
  15. package/dist/approval/approval.operations.d.ts +535 -0
  16. package/dist/approval/approval.operations.d.ts.map +1 -0
  17. package/dist/approval/approval.operations.js +345 -0
  18. package/dist/approval/approval.operations.js.map +1 -0
  19. package/dist/approval/approval.schema.d.ts +100 -0
  20. package/dist/approval/approval.schema.d.ts.map +1 -0
  21. package/dist/approval/approval.schema.js +110 -0
  22. package/dist/approval/approval.schema.js.map +1 -0
  23. package/dist/approval/index.d.ts +5 -0
  24. package/dist/approval/index.js +6 -0
  25. package/dist/docs/index.d.ts +1 -0
  26. package/dist/docs/index.js +1 -0
  27. package/dist/docs/workflow-system.docblock.d.ts +1 -0
  28. package/dist/docs/workflow-system.docblock.js +115 -0
  29. package/dist/docs/workflow-system.docblock.js.map +1 -0
  30. package/dist/entities/approval.d.ts +58 -0
  31. package/dist/entities/approval.d.ts.map +1 -0
  32. package/dist/entities/approval.js +128 -0
  33. package/dist/entities/approval.js.map +1 -0
  34. package/dist/entities/index.d.ts +139 -0
  35. package/dist/entities/index.d.ts.map +1 -0
  36. package/dist/entities/index.js +32 -0
  37. package/dist/entities/index.js.map +1 -0
  38. package/dist/entities/instance.d.ts +69 -0
  39. package/dist/entities/instance.d.ts.map +1 -0
  40. package/dist/entities/instance.js +168 -0
  41. package/dist/entities/instance.js.map +1 -0
  42. package/dist/entities/step.d.ts +50 -0
  43. package/dist/entities/step.d.ts.map +1 -0
  44. package/dist/entities/step.js +135 -0
  45. package/dist/entities/step.js.map +1 -0
  46. package/dist/entities/workflow.d.ts +41 -0
  47. package/dist/entities/workflow.d.ts.map +1 -0
  48. package/dist/entities/workflow.js +102 -0
  49. package/dist/entities/workflow.js.map +1 -0
  50. package/dist/example.d.ts +7 -0
  51. package/dist/example.d.ts.map +1 -0
  52. package/dist/example.js +58 -0
  53. package/dist/example.js.map +1 -0
  54. package/dist/handlers/index.d.ts +2 -0
  55. package/dist/handlers/index.js +3 -0
  56. package/dist/handlers/workflow.handlers.d.ts +122 -0
  57. package/dist/handlers/workflow.handlers.d.ts.map +1 -0
  58. package/dist/handlers/workflow.handlers.js +263 -0
  59. package/dist/handlers/workflow.handlers.js.map +1 -0
  60. package/dist/index.d.ts +26 -0
  61. package/dist/index.js +26 -0
  62. package/dist/instance/index.d.ts +5 -0
  63. package/dist/instance/index.js +6 -0
  64. package/dist/instance/instance.enum.d.ts +10 -0
  65. package/dist/instance/instance.enum.d.ts.map +1 -0
  66. package/dist/instance/instance.enum.js +20 -0
  67. package/dist/instance/instance.enum.js.map +1 -0
  68. package/dist/instance/instance.event.d.ts +356 -0
  69. package/dist/instance/instance.event.d.ts.map +1 -0
  70. package/dist/instance/instance.event.js +293 -0
  71. package/dist/instance/instance.event.js.map +1 -0
  72. package/dist/instance/instance.handler.d.ts +27 -0
  73. package/dist/instance/instance.handler.d.ts.map +1 -0
  74. package/dist/instance/instance.handler.js +94 -0
  75. package/dist/instance/instance.handler.js.map +1 -0
  76. package/dist/instance/instance.operations.d.ts +1024 -0
  77. package/dist/instance/instance.operations.d.ts.map +1 -0
  78. package/dist/instance/instance.operations.js +464 -0
  79. package/dist/instance/instance.operations.js.map +1 -0
  80. package/dist/instance/instance.schema.d.ts +223 -0
  81. package/dist/instance/instance.schema.d.ts.map +1 -0
  82. package/dist/instance/instance.schema.js +172 -0
  83. package/dist/instance/instance.schema.js.map +1 -0
  84. package/dist/presentations/index.d.ts +63 -0
  85. package/dist/presentations/index.d.ts.map +1 -0
  86. package/dist/presentations/index.js +340 -0
  87. package/dist/presentations/index.js.map +1 -0
  88. package/dist/seeders/index.d.ts +10 -0
  89. package/dist/seeders/index.d.ts.map +1 -0
  90. package/dist/seeders/index.js +19 -0
  91. package/dist/seeders/index.js.map +1 -0
  92. package/dist/shared/index.d.ts +3 -0
  93. package/dist/shared/index.js +3 -0
  94. package/dist/shared/mock-data.d.ts +19 -0
  95. package/dist/shared/mock-data.d.ts.map +1 -0
  96. package/dist/shared/mock-data.js +12 -0
  97. package/dist/shared/mock-data.js.map +1 -0
  98. package/dist/shared/types.d.ts +81 -0
  99. package/dist/shared/types.d.ts.map +1 -0
  100. package/dist/shared/types.js +0 -0
  101. package/dist/state-machine/index.d.ts +148 -0
  102. package/dist/state-machine/index.d.ts.map +1 -0
  103. package/dist/state-machine/index.js +158 -0
  104. package/dist/state-machine/index.js.map +1 -0
  105. package/dist/tests/operations.test-spec.d.ts +10 -0
  106. package/dist/tests/operations.test-spec.d.ts.map +1 -0
  107. package/dist/tests/operations.test-spec.js +123 -0
  108. package/dist/tests/operations.test-spec.js.map +1 -0
  109. package/dist/ui/WorkflowDashboard.d.ts +7 -0
  110. package/dist/ui/WorkflowDashboard.d.ts.map +1 -0
  111. package/dist/ui/WorkflowDashboard.js +223 -0
  112. package/dist/ui/WorkflowDashboard.js.map +1 -0
  113. package/dist/ui/hooks/index.d.ts +2 -0
  114. package/dist/ui/hooks/index.js +5 -0
  115. package/dist/ui/hooks/useWorkflowList.d.ts +22 -0
  116. package/dist/ui/hooks/useWorkflowList.d.ts.map +1 -0
  117. package/dist/ui/hooks/useWorkflowList.js +55 -0
  118. package/dist/ui/hooks/useWorkflowList.js.map +1 -0
  119. package/dist/ui/index.d.ts +6 -0
  120. package/dist/ui/index.js +6 -0
  121. package/dist/ui/renderers/index.d.ts +2 -0
  122. package/dist/ui/renderers/index.js +3 -0
  123. package/dist/ui/renderers/workflow.markdown.d.ts +28 -0
  124. package/dist/ui/renderers/workflow.markdown.d.ts.map +1 -0
  125. package/dist/ui/renderers/workflow.markdown.js +234 -0
  126. package/dist/ui/renderers/workflow.markdown.js.map +1 -0
  127. package/dist/workflow/index.d.ts +5 -0
  128. package/dist/workflow/index.js +6 -0
  129. package/dist/workflow/workflow.enum.d.ts +22 -0
  130. package/dist/workflow/workflow.enum.d.ts.map +1 -0
  131. package/dist/workflow/workflow.enum.js +47 -0
  132. package/dist/workflow/workflow.enum.js.map +1 -0
  133. package/dist/workflow/workflow.event.d.ts +135 -0
  134. package/dist/workflow/workflow.event.d.ts.map +1 -0
  135. package/dist/workflow/workflow.event.js +150 -0
  136. package/dist/workflow/workflow.event.js.map +1 -0
  137. package/dist/workflow/workflow.handler.d.ts +29 -0
  138. package/dist/workflow/workflow.handler.d.ts.map +1 -0
  139. package/dist/workflow/workflow.handler.js +66 -0
  140. package/dist/workflow/workflow.handler.js.map +1 -0
  141. package/dist/workflow/workflow.operations.d.ts +1011 -0
  142. package/dist/workflow/workflow.operations.d.ts.map +1 -0
  143. package/dist/workflow/workflow.operations.js +345 -0
  144. package/dist/workflow/workflow.operations.js.map +1 -0
  145. package/dist/workflow/workflow.schema.d.ts +265 -0
  146. package/dist/workflow/workflow.schema.d.ts.map +1 -0
  147. package/dist/workflow/workflow.schema.js +249 -0
  148. package/dist/workflow/workflow.schema.js.map +1 -0
  149. package/dist/workflow-system.capability.d.ts +9 -0
  150. package/dist/workflow-system.capability.d.ts.map +1 -0
  151. package/dist/workflow-system.capability.js +34 -0
  152. package/dist/workflow-system.capability.js.map +1 -0
  153. package/dist/workflow-system.feature.d.ts +12 -0
  154. package/dist/workflow-system.feature.d.ts.map +1 -0
  155. package/dist/workflow-system.feature.js +346 -0
  156. package/dist/workflow-system.feature.js.map +1 -0
  157. package/package.json +133 -0
@@ -0,0 +1,115 @@
1
+ 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
19
+
20
+ - WorkflowDefinition, WorkflowStep, WorkflowInstance, Approval.
21
+ - State machine expressed in \`src/state-machine\` with allowed transitions and role gates.
22
+
23
+ ## Contracts
24
+
25
+ - \`workflow.definition.create\`, \`workflow.instance.start\`, \`workflow.step.approve\`, \`workflow.step.reject\`, \`workflow.instance.comment\`.
26
+ - Policies enforced via Identity/RBAC module; audit trail emitted on each transition.
27
+
28
+ ## Events & Jobs
29
+
30
+ - Emits \`workflow.instance.started\`, \`workflow.step.completed\`, \`workflow.step.rejected\`, \`workflow.instance.finished\`.
31
+ - Reminder jobs can be scheduled via @contractspec/lib.jobs for pending approvals.
32
+
33
+ ## UI / Presentations
34
+
35
+ - Dashboard, definition list/editor, instance detail with action buttons derived from state machine.
36
+ - Templates registered in Studio Template Registry under \`workflow-system\`.
37
+
38
+ ## Notes
39
+
40
+ - Keep transitions declarative to enable safe regeneration; role guards live in spec.
41
+ - Use Notification Center for approval requests and outcomes; attach files via Files module if needed.
42
+ `
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
53
+ - Provides a regenerable, role-gated approval engine using declarative state machines.
54
+ - Keeps workflow rules consistent across UI/API/events with auditability.
55
+
56
+ ## Business/Product goal
57
+ - Enable approvals with clear transitions, reminders, and notifications.
58
+ - Support compliance via Audit Trail and Feature Flags for staged changes.
59
+
60
+ ## Success criteria
61
+ - State changes are declarative and regenerate cleanly.
62
+ - 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
73
+ 1) Define WorkflowDefinition steps and allowed transitions with role gates in spec.
74
+ 2) Seed sample workflows/instances (if provided) or create via UI; enable reminders via Jobs.
75
+
76
+ ## Extend & regenerate
77
+ 1) Add steps/transitions or approval conditions in spec; include PII paths if comments/files.
78
+ 2) Regenerate to sync UI action buttons and API/state machine behavior.
79
+ 3) Use Feature Flags to trial new transitions or escalation rules.
80
+
81
+ ## Guardrails
82
+ - Emit events for every transition; log to Audit Trail.
83
+ - Use Notifications for approvals/rejections; schedule reminders for pending steps.
84
+ - 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
99
+ - State machine (steps/transitions) must stay declarative in spec; no hidden code paths.
100
+ - Events to emit: instance.started, step.completed/rejected, instance.finished.
101
+ - Regeneration must not change approval logic without explicit spec diff.
102
+
103
+ ## PII & Compliance
104
+ - Mark any PII in comments/attachments; redact in markdown/JSON.
105
+ - Ensure Audit Trail captures every transition; Notifications for approvals/rejections.
106
+
107
+ ## Verification
108
+ - Add fixtures for transition changes and role gates.
109
+ - Validate reminders (Jobs) stay aligned with pending states after regeneration.
110
+ - Use Feature Flags for new transitions/escalation rules; default safe/off.`
111
+ }
112
+ ]);
113
+
114
+ //#endregion
115
+ //# sourceMappingURL=workflow-system.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-system.docblock.js","names":[],"sources":["../../src/docs/workflow-system.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst workflowSystemDocBlocks: DocBlock[] = [\n {\n id: 'docs.examples.workflow-system',\n title: 'Workflow / Approval System',\n summary:\n 'Reference app showing state-machine driven approvals with RBAC, audit trail, notifications, and jobs.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/examples/workflow-system',\n tags: ['workflow', 'approval', 'state-machine', 'rbac'],\n body: `## Entities\n\n- WorkflowDefinition, WorkflowStep, WorkflowInstance, Approval.\n- State machine expressed in \\`src/state-machine\\` with allowed transitions and role gates.\n\n## Contracts\n\n- \\`workflow.definition.create\\`, \\`workflow.instance.start\\`, \\`workflow.step.approve\\`, \\`workflow.step.reject\\`, \\`workflow.instance.comment\\`.\n- Policies enforced via Identity/RBAC module; audit trail emitted on each transition.\n\n## Events & Jobs\n\n- Emits \\`workflow.instance.started\\`, \\`workflow.step.completed\\`, \\`workflow.step.rejected\\`, \\`workflow.instance.finished\\`.\n- Reminder jobs can be scheduled via @contractspec/lib.jobs for pending approvals.\n\n## UI / Presentations\n\n- Dashboard, definition list/editor, instance detail with action buttons derived from state machine.\n- Templates registered in Studio Template Registry under \\`workflow-system\\`.\n\n## Notes\n\n- Keep transitions declarative to enable safe regeneration; role guards live in spec.\n- Use Notification Center for approval requests and outcomes; attach files via Files module if needed.\n`,\n },\n {\n id: 'docs.examples.workflow-system.goal',\n title: 'Workflow System — Goal',\n summary:\n 'Why the workflow/approval template exists and outcomes it targets.',\n kind: 'goal',\n visibility: 'public',\n route: '/docs/examples/workflow-system/goal',\n tags: ['workflow', 'goal'],\n body: `## Why it matters\n- Provides a regenerable, role-gated approval engine using declarative state machines.\n- Keeps workflow rules consistent across UI/API/events with auditability.\n\n## Business/Product goal\n- Enable approvals with clear transitions, reminders, and notifications.\n- Support compliance via Audit Trail and Feature Flags for staged changes.\n\n## Success criteria\n- State changes are declarative and regenerate cleanly.\n- Every transition emits auditable events and respects RBAC guards.`,\n },\n {\n id: 'docs.examples.workflow-system.usage',\n title: 'Workflow System — Usage',\n summary: 'How to configure workflows, transitions, and regenerate safely.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/examples/workflow-system/usage',\n tags: ['workflow', 'usage'],\n body: `## Setup\n1) Define WorkflowDefinition steps and allowed transitions with role gates in spec.\n2) Seed sample workflows/instances (if provided) or create via UI; enable reminders via Jobs.\n\n## Extend & regenerate\n1) Add steps/transitions or approval conditions in spec; include PII paths if comments/files.\n2) Regenerate to sync UI action buttons and API/state machine behavior.\n3) Use Feature Flags to trial new transitions or escalation rules.\n\n## Guardrails\n- Emit events for every transition; log to Audit Trail.\n- Use Notifications for approvals/rejections; schedule reminders for pending steps.\n- Keep transitions declarative; avoid imperative branching in handlers.`,\n },\n {\n id: 'docs.examples.workflow-system.constraints',\n title: 'Workflow System — Constraints & Safety',\n summary:\n 'Internal guardrails for state machines, RBAC, and regeneration semantics.',\n kind: 'reference',\n visibility: 'internal',\n route: '/docs/examples/workflow-system/constraints',\n tags: ['workflow', 'constraints', 'internal'],\n body: `## Constraints\n- State machine (steps/transitions) must stay declarative in spec; no hidden code paths.\n- Events to emit: instance.started, step.completed/rejected, instance.finished.\n- Regeneration must not change approval logic without explicit spec diff.\n\n## PII & Compliance\n- Mark any PII in comments/attachments; redact in markdown/JSON.\n- Ensure Audit Trail captures every transition; Notifications for approvals/rejections.\n\n## Verification\n- Add fixtures for transition changes and role gates.\n- Validate reminders (Jobs) stay aligned with pending states after regeneration.\n- Use Feature Flags for new transitions/escalation rules; default safe/off.`,\n },\n];\n\nregisterDocBlocks(workflowSystemDocBlocks);\n"],"mappings":";;;AA2GA,kBAxG4C;CAC1C;EACE,IAAI;EACJ,OAAO;EACP,SACE;EACF,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAY;GAAY;GAAiB;GAAO;EACvD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;EAyBP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SACE;EACF,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,YAAY,OAAO;EAC1B,MAAM;;;;;;;;;;;EAWP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SAAS;EACT,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM,CAAC,YAAY,QAAQ;EAC3B,MAAM;;;;;;;;;;;;;EAaP;CACD;EACE,IAAI;EACJ,OAAO;EACP,SACE;EACF,MAAM;EACN,YAAY;EACZ,OAAO;EACP,MAAM;GAAC;GAAY;GAAe;GAAW;EAC7C,MAAM;;;;;;;;;;;;;EAaP;CACF,CAEyC"}
@@ -0,0 +1,58 @@
1
+ import * as _contractspec_lib_schema0 from "@contractspec/lib.schema";
2
+
3
+ //#region src/entities/approval.d.ts
4
+ /**
5
+ * Approval status enum.
6
+ */
7
+ declare const ApprovalStatusEnum: _contractspec_lib_schema0.EntityEnumDef;
8
+ /**
9
+ * Approval decision enum.
10
+ */
11
+ declare const ApprovalDecisionEnum: _contractspec_lib_schema0.EntityEnumDef;
12
+ /**
13
+ * ApprovalRequest entity - a request for approval from a user.
14
+ *
15
+ * Created when a workflow reaches an APPROVAL step. Multiple requests
16
+ * may be created depending on the approval mode.
17
+ */
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;
42
+ }>;
43
+ /**
44
+ * ApprovalComment entity - comments on approval requests.
45
+ */
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;
55
+ }>;
56
+ //#endregion
57
+ export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum };
58
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","names":[],"sources":["../../src/entities/approval.ts"],"sourcesContent":[],"mappings":";;;;;;AAUa,cAAA,kBAaX,EAAA,yBAAA,CAb6B,aAa7B;AAKF;AAmBA;;cAnBa,sBAWX,yBAAA,CAX+B;;;;;;;cAmBpB,iDAAqB;MA4FhC,yBAAA,CAAA;;;;;;;;;;;;;;0DA5FgC;EAAA,KAAA,6CAAA;EAiGrB,cAAA,6CAmCX;EAAA,eAAA,6CAAA;;;;;;;;;;cAnCW,iDAAqB;MAmChC,yBAAA,CAAA"}
@@ -0,0 +1,128 @@
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."
20
+ });
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."
35
+ });
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]
101
+ });
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"])]
124
+ });
125
+
126
+ //#endregion
127
+ export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum };
128
+ //# sourceMappingURL=approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.js","names":[],"sources":["../../src/entities/approval.ts"],"sourcesContent":["import {\n defineEntity,\n defineEntityEnum,\n field,\n index,\n} from '@contractspec/lib.schema';\n\n/**\n * Approval status enum.\n */\nexport const ApprovalStatusEnum = defineEntityEnum({\n name: 'ApprovalStatus',\n values: [\n 'PENDING', // Awaiting decision\n 'APPROVED', // Approved\n 'REJECTED', // Rejected\n 'DELEGATED', // Delegated to another user\n 'ESCALATED', // Escalated due to timeout\n 'WITHDRAWN', // Request withdrawn\n 'EXPIRED', // Request expired\n ] as const,\n schema: 'workflow',\n description: 'Status of an approval request.',\n});\n\n/**\n * Approval decision enum.\n */\nexport const ApprovalDecisionEnum = defineEntityEnum({\n name: 'ApprovalDecision',\n values: [\n 'APPROVE',\n 'REJECT',\n 'REQUEST_CHANGES',\n 'DELEGATE',\n 'ABSTAIN',\n ] as const,\n schema: 'workflow',\n description: 'Possible approval decisions.',\n});\n\n/**\n * ApprovalRequest entity - a request for approval from a user.\n *\n * Created when a workflow reaches an APPROVAL step. Multiple requests\n * may be created depending on the approval mode.\n */\nexport const ApprovalRequestEntity = defineEntity({\n name: 'ApprovalRequest',\n description: 'A pending approval request for a workflow step.',\n schema: 'workflow',\n map: 'approval_request',\n fields: {\n id: field.id({ description: 'Unique approval request ID' }),\n\n // Parent\n workflowInstanceId: field.foreignKey(),\n stepExecutionId: field.foreignKey(),\n\n // Approver\n approverId: field.foreignKey({ description: 'User requested to approve' }),\n approverRole: field.string({\n isOptional: true,\n description: 'Role of the approver',\n }),\n\n // Request details\n title: field.string({ description: 'Approval request title' }),\n description: field.string({ isOptional: true }),\n\n // Status\n status: field.enum('ApprovalStatus', { default: 'PENDING' }),\n\n // Decision\n decision: field.enum('ApprovalDecision', { isOptional: true }),\n decisionComment: field.string({\n isOptional: true,\n description: 'Comment explaining decision',\n }),\n decidedAt: field.dateTime({ isOptional: true }),\n\n // Delegation\n delegatedTo: field.string({\n isOptional: true,\n description: 'User delegated to',\n }),\n delegationReason: field.string({ isOptional: true }),\n\n // Escalation\n escalationLevel: field.int({\n default: 0,\n description: 'Current escalation level',\n }),\n escalatedAt: field.dateTime({ isOptional: true }),\n\n // Deadlines\n dueAt: field.dateTime({\n isOptional: true,\n description: 'When approval is due',\n }),\n reminderSentAt: field.dateTime({ isOptional: true }),\n\n // Context - data to display for approval\n contextSnapshot: field.json({\n isOptional: true,\n description: 'Snapshot of relevant data for review',\n }),\n\n // Order (for sequential approvals)\n sequenceOrder: field.int({\n default: 0,\n description: 'Order in approval chain',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n workflowInstance: field.belongsTo(\n 'WorkflowInstance',\n ['workflowInstanceId'],\n ['id'],\n { onDelete: 'Cascade' }\n ),\n stepExecution: field.belongsTo(\n 'StepExecution',\n ['stepExecutionId'],\n ['id']\n ),\n },\n indexes: [\n index.on(['approverId', 'status']),\n index.on(['workflowInstanceId', 'status']),\n index.on(['stepExecutionId']),\n index.on(['status', 'dueAt']),\n index.on(['createdAt']),\n ],\n enums: [ApprovalStatusEnum, ApprovalDecisionEnum],\n});\n\n/**\n * ApprovalComment entity - comments on approval requests.\n */\nexport const ApprovalCommentEntity = defineEntity({\n name: 'ApprovalComment',\n description: 'A comment on an approval request.',\n schema: 'workflow',\n map: 'approval_comment',\n fields: {\n id: field.id(),\n\n approvalRequestId: field.foreignKey(),\n\n // Author\n authorId: field.foreignKey(),\n\n // Content\n content: field.string({ description: 'Comment text' }),\n\n // Type\n isInternal: field.boolean({\n default: false,\n description: 'Internal note vs public comment',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n approvalRequest: field.belongsTo(\n 'ApprovalRequest',\n ['approvalRequestId'],\n ['id'],\n { onDelete: 'Cascade' }\n ),\n },\n indexes: [index.on(['approvalRequestId', 'createdAt'])],\n});\n"],"mappings":";;;;;;AAUA,MAAa,qBAAqB,iBAAiB;CACjD,MAAM;CACN,QAAQ;EACN;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACD,QAAQ;CACR,aAAa;CACd,CAAC;;;;AAKF,MAAa,uBAAuB,iBAAiB;CACnD,MAAM;CACN,QAAQ;EACN;EACA;EACA;EACA;EACA;EACD;CACD,QAAQ;CACR,aAAa;CACd,CAAC;;;;;;;AAQF,MAAa,wBAAwB,aAAa;CAChD,MAAM;CACN,aAAa;CACb,QAAQ;CACR,KAAK;CACL,QAAQ;EACN,IAAI,MAAM,GAAG,EAAE,aAAa,8BAA8B,CAAC;EAG3D,oBAAoB,MAAM,YAAY;EACtC,iBAAiB,MAAM,YAAY;EAGnC,YAAY,MAAM,WAAW,EAAE,aAAa,6BAA6B,CAAC;EAC1E,cAAc,MAAM,OAAO;GACzB,YAAY;GACZ,aAAa;GACd,CAAC;EAGF,OAAO,MAAM,OAAO,EAAE,aAAa,0BAA0B,CAAC;EAC9D,aAAa,MAAM,OAAO,EAAE,YAAY,MAAM,CAAC;EAG/C,QAAQ,MAAM,KAAK,kBAAkB,EAAE,SAAS,WAAW,CAAC;EAG5D,UAAU,MAAM,KAAK,oBAAoB,EAAE,YAAY,MAAM,CAAC;EAC9D,iBAAiB,MAAM,OAAO;GAC5B,YAAY;GACZ,aAAa;GACd,CAAC;EACF,WAAW,MAAM,SAAS,EAAE,YAAY,MAAM,CAAC;EAG/C,aAAa,MAAM,OAAO;GACxB,YAAY;GACZ,aAAa;GACd,CAAC;EACF,kBAAkB,MAAM,OAAO,EAAE,YAAY,MAAM,CAAC;EAGpD,iBAAiB,MAAM,IAAI;GACzB,SAAS;GACT,aAAa;GACd,CAAC;EACF,aAAa,MAAM,SAAS,EAAE,YAAY,MAAM,CAAC;EAGjD,OAAO,MAAM,SAAS;GACpB,YAAY;GACZ,aAAa;GACd,CAAC;EACF,gBAAgB,MAAM,SAAS,EAAE,YAAY,MAAM,CAAC;EAGpD,iBAAiB,MAAM,KAAK;GAC1B,YAAY;GACZ,aAAa;GACd,CAAC;EAGF,eAAe,MAAM,IAAI;GACvB,SAAS;GACT,aAAa;GACd,CAAC;EAGF,WAAW,MAAM,WAAW;EAC5B,WAAW,MAAM,WAAW;EAG5B,kBAAkB,MAAM,UACtB,oBACA,CAAC,qBAAqB,EACtB,CAAC,KAAK,EACN,EAAE,UAAU,WAAW,CACxB;EACD,eAAe,MAAM,UACnB,iBACA,CAAC,kBAAkB,EACnB,CAAC,KAAK,CACP;EACF;CACD,SAAS;EACP,MAAM,GAAG,CAAC,cAAc,SAAS,CAAC;EAClC,MAAM,GAAG,CAAC,sBAAsB,SAAS,CAAC;EAC1C,MAAM,GAAG,CAAC,kBAAkB,CAAC;EAC7B,MAAM,GAAG,CAAC,UAAU,QAAQ,CAAC;EAC7B,MAAM,GAAG,CAAC,YAAY,CAAC;EACxB;CACD,OAAO,CAAC,oBAAoB,qBAAqB;CAClD,CAAC;;;;AAKF,MAAa,wBAAwB,aAAa;CAChD,MAAM;CACN,aAAa;CACb,QAAQ;CACR,KAAK;CACL,QAAQ;EACN,IAAI,MAAM,IAAI;EAEd,mBAAmB,MAAM,YAAY;EAGrC,UAAU,MAAM,YAAY;EAG5B,SAAS,MAAM,OAAO,EAAE,aAAa,gBAAgB,CAAC;EAGtD,YAAY,MAAM,QAAQ;GACxB,SAAS;GACT,aAAa;GACd,CAAC;EAGF,WAAW,MAAM,WAAW;EAC5B,WAAW,MAAM,WAAW;EAG5B,iBAAiB,MAAM,UACrB,mBACA,CAAC,oBAAoB,EACrB,CAAC,KAAK,EACN,EAAE,UAAU,WAAW,CACxB;EACF;CACD,SAAS,CAAC,MAAM,GAAG,CAAC,qBAAqB,YAAY,CAAC,CAAC;CACxD,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum } from "./approval.js";
2
+ import { WorkflowDefinitionEntity, WorkflowStatusEnum, WorkflowTriggerTypeEnum } from "./workflow.js";
3
+ import { ApprovalModeEnum, StepTypeEnum, WorkflowStepEntity } from "./step.js";
4
+ import { InstanceStatusEnum, StepExecutionEntity, StepExecutionStatusEnum, WorkflowInstanceEntity } from "./instance.js";
5
+ import * as _contractspec_lib_schema34 from "@contractspec/lib.schema";
6
+ import { ModuleSchemaContribution } from "@contractspec/lib.schema";
7
+
8
+ //#region src/entities/index.d.ts
9
+ declare const workflowSystemEntities: (_contractspec_lib_schema34.EntitySpec<{
10
+ id: _contractspec_lib_schema34.EntityScalarField;
11
+ workflowInstanceId: _contractspec_lib_schema34.EntityScalarField;
12
+ stepExecutionId: _contractspec_lib_schema34.EntityScalarField;
13
+ approverId: _contractspec_lib_schema34.EntityScalarField;
14
+ approverRole: _contractspec_lib_schema34.EntityScalarField;
15
+ title: _contractspec_lib_schema34.EntityScalarField;
16
+ description: _contractspec_lib_schema34.EntityScalarField;
17
+ status: _contractspec_lib_schema34.EntityEnumField;
18
+ decision: _contractspec_lib_schema34.EntityEnumField;
19
+ decisionComment: _contractspec_lib_schema34.EntityScalarField;
20
+ decidedAt: _contractspec_lib_schema34.EntityScalarField;
21
+ delegatedTo: _contractspec_lib_schema34.EntityScalarField;
22
+ delegationReason: _contractspec_lib_schema34.EntityScalarField;
23
+ escalationLevel: _contractspec_lib_schema34.EntityScalarField;
24
+ escalatedAt: _contractspec_lib_schema34.EntityScalarField;
25
+ dueAt: _contractspec_lib_schema34.EntityScalarField;
26
+ reminderSentAt: _contractspec_lib_schema34.EntityScalarField;
27
+ contextSnapshot: _contractspec_lib_schema34.EntityScalarField;
28
+ sequenceOrder: _contractspec_lib_schema34.EntityScalarField;
29
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
30
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
31
+ workflowInstance: _contractspec_lib_schema34.EntityRelationField;
32
+ stepExecution: _contractspec_lib_schema34.EntityRelationField;
33
+ }> | _contractspec_lib_schema34.EntitySpec<{
34
+ id: _contractspec_lib_schema34.EntityScalarField;
35
+ approvalRequestId: _contractspec_lib_schema34.EntityScalarField;
36
+ authorId: _contractspec_lib_schema34.EntityScalarField;
37
+ content: _contractspec_lib_schema34.EntityScalarField;
38
+ isInternal: _contractspec_lib_schema34.EntityScalarField;
39
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
40
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
41
+ approvalRequest: _contractspec_lib_schema34.EntityRelationField;
42
+ }> | _contractspec_lib_schema34.EntitySpec<{
43
+ id: _contractspec_lib_schema34.EntityScalarField;
44
+ name: _contractspec_lib_schema34.EntityScalarField;
45
+ key: _contractspec_lib_schema34.EntityScalarField;
46
+ description: _contractspec_lib_schema34.EntityScalarField;
47
+ version: _contractspec_lib_schema34.EntityScalarField;
48
+ status: _contractspec_lib_schema34.EntityEnumField;
49
+ triggerType: _contractspec_lib_schema34.EntityEnumField;
50
+ triggerConfig: _contractspec_lib_schema34.EntityScalarField;
51
+ initialStepId: _contractspec_lib_schema34.EntityScalarField;
52
+ featureFlagKey: _contractspec_lib_schema34.EntityScalarField;
53
+ settings: _contractspec_lib_schema34.EntityScalarField;
54
+ metadata: _contractspec_lib_schema34.EntityScalarField;
55
+ organizationId: _contractspec_lib_schema34.EntityScalarField;
56
+ createdBy: _contractspec_lib_schema34.EntityScalarField;
57
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
58
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
59
+ publishedAt: _contractspec_lib_schema34.EntityScalarField;
60
+ steps: _contractspec_lib_schema34.EntityRelationField;
61
+ instances: _contractspec_lib_schema34.EntityRelationField;
62
+ }> | _contractspec_lib_schema34.EntitySpec<{
63
+ id: _contractspec_lib_schema34.EntityScalarField;
64
+ workflowDefinitionId: _contractspec_lib_schema34.EntityScalarField;
65
+ name: _contractspec_lib_schema34.EntityScalarField;
66
+ key: _contractspec_lib_schema34.EntityScalarField;
67
+ description: _contractspec_lib_schema34.EntityScalarField;
68
+ type: _contractspec_lib_schema34.EntityEnumField;
69
+ position: _contractspec_lib_schema34.EntityScalarField;
70
+ transitions: _contractspec_lib_schema34.EntityScalarField;
71
+ approvalMode: _contractspec_lib_schema34.EntityEnumField;
72
+ approverRoles: _contractspec_lib_schema34.EntityScalarField;
73
+ approverUserIds: _contractspec_lib_schema34.EntityScalarField;
74
+ escalationConfig: _contractspec_lib_schema34.EntityScalarField;
75
+ assigneeRoles: _contractspec_lib_schema34.EntityScalarField;
76
+ taskTemplate: _contractspec_lib_schema34.EntityScalarField;
77
+ conditionExpression: _contractspec_lib_schema34.EntityScalarField;
78
+ waitDuration: _contractspec_lib_schema34.EntityScalarField;
79
+ waitForEvent: _contractspec_lib_schema34.EntityScalarField;
80
+ actionType: _contractspec_lib_schema34.EntityScalarField;
81
+ actionConfig: _contractspec_lib_schema34.EntityScalarField;
82
+ timeoutSeconds: _contractspec_lib_schema34.EntityScalarField;
83
+ slaSeconds: _contractspec_lib_schema34.EntityScalarField;
84
+ notifyOnEnter: _contractspec_lib_schema34.EntityScalarField;
85
+ notifyOnExit: _contractspec_lib_schema34.EntityScalarField;
86
+ metadata: _contractspec_lib_schema34.EntityScalarField;
87
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
88
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
89
+ workflowDefinition: _contractspec_lib_schema34.EntityRelationField;
90
+ executions: _contractspec_lib_schema34.EntityRelationField;
91
+ }> | _contractspec_lib_schema34.EntitySpec<{
92
+ id: _contractspec_lib_schema34.EntityScalarField;
93
+ workflowDefinitionId: _contractspec_lib_schema34.EntityScalarField;
94
+ referenceId: _contractspec_lib_schema34.EntityScalarField;
95
+ referenceType: _contractspec_lib_schema34.EntityScalarField;
96
+ status: _contractspec_lib_schema34.EntityEnumField;
97
+ currentStepId: _contractspec_lib_schema34.EntityScalarField;
98
+ contextData: _contractspec_lib_schema34.EntityScalarField;
99
+ triggeredBy: _contractspec_lib_schema34.EntityScalarField;
100
+ triggerSource: _contractspec_lib_schema34.EntityScalarField;
101
+ organizationId: _contractspec_lib_schema34.EntityScalarField;
102
+ priority: _contractspec_lib_schema34.EntityScalarField;
103
+ dueAt: _contractspec_lib_schema34.EntityScalarField;
104
+ outcome: _contractspec_lib_schema34.EntityScalarField;
105
+ resultData: _contractspec_lib_schema34.EntityScalarField;
106
+ errorMessage: _contractspec_lib_schema34.EntityScalarField;
107
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
108
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
109
+ startedAt: _contractspec_lib_schema34.EntityScalarField;
110
+ completedAt: _contractspec_lib_schema34.EntityScalarField;
111
+ workflowDefinition: _contractspec_lib_schema34.EntityRelationField;
112
+ currentStep: _contractspec_lib_schema34.EntityRelationField;
113
+ stepExecutions: _contractspec_lib_schema34.EntityRelationField;
114
+ approvalRequests: _contractspec_lib_schema34.EntityRelationField;
115
+ }> | _contractspec_lib_schema34.EntitySpec<{
116
+ id: _contractspec_lib_schema34.EntityScalarField;
117
+ workflowInstanceId: _contractspec_lib_schema34.EntityScalarField;
118
+ workflowStepId: _contractspec_lib_schema34.EntityScalarField;
119
+ status: _contractspec_lib_schema34.EntityEnumField;
120
+ executionOrder: _contractspec_lib_schema34.EntityScalarField;
121
+ inputData: _contractspec_lib_schema34.EntityScalarField;
122
+ outputData: _contractspec_lib_schema34.EntityScalarField;
123
+ actionTaken: _contractspec_lib_schema34.EntityScalarField;
124
+ transitionedTo: _contractspec_lib_schema34.EntityScalarField;
125
+ executedBy: _contractspec_lib_schema34.EntityScalarField;
126
+ errorMessage: _contractspec_lib_schema34.EntityScalarField;
127
+ errorDetails: _contractspec_lib_schema34.EntityScalarField;
128
+ retryCount: _contractspec_lib_schema34.EntityScalarField;
129
+ createdAt: _contractspec_lib_schema34.EntityScalarField;
130
+ updatedAt: _contractspec_lib_schema34.EntityScalarField;
131
+ startedAt: _contractspec_lib_schema34.EntityScalarField;
132
+ completedAt: _contractspec_lib_schema34.EntityScalarField;
133
+ workflowInstance: _contractspec_lib_schema34.EntityRelationField;
134
+ workflowStep: _contractspec_lib_schema34.EntityRelationField;
135
+ }>)[];
136
+ declare const workflowSystemSchemaContribution: ModuleSchemaContribution;
137
+ //#endregion
138
+ export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalModeEnum, ApprovalRequestEntity, ApprovalStatusEnum, InstanceStatusEnum, StepExecutionEntity, StepExecutionStatusEnum, StepTypeEnum, WorkflowDefinitionEntity, WorkflowInstanceEntity, WorkflowStatusEnum, WorkflowStepEntity, WorkflowTriggerTypeEnum, workflowSystemEntities, workflowSystemSchemaContribution };
139
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/entities/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;cA+Ca,oDAAsB;MAOlC,0BAAA,CAAA;;EAPY,eAAA,8CAOZ;EAAA,UAAA,8CAAA;;;;;;;;;;;;;;;;;;;;;MAPkC,0BAAA,CAAA;;wDAAA;EAAA,OAAA,8CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAStB,kCAAkC"}
@@ -0,0 +1,32 @@
1
+ import { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalRequestEntity, ApprovalStatusEnum } from "./approval.js";
2
+ import { WorkflowDefinitionEntity, WorkflowStatusEnum, WorkflowTriggerTypeEnum } from "./workflow.js";
3
+ import { ApprovalModeEnum, StepTypeEnum, WorkflowStepEntity } from "./step.js";
4
+ import { InstanceStatusEnum, StepExecutionEntity, StepExecutionStatusEnum, WorkflowInstanceEntity } from "./instance.js";
5
+
6
+ //#region src/entities/index.ts
7
+ const workflowSystemEntities = [
8
+ WorkflowDefinitionEntity,
9
+ WorkflowStepEntity,
10
+ WorkflowInstanceEntity,
11
+ StepExecutionEntity,
12
+ ApprovalRequestEntity,
13
+ ApprovalCommentEntity
14
+ ];
15
+ const workflowSystemSchemaContribution = {
16
+ moduleId: "@contractspec/example.workflow-system",
17
+ entities: workflowSystemEntities,
18
+ enums: [
19
+ WorkflowStatusEnum,
20
+ WorkflowTriggerTypeEnum,
21
+ StepTypeEnum,
22
+ ApprovalModeEnum,
23
+ InstanceStatusEnum,
24
+ StepExecutionStatusEnum,
25
+ ApprovalStatusEnum,
26
+ ApprovalDecisionEnum
27
+ ]
28
+ };
29
+
30
+ //#endregion
31
+ export { ApprovalCommentEntity, ApprovalDecisionEnum, ApprovalModeEnum, ApprovalRequestEntity, ApprovalStatusEnum, InstanceStatusEnum, StepExecutionEntity, StepExecutionStatusEnum, StepTypeEnum, WorkflowDefinitionEntity, WorkflowInstanceEntity, WorkflowStatusEnum, WorkflowStepEntity, WorkflowTriggerTypeEnum, workflowSystemEntities, workflowSystemSchemaContribution };
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/entities/index.ts"],"sourcesContent":["// Workflow Definition entities\nexport {\n WorkflowStatusEnum,\n WorkflowTriggerTypeEnum,\n WorkflowDefinitionEntity,\n} from './workflow';\n\n// Step entities\nexport { StepTypeEnum, ApprovalModeEnum, WorkflowStepEntity } from './step';\n\n// Instance entities\nexport {\n InstanceStatusEnum,\n StepExecutionStatusEnum,\n WorkflowInstanceEntity,\n StepExecutionEntity,\n} from './instance';\n\n// Approval entities\nexport {\n ApprovalStatusEnum,\n ApprovalDecisionEnum,\n ApprovalRequestEntity,\n ApprovalCommentEntity,\n} from './approval';\n\n// Schema contribution\nimport {\n WorkflowStatusEnum,\n WorkflowTriggerTypeEnum,\n WorkflowDefinitionEntity,\n} from './workflow';\nimport { StepTypeEnum, ApprovalModeEnum, WorkflowStepEntity } from './step';\nimport {\n InstanceStatusEnum,\n StepExecutionStatusEnum,\n WorkflowInstanceEntity,\n StepExecutionEntity,\n} from './instance';\nimport {\n ApprovalStatusEnum,\n ApprovalDecisionEnum,\n ApprovalRequestEntity,\n ApprovalCommentEntity,\n} from './approval';\nimport type { ModuleSchemaContribution } from '@contractspec/lib.schema';\n\nexport const workflowSystemEntities = [\n WorkflowDefinitionEntity,\n WorkflowStepEntity,\n WorkflowInstanceEntity,\n StepExecutionEntity,\n ApprovalRequestEntity,\n ApprovalCommentEntity,\n];\n\nexport const workflowSystemSchemaContribution: ModuleSchemaContribution = {\n moduleId: '@contractspec/example.workflow-system',\n entities: workflowSystemEntities,\n enums: [\n WorkflowStatusEnum,\n WorkflowTriggerTypeEnum,\n StepTypeEnum,\n ApprovalModeEnum,\n InstanceStatusEnum,\n StepExecutionStatusEnum,\n ApprovalStatusEnum,\n ApprovalDecisionEnum,\n ],\n};\n"],"mappings":";;;;;;AA+CA,MAAa,yBAAyB;CACpC;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,mCAA6D;CACxE,UAAU;CACV,UAAU;CACV,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD;CACF"}
@@ -0,0 +1,69 @@
1
+ import * as _contractspec_lib_schema160 from "@contractspec/lib.schema";
2
+
3
+ //#region src/entities/instance.d.ts
4
+ /**
5
+ * Instance status enum - lifecycle of a workflow instance.
6
+ */
7
+ declare const InstanceStatusEnum: _contractspec_lib_schema160.EntityEnumDef;
8
+ /**
9
+ * Step execution status enum.
10
+ */
11
+ declare const StepExecutionStatusEnum: _contractspec_lib_schema160.EntityEnumDef;
12
+ /**
13
+ * WorkflowInstance entity - a running instance of a workflow.
14
+ *
15
+ * When a workflow is triggered, an instance is created. The instance
16
+ * tracks the current state and all data associated with this execution.
17
+ */
18
+ declare const WorkflowInstanceEntity: _contractspec_lib_schema160.EntitySpec<{
19
+ id: _contractspec_lib_schema160.EntityScalarField;
20
+ workflowDefinitionId: _contractspec_lib_schema160.EntityScalarField;
21
+ referenceId: _contractspec_lib_schema160.EntityScalarField;
22
+ referenceType: _contractspec_lib_schema160.EntityScalarField;
23
+ status: _contractspec_lib_schema160.EntityEnumField;
24
+ currentStepId: _contractspec_lib_schema160.EntityScalarField;
25
+ contextData: _contractspec_lib_schema160.EntityScalarField;
26
+ triggeredBy: _contractspec_lib_schema160.EntityScalarField;
27
+ triggerSource: _contractspec_lib_schema160.EntityScalarField;
28
+ organizationId: _contractspec_lib_schema160.EntityScalarField;
29
+ priority: _contractspec_lib_schema160.EntityScalarField;
30
+ dueAt: _contractspec_lib_schema160.EntityScalarField;
31
+ outcome: _contractspec_lib_schema160.EntityScalarField;
32
+ resultData: _contractspec_lib_schema160.EntityScalarField;
33
+ errorMessage: _contractspec_lib_schema160.EntityScalarField;
34
+ createdAt: _contractspec_lib_schema160.EntityScalarField;
35
+ updatedAt: _contractspec_lib_schema160.EntityScalarField;
36
+ startedAt: _contractspec_lib_schema160.EntityScalarField;
37
+ completedAt: _contractspec_lib_schema160.EntityScalarField;
38
+ workflowDefinition: _contractspec_lib_schema160.EntityRelationField;
39
+ currentStep: _contractspec_lib_schema160.EntityRelationField;
40
+ stepExecutions: _contractspec_lib_schema160.EntityRelationField;
41
+ approvalRequests: _contractspec_lib_schema160.EntityRelationField;
42
+ }>;
43
+ /**
44
+ * StepExecution entity - tracks execution of a step within an instance.
45
+ */
46
+ declare const StepExecutionEntity: _contractspec_lib_schema160.EntitySpec<{
47
+ id: _contractspec_lib_schema160.EntityScalarField;
48
+ workflowInstanceId: _contractspec_lib_schema160.EntityScalarField;
49
+ workflowStepId: _contractspec_lib_schema160.EntityScalarField;
50
+ status: _contractspec_lib_schema160.EntityEnumField;
51
+ executionOrder: _contractspec_lib_schema160.EntityScalarField;
52
+ inputData: _contractspec_lib_schema160.EntityScalarField;
53
+ outputData: _contractspec_lib_schema160.EntityScalarField;
54
+ actionTaken: _contractspec_lib_schema160.EntityScalarField;
55
+ transitionedTo: _contractspec_lib_schema160.EntityScalarField;
56
+ executedBy: _contractspec_lib_schema160.EntityScalarField;
57
+ errorMessage: _contractspec_lib_schema160.EntityScalarField;
58
+ errorDetails: _contractspec_lib_schema160.EntityScalarField;
59
+ retryCount: _contractspec_lib_schema160.EntityScalarField;
60
+ createdAt: _contractspec_lib_schema160.EntityScalarField;
61
+ updatedAt: _contractspec_lib_schema160.EntityScalarField;
62
+ startedAt: _contractspec_lib_schema160.EntityScalarField;
63
+ completedAt: _contractspec_lib_schema160.EntityScalarField;
64
+ workflowInstance: _contractspec_lib_schema160.EntityRelationField;
65
+ workflowStep: _contractspec_lib_schema160.EntityRelationField;
66
+ }>;
67
+ //#endregion
68
+ export { InstanceStatusEnum, StepExecutionEntity, StepExecutionStatusEnum, WorkflowInstanceEntity };
69
+ //# sourceMappingURL=instance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance.d.ts","names":[],"sources":["../../src/entities/instance.ts"],"sourcesContent":[],"mappings":";;;;;;AAUa,cAAA,kBAcX,EAAA,2BAAA,CAd6B,aAc7B;AAKF;AAoBA;;cApBa,yBAYX,2BAAA,CAZkC;;;;;;;cAoBvB,oDAAsB;MA8FjC,2BAAA,CAAA;;;;;;;;;;;;;;6DA9FiC;EAAA,SAAA,+CAAA;EAmGtB,SAAA,+CA2EX;EAAA,SAAA,+CAAA;;;;;;;;;;cA3EW,iDAAmB;MA2E9B,2BAAA,CAAA;;;;;;;;+DA3E8B;EAAA,UAAA,+CAAA"}