@lssm/example.workflow-system 0.0.0-canary-20251217083314 → 1.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/approval/approval.contracts.js +1 -250
- package/dist/approval/approval.enum.js +1 -29
- package/dist/approval/approval.event.js +1 -186
- package/dist/approval/approval.handler.js +1 -71
- package/dist/approval/approval.schema.js +1 -111
- package/dist/approval/index.js +1 -6
- package/dist/docs/index.js +1 -1
- package/dist/docs/workflow-system.docblock.js +5 -61
- package/dist/entities/approval.js +1 -128
- package/dist/entities/index.js +1 -31
- package/dist/entities/instance.js +1 -168
- package/dist/entities/step.js +1 -135
- package/dist/entities/workflow.js +1 -102
- package/dist/example.js +1 -50
- package/dist/index.js +1 -19
- package/dist/instance/index.js +1 -6
- package/dist/instance/instance.contracts.js +1 -334
- package/dist/instance/instance.enum.js +1 -20
- package/dist/instance/instance.event.js +1 -214
- package/dist/instance/instance.handler.js +1 -93
- package/dist/instance/instance.schema.js +1 -173
- package/dist/presentations/index.js +1 -291
- package/dist/shared/index.js +1 -3
- package/dist/shared/mock-data.js +1 -11
- package/dist/state-machine/index.js +1 -157
- package/dist/workflow/index.js +1 -6
- package/dist/workflow/workflow.contracts.js +1 -239
- package/dist/workflow/workflow.enum.js +1 -47
- package/dist/workflow/workflow.event.js +1 -116
- package/dist/workflow/workflow.handler.js +1 -65
- package/dist/workflow/workflow.schema.js +1 -250
- package/dist/workflow-system.feature.js +1 -337
- package/package.json +44 -44
- package/dist/approval/approval.contracts.d.ts +0 -534
- package/dist/approval/approval.enum.d.ts +0 -13
- package/dist/approval/approval.event.d.ts +0 -130
- package/dist/approval/approval.handler.d.ts +0 -22
- package/dist/approval/approval.schema.d.ts +0 -99
- package/dist/approval/index.d.ts +0 -5
- package/dist/docs/index.d.ts +0 -1
- package/dist/docs/workflow-system.docblock.d.ts +0 -1
- package/dist/entities/approval.d.ts +0 -57
- package/dist/entities/index.d.ts +0 -138
- package/dist/entities/instance.d.ts +0 -68
- package/dist/entities/step.d.ts +0 -49
- package/dist/entities/workflow.d.ts +0 -40
- package/dist/example.d.ts +0 -39
- package/dist/index.d.ts +0 -16
- package/dist/instance/index.d.ts +0 -5
- package/dist/instance/instance.contracts.d.ts +0 -1023
- package/dist/instance/instance.enum.d.ts +0 -9
- package/dist/instance/instance.event.d.ts +0 -355
- package/dist/instance/instance.handler.d.ts +0 -26
- package/dist/instance/instance.schema.d.ts +0 -222
- package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
- package/dist/libs/contracts/dist/client/index.js +0 -5
- package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
- package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
- package/dist/libs/contracts/dist/client/react/index.js +0 -4
- package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/index.js +0 -29
- package/dist/libs/contracts/dist/docs/presentations.js +0 -71
- package/dist/libs/contracts/dist/docs/registry.js +0 -44
- package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
- package/dist/libs/contracts/dist/events.js +0 -10
- package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
- package/dist/libs/contracts/dist/index.js +0 -71
- package/dist/libs/contracts/dist/install.js +0 -2
- package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
- package/dist/libs/contracts/dist/integrations/index.js +0 -18
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
- package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
- package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
- package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
- package/dist/libs/contracts/dist/jsonschema.js +0 -1
- package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
- package/dist/libs/contracts/dist/knowledge/index.js +0 -7
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
- package/dist/libs/contracts/dist/llm/exporters.js +0 -19
- package/dist/libs/contracts/dist/llm/index.js +0 -2
- package/dist/libs/contracts/dist/llm/prompts.js +0 -1
- package/dist/libs/contracts/dist/onboarding-base.js +0 -196
- package/dist/libs/contracts/dist/openapi.js +0 -1
- package/dist/libs/contracts/dist/ownership.js +0 -21
- package/dist/libs/contracts/dist/presentations.js +0 -1
- package/dist/libs/contracts/dist/presentations.v2.js +0 -11
- package/dist/libs/contracts/dist/prompt.js +0 -1
- package/dist/libs/contracts/dist/promptRegistry.js +0 -1
- package/dist/libs/contracts/dist/regenerator/index.js +0 -1
- package/dist/libs/contracts/dist/regenerator/service.js +0 -6
- package/dist/libs/contracts/dist/registry.js +0 -2
- package/dist/libs/contracts/dist/resources.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
- package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
- package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
- package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
- package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
- package/dist/libs/contracts/dist/server/index.js +0 -8
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
- package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
- package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
- package/dist/libs/contracts/dist/server/rest-express.js +0 -1
- package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
- package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
- package/dist/libs/contracts/dist/spec.js +0 -34
- package/dist/libs/contracts/dist/telemetry/index.js +0 -1
- package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
- package/dist/libs/contracts/dist/tests/index.js +0 -1
- package/dist/libs/contracts/dist/tests/runner.js +0 -2
- package/dist/libs/contracts/dist/workflow/index.js +0 -1
- package/dist/libs/contracts/dist/workflow/runner.js +0 -1
- package/dist/libs/schema/dist/EnumType.js +0 -56
- package/dist/libs/schema/dist/FieldType.js +0 -49
- package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
- package/dist/libs/schema/dist/SchemaModel.js +0 -39
- package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
- package/dist/libs/schema/dist/entity/index.js +0 -2
- package/dist/libs/schema/dist/entity/types.js +0 -1
- package/dist/libs/schema/dist/index.js +0 -6
- package/dist/presentations/index.d.ts +0 -63
- package/dist/shared/index.d.ts +0 -3
- package/dist/shared/mock-data.d.ts +0 -18
- package/dist/shared/types.d.ts +0 -80
- package/dist/state-machine/index.d.ts +0 -147
- package/dist/workflow/index.d.ts +0 -5
- package/dist/workflow/workflow.contracts.d.ts +0 -1010
- package/dist/workflow/workflow.enum.d.ts +0 -21
- package/dist/workflow/workflow.event.d.ts +0 -134
- package/dist/workflow/workflow.handler.d.ts +0 -28
- package/dist/workflow/workflow.schema.d.ts +0 -264
- package/dist/workflow-system.feature.d.ts +0 -11
|
@@ -1,250 +1 @@
|
|
|
1
|
-
import { ScalarTypeEnum }
|
|
2
|
-
import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
|
|
3
|
-
import "../libs/schema/dist/index.js";
|
|
4
|
-
import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
|
|
5
|
-
import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
|
|
6
|
-
import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
|
|
7
|
-
|
|
8
|
-
//#region src/approval/approval.contracts.ts
|
|
9
|
-
const OWNERS = ["@example.workflow-system"];
|
|
10
|
-
/**
|
|
11
|
-
* Approve or reject an approval request.
|
|
12
|
-
*/
|
|
13
|
-
const SubmitDecisionContract = defineCommand({
|
|
14
|
-
meta: {
|
|
15
|
-
name: "workflow.approval.decide",
|
|
16
|
-
version: 1,
|
|
17
|
-
stability: "stable",
|
|
18
|
-
owners: [...OWNERS],
|
|
19
|
-
tags: [
|
|
20
|
-
"workflow",
|
|
21
|
-
"approval",
|
|
22
|
-
"decision"
|
|
23
|
-
],
|
|
24
|
-
description: "Submit an approval decision (approve/reject).",
|
|
25
|
-
goal: "Allow approvers to make decisions on requests.",
|
|
26
|
-
context: "Approval inbox, workflow detail."
|
|
27
|
-
},
|
|
28
|
-
io: {
|
|
29
|
-
input: defineSchemaModel({
|
|
30
|
-
name: "ApproveRejectInput",
|
|
31
|
-
fields: {
|
|
32
|
-
requestId: {
|
|
33
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
34
|
-
isOptional: false
|
|
35
|
-
},
|
|
36
|
-
decision: {
|
|
37
|
-
type: ApprovalDecisionEnum,
|
|
38
|
-
isOptional: false
|
|
39
|
-
},
|
|
40
|
-
comment: {
|
|
41
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
42
|
-
isOptional: true
|
|
43
|
-
},
|
|
44
|
-
data: {
|
|
45
|
-
type: ScalarTypeEnum.JSON(),
|
|
46
|
-
isOptional: true
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}),
|
|
50
|
-
output: ApprovalRequestModel
|
|
51
|
-
},
|
|
52
|
-
policy: { auth: "user" },
|
|
53
|
-
sideEffects: {
|
|
54
|
-
emits: [{
|
|
55
|
-
name: "workflow.approval.decided",
|
|
56
|
-
version: 1,
|
|
57
|
-
when: "Decision is made",
|
|
58
|
-
payload: ApprovalRequestModel
|
|
59
|
-
}],
|
|
60
|
-
audit: ["workflow.approval.decided"]
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
/**
|
|
64
|
-
* Delegate an approval to another user.
|
|
65
|
-
*/
|
|
66
|
-
const DelegateApprovalContract = defineCommand({
|
|
67
|
-
meta: {
|
|
68
|
-
name: "workflow.approval.delegate",
|
|
69
|
-
version: 1,
|
|
70
|
-
stability: "stable",
|
|
71
|
-
owners: [...OWNERS],
|
|
72
|
-
tags: [
|
|
73
|
-
"workflow",
|
|
74
|
-
"approval",
|
|
75
|
-
"delegate"
|
|
76
|
-
],
|
|
77
|
-
description: "Delegate an approval request to another user.",
|
|
78
|
-
goal: "Allow approvers to pass approval to others.",
|
|
79
|
-
context: "Approval inbox."
|
|
80
|
-
},
|
|
81
|
-
io: {
|
|
82
|
-
input: defineSchemaModel({
|
|
83
|
-
name: "DelegateInput",
|
|
84
|
-
fields: {
|
|
85
|
-
requestId: {
|
|
86
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
87
|
-
isOptional: false
|
|
88
|
-
},
|
|
89
|
-
delegateTo: {
|
|
90
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
91
|
-
isOptional: false
|
|
92
|
-
},
|
|
93
|
-
reason: {
|
|
94
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
95
|
-
isOptional: true
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}),
|
|
99
|
-
output: ApprovalRequestModel
|
|
100
|
-
},
|
|
101
|
-
policy: { auth: "user" },
|
|
102
|
-
sideEffects: {
|
|
103
|
-
emits: [{
|
|
104
|
-
name: "workflow.approval.delegated",
|
|
105
|
-
version: 1,
|
|
106
|
-
when: "Approval is delegated",
|
|
107
|
-
payload: ApprovalRequestModel
|
|
108
|
-
}],
|
|
109
|
-
audit: ["workflow.approval.delegated"]
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
/**
|
|
113
|
-
* Add a comment to an approval request.
|
|
114
|
-
*/
|
|
115
|
-
const AddApprovalCommentContract = defineCommand({
|
|
116
|
-
meta: {
|
|
117
|
-
name: "workflow.approval.comment.add",
|
|
118
|
-
version: 1,
|
|
119
|
-
stability: "stable",
|
|
120
|
-
owners: [...OWNERS],
|
|
121
|
-
tags: [
|
|
122
|
-
"workflow",
|
|
123
|
-
"approval",
|
|
124
|
-
"comment"
|
|
125
|
-
],
|
|
126
|
-
description: "Add a comment to an approval request.",
|
|
127
|
-
goal: "Allow discussion on approval requests.",
|
|
128
|
-
context: "Approval detail view."
|
|
129
|
-
},
|
|
130
|
-
io: {
|
|
131
|
-
input: defineSchemaModel({
|
|
132
|
-
name: "AddCommentInput",
|
|
133
|
-
fields: {
|
|
134
|
-
requestId: {
|
|
135
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
136
|
-
isOptional: false
|
|
137
|
-
},
|
|
138
|
-
content: {
|
|
139
|
-
type: ScalarTypeEnum.NonEmptyString(),
|
|
140
|
-
isOptional: false
|
|
141
|
-
},
|
|
142
|
-
isInternal: {
|
|
143
|
-
type: ScalarTypeEnum.Boolean(),
|
|
144
|
-
isOptional: true
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}),
|
|
148
|
-
output: ApprovalCommentModel
|
|
149
|
-
},
|
|
150
|
-
policy: { auth: "user" },
|
|
151
|
-
sideEffects: { emits: [{
|
|
152
|
-
name: "workflow.approval.comment.added",
|
|
153
|
-
version: 1,
|
|
154
|
-
when: "Comment is added",
|
|
155
|
-
payload: ApprovalCommentModel
|
|
156
|
-
}] }
|
|
157
|
-
});
|
|
158
|
-
/**
|
|
159
|
-
* List approvals assigned to the current user.
|
|
160
|
-
*/
|
|
161
|
-
const ListMyApprovalsContract = defineQuery({
|
|
162
|
-
meta: {
|
|
163
|
-
name: "workflow.approval.list.mine",
|
|
164
|
-
version: 1,
|
|
165
|
-
stability: "stable",
|
|
166
|
-
owners: [...OWNERS],
|
|
167
|
-
tags: [
|
|
168
|
-
"workflow",
|
|
169
|
-
"approval",
|
|
170
|
-
"list",
|
|
171
|
-
"inbox"
|
|
172
|
-
],
|
|
173
|
-
description: "List approval requests assigned to current user.",
|
|
174
|
-
goal: "Show pending approvals in user inbox.",
|
|
175
|
-
context: "Approval inbox, dashboard widget."
|
|
176
|
-
},
|
|
177
|
-
io: {
|
|
178
|
-
input: defineSchemaModel({
|
|
179
|
-
name: "ListMyApprovalsInput",
|
|
180
|
-
fields: {
|
|
181
|
-
status: {
|
|
182
|
-
type: ApprovalStatusEnum,
|
|
183
|
-
isOptional: true
|
|
184
|
-
},
|
|
185
|
-
limit: {
|
|
186
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
187
|
-
isOptional: true,
|
|
188
|
-
defaultValue: 20
|
|
189
|
-
},
|
|
190
|
-
offset: {
|
|
191
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
192
|
-
isOptional: true,
|
|
193
|
-
defaultValue: 0
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}),
|
|
197
|
-
output: defineSchemaModel({
|
|
198
|
-
name: "ListMyApprovalsOutput",
|
|
199
|
-
fields: {
|
|
200
|
-
requests: {
|
|
201
|
-
type: ApprovalRequestModel,
|
|
202
|
-
isArray: true,
|
|
203
|
-
isOptional: false
|
|
204
|
-
},
|
|
205
|
-
total: {
|
|
206
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
207
|
-
isOptional: false
|
|
208
|
-
},
|
|
209
|
-
pendingCount: {
|
|
210
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
211
|
-
isOptional: false
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
})
|
|
215
|
-
},
|
|
216
|
-
policy: { auth: "user" }
|
|
217
|
-
});
|
|
218
|
-
/**
|
|
219
|
-
* Get a single approval request.
|
|
220
|
-
*/
|
|
221
|
-
const GetApprovalContract = defineQuery({
|
|
222
|
-
meta: {
|
|
223
|
-
name: "workflow.approval.get",
|
|
224
|
-
version: 1,
|
|
225
|
-
stability: "stable",
|
|
226
|
-
owners: [...OWNERS],
|
|
227
|
-
tags: [
|
|
228
|
-
"workflow",
|
|
229
|
-
"approval",
|
|
230
|
-
"get"
|
|
231
|
-
],
|
|
232
|
-
description: "Get an approval request with details.",
|
|
233
|
-
goal: "View approval request details.",
|
|
234
|
-
context: "Approval detail view."
|
|
235
|
-
},
|
|
236
|
-
io: {
|
|
237
|
-
input: defineSchemaModel({
|
|
238
|
-
name: "GetApprovalInput",
|
|
239
|
-
fields: { requestId: {
|
|
240
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
241
|
-
isOptional: false
|
|
242
|
-
} }
|
|
243
|
-
}),
|
|
244
|
-
output: ApprovalRequestModel
|
|
245
|
-
},
|
|
246
|
-
policy: { auth: "user" }
|
|
247
|
-
});
|
|
248
|
-
|
|
249
|
-
//#endregion
|
|
250
|
-
export { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
|
|
1
|
+
import{ApprovalDecisionEnum as e,ApprovalStatusEnum as t}from"./approval.enum.js";import{ApprovalCommentModel as n,ApprovalRequestModel as r}from"./approval.schema.js";import{ScalarTypeEnum as i,defineSchemaModel as a}from"@lssm/lib.schema";import{defineCommand as o,defineQuery as s}from"@lssm/lib.contracts/spec";const c=[`@example.workflow-system`],l=o({meta:{name:`workflow.approval.decide`,version:1,stability:`stable`,owners:[...c],tags:[`workflow`,`approval`,`decision`],description:`Submit an approval decision (approve/reject).`,goal:`Allow approvers to make decisions on requests.`,context:`Approval inbox, workflow detail.`},io:{input:a({name:`ApproveRejectInput`,fields:{requestId:{type:i.String_unsecure(),isOptional:!1},decision:{type:e,isOptional:!1},comment:{type:i.String_unsecure(),isOptional:!0},data:{type:i.JSON(),isOptional:!0}}}),output:r},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.approval.decided`,version:1,when:`Decision is made`,payload:r}],audit:[`workflow.approval.decided`]}}),u=o({meta:{name:`workflow.approval.delegate`,version:1,stability:`stable`,owners:[...c],tags:[`workflow`,`approval`,`delegate`],description:`Delegate an approval request to another user.`,goal:`Allow approvers to pass approval to others.`,context:`Approval inbox.`},io:{input:a({name:`DelegateInput`,fields:{requestId:{type:i.String_unsecure(),isOptional:!1},delegateTo:{type:i.String_unsecure(),isOptional:!1},reason:{type:i.String_unsecure(),isOptional:!0}}}),output:r},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.approval.delegated`,version:1,when:`Approval is delegated`,payload:r}],audit:[`workflow.approval.delegated`]}}),d=o({meta:{name:`workflow.approval.comment.add`,version:1,stability:`stable`,owners:[...c],tags:[`workflow`,`approval`,`comment`],description:`Add a comment to an approval request.`,goal:`Allow discussion on approval requests.`,context:`Approval detail view.`},io:{input:a({name:`AddCommentInput`,fields:{requestId:{type:i.String_unsecure(),isOptional:!1},content:{type:i.NonEmptyString(),isOptional:!1},isInternal:{type:i.Boolean(),isOptional:!0}}}),output:n},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.approval.comment.added`,version:1,when:`Comment is added`,payload:n}]}}),f=s({meta:{name:`workflow.approval.list.mine`,version:1,stability:`stable`,owners:[...c],tags:[`workflow`,`approval`,`list`,`inbox`],description:`List approval requests assigned to current user.`,goal:`Show pending approvals in user inbox.`,context:`Approval inbox, dashboard widget.`},io:{input:a({name:`ListMyApprovalsInput`,fields:{status:{type:t,isOptional:!0},limit:{type:i.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:i.Int_unsecure(),isOptional:!0,defaultValue:0}}}),output:a({name:`ListMyApprovalsOutput`,fields:{requests:{type:r,isArray:!0,isOptional:!1},total:{type:i.Int_unsecure(),isOptional:!1},pendingCount:{type:i.Int_unsecure(),isOptional:!1}}})},policy:{auth:`user`}}),p=s({meta:{name:`workflow.approval.get`,version:1,stability:`stable`,owners:[...c],tags:[`workflow`,`approval`,`get`],description:`Get an approval request with details.`,goal:`View approval request details.`,context:`Approval detail view.`},io:{input:a({name:`GetApprovalInput`,fields:{requestId:{type:i.String_unsecure(),isOptional:!1}}}),output:r},policy:{auth:`user`}});export{d as AddApprovalCommentContract,u as DelegateApprovalContract,p as GetApprovalContract,f as ListMyApprovalsContract,l as SubmitDecisionContract};
|
|
@@ -1,29 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
3
|
-
|
|
4
|
-
//#region src/approval/approval.enum.ts
|
|
5
|
-
/**
|
|
6
|
-
* Approval status enum.
|
|
7
|
-
*/
|
|
8
|
-
const ApprovalStatusEnum = defineEnum("ApprovalStatus", [
|
|
9
|
-
"PENDING",
|
|
10
|
-
"APPROVED",
|
|
11
|
-
"REJECTED",
|
|
12
|
-
"DELEGATED",
|
|
13
|
-
"ESCALATED",
|
|
14
|
-
"WITHDRAWN",
|
|
15
|
-
"EXPIRED"
|
|
16
|
-
]);
|
|
17
|
-
/**
|
|
18
|
-
* Approval decision enum.
|
|
19
|
-
*/
|
|
20
|
-
const ApprovalDecisionEnum = defineEnum("ApprovalDecision", [
|
|
21
|
-
"APPROVE",
|
|
22
|
-
"REJECT",
|
|
23
|
-
"REQUEST_CHANGES",
|
|
24
|
-
"DELEGATE",
|
|
25
|
-
"ABSTAIN"
|
|
26
|
-
]);
|
|
27
|
-
|
|
28
|
-
//#endregion
|
|
29
|
-
export { ApprovalDecisionEnum, ApprovalStatusEnum };
|
|
1
|
+
import{defineEnum as e}from"@lssm/lib.schema";const t=e(`ApprovalStatus`,[`PENDING`,`APPROVED`,`REJECTED`,`DELEGATED`,`ESCALATED`,`WITHDRAWN`,`EXPIRED`]),n=e(`ApprovalDecision`,[`APPROVE`,`REJECT`,`REQUEST_CHANGES`,`DELEGATE`,`ABSTAIN`]);export{n as ApprovalDecisionEnum,t as ApprovalStatusEnum};
|
|
@@ -1,186 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
3
|
-
import { defineSchemaModel } from "../libs/contracts/dist/schema/dist/SchemaModel.js";
|
|
4
|
-
import { defineEvent } from "../libs/contracts/dist/events.js";
|
|
5
|
-
import "../libs/contracts/dist/index.js";
|
|
6
|
-
|
|
7
|
-
//#region src/approval/approval.event.ts
|
|
8
|
-
/**
|
|
9
|
-
* Payload when approval is requested.
|
|
10
|
-
*/
|
|
11
|
-
const ApprovalRequestedPayload = defineSchemaModel({
|
|
12
|
-
name: "ApprovalRequestedEventPayload",
|
|
13
|
-
description: "Payload when approval is requested",
|
|
14
|
-
fields: {
|
|
15
|
-
requestId: {
|
|
16
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
17
|
-
isOptional: false
|
|
18
|
-
},
|
|
19
|
-
instanceId: {
|
|
20
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
21
|
-
isOptional: false
|
|
22
|
-
},
|
|
23
|
-
workflowKey: {
|
|
24
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
25
|
-
isOptional: false
|
|
26
|
-
},
|
|
27
|
-
approverId: {
|
|
28
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
29
|
-
isOptional: false
|
|
30
|
-
},
|
|
31
|
-
approverRole: {
|
|
32
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
33
|
-
isOptional: true
|
|
34
|
-
},
|
|
35
|
-
title: {
|
|
36
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
37
|
-
isOptional: false
|
|
38
|
-
},
|
|
39
|
-
dueAt: {
|
|
40
|
-
type: ScalarTypeEnum.DateTime(),
|
|
41
|
-
isOptional: true
|
|
42
|
-
},
|
|
43
|
-
timestamp: {
|
|
44
|
-
type: ScalarTypeEnum.DateTime(),
|
|
45
|
-
isOptional: false
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
/**
|
|
50
|
-
* Payload when approval decision is made.
|
|
51
|
-
*/
|
|
52
|
-
const ApprovalDecidedPayload = defineSchemaModel({
|
|
53
|
-
name: "ApprovalDecidedEventPayload",
|
|
54
|
-
description: "Payload when approval decision is made",
|
|
55
|
-
fields: {
|
|
56
|
-
requestId: {
|
|
57
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
58
|
-
isOptional: false
|
|
59
|
-
},
|
|
60
|
-
instanceId: {
|
|
61
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
62
|
-
isOptional: false
|
|
63
|
-
},
|
|
64
|
-
decision: {
|
|
65
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
66
|
-
isOptional: false
|
|
67
|
-
},
|
|
68
|
-
decidedBy: {
|
|
69
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
70
|
-
isOptional: false
|
|
71
|
-
},
|
|
72
|
-
comment: {
|
|
73
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
74
|
-
isOptional: true
|
|
75
|
-
},
|
|
76
|
-
timestamp: {
|
|
77
|
-
type: ScalarTypeEnum.DateTime(),
|
|
78
|
-
isOptional: false
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
/**
|
|
83
|
-
* Payload when approval is delegated.
|
|
84
|
-
*/
|
|
85
|
-
const ApprovalDelegatedPayload = defineSchemaModel({
|
|
86
|
-
name: "ApprovalDelegatedEventPayload",
|
|
87
|
-
description: "Payload when approval is delegated",
|
|
88
|
-
fields: {
|
|
89
|
-
requestId: {
|
|
90
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
91
|
-
isOptional: false
|
|
92
|
-
},
|
|
93
|
-
instanceId: {
|
|
94
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
95
|
-
isOptional: false
|
|
96
|
-
},
|
|
97
|
-
fromUserId: {
|
|
98
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
99
|
-
isOptional: false
|
|
100
|
-
},
|
|
101
|
-
toUserId: {
|
|
102
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
103
|
-
isOptional: false
|
|
104
|
-
},
|
|
105
|
-
reason: {
|
|
106
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
107
|
-
isOptional: true
|
|
108
|
-
},
|
|
109
|
-
timestamp: {
|
|
110
|
-
type: ScalarTypeEnum.DateTime(),
|
|
111
|
-
isOptional: false
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
/**
|
|
116
|
-
* Payload when approval is escalated.
|
|
117
|
-
*/
|
|
118
|
-
const ApprovalEscalatedPayload = defineSchemaModel({
|
|
119
|
-
name: "ApprovalEscalatedEventPayload",
|
|
120
|
-
description: "Payload when approval is escalated",
|
|
121
|
-
fields: {
|
|
122
|
-
requestId: {
|
|
123
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
124
|
-
isOptional: false
|
|
125
|
-
},
|
|
126
|
-
instanceId: {
|
|
127
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
128
|
-
isOptional: false
|
|
129
|
-
},
|
|
130
|
-
escalationLevel: {
|
|
131
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
132
|
-
isOptional: false
|
|
133
|
-
},
|
|
134
|
-
escalatedTo: {
|
|
135
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
136
|
-
isOptional: false
|
|
137
|
-
},
|
|
138
|
-
reason: {
|
|
139
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
140
|
-
isOptional: false
|
|
141
|
-
},
|
|
142
|
-
timestamp: {
|
|
143
|
-
type: ScalarTypeEnum.DateTime(),
|
|
144
|
-
isOptional: false
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
/**
|
|
149
|
-
* ApprovalRequestedEvent - An approval has been requested.
|
|
150
|
-
*/
|
|
151
|
-
const ApprovalRequestedEvent = defineEvent({
|
|
152
|
-
name: "workflow.approval.requested",
|
|
153
|
-
version: 1,
|
|
154
|
-
description: "An approval has been requested.",
|
|
155
|
-
payload: ApprovalRequestedPayload
|
|
156
|
-
});
|
|
157
|
-
/**
|
|
158
|
-
* ApprovalDecidedEvent - An approval decision has been made.
|
|
159
|
-
*/
|
|
160
|
-
const ApprovalDecidedEvent = defineEvent({
|
|
161
|
-
name: "workflow.approval.decided",
|
|
162
|
-
version: 1,
|
|
163
|
-
description: "An approval decision has been made.",
|
|
164
|
-
payload: ApprovalDecidedPayload
|
|
165
|
-
});
|
|
166
|
-
/**
|
|
167
|
-
* ApprovalDelegatedEvent - An approval has been delegated.
|
|
168
|
-
*/
|
|
169
|
-
const ApprovalDelegatedEvent = defineEvent({
|
|
170
|
-
name: "workflow.approval.delegated",
|
|
171
|
-
version: 1,
|
|
172
|
-
description: "An approval has been delegated.",
|
|
173
|
-
payload: ApprovalDelegatedPayload
|
|
174
|
-
});
|
|
175
|
-
/**
|
|
176
|
-
* ApprovalEscalatedEvent - An approval has been escalated.
|
|
177
|
-
*/
|
|
178
|
-
const ApprovalEscalatedEvent = defineEvent({
|
|
179
|
-
name: "workflow.approval.escalated",
|
|
180
|
-
version: 1,
|
|
181
|
-
description: "An approval has been escalated.",
|
|
182
|
-
payload: ApprovalEscalatedPayload
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
//#endregion
|
|
186
|
-
export { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent };
|
|
1
|
+
import{ScalarTypeEnum as e}from"@lssm/lib.schema";import{defineEvent as t,defineSchemaModel as n}from"@lssm/lib.contracts";const r=n({name:`ApprovalRequestedEventPayload`,description:`Payload when approval is requested`,fields:{requestId:{type:e.String_unsecure(),isOptional:!1},instanceId:{type:e.String_unsecure(),isOptional:!1},workflowKey:{type:e.String_unsecure(),isOptional:!1},approverId:{type:e.String_unsecure(),isOptional:!1},approverRole:{type:e.String_unsecure(),isOptional:!0},title:{type:e.String_unsecure(),isOptional:!1},dueAt:{type:e.DateTime(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),i=n({name:`ApprovalDecidedEventPayload`,description:`Payload when approval decision is made`,fields:{requestId:{type:e.String_unsecure(),isOptional:!1},instanceId:{type:e.String_unsecure(),isOptional:!1},decision:{type:e.String_unsecure(),isOptional:!1},decidedBy:{type:e.String_unsecure(),isOptional:!1},comment:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=n({name:`ApprovalDelegatedEventPayload`,description:`Payload when approval is delegated`,fields:{requestId:{type:e.String_unsecure(),isOptional:!1},instanceId:{type:e.String_unsecure(),isOptional:!1},fromUserId:{type:e.String_unsecure(),isOptional:!1},toUserId:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!0},timestamp:{type:e.DateTime(),isOptional:!1}}}),o=n({name:`ApprovalEscalatedEventPayload`,description:`Payload when approval is escalated`,fields:{requestId:{type:e.String_unsecure(),isOptional:!1},instanceId:{type:e.String_unsecure(),isOptional:!1},escalationLevel:{type:e.Int_unsecure(),isOptional:!1},escalatedTo:{type:e.String_unsecure(),isOptional:!1},reason:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),s=t({name:`workflow.approval.requested`,version:1,description:`An approval has been requested.`,payload:r}),c=t({name:`workflow.approval.decided`,version:1,description:`An approval decision has been made.`,payload:i}),l=t({name:`workflow.approval.delegated`,version:1,description:`An approval has been delegated.`,payload:a}),u=t({name:`workflow.approval.escalated`,version:1,description:`An approval has been escalated.`,payload:o});export{c as ApprovalDecidedEvent,l as ApprovalDelegatedEvent,u as ApprovalEscalatedEvent,s as ApprovalRequestedEvent};
|
|
@@ -1,71 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { handleTransitionWorkflow } from "../instance/instance.handler.js";
|
|
3
|
-
|
|
4
|
-
//#region src/approval/approval.handler.ts
|
|
5
|
-
async function createApprovalRequests(instance, step, _context) {
|
|
6
|
-
const now = /* @__PURE__ */ new Date();
|
|
7
|
-
for (let i = 0; i < step.approverRoles.length; i++) {
|
|
8
|
-
const role = step.approverRoles[i];
|
|
9
|
-
const id = `approval_${Date.now()}_${i}`;
|
|
10
|
-
const request = {
|
|
11
|
-
id,
|
|
12
|
-
workflowInstanceId: instance.id,
|
|
13
|
-
stepExecutionId: `exec_${instance.id}_${step.id}`,
|
|
14
|
-
approverId: `user_${role}`,
|
|
15
|
-
approverRole: role,
|
|
16
|
-
title: `Approval required for ${step.name}`,
|
|
17
|
-
description: step.description,
|
|
18
|
-
status: "PENDING",
|
|
19
|
-
contextSnapshot: instance.contextData,
|
|
20
|
-
sequenceOrder: i,
|
|
21
|
-
createdAt: now,
|
|
22
|
-
updatedAt: now
|
|
23
|
-
};
|
|
24
|
-
mockDataStore.approvals.set(id, request);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async function handleSubmitDecision(input, context) {
|
|
28
|
-
const request = mockDataStore.approvals.get(input.requestId);
|
|
29
|
-
if (!request) throw new Error(`Approval request ${input.requestId} not found`);
|
|
30
|
-
if (request.approverId !== context.userId && !context.userRoles.includes(request.approverRole ?? "")) throw new Error("User is not authorized to make this decision");
|
|
31
|
-
const now = /* @__PURE__ */ new Date();
|
|
32
|
-
request.decision = input.decision;
|
|
33
|
-
request.decisionComment = input.comment;
|
|
34
|
-
request.decidedAt = now;
|
|
35
|
-
request.updatedAt = now;
|
|
36
|
-
if (input.decision === "APPROVE") {
|
|
37
|
-
request.status = "APPROVED";
|
|
38
|
-
await handleTransitionWorkflow({
|
|
39
|
-
instanceId: request.workflowInstanceId,
|
|
40
|
-
action: "approve",
|
|
41
|
-
data: input.data,
|
|
42
|
-
comment: input.comment
|
|
43
|
-
}, context);
|
|
44
|
-
} else if (input.decision === "REJECT") {
|
|
45
|
-
request.status = "REJECTED";
|
|
46
|
-
await handleTransitionWorkflow({
|
|
47
|
-
instanceId: request.workflowInstanceId,
|
|
48
|
-
action: "reject",
|
|
49
|
-
data: input.data,
|
|
50
|
-
comment: input.comment
|
|
51
|
-
}, context);
|
|
52
|
-
}
|
|
53
|
-
return request;
|
|
54
|
-
}
|
|
55
|
-
async function handleListMyApprovals(input, context) {
|
|
56
|
-
let requests = Array.from(mockDataStore.approvals.values()).filter((r) => r.approverId === context.userId || context.userRoles.includes(r.approverRole ?? ""));
|
|
57
|
-
const pendingCount = requests.filter((r) => r.status === "PENDING").length;
|
|
58
|
-
if (input.status) requests = requests.filter((r) => r.status === input.status);
|
|
59
|
-
const total = requests.length;
|
|
60
|
-
const offset = input.offset ?? 0;
|
|
61
|
-
const limit = input.limit ?? 20;
|
|
62
|
-
requests = requests.sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()).slice(offset, offset + limit);
|
|
63
|
-
return {
|
|
64
|
-
requests,
|
|
65
|
-
total,
|
|
66
|
-
pendingCount
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
//#endregion
|
|
71
|
-
export { createApprovalRequests, handleListMyApprovals, handleSubmitDecision };
|
|
1
|
+
import{mockDataStore as e}from"../shared/mock-data.js";import{handleTransitionWorkflow as t}from"../instance/instance.handler.js";async function n(t,n,r){let i=new Date;for(let r=0;r<n.approverRoles.length;r++){let a=n.approverRoles[r],o=`approval_${Date.now()}_${r}`,s={id:o,workflowInstanceId:t.id,stepExecutionId:`exec_${t.id}_${n.id}`,approverId:`user_${a}`,approverRole:a,title:`Approval required for ${n.name}`,description:n.description,status:`PENDING`,contextSnapshot:t.contextData,sequenceOrder:r,createdAt:i,updatedAt:i};e.approvals.set(o,s)}}async function r(n,r){let i=e.approvals.get(n.requestId);if(!i)throw Error(`Approval request ${n.requestId} not found`);if(i.approverId!==r.userId&&!r.userRoles.includes(i.approverRole??``))throw Error(`User is not authorized to make this decision`);let a=new Date;return i.decision=n.decision,i.decisionComment=n.comment,i.decidedAt=a,i.updatedAt=a,n.decision===`APPROVE`?(i.status=`APPROVED`,await t({instanceId:i.workflowInstanceId,action:`approve`,data:n.data,comment:n.comment},r)):n.decision===`REJECT`&&(i.status=`REJECTED`,await t({instanceId:i.workflowInstanceId,action:`reject`,data:n.data,comment:n.comment},r)),i}async function i(t,n){let r=Array.from(e.approvals.values()).filter(e=>e.approverId===n.userId||n.userRoles.includes(e.approverRole??``)),i=r.filter(e=>e.status===`PENDING`).length;t.status&&(r=r.filter(e=>e.status===t.status));let a=r.length,o=t.offset??0,s=t.limit??20;return r=r.sort((e,t)=>t.createdAt.getTime()-e.createdAt.getTime()).slice(o,o+s),{requests:r,total:a,pendingCount:i}}export{n as createApprovalRequests,i as handleListMyApprovals,r as handleSubmitDecision};
|
|
@@ -1,111 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
|
|
3
|
-
import "../libs/schema/dist/index.js";
|
|
4
|
-
import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
|
|
5
|
-
|
|
6
|
-
//#region src/approval/approval.schema.ts
|
|
7
|
-
/**
|
|
8
|
-
* An approval request.
|
|
9
|
-
*/
|
|
10
|
-
const ApprovalRequestModel = defineSchemaModel({
|
|
11
|
-
name: "ApprovalRequestModel",
|
|
12
|
-
description: "An approval request",
|
|
13
|
-
fields: {
|
|
14
|
-
id: {
|
|
15
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
16
|
-
isOptional: false
|
|
17
|
-
},
|
|
18
|
-
workflowInstanceId: {
|
|
19
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
20
|
-
isOptional: false
|
|
21
|
-
},
|
|
22
|
-
stepExecutionId: {
|
|
23
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
24
|
-
isOptional: false
|
|
25
|
-
},
|
|
26
|
-
approverId: {
|
|
27
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
28
|
-
isOptional: false
|
|
29
|
-
},
|
|
30
|
-
approverRole: {
|
|
31
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
32
|
-
isOptional: true
|
|
33
|
-
},
|
|
34
|
-
title: {
|
|
35
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
36
|
-
isOptional: false
|
|
37
|
-
},
|
|
38
|
-
description: {
|
|
39
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
40
|
-
isOptional: true
|
|
41
|
-
},
|
|
42
|
-
status: {
|
|
43
|
-
type: ApprovalStatusEnum,
|
|
44
|
-
isOptional: false
|
|
45
|
-
},
|
|
46
|
-
decision: {
|
|
47
|
-
type: ApprovalDecisionEnum,
|
|
48
|
-
isOptional: true
|
|
49
|
-
},
|
|
50
|
-
decisionComment: {
|
|
51
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
52
|
-
isOptional: true
|
|
53
|
-
},
|
|
54
|
-
decidedAt: {
|
|
55
|
-
type: ScalarTypeEnum.DateTime(),
|
|
56
|
-
isOptional: true
|
|
57
|
-
},
|
|
58
|
-
dueAt: {
|
|
59
|
-
type: ScalarTypeEnum.DateTime(),
|
|
60
|
-
isOptional: true
|
|
61
|
-
},
|
|
62
|
-
contextSnapshot: {
|
|
63
|
-
type: ScalarTypeEnum.JSON(),
|
|
64
|
-
isOptional: true
|
|
65
|
-
},
|
|
66
|
-
sequenceOrder: {
|
|
67
|
-
type: ScalarTypeEnum.Int_unsecure(),
|
|
68
|
-
isOptional: false
|
|
69
|
-
},
|
|
70
|
-
createdAt: {
|
|
71
|
-
type: ScalarTypeEnum.DateTime(),
|
|
72
|
-
isOptional: false
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
/**
|
|
77
|
-
* A comment on an approval.
|
|
78
|
-
*/
|
|
79
|
-
const ApprovalCommentModel = defineSchemaModel({
|
|
80
|
-
name: "ApprovalCommentModel",
|
|
81
|
-
description: "A comment on an approval",
|
|
82
|
-
fields: {
|
|
83
|
-
id: {
|
|
84
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
85
|
-
isOptional: false
|
|
86
|
-
},
|
|
87
|
-
approvalRequestId: {
|
|
88
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
89
|
-
isOptional: false
|
|
90
|
-
},
|
|
91
|
-
authorId: {
|
|
92
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
93
|
-
isOptional: false
|
|
94
|
-
},
|
|
95
|
-
content: {
|
|
96
|
-
type: ScalarTypeEnum.String_unsecure(),
|
|
97
|
-
isOptional: false
|
|
98
|
-
},
|
|
99
|
-
isInternal: {
|
|
100
|
-
type: ScalarTypeEnum.Boolean(),
|
|
101
|
-
isOptional: false
|
|
102
|
-
},
|
|
103
|
-
createdAt: {
|
|
104
|
-
type: ScalarTypeEnum.DateTime(),
|
|
105
|
-
isOptional: false
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
//#endregion
|
|
111
|
-
export { ApprovalCommentModel, ApprovalRequestModel };
|
|
1
|
+
import{ApprovalDecisionEnum as e,ApprovalStatusEnum as t}from"./approval.enum.js";import{ScalarTypeEnum as n,defineSchemaModel as r}from"@lssm/lib.schema";const i=r({name:`ApprovalRequestModel`,description:`An approval request`,fields:{id:{type:n.String_unsecure(),isOptional:!1},workflowInstanceId:{type:n.String_unsecure(),isOptional:!1},stepExecutionId:{type:n.String_unsecure(),isOptional:!1},approverId:{type:n.String_unsecure(),isOptional:!1},approverRole:{type:n.String_unsecure(),isOptional:!0},title:{type:n.String_unsecure(),isOptional:!1},description:{type:n.String_unsecure(),isOptional:!0},status:{type:t,isOptional:!1},decision:{type:e,isOptional:!0},decisionComment:{type:n.String_unsecure(),isOptional:!0},decidedAt:{type:n.DateTime(),isOptional:!0},dueAt:{type:n.DateTime(),isOptional:!0},contextSnapshot:{type:n.JSON(),isOptional:!0},sequenceOrder:{type:n.Int_unsecure(),isOptional:!1},createdAt:{type:n.DateTime(),isOptional:!1}}}),a=r({name:`ApprovalCommentModel`,description:`A comment on an approval`,fields:{id:{type:n.String_unsecure(),isOptional:!1},approvalRequestId:{type:n.String_unsecure(),isOptional:!1},authorId:{type:n.String_unsecure(),isOptional:!1},content:{type:n.String_unsecure(),isOptional:!1},isInternal:{type:n.Boolean(),isOptional:!1},createdAt:{type:n.DateTime(),isOptional:!1}}});export{a as ApprovalCommentModel,i as ApprovalRequestModel};
|
package/dist/approval/index.js
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
|
|
3
|
-
import { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract } from "./approval.contracts.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 };
|
|
1
|
+
import{ApprovalDecisionEnum as e,ApprovalStatusEnum as t}from"./approval.enum.js";import{ApprovalCommentModel as n,ApprovalRequestModel as r}from"./approval.schema.js";import{AddApprovalCommentContract as i,DelegateApprovalContract as a,GetApprovalContract as o,ListMyApprovalsContract as s,SubmitDecisionContract as c}from"./approval.contracts.js";import{ApprovalDecidedEvent as l,ApprovalDelegatedEvent as u,ApprovalEscalatedEvent as d,ApprovalRequestedEvent as f}from"./approval.event.js";export{i as AddApprovalCommentContract,n as ApprovalCommentModel,l as ApprovalDecidedEvent,e as ApprovalDecisionEnum,u as ApprovalDelegatedEvent,d as ApprovalEscalatedEvent,r as ApprovalRequestModel,f as ApprovalRequestedEvent,t as ApprovalStatusEnum,a as DelegateApprovalContract,o as GetApprovalContract,s as ListMyApprovalsContract,c as SubmitDecisionContract};
|
package/dist/docs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"./workflow-system.docblock.js";
|