@contractspec/example.workflow-system 1.44.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 (121) 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 +40 -0
  51. package/dist/example.d.ts.map +1 -0
  52. package/dist/example.js +51 -0
  53. package/dist/example.js.map +1 -0
  54. package/dist/index.d.ts +21 -0
  55. package/dist/index.js +21 -0
  56. package/dist/instance/index.d.ts +5 -0
  57. package/dist/instance/index.js +6 -0
  58. package/dist/instance/instance.enum.d.ts +10 -0
  59. package/dist/instance/instance.enum.d.ts.map +1 -0
  60. package/dist/instance/instance.enum.js +20 -0
  61. package/dist/instance/instance.enum.js.map +1 -0
  62. package/dist/instance/instance.event.d.ts +356 -0
  63. package/dist/instance/instance.event.d.ts.map +1 -0
  64. package/dist/instance/instance.event.js +293 -0
  65. package/dist/instance/instance.event.js.map +1 -0
  66. package/dist/instance/instance.handler.d.ts +27 -0
  67. package/dist/instance/instance.handler.d.ts.map +1 -0
  68. package/dist/instance/instance.handler.js +94 -0
  69. package/dist/instance/instance.handler.js.map +1 -0
  70. package/dist/instance/instance.operations.d.ts +1024 -0
  71. package/dist/instance/instance.operations.d.ts.map +1 -0
  72. package/dist/instance/instance.operations.js +464 -0
  73. package/dist/instance/instance.operations.js.map +1 -0
  74. package/dist/instance/instance.schema.d.ts +223 -0
  75. package/dist/instance/instance.schema.d.ts.map +1 -0
  76. package/dist/instance/instance.schema.js +172 -0
  77. package/dist/instance/instance.schema.js.map +1 -0
  78. package/dist/presentations/index.d.ts +64 -0
  79. package/dist/presentations/index.d.ts.map +1 -0
  80. package/dist/presentations/index.js +337 -0
  81. package/dist/presentations/index.js.map +1 -0
  82. package/dist/shared/index.d.ts +3 -0
  83. package/dist/shared/index.js +3 -0
  84. package/dist/shared/mock-data.d.ts +19 -0
  85. package/dist/shared/mock-data.d.ts.map +1 -0
  86. package/dist/shared/mock-data.js +12 -0
  87. package/dist/shared/mock-data.js.map +1 -0
  88. package/dist/shared/types.d.ts +81 -0
  89. package/dist/shared/types.d.ts.map +1 -0
  90. package/dist/shared/types.js +0 -0
  91. package/dist/state-machine/index.d.ts +148 -0
  92. package/dist/state-machine/index.d.ts.map +1 -0
  93. package/dist/state-machine/index.js +158 -0
  94. package/dist/state-machine/index.js.map +1 -0
  95. package/dist/workflow/index.d.ts +5 -0
  96. package/dist/workflow/index.js +6 -0
  97. package/dist/workflow/workflow.enum.d.ts +22 -0
  98. package/dist/workflow/workflow.enum.d.ts.map +1 -0
  99. package/dist/workflow/workflow.enum.js +47 -0
  100. package/dist/workflow/workflow.enum.js.map +1 -0
  101. package/dist/workflow/workflow.event.d.ts +135 -0
  102. package/dist/workflow/workflow.event.d.ts.map +1 -0
  103. package/dist/workflow/workflow.event.js +150 -0
  104. package/dist/workflow/workflow.event.js.map +1 -0
  105. package/dist/workflow/workflow.handler.d.ts +29 -0
  106. package/dist/workflow/workflow.handler.d.ts.map +1 -0
  107. package/dist/workflow/workflow.handler.js +66 -0
  108. package/dist/workflow/workflow.handler.js.map +1 -0
  109. package/dist/workflow/workflow.operations.d.ts +1011 -0
  110. package/dist/workflow/workflow.operations.d.ts.map +1 -0
  111. package/dist/workflow/workflow.operations.js +345 -0
  112. package/dist/workflow/workflow.operations.js.map +1 -0
  113. package/dist/workflow/workflow.schema.d.ts +265 -0
  114. package/dist/workflow/workflow.schema.d.ts.map +1 -0
  115. package/dist/workflow/workflow.schema.js +249 -0
  116. package/dist/workflow/workflow.schema.js.map +1 -0
  117. package/dist/workflow-system.feature.d.ts +12 -0
  118. package/dist/workflow-system.feature.d.ts.map +1 -0
  119. package/dist/workflow-system.feature.js +339 -0
  120. package/dist/workflow-system.feature.js.map +1 -0
  121. package/package.json +124 -0
@@ -0,0 +1,345 @@
1
+ import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
2
+ import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
3
+ import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
4
+ import { defineCommand, defineQuery } from "@contractspec/lib.contracts/operations";
5
+
6
+ //#region src/approval/approval.operations.ts
7
+ const OWNERS = ["@example.workflow-system"];
8
+ /**
9
+ * Approve or reject an approval request.
10
+ */
11
+ const SubmitDecisionContract = defineCommand({
12
+ meta: {
13
+ key: "workflow.approval.decide",
14
+ version: 1,
15
+ stability: "stable",
16
+ owners: [...OWNERS],
17
+ tags: [
18
+ "workflow",
19
+ "approval",
20
+ "decision"
21
+ ],
22
+ description: "Submit an approval decision (approve/reject).",
23
+ goal: "Allow approvers to make decisions on requests.",
24
+ context: "Approval inbox, workflow detail."
25
+ },
26
+ io: {
27
+ input: defineSchemaModel({
28
+ name: "ApproveRejectInput",
29
+ fields: {
30
+ requestId: {
31
+ type: ScalarTypeEnum.String_unsecure(),
32
+ isOptional: false
33
+ },
34
+ decision: {
35
+ type: ApprovalDecisionEnum,
36
+ isOptional: false
37
+ },
38
+ comment: {
39
+ type: ScalarTypeEnum.String_unsecure(),
40
+ isOptional: true
41
+ },
42
+ data: {
43
+ type: ScalarTypeEnum.JSON(),
44
+ isOptional: true
45
+ }
46
+ }
47
+ }),
48
+ output: ApprovalRequestModel
49
+ },
50
+ policy: { auth: "user" },
51
+ sideEffects: {
52
+ emits: [{
53
+ key: "workflow.approval.decided",
54
+ version: 1,
55
+ when: "Decision is made",
56
+ payload: ApprovalRequestModel
57
+ }],
58
+ audit: ["workflow.approval.decided"]
59
+ },
60
+ acceptance: {
61
+ scenarios: [{
62
+ key: "approve-request-happy-path",
63
+ given: ["Approval request is pending", "User is assignee"],
64
+ when: ["User approves request"],
65
+ then: ["Request is approved", "ApprovalDecided event is emitted"]
66
+ }],
67
+ examples: [{
68
+ key: "approve-basic",
69
+ input: {
70
+ requestId: "req-123",
71
+ decision: "approve",
72
+ comment: "Looks good"
73
+ },
74
+ output: {
75
+ id: "req-123",
76
+ status: "approved"
77
+ }
78
+ }]
79
+ }
80
+ });
81
+ /**
82
+ * Delegate an approval to another user.
83
+ */
84
+ const DelegateApprovalContract = defineCommand({
85
+ meta: {
86
+ key: "workflow.approval.delegate",
87
+ version: 1,
88
+ stability: "stable",
89
+ owners: [...OWNERS],
90
+ tags: [
91
+ "workflow",
92
+ "approval",
93
+ "delegate"
94
+ ],
95
+ description: "Delegate an approval request to another user.",
96
+ goal: "Allow approvers to pass approval to others.",
97
+ context: "Approval inbox."
98
+ },
99
+ io: {
100
+ input: defineSchemaModel({
101
+ name: "DelegateInput",
102
+ fields: {
103
+ requestId: {
104
+ type: ScalarTypeEnum.String_unsecure(),
105
+ isOptional: false
106
+ },
107
+ delegateTo: {
108
+ type: ScalarTypeEnum.String_unsecure(),
109
+ isOptional: false
110
+ },
111
+ reason: {
112
+ type: ScalarTypeEnum.String_unsecure(),
113
+ isOptional: true
114
+ }
115
+ }
116
+ }),
117
+ output: ApprovalRequestModel
118
+ },
119
+ policy: { auth: "user" },
120
+ sideEffects: {
121
+ emits: [{
122
+ key: "workflow.approval.delegated",
123
+ version: 1,
124
+ when: "Approval is delegated",
125
+ payload: ApprovalRequestModel
126
+ }],
127
+ audit: ["workflow.approval.delegated"]
128
+ },
129
+ acceptance: {
130
+ scenarios: [{
131
+ key: "delegate-approval-happy-path",
132
+ given: ["Approval request is pending", "User is assignee"],
133
+ when: ["User delegates to another user"],
134
+ then: ["Assignee is updated", "ApprovalDelegated event is emitted"]
135
+ }],
136
+ examples: [{
137
+ key: "delegate-to-manager",
138
+ input: {
139
+ requestId: "req-123",
140
+ delegateTo: "user-456",
141
+ reason: "Out of office"
142
+ },
143
+ output: {
144
+ id: "req-123",
145
+ assigneeId: "user-456"
146
+ }
147
+ }]
148
+ }
149
+ });
150
+ /**
151
+ * Add a comment to an approval request.
152
+ */
153
+ const AddApprovalCommentContract = defineCommand({
154
+ meta: {
155
+ key: "workflow.approval.comment.add",
156
+ version: 1,
157
+ stability: "stable",
158
+ owners: [...OWNERS],
159
+ tags: [
160
+ "workflow",
161
+ "approval",
162
+ "comment"
163
+ ],
164
+ description: "Add a comment to an approval request.",
165
+ goal: "Allow discussion on approval requests.",
166
+ context: "Approval detail view."
167
+ },
168
+ io: {
169
+ input: defineSchemaModel({
170
+ name: "AddCommentInput",
171
+ fields: {
172
+ requestId: {
173
+ type: ScalarTypeEnum.String_unsecure(),
174
+ isOptional: false
175
+ },
176
+ content: {
177
+ type: ScalarTypeEnum.NonEmptyString(),
178
+ isOptional: false
179
+ },
180
+ isInternal: {
181
+ type: ScalarTypeEnum.Boolean(),
182
+ isOptional: true
183
+ }
184
+ }
185
+ }),
186
+ output: ApprovalCommentModel
187
+ },
188
+ policy: { auth: "user" },
189
+ sideEffects: { emits: [{
190
+ key: "workflow.approval.comment.added",
191
+ version: 1,
192
+ when: "Comment is added",
193
+ payload: ApprovalCommentModel
194
+ }] },
195
+ acceptance: {
196
+ scenarios: [{
197
+ key: "add-comment-happy-path",
198
+ given: ["Approval request exists"],
199
+ when: ["User adds a comment"],
200
+ then: ["Comment is added", "CommentAdded event is emitted"]
201
+ }],
202
+ examples: [{
203
+ key: "add-question",
204
+ input: {
205
+ requestId: "req-123",
206
+ content: "Can you clarify budget?",
207
+ isInternal: false
208
+ },
209
+ output: {
210
+ id: "com-789",
211
+ content: "Can you clarify budget?"
212
+ }
213
+ }]
214
+ }
215
+ });
216
+ /**
217
+ * List approvals assigned to the current user.
218
+ */
219
+ const ListMyApprovalsContract = defineQuery({
220
+ meta: {
221
+ key: "workflow.approval.list.mine",
222
+ version: 1,
223
+ stability: "stable",
224
+ owners: [...OWNERS],
225
+ tags: [
226
+ "workflow",
227
+ "approval",
228
+ "list",
229
+ "inbox"
230
+ ],
231
+ description: "List approval requests assigned to current user.",
232
+ goal: "Show pending approvals in user inbox.",
233
+ context: "Approval inbox, dashboard widget."
234
+ },
235
+ io: {
236
+ input: defineSchemaModel({
237
+ name: "ListMyApprovalsInput",
238
+ fields: {
239
+ status: {
240
+ type: ApprovalStatusEnum,
241
+ isOptional: true
242
+ },
243
+ limit: {
244
+ type: ScalarTypeEnum.Int_unsecure(),
245
+ isOptional: true,
246
+ defaultValue: 20
247
+ },
248
+ offset: {
249
+ type: ScalarTypeEnum.Int_unsecure(),
250
+ isOptional: true,
251
+ defaultValue: 0
252
+ }
253
+ }
254
+ }),
255
+ output: defineSchemaModel({
256
+ name: "ListMyApprovalsOutput",
257
+ fields: {
258
+ requests: {
259
+ type: ApprovalRequestModel,
260
+ isArray: true,
261
+ isOptional: false
262
+ },
263
+ total: {
264
+ type: ScalarTypeEnum.Int_unsecure(),
265
+ isOptional: false
266
+ },
267
+ pendingCount: {
268
+ type: ScalarTypeEnum.Int_unsecure(),
269
+ isOptional: false
270
+ }
271
+ }
272
+ })
273
+ },
274
+ policy: { auth: "user" },
275
+ acceptance: {
276
+ scenarios: [{
277
+ key: "list-approvals-happy-path",
278
+ given: ["User has assigned approvals"],
279
+ when: ["User lists approvals"],
280
+ then: ["List of requests is returned"]
281
+ }],
282
+ examples: [{
283
+ key: "list-pending",
284
+ input: {
285
+ status: "pending",
286
+ limit: 10
287
+ },
288
+ output: {
289
+ requests: [],
290
+ total: 2,
291
+ pendingCount: 2
292
+ }
293
+ }]
294
+ }
295
+ });
296
+ /**
297
+ * Get a single approval request.
298
+ */
299
+ const GetApprovalContract = defineQuery({
300
+ meta: {
301
+ key: "workflow.approval.get",
302
+ version: 1,
303
+ stability: "stable",
304
+ owners: [...OWNERS],
305
+ tags: [
306
+ "workflow",
307
+ "approval",
308
+ "get"
309
+ ],
310
+ description: "Get an approval request with details.",
311
+ goal: "View approval request details.",
312
+ context: "Approval detail view."
313
+ },
314
+ io: {
315
+ input: defineSchemaModel({
316
+ name: "GetApprovalInput",
317
+ fields: { requestId: {
318
+ type: ScalarTypeEnum.String_unsecure(),
319
+ isOptional: false
320
+ } }
321
+ }),
322
+ output: ApprovalRequestModel
323
+ },
324
+ policy: { auth: "user" },
325
+ acceptance: {
326
+ scenarios: [{
327
+ key: "get-approval-happy-path",
328
+ given: ["Approval request exists"],
329
+ when: ["User requests approval details"],
330
+ then: ["Approval details are returned"]
331
+ }],
332
+ examples: [{
333
+ key: "get-basic",
334
+ input: { requestId: "req-123" },
335
+ output: {
336
+ id: "req-123",
337
+ status: "pending"
338
+ }
339
+ }]
340
+ }
341
+ });
342
+
343
+ //#endregion
344
+ export { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
345
+ //# sourceMappingURL=approval.operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.operations.js","names":[],"sources":["../../src/approval/approval.operations.ts"],"sourcesContent":["import {\n defineCommand,\n defineQuery,\n} from '@contractspec/lib.contracts/operations';\nimport { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport { ApprovalDecisionEnum, ApprovalStatusEnum } from './approval.enum';\nimport { ApprovalCommentModel, ApprovalRequestModel } from './approval.schema';\n\nconst OWNERS = ['@example.workflow-system'] as const;\n\n/**\n * Approve or reject an approval request.\n */\nexport const SubmitDecisionContract = defineCommand({\n meta: {\n key: 'workflow.approval.decide',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'approval', 'decision'],\n description: 'Submit an approval decision (approve/reject).',\n goal: 'Allow approvers to make decisions on requests.',\n context: 'Approval inbox, workflow detail.',\n },\n io: {\n input: defineSchemaModel({\n name: 'ApproveRejectInput',\n fields: {\n requestId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n decision: { type: ApprovalDecisionEnum, isOptional: false },\n comment: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n data: { type: ScalarTypeEnum.JSON(), isOptional: true },\n },\n }),\n output: ApprovalRequestModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n key: 'workflow.approval.decided',\n version: 1,\n when: 'Decision is made',\n payload: ApprovalRequestModel,\n },\n ],\n audit: ['workflow.approval.decided'],\n },\n acceptance: {\n scenarios: [\n {\n key: 'approve-request-happy-path',\n given: ['Approval request is pending', 'User is assignee'],\n when: ['User approves request'],\n then: ['Request is approved', 'ApprovalDecided event is emitted'],\n },\n ],\n examples: [\n {\n key: 'approve-basic',\n input: {\n requestId: 'req-123',\n decision: 'approve',\n comment: 'Looks good',\n },\n output: { id: 'req-123', status: 'approved' },\n },\n ],\n },\n});\n\n/**\n * Delegate an approval to another user.\n */\nexport const DelegateApprovalContract = defineCommand({\n meta: {\n key: 'workflow.approval.delegate',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'approval', 'delegate'],\n description: 'Delegate an approval request to another user.',\n goal: 'Allow approvers to pass approval to others.',\n context: 'Approval inbox.',\n },\n io: {\n input: defineSchemaModel({\n name: 'DelegateInput',\n fields: {\n requestId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n delegateTo: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n },\n }),\n output: ApprovalRequestModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n key: 'workflow.approval.delegated',\n version: 1,\n when: 'Approval is delegated',\n payload: ApprovalRequestModel,\n },\n ],\n audit: ['workflow.approval.delegated'],\n },\n acceptance: {\n scenarios: [\n {\n key: 'delegate-approval-happy-path',\n given: ['Approval request is pending', 'User is assignee'],\n when: ['User delegates to another user'],\n then: ['Assignee is updated', 'ApprovalDelegated event is emitted'],\n },\n ],\n examples: [\n {\n key: 'delegate-to-manager',\n input: {\n requestId: 'req-123',\n delegateTo: 'user-456',\n reason: 'Out of office',\n },\n output: { id: 'req-123', assigneeId: 'user-456' },\n },\n ],\n },\n});\n\n/**\n * Add a comment to an approval request.\n */\nexport const AddApprovalCommentContract = defineCommand({\n meta: {\n key: 'workflow.approval.comment.add',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'approval', 'comment'],\n description: 'Add a comment to an approval request.',\n goal: 'Allow discussion on approval requests.',\n context: 'Approval detail view.',\n },\n io: {\n input: defineSchemaModel({\n name: 'AddCommentInput',\n fields: {\n requestId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n content: { type: ScalarTypeEnum.NonEmptyString(), isOptional: false },\n isInternal: { type: ScalarTypeEnum.Boolean(), isOptional: true },\n },\n }),\n output: ApprovalCommentModel,\n },\n policy: { auth: 'user' },\n sideEffects: {\n emits: [\n {\n key: 'workflow.approval.comment.added',\n version: 1,\n when: 'Comment is added',\n payload: ApprovalCommentModel,\n },\n ],\n },\n acceptance: {\n scenarios: [\n {\n key: 'add-comment-happy-path',\n given: ['Approval request exists'],\n when: ['User adds a comment'],\n then: ['Comment is added', 'CommentAdded event is emitted'],\n },\n ],\n examples: [\n {\n key: 'add-question',\n input: {\n requestId: 'req-123',\n content: 'Can you clarify budget?',\n isInternal: false,\n },\n output: { id: 'com-789', content: 'Can you clarify budget?' },\n },\n ],\n },\n});\n\n/**\n * List approvals assigned to the current user.\n */\nexport const ListMyApprovalsContract = defineQuery({\n meta: {\n key: 'workflow.approval.list.mine',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'approval', 'list', 'inbox'],\n description: 'List approval requests assigned to current user.',\n goal: 'Show pending approvals in user inbox.',\n context: 'Approval inbox, dashboard widget.',\n },\n io: {\n input: defineSchemaModel({\n name: 'ListMyApprovalsInput',\n fields: {\n status: { type: ApprovalStatusEnum, isOptional: true },\n limit: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 20,\n },\n offset: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: true,\n defaultValue: 0,\n },\n },\n }),\n output: defineSchemaModel({\n name: 'ListMyApprovalsOutput',\n fields: {\n requests: {\n type: ApprovalRequestModel,\n isArray: true,\n isOptional: false,\n },\n total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n pendingCount: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: false,\n },\n },\n }),\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'list-approvals-happy-path',\n given: ['User has assigned approvals'],\n when: ['User lists approvals'],\n then: ['List of requests is returned'],\n },\n ],\n examples: [\n {\n key: 'list-pending',\n input: { status: 'pending', limit: 10 },\n output: { requests: [], total: 2, pendingCount: 2 },\n },\n ],\n },\n});\n\n/**\n * Get a single approval request.\n */\nexport const GetApprovalContract = defineQuery({\n meta: {\n key: 'workflow.approval.get',\n version: 1,\n stability: 'stable',\n owners: [...OWNERS],\n tags: ['workflow', 'approval', 'get'],\n description: 'Get an approval request with details.',\n goal: 'View approval request details.',\n context: 'Approval detail view.',\n },\n io: {\n input: defineSchemaModel({\n name: 'GetApprovalInput',\n fields: {\n requestId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n },\n }),\n output: ApprovalRequestModel,\n },\n policy: { auth: 'user' },\n acceptance: {\n scenarios: [\n {\n key: 'get-approval-happy-path',\n given: ['Approval request exists'],\n when: ['User requests approval details'],\n then: ['Approval details are returned'],\n },\n ],\n examples: [\n {\n key: 'get-basic',\n input: { requestId: 'req-123' },\n output: { id: 'req-123', status: 'pending' },\n },\n ],\n },\n});\n"],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import * as _contractspec_lib_schema485 from "@contractspec/lib.schema";
2
+
3
+ //#region src/approval/approval.schema.d.ts
4
+ /**
5
+ * An approval request.
6
+ */
7
+ declare const ApprovalRequestModel: _contractspec_lib_schema485.SchemaModel<{
8
+ id: {
9
+ type: _contractspec_lib_schema485.FieldType<string, string>;
10
+ isOptional: false;
11
+ };
12
+ workflowInstanceId: {
13
+ type: _contractspec_lib_schema485.FieldType<string, string>;
14
+ isOptional: false;
15
+ };
16
+ stepExecutionId: {
17
+ type: _contractspec_lib_schema485.FieldType<string, string>;
18
+ isOptional: false;
19
+ };
20
+ approverId: {
21
+ type: _contractspec_lib_schema485.FieldType<string, string>;
22
+ isOptional: false;
23
+ };
24
+ approverRole: {
25
+ type: _contractspec_lib_schema485.FieldType<string, string>;
26
+ isOptional: true;
27
+ };
28
+ title: {
29
+ type: _contractspec_lib_schema485.FieldType<string, string>;
30
+ isOptional: false;
31
+ };
32
+ description: {
33
+ type: _contractspec_lib_schema485.FieldType<string, string>;
34
+ isOptional: true;
35
+ };
36
+ status: {
37
+ type: _contractspec_lib_schema485.EnumType<[string, string, string, string, string, string, string]>;
38
+ isOptional: false;
39
+ };
40
+ decision: {
41
+ type: _contractspec_lib_schema485.EnumType<[string, string, string, string, string]>;
42
+ isOptional: true;
43
+ };
44
+ decisionComment: {
45
+ type: _contractspec_lib_schema485.FieldType<string, string>;
46
+ isOptional: true;
47
+ };
48
+ decidedAt: {
49
+ type: _contractspec_lib_schema485.FieldType<Date, string>;
50
+ isOptional: true;
51
+ };
52
+ dueAt: {
53
+ type: _contractspec_lib_schema485.FieldType<Date, string>;
54
+ isOptional: true;
55
+ };
56
+ contextSnapshot: {
57
+ type: _contractspec_lib_schema485.FieldType<unknown, unknown>;
58
+ isOptional: true;
59
+ };
60
+ sequenceOrder: {
61
+ type: _contractspec_lib_schema485.FieldType<number, number>;
62
+ isOptional: false;
63
+ };
64
+ createdAt: {
65
+ type: _contractspec_lib_schema485.FieldType<Date, string>;
66
+ isOptional: false;
67
+ };
68
+ }>;
69
+ /**
70
+ * A comment on an approval.
71
+ */
72
+ declare const ApprovalCommentModel: _contractspec_lib_schema485.SchemaModel<{
73
+ id: {
74
+ type: _contractspec_lib_schema485.FieldType<string, string>;
75
+ isOptional: false;
76
+ };
77
+ approvalRequestId: {
78
+ type: _contractspec_lib_schema485.FieldType<string, string>;
79
+ isOptional: false;
80
+ };
81
+ authorId: {
82
+ type: _contractspec_lib_schema485.FieldType<string, string>;
83
+ isOptional: false;
84
+ };
85
+ content: {
86
+ type: _contractspec_lib_schema485.FieldType<string, string>;
87
+ isOptional: false;
88
+ };
89
+ isInternal: {
90
+ type: _contractspec_lib_schema485.FieldType<boolean, boolean>;
91
+ isOptional: false;
92
+ };
93
+ createdAt: {
94
+ type: _contractspec_lib_schema485.FieldType<Date, string>;
95
+ isOptional: false;
96
+ };
97
+ }>;
98
+ //#endregion
99
+ export { ApprovalCommentModel, ApprovalRequestModel };
100
+ //# sourceMappingURL=approval.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.schema.d.ts","names":[],"sources":["../../src/approval/approval.schema.ts"],"sourcesContent":[],"mappings":";;;;;;AAMa,cAAA,oBAgCX,8BAhC+B,WAgC/B,CAAA;EAAA,EAAA,EAAA;UAAA,2BAAA,CAAA;;;;;;;;;;;;;;;;;;EAhC+B,CAAA;EAqCpB,KAAA,EAAA;IAcX,IAAA,uCAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;IAd+B,IAAA,sCAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAApB,kDAAoB;;UAc/B,2BAAA,CAAA"}
@@ -0,0 +1,110 @@
1
+ import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
2
+ import { ScalarTypeEnum, defineSchemaModel } from "@contractspec/lib.schema";
3
+
4
+ //#region src/approval/approval.schema.ts
5
+ /**
6
+ * An approval request.
7
+ */
8
+ const ApprovalRequestModel = defineSchemaModel({
9
+ name: "ApprovalRequestModel",
10
+ description: "An approval request",
11
+ fields: {
12
+ id: {
13
+ type: ScalarTypeEnum.String_unsecure(),
14
+ isOptional: false
15
+ },
16
+ workflowInstanceId: {
17
+ type: ScalarTypeEnum.String_unsecure(),
18
+ isOptional: false
19
+ },
20
+ stepExecutionId: {
21
+ type: ScalarTypeEnum.String_unsecure(),
22
+ isOptional: false
23
+ },
24
+ approverId: {
25
+ type: ScalarTypeEnum.String_unsecure(),
26
+ isOptional: false
27
+ },
28
+ approverRole: {
29
+ type: ScalarTypeEnum.String_unsecure(),
30
+ isOptional: true
31
+ },
32
+ title: {
33
+ type: ScalarTypeEnum.String_unsecure(),
34
+ isOptional: false
35
+ },
36
+ description: {
37
+ type: ScalarTypeEnum.String_unsecure(),
38
+ isOptional: true
39
+ },
40
+ status: {
41
+ type: ApprovalStatusEnum,
42
+ isOptional: false
43
+ },
44
+ decision: {
45
+ type: ApprovalDecisionEnum,
46
+ isOptional: true
47
+ },
48
+ decisionComment: {
49
+ type: ScalarTypeEnum.String_unsecure(),
50
+ isOptional: true
51
+ },
52
+ decidedAt: {
53
+ type: ScalarTypeEnum.DateTime(),
54
+ isOptional: true
55
+ },
56
+ dueAt: {
57
+ type: ScalarTypeEnum.DateTime(),
58
+ isOptional: true
59
+ },
60
+ contextSnapshot: {
61
+ type: ScalarTypeEnum.JSON(),
62
+ isOptional: true
63
+ },
64
+ sequenceOrder: {
65
+ type: ScalarTypeEnum.Int_unsecure(),
66
+ isOptional: false
67
+ },
68
+ createdAt: {
69
+ type: ScalarTypeEnum.DateTime(),
70
+ isOptional: false
71
+ }
72
+ }
73
+ });
74
+ /**
75
+ * A comment on an approval.
76
+ */
77
+ const ApprovalCommentModel = defineSchemaModel({
78
+ name: "ApprovalCommentModel",
79
+ description: "A comment on an approval",
80
+ fields: {
81
+ id: {
82
+ type: ScalarTypeEnum.String_unsecure(),
83
+ isOptional: false
84
+ },
85
+ approvalRequestId: {
86
+ type: ScalarTypeEnum.String_unsecure(),
87
+ isOptional: false
88
+ },
89
+ authorId: {
90
+ type: ScalarTypeEnum.String_unsecure(),
91
+ isOptional: false
92
+ },
93
+ content: {
94
+ type: ScalarTypeEnum.String_unsecure(),
95
+ isOptional: false
96
+ },
97
+ isInternal: {
98
+ type: ScalarTypeEnum.Boolean(),
99
+ isOptional: false
100
+ },
101
+ createdAt: {
102
+ type: ScalarTypeEnum.DateTime(),
103
+ isOptional: false
104
+ }
105
+ }
106
+ });
107
+
108
+ //#endregion
109
+ export { ApprovalCommentModel, ApprovalRequestModel };
110
+ //# sourceMappingURL=approval.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.schema.js","names":[],"sources":["../../src/approval/approval.schema.ts"],"sourcesContent":["import { defineSchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';\nimport { ApprovalStatusEnum, ApprovalDecisionEnum } from './approval.enum';\n\n/**\n * An approval request.\n */\nexport const ApprovalRequestModel = defineSchemaModel({\n name: 'ApprovalRequestModel',\n description: 'An approval request',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n workflowInstanceId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n stepExecutionId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n approverId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n approverRole: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n title: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n description: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n status: { type: ApprovalStatusEnum, isOptional: false },\n decision: { type: ApprovalDecisionEnum, isOptional: true },\n decisionComment: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: true,\n },\n decidedAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n dueAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n contextSnapshot: { type: ScalarTypeEnum.JSON(), isOptional: true },\n sequenceOrder: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * A comment on an approval.\n */\nexport const ApprovalCommentModel = defineSchemaModel({\n name: 'ApprovalCommentModel',\n description: 'A comment on an approval',\n fields: {\n id: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n approvalRequestId: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n authorId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n content: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n isInternal: { type: ScalarTypeEnum.Boolean(), isOptional: false },\n createdAt: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n"],"mappings":";;;;;;;AAMA,MAAa,uBAAuB,kBAAkB;CACpD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,oBAAoB;GAClB,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,iBAAiB;GACf,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,YAAY;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,cAAc;GACZ,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,OAAO;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,aAAa;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAM;EACzE,QAAQ;GAAE,MAAM;GAAoB,YAAY;GAAO;EACvD,UAAU;GAAE,MAAM;GAAsB,YAAY;GAAM;EAC1D,iBAAiB;GACf,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAM;EAChE,OAAO;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAM;EAC5D,iBAAiB;GAAE,MAAM,eAAe,MAAM;GAAE,YAAY;GAAM;EAClE,eAAe;GAAE,MAAM,eAAe,cAAc;GAAE,YAAY;GAAO;EACzE,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAa,uBAAuB,kBAAkB;CACpD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,IAAI;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACjE,mBAAmB;GACjB,MAAM,eAAe,iBAAiB;GACtC,YAAY;GACb;EACD,UAAU;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,SAAS;GAAE,MAAM,eAAe,iBAAiB;GAAE,YAAY;GAAO;EACtE,YAAY;GAAE,MAAM,eAAe,SAAS;GAAE,YAAY;GAAO;EACjE,WAAW;GAAE,MAAM,eAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
2
+ import { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent } from "./approval.event.js";
3
+ import { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract } from "./approval.operations.js";
4
+ import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
5
+ export { AddApprovalCommentContract, ApprovalCommentModel, ApprovalDecidedEvent, ApprovalDecisionEnum, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestModel, ApprovalRequestedEvent, ApprovalStatusEnum, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
@@ -0,0 +1,6 @@
1
+ import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
2
+ import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
3
+ import { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract } from "./approval.operations.js";
4
+ import { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent } from "./approval.event.js";
5
+
6
+ export { AddApprovalCommentContract, ApprovalCommentModel, ApprovalDecidedEvent, ApprovalDecisionEnum, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestModel, ApprovalRequestedEvent, ApprovalStatusEnum, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ import "./workflow-system.docblock.js";
@@ -0,0 +1 @@
1
+ export { };