@lssm/example.workflow-system 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821
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/LICENSE +21 -0
- package/dist/approval/approval.contracts.d.ts +136 -135
- package/dist/approval/approval.contracts.d.ts.map +1 -0
- package/dist/approval/approval.contracts.js +23 -24
- package/dist/approval/approval.contracts.js.map +1 -0
- package/dist/approval/approval.enum.d.ts +5 -4
- package/dist/approval/approval.enum.d.ts.map +1 -0
- package/dist/approval/approval.enum.js +5 -5
- package/dist/approval/approval.enum.js.map +1 -0
- package/dist/approval/approval.event.d.ts +34 -33
- package/dist/approval/approval.event.d.ts.map +1 -0
- package/dist/approval/approval.event.js +34 -34
- package/dist/approval/approval.event.js.map +1 -0
- package/dist/approval/approval.handler.d.ts +2 -1
- package/dist/approval/approval.handler.d.ts.map +1 -0
- package/dist/approval/approval.handler.js +2 -1
- package/dist/approval/approval.handler.js.map +1 -0
- package/dist/approval/approval.schema.d.ts +26 -25
- package/dist/approval/approval.schema.d.ts.map +1 -0
- package/dist/approval/approval.schema.js +24 -25
- package/dist/approval/approval.schema.js.map +1 -0
- package/dist/docs/workflow-system.docblock.js +2 -1
- package/dist/docs/workflow-system.docblock.js.map +1 -0
- package/dist/entities/approval.d.ts +38 -37
- package/dist/entities/approval.d.ts.map +1 -0
- package/dist/entities/approval.js +44 -44
- package/dist/entities/approval.js.map +1 -0
- package/dist/entities/index.d.ts +129 -128
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +2 -1
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/instance.d.ts +49 -48
- package/dist/entities/instance.d.ts.map +1 -0
- package/dist/entities/instance.js +58 -58
- package/dist/entities/instance.js.map +1 -0
- package/dist/entities/step.d.ts +34 -33
- package/dist/entities/step.d.ts.map +1 -0
- package/dist/entities/step.js +37 -37
- package/dist/entities/step.js.map +1 -0
- package/dist/entities/workflow.d.ts +25 -24
- package/dist/entities/workflow.d.ts.map +1 -0
- package/dist/entities/workflow.js +28 -28
- package/dist/entities/workflow.js.map +1 -0
- package/dist/example.d.ts +2 -1
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +2 -1
- package/dist/example.js.map +1 -0
- package/dist/instance/instance.contracts.d.ts +258 -257
- package/dist/instance/instance.contracts.d.ts.map +1 -0
- package/dist/instance/instance.contracts.js +23 -24
- package/dist/instance/instance.contracts.js.map +1 -0
- package/dist/instance/instance.enum.d.ts +4 -3
- package/dist/instance/instance.enum.d.ts.map +1 -0
- package/dist/instance/instance.enum.js +4 -4
- package/dist/instance/instance.enum.js.map +1 -0
- package/dist/instance/instance.event.d.ts +89 -88
- package/dist/instance/instance.event.d.ts.map +1 -0
- package/dist/instance/instance.event.js +31 -31
- package/dist/instance/instance.event.js.map +1 -0
- package/dist/instance/instance.handler.d.ts +2 -1
- package/dist/instance/instance.handler.d.ts.map +1 -0
- package/dist/instance/instance.handler.js +2 -1
- package/dist/instance/instance.handler.js.map +1 -0
- package/dist/instance/instance.schema.d.ts +56 -55
- package/dist/instance/instance.schema.d.ts.map +1 -0
- package/dist/instance/instance.schema.js +37 -38
- package/dist/instance/instance.schema.js.map +1 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +2 -6
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +2 -1
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +2 -1
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
- package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -1
- package/dist/libs/contracts/dist/events.js.map +1 -0
- package/dist/libs/contracts/dist/index.js +3 -2
- package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
- package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
- package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +2 -1
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +22 -23
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/ownership.js +4 -2
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/presentations.v2.js +2 -1
- package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +2 -1
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/schema/dist/index.js +3874 -6
- package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/spec.js +2 -1
- package/dist/libs/contracts/dist/spec.js.map +1 -0
- package/dist/libs/schema/dist/index.js +4922 -6
- package/dist/libs/schema/dist/index.js.map +1 -0
- package/dist/presentations/index.d.ts +2 -1
- package/dist/presentations/index.d.ts.map +1 -0
- package/dist/presentations/index.js +2 -1
- package/dist/presentations/index.js.map +1 -0
- package/dist/shared/mock-data.d.ts +2 -1
- package/dist/shared/mock-data.d.ts.map +1 -0
- package/dist/shared/mock-data.js +2 -1
- package/dist/shared/mock-data.js.map +1 -0
- package/dist/shared/types.d.ts +2 -1
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/state-machine/index.d.ts +2 -1
- package/dist/state-machine/index.d.ts.map +1 -0
- package/dist/state-machine/index.js +2 -1
- package/dist/state-machine/index.js.map +1 -0
- package/dist/workflow/workflow.contracts.d.ts +248 -247
- package/dist/workflow/workflow.contracts.d.ts.map +1 -0
- package/dist/workflow/workflow.contracts.js +13 -14
- package/dist/workflow/workflow.contracts.js.map +1 -0
- package/dist/workflow/workflow.enum.d.ts +7 -6
- package/dist/workflow/workflow.enum.d.ts.map +1 -0
- package/dist/workflow/workflow.enum.js +7 -7
- package/dist/workflow/workflow.enum.js.map +1 -0
- package/dist/workflow/workflow.event.d.ts +35 -34
- package/dist/workflow/workflow.event.d.ts.map +1 -0
- package/dist/workflow/workflow.event.js +19 -19
- package/dist/workflow/workflow.event.js.map +1 -0
- package/dist/workflow/workflow.handler.d.ts +2 -1
- package/dist/workflow/workflow.handler.d.ts.map +1 -0
- package/dist/workflow/workflow.handler.js +2 -1
- package/dist/workflow/workflow.handler.js.map +1 -0
- package/dist/workflow/workflow.schema.d.ts +2 -1
- package/dist/workflow/workflow.schema.d.ts.map +1 -0
- package/dist/workflow/workflow.schema.js +47 -48
- package/dist/workflow/workflow.schema.js.map +1 -0
- package/dist/workflow-system.feature.d.ts +2 -1
- package/dist/workflow-system.feature.d.ts.map +1 -0
- package/dist/workflow-system.feature.js +2 -1
- package/dist/workflow-system.feature.js.map +1 -0
- package/package.json +19 -12
- package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
- 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/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/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
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
|
|
3
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { E5, K5 } from "../libs/schema/dist/index.js";
|
|
4
2
|
import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
|
|
5
3
|
import { ApprovalDecisionEnum, ApprovalStatusEnum } from "./approval.enum.js";
|
|
6
4
|
import { ApprovalCommentModel, ApprovalRequestModel } from "./approval.schema.js";
|
|
@@ -26,11 +24,11 @@ const SubmitDecisionContract = defineCommand({
|
|
|
26
24
|
context: "Approval inbox, workflow detail."
|
|
27
25
|
},
|
|
28
26
|
io: {
|
|
29
|
-
input:
|
|
27
|
+
input: K5({
|
|
30
28
|
name: "ApproveRejectInput",
|
|
31
29
|
fields: {
|
|
32
30
|
requestId: {
|
|
33
|
-
type:
|
|
31
|
+
type: E5.String_unsecure(),
|
|
34
32
|
isOptional: false
|
|
35
33
|
},
|
|
36
34
|
decision: {
|
|
@@ -38,11 +36,11 @@ const SubmitDecisionContract = defineCommand({
|
|
|
38
36
|
isOptional: false
|
|
39
37
|
},
|
|
40
38
|
comment: {
|
|
41
|
-
type:
|
|
39
|
+
type: E5.String_unsecure(),
|
|
42
40
|
isOptional: true
|
|
43
41
|
},
|
|
44
42
|
data: {
|
|
45
|
-
type:
|
|
43
|
+
type: E5.JSON(),
|
|
46
44
|
isOptional: true
|
|
47
45
|
}
|
|
48
46
|
}
|
|
@@ -79,19 +77,19 @@ const DelegateApprovalContract = defineCommand({
|
|
|
79
77
|
context: "Approval inbox."
|
|
80
78
|
},
|
|
81
79
|
io: {
|
|
82
|
-
input:
|
|
80
|
+
input: K5({
|
|
83
81
|
name: "DelegateInput",
|
|
84
82
|
fields: {
|
|
85
83
|
requestId: {
|
|
86
|
-
type:
|
|
84
|
+
type: E5.String_unsecure(),
|
|
87
85
|
isOptional: false
|
|
88
86
|
},
|
|
89
87
|
delegateTo: {
|
|
90
|
-
type:
|
|
88
|
+
type: E5.String_unsecure(),
|
|
91
89
|
isOptional: false
|
|
92
90
|
},
|
|
93
91
|
reason: {
|
|
94
|
-
type:
|
|
92
|
+
type: E5.String_unsecure(),
|
|
95
93
|
isOptional: true
|
|
96
94
|
}
|
|
97
95
|
}
|
|
@@ -128,19 +126,19 @@ const AddApprovalCommentContract = defineCommand({
|
|
|
128
126
|
context: "Approval detail view."
|
|
129
127
|
},
|
|
130
128
|
io: {
|
|
131
|
-
input:
|
|
129
|
+
input: K5({
|
|
132
130
|
name: "AddCommentInput",
|
|
133
131
|
fields: {
|
|
134
132
|
requestId: {
|
|
135
|
-
type:
|
|
133
|
+
type: E5.String_unsecure(),
|
|
136
134
|
isOptional: false
|
|
137
135
|
},
|
|
138
136
|
content: {
|
|
139
|
-
type:
|
|
137
|
+
type: E5.NonEmptyString(),
|
|
140
138
|
isOptional: false
|
|
141
139
|
},
|
|
142
140
|
isInternal: {
|
|
143
|
-
type:
|
|
141
|
+
type: E5.Boolean(),
|
|
144
142
|
isOptional: true
|
|
145
143
|
}
|
|
146
144
|
}
|
|
@@ -175,7 +173,7 @@ const ListMyApprovalsContract = defineQuery({
|
|
|
175
173
|
context: "Approval inbox, dashboard widget."
|
|
176
174
|
},
|
|
177
175
|
io: {
|
|
178
|
-
input:
|
|
176
|
+
input: K5({
|
|
179
177
|
name: "ListMyApprovalsInput",
|
|
180
178
|
fields: {
|
|
181
179
|
status: {
|
|
@@ -183,18 +181,18 @@ const ListMyApprovalsContract = defineQuery({
|
|
|
183
181
|
isOptional: true
|
|
184
182
|
},
|
|
185
183
|
limit: {
|
|
186
|
-
type:
|
|
184
|
+
type: E5.Int_unsecure(),
|
|
187
185
|
isOptional: true,
|
|
188
186
|
defaultValue: 20
|
|
189
187
|
},
|
|
190
188
|
offset: {
|
|
191
|
-
type:
|
|
189
|
+
type: E5.Int_unsecure(),
|
|
192
190
|
isOptional: true,
|
|
193
191
|
defaultValue: 0
|
|
194
192
|
}
|
|
195
193
|
}
|
|
196
194
|
}),
|
|
197
|
-
output:
|
|
195
|
+
output: K5({
|
|
198
196
|
name: "ListMyApprovalsOutput",
|
|
199
197
|
fields: {
|
|
200
198
|
requests: {
|
|
@@ -203,11 +201,11 @@ const ListMyApprovalsContract = defineQuery({
|
|
|
203
201
|
isOptional: false
|
|
204
202
|
},
|
|
205
203
|
total: {
|
|
206
|
-
type:
|
|
204
|
+
type: E5.Int_unsecure(),
|
|
207
205
|
isOptional: false
|
|
208
206
|
},
|
|
209
207
|
pendingCount: {
|
|
210
|
-
type:
|
|
208
|
+
type: E5.Int_unsecure(),
|
|
211
209
|
isOptional: false
|
|
212
210
|
}
|
|
213
211
|
}
|
|
@@ -234,10 +232,10 @@ const GetApprovalContract = defineQuery({
|
|
|
234
232
|
context: "Approval detail view."
|
|
235
233
|
},
|
|
236
234
|
io: {
|
|
237
|
-
input:
|
|
235
|
+
input: K5({
|
|
238
236
|
name: "GetApprovalInput",
|
|
239
237
|
fields: { requestId: {
|
|
240
|
-
type:
|
|
238
|
+
type: E5.String_unsecure(),
|
|
241
239
|
isOptional: false
|
|
242
240
|
} }
|
|
243
241
|
}),
|
|
@@ -247,4 +245,5 @@ const GetApprovalContract = defineQuery({
|
|
|
247
245
|
});
|
|
248
246
|
|
|
249
247
|
//#endregion
|
|
250
|
-
export { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
|
|
248
|
+
export { AddApprovalCommentContract, DelegateApprovalContract, GetApprovalContract, ListMyApprovalsContract, SubmitDecisionContract };
|
|
249
|
+
//# sourceMappingURL=approval.contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.contracts.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../../src/approval/approval.contracts.ts"],"sourcesContent":["import { defineCommand, defineQuery } from '@lssm/lib.contracts/spec';\nimport { defineSchemaModel, ScalarTypeEnum } from '@lssm/lib.schema';\nimport { ApprovalStatusEnum, ApprovalDecisionEnum } from './approval.enum';\nimport { ApprovalRequestModel, ApprovalCommentModel } 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 name: '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 name: 'workflow.approval.decided',\n version: 1,\n when: 'Decision is made',\n payload: ApprovalRequestModel,\n },\n ],\n audit: ['workflow.approval.decided'],\n },\n});\n\n/**\n * Delegate an approval to another user.\n */\nexport const DelegateApprovalContract = defineCommand({\n meta: {\n name: '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 name: 'workflow.approval.delegated',\n version: 1,\n when: 'Approval is delegated',\n payload: ApprovalRequestModel,\n },\n ],\n audit: ['workflow.approval.delegated'],\n },\n});\n\n/**\n * Add a comment to an approval request.\n */\nexport const AddApprovalCommentContract = defineCommand({\n meta: {\n name: '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 name: 'workflow.approval.comment.added',\n version: 1,\n when: 'Comment is added',\n payload: ApprovalCommentModel,\n },\n ],\n },\n});\n\n/**\n * List approvals assigned to the current user.\n */\nexport const ListMyApprovalsContract = defineQuery({\n meta: {\n name: '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});\n\n/**\n * Get a single approval request.\n */\nexport const GetApprovalContract = defineQuery({\n meta: {\n name: '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});\n"],"mappings":"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"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema193 from "@lssm/lib.schema";
|
|
2
2
|
|
|
3
3
|
//#region src/approval/approval.enum.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* Approval status enum.
|
|
6
6
|
*/
|
|
7
|
-
declare const ApprovalStatusEnum:
|
|
7
|
+
declare const ApprovalStatusEnum: _lssm_lib_schema193.EnumType<[string, string, string, string, string, string, string]>;
|
|
8
8
|
/**
|
|
9
9
|
* Approval decision enum.
|
|
10
10
|
*/
|
|
11
|
-
declare const ApprovalDecisionEnum:
|
|
11
|
+
declare const ApprovalDecisionEnum: _lssm_lib_schema193.EnumType<[string, string, string, string, string]>;
|
|
12
12
|
//#endregion
|
|
13
|
-
export { ApprovalDecisionEnum, ApprovalStatusEnum };
|
|
13
|
+
export { ApprovalDecisionEnum, ApprovalStatusEnum };
|
|
14
|
+
//# sourceMappingURL=approval.enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.enum.d.ts","names":[],"sources":["../../src/approval/approval.enum.ts"],"sourcesContent":[],"mappings":";;;;;;AAKa,cAAA,kBAQX,EAAA,mBAAA,CAR6B,QAAA,CAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,CAAA;AAa/B;;;cAAa,sBAMX,mBAAA,CAN+B"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
1
|
+
import { N5 } from "../libs/schema/dist/index.js";
|
|
3
2
|
|
|
4
3
|
//#region src/approval/approval.enum.ts
|
|
5
4
|
/**
|
|
6
5
|
* Approval status enum.
|
|
7
6
|
*/
|
|
8
|
-
const ApprovalStatusEnum =
|
|
7
|
+
const ApprovalStatusEnum = N5("ApprovalStatus", [
|
|
9
8
|
"PENDING",
|
|
10
9
|
"APPROVED",
|
|
11
10
|
"REJECTED",
|
|
@@ -17,7 +16,7 @@ const ApprovalStatusEnum = defineEnum("ApprovalStatus", [
|
|
|
17
16
|
/**
|
|
18
17
|
* Approval decision enum.
|
|
19
18
|
*/
|
|
20
|
-
const ApprovalDecisionEnum =
|
|
19
|
+
const ApprovalDecisionEnum = N5("ApprovalDecision", [
|
|
21
20
|
"APPROVE",
|
|
22
21
|
"REJECT",
|
|
23
22
|
"REQUEST_CHANGES",
|
|
@@ -26,4 +25,5 @@ const ApprovalDecisionEnum = defineEnum("ApprovalDecision", [
|
|
|
26
25
|
]);
|
|
27
26
|
|
|
28
27
|
//#endregion
|
|
29
|
-
export { ApprovalDecisionEnum, ApprovalStatusEnum };
|
|
28
|
+
export { ApprovalDecisionEnum, ApprovalStatusEnum };
|
|
29
|
+
//# sourceMappingURL=approval.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.enum.js","names":["defineEnum"],"sources":["../../src/approval/approval.enum.ts"],"sourcesContent":["import { defineEnum } from '@lssm/lib.schema';\n\n/**\n * Approval status enum.\n */\nexport const ApprovalStatusEnum = defineEnum('ApprovalStatus', [\n 'PENDING',\n 'APPROVED',\n 'REJECTED',\n 'DELEGATED',\n 'ESCALATED',\n 'WITHDRAWN',\n 'EXPIRED',\n]);\n\n/**\n * Approval decision enum.\n */\nexport const ApprovalDecisionEnum = defineEnum('ApprovalDecision', [\n 'APPROVE',\n 'REJECT',\n 'REQUEST_CHANGES',\n 'DELEGATE',\n 'ABSTAIN',\n]);\n"],"mappings":";;;;;;AAKA,MAAa,qBAAqBA,GAAW,kBAAkB;CAC7D;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;;;;AAKF,MAAa,uBAAuBA,GAAW,oBAAoB;CACjE;CACA;CACA;CACA;CACA;CACD,CAAC"}
|
|
@@ -1,130 +1,131 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as _lssm_lib_schema195 from "@lssm/lib.schema";
|
|
2
|
+
import * as _lssm_lib_contracts4 from "@lssm/lib.contracts";
|
|
3
3
|
|
|
4
4
|
//#region src/approval/approval.event.d.ts
|
|
5
5
|
/**
|
|
6
6
|
* ApprovalRequestedEvent - An approval has been requested.
|
|
7
7
|
*/
|
|
8
|
-
declare const ApprovalRequestedEvent:
|
|
8
|
+
declare const ApprovalRequestedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
|
|
9
9
|
requestId: {
|
|
10
|
-
type:
|
|
10
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
11
11
|
isOptional: false;
|
|
12
12
|
};
|
|
13
13
|
instanceId: {
|
|
14
|
-
type:
|
|
14
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
15
15
|
isOptional: false;
|
|
16
16
|
};
|
|
17
17
|
workflowKey: {
|
|
18
|
-
type:
|
|
18
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
19
19
|
isOptional: false;
|
|
20
20
|
};
|
|
21
21
|
approverId: {
|
|
22
|
-
type:
|
|
22
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
23
23
|
isOptional: false;
|
|
24
24
|
};
|
|
25
25
|
approverRole: {
|
|
26
|
-
type:
|
|
26
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
27
27
|
isOptional: true;
|
|
28
28
|
};
|
|
29
29
|
title: {
|
|
30
|
-
type:
|
|
30
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
31
31
|
isOptional: false;
|
|
32
32
|
};
|
|
33
33
|
dueAt: {
|
|
34
|
-
type:
|
|
34
|
+
type: _lssm_lib_schema195.FieldType<Date, string>;
|
|
35
35
|
isOptional: true;
|
|
36
36
|
};
|
|
37
37
|
timestamp: {
|
|
38
|
-
type:
|
|
38
|
+
type: _lssm_lib_schema195.FieldType<Date, string>;
|
|
39
39
|
isOptional: false;
|
|
40
40
|
};
|
|
41
41
|
}>>;
|
|
42
42
|
/**
|
|
43
43
|
* ApprovalDecidedEvent - An approval decision has been made.
|
|
44
44
|
*/
|
|
45
|
-
declare const ApprovalDecidedEvent:
|
|
45
|
+
declare const ApprovalDecidedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
|
|
46
46
|
requestId: {
|
|
47
|
-
type:
|
|
47
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
48
48
|
isOptional: false;
|
|
49
49
|
};
|
|
50
50
|
instanceId: {
|
|
51
|
-
type:
|
|
51
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
52
52
|
isOptional: false;
|
|
53
53
|
};
|
|
54
54
|
decision: {
|
|
55
|
-
type:
|
|
55
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
56
56
|
isOptional: false;
|
|
57
57
|
};
|
|
58
58
|
decidedBy: {
|
|
59
|
-
type:
|
|
59
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
60
60
|
isOptional: false;
|
|
61
61
|
};
|
|
62
62
|
comment: {
|
|
63
|
-
type:
|
|
63
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
64
64
|
isOptional: true;
|
|
65
65
|
};
|
|
66
66
|
timestamp: {
|
|
67
|
-
type:
|
|
67
|
+
type: _lssm_lib_schema195.FieldType<Date, string>;
|
|
68
68
|
isOptional: false;
|
|
69
69
|
};
|
|
70
70
|
}>>;
|
|
71
71
|
/**
|
|
72
72
|
* ApprovalDelegatedEvent - An approval has been delegated.
|
|
73
73
|
*/
|
|
74
|
-
declare const ApprovalDelegatedEvent:
|
|
74
|
+
declare const ApprovalDelegatedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
|
|
75
75
|
requestId: {
|
|
76
|
-
type:
|
|
76
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
77
77
|
isOptional: false;
|
|
78
78
|
};
|
|
79
79
|
instanceId: {
|
|
80
|
-
type:
|
|
80
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
81
81
|
isOptional: false;
|
|
82
82
|
};
|
|
83
83
|
fromUserId: {
|
|
84
|
-
type:
|
|
84
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
85
85
|
isOptional: false;
|
|
86
86
|
};
|
|
87
87
|
toUserId: {
|
|
88
|
-
type:
|
|
88
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
89
89
|
isOptional: false;
|
|
90
90
|
};
|
|
91
91
|
reason: {
|
|
92
|
-
type:
|
|
92
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
93
93
|
isOptional: true;
|
|
94
94
|
};
|
|
95
95
|
timestamp: {
|
|
96
|
-
type:
|
|
96
|
+
type: _lssm_lib_schema195.FieldType<Date, string>;
|
|
97
97
|
isOptional: false;
|
|
98
98
|
};
|
|
99
99
|
}>>;
|
|
100
100
|
/**
|
|
101
101
|
* ApprovalEscalatedEvent - An approval has been escalated.
|
|
102
102
|
*/
|
|
103
|
-
declare const ApprovalEscalatedEvent:
|
|
103
|
+
declare const ApprovalEscalatedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
|
|
104
104
|
requestId: {
|
|
105
|
-
type:
|
|
105
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
106
106
|
isOptional: false;
|
|
107
107
|
};
|
|
108
108
|
instanceId: {
|
|
109
|
-
type:
|
|
109
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
110
110
|
isOptional: false;
|
|
111
111
|
};
|
|
112
112
|
escalationLevel: {
|
|
113
|
-
type:
|
|
113
|
+
type: _lssm_lib_schema195.FieldType<number, number>;
|
|
114
114
|
isOptional: false;
|
|
115
115
|
};
|
|
116
116
|
escalatedTo: {
|
|
117
|
-
type:
|
|
117
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
118
118
|
isOptional: false;
|
|
119
119
|
};
|
|
120
120
|
reason: {
|
|
121
|
-
type:
|
|
121
|
+
type: _lssm_lib_schema195.FieldType<string, string>;
|
|
122
122
|
isOptional: false;
|
|
123
123
|
};
|
|
124
124
|
timestamp: {
|
|
125
|
-
type:
|
|
125
|
+
type: _lssm_lib_schema195.FieldType<Date, string>;
|
|
126
126
|
isOptional: false;
|
|
127
127
|
};
|
|
128
128
|
}>>;
|
|
129
129
|
//#endregion
|
|
130
|
-
export { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent };
|
|
130
|
+
export { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent };
|
|
131
|
+
//# sourceMappingURL=approval.event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.event.d.ts","names":[],"sources":["../../src/approval/approval.event.ts"],"sourcesContent":[],"mappings":";;;;;;;cAiFa,wBAAsB,oBAAA,CAAA,8BAAA;EAAtB,SAAA,EAAA;IAKX,IAAA,EAAA,mBAAA,CAAA,SAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;EALiC,UAAA,EAAA;IAAA,IAAA,+BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;IAUtB,UAAA,EAAA,KAAA;EAKX,CAAA;;;;;;;qBAL+B;EAAA,CAAA;EAAA,KAAA,EAAA;IAUpB,IAAA,+BAKX,KAAA,EAAA,MAAA,CAAA;IAAA,UAAA,EAAA,IAAA;;;;;;;;;;AAKW,cApBA,oBAyBX,EAzB+B,oBAAA,CAAA,SAyB/B,qBAzB+B,WAyB/B,CAAA;EAAA,SAAA,EAAA;UApBA,mBAAA,CAAA;;;;;;;EAeiC,QAAA,EAAA;IAAA,IAAA,+BAAA,CAAA,MAAA,EAAA,MAAA,CAAA;;;;;;;;;;;;;;;;;;;cAVtB,wBAAsB,oBAAA,CAAA,8BAAA;;UAKjC,mBAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;cAKW,wBAAsB,oBAAA,CAAA,8BAAA;;UAKjC,mBAAA,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import "../libs/schema/dist/index.js";
|
|
3
|
-
import { defineSchemaModel } from "../libs/contracts/dist/schema/dist/SchemaModel.js";
|
|
1
|
+
import { E5 } from "../libs/schema/dist/index.js";
|
|
2
|
+
import { K5 } from "../libs/contracts/dist/schema/dist/index.js";
|
|
4
3
|
import { defineEvent } from "../libs/contracts/dist/events.js";
|
|
5
4
|
import "../libs/contracts/dist/index.js";
|
|
6
5
|
|
|
@@ -8,40 +7,40 @@ import "../libs/contracts/dist/index.js";
|
|
|
8
7
|
/**
|
|
9
8
|
* Payload when approval is requested.
|
|
10
9
|
*/
|
|
11
|
-
const ApprovalRequestedPayload =
|
|
10
|
+
const ApprovalRequestedPayload = K5({
|
|
12
11
|
name: "ApprovalRequestedEventPayload",
|
|
13
12
|
description: "Payload when approval is requested",
|
|
14
13
|
fields: {
|
|
15
14
|
requestId: {
|
|
16
|
-
type:
|
|
15
|
+
type: E5.String_unsecure(),
|
|
17
16
|
isOptional: false
|
|
18
17
|
},
|
|
19
18
|
instanceId: {
|
|
20
|
-
type:
|
|
19
|
+
type: E5.String_unsecure(),
|
|
21
20
|
isOptional: false
|
|
22
21
|
},
|
|
23
22
|
workflowKey: {
|
|
24
|
-
type:
|
|
23
|
+
type: E5.String_unsecure(),
|
|
25
24
|
isOptional: false
|
|
26
25
|
},
|
|
27
26
|
approverId: {
|
|
28
|
-
type:
|
|
27
|
+
type: E5.String_unsecure(),
|
|
29
28
|
isOptional: false
|
|
30
29
|
},
|
|
31
30
|
approverRole: {
|
|
32
|
-
type:
|
|
31
|
+
type: E5.String_unsecure(),
|
|
33
32
|
isOptional: true
|
|
34
33
|
},
|
|
35
34
|
title: {
|
|
36
|
-
type:
|
|
35
|
+
type: E5.String_unsecure(),
|
|
37
36
|
isOptional: false
|
|
38
37
|
},
|
|
39
38
|
dueAt: {
|
|
40
|
-
type:
|
|
39
|
+
type: E5.DateTime(),
|
|
41
40
|
isOptional: true
|
|
42
41
|
},
|
|
43
42
|
timestamp: {
|
|
44
|
-
type:
|
|
43
|
+
type: E5.DateTime(),
|
|
45
44
|
isOptional: false
|
|
46
45
|
}
|
|
47
46
|
}
|
|
@@ -49,32 +48,32 @@ const ApprovalRequestedPayload = defineSchemaModel({
|
|
|
49
48
|
/**
|
|
50
49
|
* Payload when approval decision is made.
|
|
51
50
|
*/
|
|
52
|
-
const ApprovalDecidedPayload =
|
|
51
|
+
const ApprovalDecidedPayload = K5({
|
|
53
52
|
name: "ApprovalDecidedEventPayload",
|
|
54
53
|
description: "Payload when approval decision is made",
|
|
55
54
|
fields: {
|
|
56
55
|
requestId: {
|
|
57
|
-
type:
|
|
56
|
+
type: E5.String_unsecure(),
|
|
58
57
|
isOptional: false
|
|
59
58
|
},
|
|
60
59
|
instanceId: {
|
|
61
|
-
type:
|
|
60
|
+
type: E5.String_unsecure(),
|
|
62
61
|
isOptional: false
|
|
63
62
|
},
|
|
64
63
|
decision: {
|
|
65
|
-
type:
|
|
64
|
+
type: E5.String_unsecure(),
|
|
66
65
|
isOptional: false
|
|
67
66
|
},
|
|
68
67
|
decidedBy: {
|
|
69
|
-
type:
|
|
68
|
+
type: E5.String_unsecure(),
|
|
70
69
|
isOptional: false
|
|
71
70
|
},
|
|
72
71
|
comment: {
|
|
73
|
-
type:
|
|
72
|
+
type: E5.String_unsecure(),
|
|
74
73
|
isOptional: true
|
|
75
74
|
},
|
|
76
75
|
timestamp: {
|
|
77
|
-
type:
|
|
76
|
+
type: E5.DateTime(),
|
|
78
77
|
isOptional: false
|
|
79
78
|
}
|
|
80
79
|
}
|
|
@@ -82,32 +81,32 @@ const ApprovalDecidedPayload = defineSchemaModel({
|
|
|
82
81
|
/**
|
|
83
82
|
* Payload when approval is delegated.
|
|
84
83
|
*/
|
|
85
|
-
const ApprovalDelegatedPayload =
|
|
84
|
+
const ApprovalDelegatedPayload = K5({
|
|
86
85
|
name: "ApprovalDelegatedEventPayload",
|
|
87
86
|
description: "Payload when approval is delegated",
|
|
88
87
|
fields: {
|
|
89
88
|
requestId: {
|
|
90
|
-
type:
|
|
89
|
+
type: E5.String_unsecure(),
|
|
91
90
|
isOptional: false
|
|
92
91
|
},
|
|
93
92
|
instanceId: {
|
|
94
|
-
type:
|
|
93
|
+
type: E5.String_unsecure(),
|
|
95
94
|
isOptional: false
|
|
96
95
|
},
|
|
97
96
|
fromUserId: {
|
|
98
|
-
type:
|
|
97
|
+
type: E5.String_unsecure(),
|
|
99
98
|
isOptional: false
|
|
100
99
|
},
|
|
101
100
|
toUserId: {
|
|
102
|
-
type:
|
|
101
|
+
type: E5.String_unsecure(),
|
|
103
102
|
isOptional: false
|
|
104
103
|
},
|
|
105
104
|
reason: {
|
|
106
|
-
type:
|
|
105
|
+
type: E5.String_unsecure(),
|
|
107
106
|
isOptional: true
|
|
108
107
|
},
|
|
109
108
|
timestamp: {
|
|
110
|
-
type:
|
|
109
|
+
type: E5.DateTime(),
|
|
111
110
|
isOptional: false
|
|
112
111
|
}
|
|
113
112
|
}
|
|
@@ -115,32 +114,32 @@ const ApprovalDelegatedPayload = defineSchemaModel({
|
|
|
115
114
|
/**
|
|
116
115
|
* Payload when approval is escalated.
|
|
117
116
|
*/
|
|
118
|
-
const ApprovalEscalatedPayload =
|
|
117
|
+
const ApprovalEscalatedPayload = K5({
|
|
119
118
|
name: "ApprovalEscalatedEventPayload",
|
|
120
119
|
description: "Payload when approval is escalated",
|
|
121
120
|
fields: {
|
|
122
121
|
requestId: {
|
|
123
|
-
type:
|
|
122
|
+
type: E5.String_unsecure(),
|
|
124
123
|
isOptional: false
|
|
125
124
|
},
|
|
126
125
|
instanceId: {
|
|
127
|
-
type:
|
|
126
|
+
type: E5.String_unsecure(),
|
|
128
127
|
isOptional: false
|
|
129
128
|
},
|
|
130
129
|
escalationLevel: {
|
|
131
|
-
type:
|
|
130
|
+
type: E5.Int_unsecure(),
|
|
132
131
|
isOptional: false
|
|
133
132
|
},
|
|
134
133
|
escalatedTo: {
|
|
135
|
-
type:
|
|
134
|
+
type: E5.String_unsecure(),
|
|
136
135
|
isOptional: false
|
|
137
136
|
},
|
|
138
137
|
reason: {
|
|
139
|
-
type:
|
|
138
|
+
type: E5.String_unsecure(),
|
|
140
139
|
isOptional: false
|
|
141
140
|
},
|
|
142
141
|
timestamp: {
|
|
143
|
-
type:
|
|
142
|
+
type: E5.DateTime(),
|
|
144
143
|
isOptional: false
|
|
145
144
|
}
|
|
146
145
|
}
|
|
@@ -183,4 +182,5 @@ const ApprovalEscalatedEvent = defineEvent({
|
|
|
183
182
|
});
|
|
184
183
|
|
|
185
184
|
//#endregion
|
|
186
|
-
export { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent };
|
|
185
|
+
export { ApprovalDecidedEvent, ApprovalDelegatedEvent, ApprovalEscalatedEvent, ApprovalRequestedEvent };
|
|
186
|
+
//# sourceMappingURL=approval.event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.event.js","names":["defineSchemaModel","ScalarTypeEnum"],"sources":["../../src/approval/approval.event.ts"],"sourcesContent":["import { defineEvent, defineSchemaModel } from '@lssm/lib.contracts';\nimport { ScalarTypeEnum } from '@lssm/lib.schema';\n\n/**\n * Payload when approval is requested.\n */\nconst ApprovalRequestedPayload = defineSchemaModel({\n name: 'ApprovalRequestedEventPayload',\n description: 'Payload when approval is requested',\n fields: {\n requestId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n instanceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n workflowKey: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\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 dueAt: { type: ScalarTypeEnum.DateTime(), isOptional: true },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * Payload when approval decision is made.\n */\nconst ApprovalDecidedPayload = defineSchemaModel({\n name: 'ApprovalDecidedEventPayload',\n description: 'Payload when approval decision is made',\n fields: {\n requestId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n instanceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n decision: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n decidedBy: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n comment: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * Payload when approval is delegated.\n */\nconst ApprovalDelegatedPayload = defineSchemaModel({\n name: 'ApprovalDelegatedEventPayload',\n description: 'Payload when approval is delegated',\n fields: {\n requestId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n instanceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n fromUserId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n toUserId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * Payload when approval is escalated.\n */\nconst ApprovalEscalatedPayload = defineSchemaModel({\n name: 'ApprovalEscalatedEventPayload',\n description: 'Payload when approval is escalated',\n fields: {\n requestId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n instanceId: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n escalationLevel: {\n type: ScalarTypeEnum.Int_unsecure(),\n isOptional: false,\n },\n escalatedTo: {\n type: ScalarTypeEnum.String_unsecure(),\n isOptional: false,\n },\n reason: { type: ScalarTypeEnum.String_unsecure(), isOptional: false },\n timestamp: { type: ScalarTypeEnum.DateTime(), isOptional: false },\n },\n});\n\n/**\n * ApprovalRequestedEvent - An approval has been requested.\n */\nexport const ApprovalRequestedEvent = defineEvent({\n name: 'workflow.approval.requested',\n version: 1,\n description: 'An approval has been requested.',\n payload: ApprovalRequestedPayload,\n});\n\n/**\n * ApprovalDecidedEvent - An approval decision has been made.\n */\nexport const ApprovalDecidedEvent = defineEvent({\n name: 'workflow.approval.decided',\n version: 1,\n description: 'An approval decision has been made.',\n payload: ApprovalDecidedPayload,\n});\n\n/**\n * ApprovalDelegatedEvent - An approval has been delegated.\n */\nexport const ApprovalDelegatedEvent = defineEvent({\n name: 'workflow.approval.delegated',\n version: 1,\n description: 'An approval has been delegated.',\n payload: ApprovalDelegatedPayload,\n});\n\n/**\n * ApprovalEscalatedEvent - An approval has been escalated.\n */\nexport const ApprovalEscalatedEvent = defineEvent({\n name: 'workflow.approval.escalated',\n version: 1,\n description: 'An approval has been escalated.',\n payload: ApprovalEscalatedPayload,\n});\n"],"mappings":";;;;;;;;;AAMA,MAAM,2BAA2BA,GAAkB;CACjD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAMC,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,aAAa;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EAC1E,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,cAAc;GACZ,MAAMA,GAAe,iBAAiB;GACtC,YAAY;GACb;EACD,OAAO;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACpE,OAAO;GAAE,MAAMA,GAAe,UAAU;GAAE,YAAY;GAAM;EAC5D,WAAW;GAAE,MAAMA,GAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAM,yBAAyBD,GAAkB;CAC/C,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAMC,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,UAAU;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,WAAW;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,SAAS;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAM;EACrE,WAAW;GAAE,MAAMA,GAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAM,2BAA2BD,GAAkB;CACjD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAMC,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,UAAU;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACvE,QAAQ;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAM;EACpE,WAAW;GAAE,MAAMA,GAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAM,2BAA2BD,GAAkB;CACjD,MAAM;CACN,aAAa;CACb,QAAQ;EACN,WAAW;GAAE,MAAMC,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACxE,YAAY;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACzE,iBAAiB;GACf,MAAMA,GAAe,cAAc;GACnC,YAAY;GACb;EACD,aAAa;GACX,MAAMA,GAAe,iBAAiB;GACtC,YAAY;GACb;EACD,QAAQ;GAAE,MAAMA,GAAe,iBAAiB;GAAE,YAAY;GAAO;EACrE,WAAW;GAAE,MAAMA,GAAe,UAAU;GAAE,YAAY;GAAO;EAClE;CACF,CAAC;;;;AAKF,MAAa,yBAAyB,YAAY;CAChD,MAAM;CACN,SAAS;CACT,aAAa;CACb,SAAS;CACV,CAAC;;;;AAKF,MAAa,uBAAuB,YAAY;CAC9C,MAAM;CACN,SAAS;CACT,aAAa;CACb,SAAS;CACV,CAAC;;;;AAKF,MAAa,yBAAyB,YAAY;CAChD,MAAM;CACN,SAAS;CACT,aAAa;CACb,SAAS;CACV,CAAC;;;;AAKF,MAAa,yBAAyB,YAAY;CAChD,MAAM;CACN,SAAS;CACT,aAAa;CACb,SAAS;CACV,CAAC"}
|
|
@@ -19,4 +19,5 @@ declare function handleListMyApprovals(input: {
|
|
|
19
19
|
pendingCount: number;
|
|
20
20
|
}>;
|
|
21
21
|
//#endregion
|
|
22
|
-
export { createApprovalRequests, handleListMyApprovals, handleSubmitDecision };
|
|
22
|
+
export { createApprovalRequests, handleListMyApprovals, handleSubmitDecision };
|
|
23
|
+
//# sourceMappingURL=approval.handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.handler.d.ts","names":[],"sources":["../../src/approval/approval.handler.ts"],"sourcesContent":[],"mappings":";;;;AAcY,iBADU,sBAAA,CACV,QAAA,EAAA,sBAAA,EAAA,IAAA,EACJ,kBADI,EAAA,QAAA,EAEA,cAFA,CAAA,EAGT,OAHS,CAAA,IAAA,CAAA;AACJ,iBA8Bc,oBAAA,CA9Bd,KAAA,EAAA;EACI,SAAA,EAAA,MAAA;EACT,QAAA,EAAA,SAAA,GAAA,QAAA,GAAA,iBAAA,GAAA,UAAA,GAAA,SAAA;EAAO,OAAA,CAAA,EAAA,MAAA;EA4BY,IAAA,CAAA,EAKX,MALW,CAAA,MAAA,EAAA,OAAoB,CAAA;CAK/B,EAAA,OAAA,EAEA,cAFA,CAAA,EAGR,OAHQ,CAGA,qBAHA,CAAA;AAEA,iBAiDW,qBAAA,CAjDX,KAAA,EAAA;EACA,MAAA,CAAA,EAAA,SAAA,GAAA,UAAA,GAAA,UAAA,GAAA,WAAA,GAAA,WAAA,GAAA,WAAA,GAAA,SAAA;EAAR,KAAA,CAAA,EAAA,MAAA;EAAO,MAAA,CAAA,EAAA,MAAA;AAgDV,CAAA,EAAA,OAAsB,EAaX,cAbW,CAAA,EAcnB,OAdwC,CAAA;EAahC,QAAA,EAEC,qBAFD,EAAA;EAEC,KAAA,EAAA,MAAA;EADT,YAAA,EAAA,MAAA;CAAO,CAAA"}
|
|
@@ -68,4 +68,5 @@ async function handleListMyApprovals(input, context) {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
//#endregion
|
|
71
|
-
export { createApprovalRequests, handleListMyApprovals, handleSubmitDecision };
|
|
71
|
+
export { createApprovalRequests, handleListMyApprovals, handleSubmitDecision };
|
|
72
|
+
//# sourceMappingURL=approval.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approval.handler.js","names":["request: ApprovalRequestRecord"],"sources":["../../src/approval/approval.handler.ts"],"sourcesContent":["/**\n * Approval handlers.\n */\n\nimport type {\n ApprovalRequestRecord,\n WorkflowInstanceRecord,\n WorkflowStepRecord,\n HandlerContext,\n} from '../shared/types';\nimport { mockDataStore } from '../shared/mock-data';\nimport { handleTransitionWorkflow } from '../instance/instance.handler';\n\nexport async function createApprovalRequests(\n instance: WorkflowInstanceRecord,\n step: WorkflowStepRecord,\n _context: HandlerContext\n): Promise<void> {\n const now = new Date();\n\n // Create approval request for each approver role\n // In production, this would resolve roles to actual users\n for (let i = 0; i < step.approverRoles.length; i++) {\n const role = step.approverRoles[i];\n const id = `approval_${Date.now()}_${i}`;\n\n const request: ApprovalRequestRecord = {\n id,\n workflowInstanceId: instance.id,\n stepExecutionId: `exec_${instance.id}_${step.id}`,\n approverId: `user_${role}`, // In production, resolve to actual user\n approverRole: role,\n title: `Approval required for ${step.name}`,\n description: step.description,\n status: 'PENDING',\n contextSnapshot: instance.contextData,\n sequenceOrder: i,\n createdAt: now,\n updatedAt: now,\n };\n\n mockDataStore.approvals.set(id, request);\n }\n}\n\nexport async function handleSubmitDecision(\n input: {\n requestId: string;\n decision: 'APPROVE' | 'REJECT' | 'REQUEST_CHANGES' | 'DELEGATE' | 'ABSTAIN';\n comment?: string;\n data?: Record<string, unknown>;\n },\n context: HandlerContext\n): Promise<ApprovalRequestRecord> {\n const request = mockDataStore.approvals.get(input.requestId);\n if (!request) {\n throw new Error(`Approval request ${input.requestId} not found`);\n }\n\n // Verify approver\n if (\n request.approverId !== context.userId &&\n !context.userRoles.includes(request.approverRole ?? '')\n ) {\n throw new Error('User is not authorized to make this decision');\n }\n\n const now = new Date();\n request.decision = input.decision;\n request.decisionComment = input.comment;\n request.decidedAt = now;\n request.updatedAt = now;\n\n if (input.decision === 'APPROVE') {\n request.status = 'APPROVED';\n // Trigger workflow transition\n await handleTransitionWorkflow(\n {\n instanceId: request.workflowInstanceId,\n action: 'approve',\n data: input.data,\n comment: input.comment,\n },\n context\n );\n } else if (input.decision === 'REJECT') {\n request.status = 'REJECTED';\n await handleTransitionWorkflow(\n {\n instanceId: request.workflowInstanceId,\n action: 'reject',\n data: input.data,\n comment: input.comment,\n },\n context\n );\n }\n\n return request;\n}\n\nexport async function handleListMyApprovals(\n input: {\n status?:\n | 'PENDING'\n | 'APPROVED'\n | 'REJECTED'\n | 'DELEGATED'\n | 'ESCALATED'\n | 'WITHDRAWN'\n | 'EXPIRED';\n limit?: number;\n offset?: number;\n },\n context: HandlerContext\n): Promise<{\n requests: ApprovalRequestRecord[];\n total: number;\n pendingCount: number;\n}> {\n let requests = Array.from(mockDataStore.approvals.values()).filter(\n (r) =>\n r.approverId === context.userId ||\n context.userRoles.includes(r.approverRole ?? '')\n );\n\n const pendingCount = requests.filter((r) => r.status === 'PENDING').length;\n\n if (input.status) {\n requests = requests.filter((r) => r.status === input.status);\n }\n\n const total = requests.length;\n const offset = input.offset ?? 0;\n const limit = input.limit ?? 20;\n\n requests = requests\n .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime())\n .slice(offset, offset + limit);\n\n return { requests, total, pendingCount };\n}\n"],"mappings":";;;;AAaA,eAAsB,uBACpB,UACA,MACA,UACe;CACf,MAAM,sBAAM,IAAI,MAAM;AAItB,MAAK,IAAI,IAAI,GAAG,IAAI,KAAK,cAAc,QAAQ,KAAK;EAClD,MAAM,OAAO,KAAK,cAAc;EAChC,MAAM,KAAK,YAAY,KAAK,KAAK,CAAC,GAAG;EAErC,MAAMA,UAAiC;GACrC;GACA,oBAAoB,SAAS;GAC7B,iBAAiB,QAAQ,SAAS,GAAG,GAAG,KAAK;GAC7C,YAAY,QAAQ;GACpB,cAAc;GACd,OAAO,yBAAyB,KAAK;GACrC,aAAa,KAAK;GAClB,QAAQ;GACR,iBAAiB,SAAS;GAC1B,eAAe;GACf,WAAW;GACX,WAAW;GACZ;AAED,gBAAc,UAAU,IAAI,IAAI,QAAQ;;;AAI5C,eAAsB,qBACpB,OAMA,SACgC;CAChC,MAAM,UAAU,cAAc,UAAU,IAAI,MAAM,UAAU;AAC5D,KAAI,CAAC,QACH,OAAM,IAAI,MAAM,oBAAoB,MAAM,UAAU,YAAY;AAIlE,KACE,QAAQ,eAAe,QAAQ,UAC/B,CAAC,QAAQ,UAAU,SAAS,QAAQ,gBAAgB,GAAG,CAEvD,OAAM,IAAI,MAAM,+CAA+C;CAGjE,MAAM,sBAAM,IAAI,MAAM;AACtB,SAAQ,WAAW,MAAM;AACzB,SAAQ,kBAAkB,MAAM;AAChC,SAAQ,YAAY;AACpB,SAAQ,YAAY;AAEpB,KAAI,MAAM,aAAa,WAAW;AAChC,UAAQ,SAAS;AAEjB,QAAM,yBACJ;GACE,YAAY,QAAQ;GACpB,QAAQ;GACR,MAAM,MAAM;GACZ,SAAS,MAAM;GAChB,EACD,QACD;YACQ,MAAM,aAAa,UAAU;AACtC,UAAQ,SAAS;AACjB,QAAM,yBACJ;GACE,YAAY,QAAQ;GACpB,QAAQ;GACR,MAAM,MAAM;GACZ,SAAS,MAAM;GAChB,EACD,QACD;;AAGH,QAAO;;AAGT,eAAsB,sBACpB,OAYA,SAKC;CACD,IAAI,WAAW,MAAM,KAAK,cAAc,UAAU,QAAQ,CAAC,CAAC,QACzD,MACC,EAAE,eAAe,QAAQ,UACzB,QAAQ,UAAU,SAAS,EAAE,gBAAgB,GAAG,CACnD;CAED,MAAM,eAAe,SAAS,QAAQ,MAAM,EAAE,WAAW,UAAU,CAAC;AAEpE,KAAI,MAAM,OACR,YAAW,SAAS,QAAQ,MAAM,EAAE,WAAW,MAAM,OAAO;CAG9D,MAAM,QAAQ,SAAS;CACvB,MAAM,SAAS,MAAM,UAAU;CAC/B,MAAM,QAAQ,MAAM,SAAS;AAE7B,YAAW,SACR,MAAM,GAAG,MAAM,EAAE,UAAU,SAAS,GAAG,EAAE,UAAU,SAAS,CAAC,CAC7D,MAAM,QAAQ,SAAS,MAAM;AAEhC,QAAO;EAAE;EAAU;EAAO;EAAc"}
|