@lssm/example.workflow-system 0.0.0-canary-20251217083314 → 1.41.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/dist/approval/approval.contracts.js +1 -250
  2. package/dist/approval/approval.enum.js +1 -29
  3. package/dist/approval/approval.event.js +1 -186
  4. package/dist/approval/approval.handler.js +1 -71
  5. package/dist/approval/approval.schema.js +1 -111
  6. package/dist/approval/index.js +1 -6
  7. package/dist/docs/index.js +1 -1
  8. package/dist/docs/workflow-system.docblock.js +5 -61
  9. package/dist/entities/approval.js +1 -128
  10. package/dist/entities/index.js +1 -31
  11. package/dist/entities/instance.js +1 -168
  12. package/dist/entities/step.js +1 -135
  13. package/dist/entities/workflow.js +1 -102
  14. package/dist/example.js +1 -50
  15. package/dist/index.js +1 -19
  16. package/dist/instance/index.js +1 -6
  17. package/dist/instance/instance.contracts.js +1 -334
  18. package/dist/instance/instance.enum.js +1 -20
  19. package/dist/instance/instance.event.js +1 -214
  20. package/dist/instance/instance.handler.js +1 -93
  21. package/dist/instance/instance.schema.js +1 -173
  22. package/dist/presentations/index.js +1 -291
  23. package/dist/shared/index.js +1 -3
  24. package/dist/shared/mock-data.js +1 -11
  25. package/dist/state-machine/index.js +1 -157
  26. package/dist/workflow/index.js +1 -6
  27. package/dist/workflow/workflow.contracts.js +1 -239
  28. package/dist/workflow/workflow.enum.js +1 -47
  29. package/dist/workflow/workflow.event.js +1 -116
  30. package/dist/workflow/workflow.handler.js +1 -65
  31. package/dist/workflow/workflow.schema.js +1 -250
  32. package/dist/workflow-system.feature.js +1 -337
  33. package/package.json +44 -45
  34. package/dist/approval/approval.contracts.d.ts +0 -534
  35. package/dist/approval/approval.enum.d.ts +0 -13
  36. package/dist/approval/approval.event.d.ts +0 -130
  37. package/dist/approval/approval.handler.d.ts +0 -22
  38. package/dist/approval/approval.schema.d.ts +0 -99
  39. package/dist/approval/index.d.ts +0 -5
  40. package/dist/docs/index.d.ts +0 -1
  41. package/dist/docs/workflow-system.docblock.d.ts +0 -1
  42. package/dist/entities/approval.d.ts +0 -57
  43. package/dist/entities/index.d.ts +0 -138
  44. package/dist/entities/instance.d.ts +0 -68
  45. package/dist/entities/step.d.ts +0 -49
  46. package/dist/entities/workflow.d.ts +0 -40
  47. package/dist/example.d.ts +0 -39
  48. package/dist/index.d.ts +0 -16
  49. package/dist/instance/index.d.ts +0 -5
  50. package/dist/instance/instance.contracts.d.ts +0 -1023
  51. package/dist/instance/instance.enum.d.ts +0 -9
  52. package/dist/instance/instance.event.d.ts +0 -355
  53. package/dist/instance/instance.handler.d.ts +0 -26
  54. package/dist/instance/instance.schema.d.ts +0 -222
  55. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  56. package/dist/libs/contracts/dist/client/index.js +0 -5
  57. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  58. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  59. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  60. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  61. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  62. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  63. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  64. package/dist/libs/contracts/dist/docs/index.js +0 -29
  65. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  66. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  67. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  68. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  69. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  70. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  71. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  72. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  73. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  74. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  75. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  76. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  77. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  78. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  79. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  80. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  81. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  82. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  83. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  84. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  85. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  86. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  87. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  88. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  89. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  90. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  91. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  92. package/dist/libs/contracts/dist/events.js +0 -10
  93. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  94. package/dist/libs/contracts/dist/index.js +0 -71
  95. package/dist/libs/contracts/dist/install.js +0 -2
  96. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  97. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  98. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  99. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  100. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  101. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  102. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  103. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  104. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  105. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  106. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  107. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  108. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  109. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  110. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  111. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  112. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  113. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  114. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  115. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  116. package/dist/libs/contracts/dist/jsonschema.js +0 -1
  117. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  118. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  119. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  120. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  121. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  122. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  123. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  124. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  125. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  126. package/dist/libs/contracts/dist/llm/exporters.js +0 -19
  127. package/dist/libs/contracts/dist/llm/index.js +0 -2
  128. package/dist/libs/contracts/dist/llm/prompts.js +0 -1
  129. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  130. package/dist/libs/contracts/dist/openapi.js +0 -1
  131. package/dist/libs/contracts/dist/ownership.js +0 -21
  132. package/dist/libs/contracts/dist/presentations.js +0 -1
  133. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  134. package/dist/libs/contracts/dist/prompt.js +0 -1
  135. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  136. package/dist/libs/contracts/dist/regenerator/index.js +0 -1
  137. package/dist/libs/contracts/dist/regenerator/service.js +0 -6
  138. package/dist/libs/contracts/dist/registry.js +0 -2
  139. package/dist/libs/contracts/dist/resources.js +0 -1
  140. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  141. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  142. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  143. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
  144. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  145. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  146. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  147. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  148. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  149. package/dist/libs/contracts/dist/server/index.js +0 -8
  150. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  151. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  152. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  153. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  154. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  155. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  156. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  157. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  158. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  159. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  160. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  161. package/dist/libs/contracts/dist/spec.js +0 -34
  162. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  163. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  164. package/dist/libs/contracts/dist/tests/index.js +0 -1
  165. package/dist/libs/contracts/dist/tests/runner.js +0 -2
  166. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  167. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  168. package/dist/libs/schema/dist/EnumType.js +0 -56
  169. package/dist/libs/schema/dist/FieldType.js +0 -49
  170. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  171. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  172. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  173. package/dist/libs/schema/dist/entity/index.js +0 -2
  174. package/dist/libs/schema/dist/entity/types.js +0 -1
  175. package/dist/libs/schema/dist/index.js +0 -6
  176. package/dist/presentations/index.d.ts +0 -63
  177. package/dist/shared/index.d.ts +0 -3
  178. package/dist/shared/mock-data.d.ts +0 -18
  179. package/dist/shared/types.d.ts +0 -80
  180. package/dist/state-machine/index.d.ts +0 -147
  181. package/dist/workflow/index.d.ts +0 -5
  182. package/dist/workflow/workflow.contracts.d.ts +0 -1010
  183. package/dist/workflow/workflow.enum.d.ts +0 -21
  184. package/dist/workflow/workflow.event.d.ts +0 -134
  185. package/dist/workflow/workflow.handler.d.ts +0 -28
  186. package/dist/workflow/workflow.schema.d.ts +0 -264
  187. package/dist/workflow-system.feature.d.ts +0 -11
@@ -1,239 +1 @@
1
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
2
- import { defineSchemaModel } from "../libs/schema/dist/SchemaModel.js";
3
- import "../libs/schema/dist/index.js";
4
- import { WorkflowStatusEnum } from "./workflow.enum.js";
5
- import { AddStepInputModel, CreateWorkflowInputModel, UpdateWorkflowInputModel, WorkflowDefinitionModel, WorkflowStepModel } from "./workflow.schema.js";
6
- import { defineCommand, defineQuery } from "../libs/contracts/dist/spec.js";
7
-
8
- //#region src/workflow/workflow.contracts.ts
9
- const OWNERS = ["@example.workflow-system"];
10
- /**
11
- * Create a new workflow definition.
12
- */
13
- const CreateWorkflowContract = defineCommand({
14
- meta: {
15
- name: "workflow.definition.create",
16
- version: 1,
17
- stability: "stable",
18
- owners: [...OWNERS],
19
- tags: [
20
- "workflow",
21
- "definition",
22
- "create"
23
- ],
24
- description: "Create a new workflow definition.",
25
- goal: "Allow users to define new workflow blueprints.",
26
- context: "Workflow designer, admin panel."
27
- },
28
- io: {
29
- input: CreateWorkflowInputModel,
30
- output: WorkflowDefinitionModel
31
- },
32
- policy: { auth: "user" },
33
- sideEffects: {
34
- emits: [{
35
- name: "workflow.definition.created",
36
- version: 1,
37
- when: "Workflow is created",
38
- payload: WorkflowDefinitionModel
39
- }],
40
- audit: ["workflow.definition.created"]
41
- }
42
- });
43
- /**
44
- * Update an existing workflow definition.
45
- */
46
- const UpdateWorkflowContract = defineCommand({
47
- meta: {
48
- name: "workflow.definition.update",
49
- version: 1,
50
- stability: "stable",
51
- owners: [...OWNERS],
52
- tags: [
53
- "workflow",
54
- "definition",
55
- "update"
56
- ],
57
- description: "Update an existing workflow definition.",
58
- goal: "Allow users to modify workflow blueprints.",
59
- context: "Workflow designer."
60
- },
61
- io: {
62
- input: UpdateWorkflowInputModel,
63
- output: WorkflowDefinitionModel
64
- },
65
- policy: { auth: "user" },
66
- sideEffects: {
67
- emits: [{
68
- name: "workflow.definition.updated",
69
- version: 1,
70
- when: "Workflow is updated",
71
- payload: WorkflowDefinitionModel
72
- }],
73
- audit: ["workflow.definition.updated"]
74
- }
75
- });
76
- /**
77
- * Add a step to a workflow definition.
78
- */
79
- const AddStepContract = defineCommand({
80
- meta: {
81
- name: "workflow.step.add",
82
- version: 1,
83
- stability: "stable",
84
- owners: [...OWNERS],
85
- tags: [
86
- "workflow",
87
- "step",
88
- "add"
89
- ],
90
- description: "Add a step to a workflow definition.",
91
- goal: "Build workflow structure step by step.",
92
- context: "Workflow designer."
93
- },
94
- io: {
95
- input: AddStepInputModel,
96
- output: WorkflowStepModel
97
- },
98
- policy: { auth: "user" },
99
- sideEffects: {
100
- emits: [{
101
- name: "workflow.step.added",
102
- version: 1,
103
- when: "Step is added",
104
- payload: WorkflowStepModel
105
- }],
106
- audit: ["workflow.step.added"]
107
- }
108
- });
109
- /**
110
- * Publish a workflow definition (make it active).
111
- */
112
- const PublishWorkflowContract = defineCommand({
113
- meta: {
114
- name: "workflow.definition.publish",
115
- version: 1,
116
- stability: "stable",
117
- owners: [...OWNERS],
118
- tags: [
119
- "workflow",
120
- "definition",
121
- "publish"
122
- ],
123
- description: "Publish a workflow definition to make it available for use.",
124
- goal: "Activate workflow for production use.",
125
- context: "Workflow designer, deployment."
126
- },
127
- io: {
128
- input: defineSchemaModel({
129
- name: "PublishWorkflowInput",
130
- fields: { workflowId: {
131
- type: ScalarTypeEnum.String_unsecure(),
132
- isOptional: false
133
- } }
134
- }),
135
- output: WorkflowDefinitionModel
136
- },
137
- policy: { auth: "user" },
138
- sideEffects: {
139
- emits: [{
140
- name: "workflow.definition.published",
141
- version: 1,
142
- when: "Workflow is published",
143
- payload: WorkflowDefinitionModel
144
- }],
145
- audit: ["workflow.definition.published"]
146
- }
147
- });
148
- /**
149
- * List workflow definitions.
150
- */
151
- const ListWorkflowsContract = defineQuery({
152
- meta: {
153
- name: "workflow.definition.list",
154
- version: 1,
155
- stability: "stable",
156
- owners: [...OWNERS],
157
- tags: [
158
- "workflow",
159
- "definition",
160
- "list"
161
- ],
162
- description: "List workflow definitions with filtering.",
163
- goal: "Browse and search available workflows.",
164
- context: "Workflow list, search."
165
- },
166
- io: {
167
- input: defineSchemaModel({
168
- name: "ListWorkflowsInput",
169
- fields: {
170
- status: {
171
- type: WorkflowStatusEnum,
172
- isOptional: true
173
- },
174
- search: {
175
- type: ScalarTypeEnum.String_unsecure(),
176
- isOptional: true
177
- },
178
- limit: {
179
- type: ScalarTypeEnum.Int_unsecure(),
180
- isOptional: true,
181
- defaultValue: 20
182
- },
183
- offset: {
184
- type: ScalarTypeEnum.Int_unsecure(),
185
- isOptional: true,
186
- defaultValue: 0
187
- }
188
- }
189
- }),
190
- output: defineSchemaModel({
191
- name: "ListWorkflowsOutput",
192
- fields: {
193
- workflows: {
194
- type: WorkflowDefinitionModel,
195
- isArray: true,
196
- isOptional: false
197
- },
198
- total: {
199
- type: ScalarTypeEnum.Int_unsecure(),
200
- isOptional: false
201
- }
202
- }
203
- })
204
- },
205
- policy: { auth: "user" }
206
- });
207
- /**
208
- * Get a single workflow definition with steps.
209
- */
210
- const GetWorkflowContract = defineQuery({
211
- meta: {
212
- name: "workflow.definition.get",
213
- version: 1,
214
- stability: "stable",
215
- owners: [...OWNERS],
216
- tags: [
217
- "workflow",
218
- "definition",
219
- "get"
220
- ],
221
- description: "Get a workflow definition with all steps.",
222
- goal: "View workflow details.",
223
- context: "Workflow designer, detail view."
224
- },
225
- io: {
226
- input: defineSchemaModel({
227
- name: "GetWorkflowInput",
228
- fields: { workflowId: {
229
- type: ScalarTypeEnum.String_unsecure(),
230
- isOptional: false
231
- } }
232
- }),
233
- output: WorkflowDefinitionModel
234
- },
235
- policy: { auth: "user" }
236
- });
237
-
238
- //#endregion
239
- export { AddStepContract, CreateWorkflowContract, GetWorkflowContract, ListWorkflowsContract, PublishWorkflowContract, UpdateWorkflowContract };
1
+ import{WorkflowStatusEnum as e}from"./workflow.enum.js";import{AddStepInputModel as t,CreateWorkflowInputModel as n,UpdateWorkflowInputModel as r,WorkflowDefinitionModel as i,WorkflowStepModel as a}from"./workflow.schema.js";import{ScalarTypeEnum as o,defineSchemaModel as s}from"@lssm/lib.schema";import{defineCommand as c,defineQuery as l}from"@lssm/lib.contracts/spec";const u=[`@example.workflow-system`],d=c({meta:{name:`workflow.definition.create`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`definition`,`create`],description:`Create a new workflow definition.`,goal:`Allow users to define new workflow blueprints.`,context:`Workflow designer, admin panel.`},io:{input:n,output:i},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.definition.created`,version:1,when:`Workflow is created`,payload:i}],audit:[`workflow.definition.created`]}}),f=c({meta:{name:`workflow.definition.update`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`definition`,`update`],description:`Update an existing workflow definition.`,goal:`Allow users to modify workflow blueprints.`,context:`Workflow designer.`},io:{input:r,output:i},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.definition.updated`,version:1,when:`Workflow is updated`,payload:i}],audit:[`workflow.definition.updated`]}}),p=c({meta:{name:`workflow.step.add`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`step`,`add`],description:`Add a step to a workflow definition.`,goal:`Build workflow structure step by step.`,context:`Workflow designer.`},io:{input:t,output:a},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.step.added`,version:1,when:`Step is added`,payload:a}],audit:[`workflow.step.added`]}}),m=c({meta:{name:`workflow.definition.publish`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`definition`,`publish`],description:`Publish a workflow definition to make it available for use.`,goal:`Activate workflow for production use.`,context:`Workflow designer, deployment.`},io:{input:s({name:`PublishWorkflowInput`,fields:{workflowId:{type:o.String_unsecure(),isOptional:!1}}}),output:i},policy:{auth:`user`},sideEffects:{emits:[{name:`workflow.definition.published`,version:1,when:`Workflow is published`,payload:i}],audit:[`workflow.definition.published`]}}),h=l({meta:{name:`workflow.definition.list`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`definition`,`list`],description:`List workflow definitions with filtering.`,goal:`Browse and search available workflows.`,context:`Workflow list, search.`},io:{input:s({name:`ListWorkflowsInput`,fields:{status:{type:e,isOptional:!0},search:{type:o.String_unsecure(),isOptional:!0},limit:{type:o.Int_unsecure(),isOptional:!0,defaultValue:20},offset:{type:o.Int_unsecure(),isOptional:!0,defaultValue:0}}}),output:s({name:`ListWorkflowsOutput`,fields:{workflows:{type:i,isArray:!0,isOptional:!1},total:{type:o.Int_unsecure(),isOptional:!1}}})},policy:{auth:`user`}}),g=l({meta:{name:`workflow.definition.get`,version:1,stability:`stable`,owners:[...u],tags:[`workflow`,`definition`,`get`],description:`Get a workflow definition with all steps.`,goal:`View workflow details.`,context:`Workflow designer, detail view.`},io:{input:s({name:`GetWorkflowInput`,fields:{workflowId:{type:o.String_unsecure(),isOptional:!1}}}),output:i},policy:{auth:`user`}});export{p as AddStepContract,d as CreateWorkflowContract,g as GetWorkflowContract,h as ListWorkflowsContract,m as PublishWorkflowContract,f as UpdateWorkflowContract};
@@ -1,47 +1 @@
1
- import { defineEnum } from "../libs/schema/dist/EnumType.js";
2
- import "../libs/schema/dist/index.js";
3
-
4
- //#region src/workflow/workflow.enum.ts
5
- /**
6
- * Workflow status enum.
7
- */
8
- const WorkflowStatusEnum = defineEnum("WorkflowStatus", [
9
- "DRAFT",
10
- "ACTIVE",
11
- "DEPRECATED",
12
- "ARCHIVED"
13
- ]);
14
- /**
15
- * Trigger type enum.
16
- */
17
- const TriggerTypeEnum = defineEnum("WorkflowTriggerType", [
18
- "MANUAL",
19
- "EVENT",
20
- "SCHEDULED",
21
- "API"
22
- ]);
23
- /**
24
- * Step type enum.
25
- */
26
- const StepTypeEnum = defineEnum("StepType", [
27
- "START",
28
- "APPROVAL",
29
- "TASK",
30
- "CONDITION",
31
- "PARALLEL",
32
- "WAIT",
33
- "ACTION",
34
- "END"
35
- ]);
36
- /**
37
- * Approval mode enum.
38
- */
39
- const ApprovalModeEnum = defineEnum("ApprovalMode", [
40
- "ANY",
41
- "ALL",
42
- "MAJORITY",
43
- "SEQUENTIAL"
44
- ]);
45
-
46
- //#endregion
47
- export { ApprovalModeEnum, StepTypeEnum, TriggerTypeEnum, WorkflowStatusEnum };
1
+ import{defineEnum as e}from"@lssm/lib.schema";const t=e(`WorkflowStatus`,[`DRAFT`,`ACTIVE`,`DEPRECATED`,`ARCHIVED`]),n=e(`WorkflowTriggerType`,[`MANUAL`,`EVENT`,`SCHEDULED`,`API`]),r=e(`StepType`,[`START`,`APPROVAL`,`TASK`,`CONDITION`,`PARALLEL`,`WAIT`,`ACTION`,`END`]),i=e(`ApprovalMode`,[`ANY`,`ALL`,`MAJORITY`,`SEQUENTIAL`]);export{i as ApprovalModeEnum,r as StepTypeEnum,n as TriggerTypeEnum,t as WorkflowStatusEnum};
@@ -1,116 +1 @@
1
- import { ScalarTypeEnum } from "../libs/schema/dist/ScalarTypeEnum.js";
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/workflow/workflow.event.ts
8
- /**
9
- * Payload for workflow definition events.
10
- */
11
- const WorkflowDefinitionPayload = defineSchemaModel({
12
- name: "WorkflowDefinitionEventPayload",
13
- description: "Payload for workflow definition events",
14
- fields: {
15
- workflowId: {
16
- type: ScalarTypeEnum.String_unsecure(),
17
- isOptional: false
18
- },
19
- key: {
20
- type: ScalarTypeEnum.String_unsecure(),
21
- isOptional: false
22
- },
23
- name: {
24
- type: ScalarTypeEnum.String_unsecure(),
25
- isOptional: false
26
- },
27
- version: {
28
- type: ScalarTypeEnum.Int_unsecure(),
29
- isOptional: false
30
- },
31
- organizationId: {
32
- type: ScalarTypeEnum.String_unsecure(),
33
- isOptional: false
34
- },
35
- createdBy: {
36
- type: ScalarTypeEnum.String_unsecure(),
37
- isOptional: false
38
- },
39
- timestamp: {
40
- type: ScalarTypeEnum.DateTime(),
41
- isOptional: false
42
- }
43
- }
44
- });
45
- /**
46
- * Payload when a step is added.
47
- */
48
- const StepAddedPayload = defineSchemaModel({
49
- name: "StepAddedEventPayload",
50
- description: "Payload when a step is added",
51
- fields: {
52
- stepId: {
53
- type: ScalarTypeEnum.String_unsecure(),
54
- isOptional: false
55
- },
56
- workflowId: {
57
- type: ScalarTypeEnum.String_unsecure(),
58
- isOptional: false
59
- },
60
- stepKey: {
61
- type: ScalarTypeEnum.String_unsecure(),
62
- isOptional: false
63
- },
64
- stepType: {
65
- type: ScalarTypeEnum.String_unsecure(),
66
- isOptional: false
67
- },
68
- position: {
69
- type: ScalarTypeEnum.Int_unsecure(),
70
- isOptional: false
71
- },
72
- timestamp: {
73
- type: ScalarTypeEnum.DateTime(),
74
- isOptional: false
75
- }
76
- }
77
- });
78
- /**
79
- * WorkflowCreatedEvent - A new workflow definition has been created.
80
- */
81
- const WorkflowCreatedEvent = defineEvent({
82
- name: "workflow.definition.created",
83
- version: 1,
84
- description: "A new workflow definition has been created.",
85
- payload: WorkflowDefinitionPayload
86
- });
87
- /**
88
- * WorkflowUpdatedEvent - A workflow definition has been updated.
89
- */
90
- const WorkflowUpdatedEvent = defineEvent({
91
- name: "workflow.definition.updated",
92
- version: 1,
93
- description: "A workflow definition has been updated.",
94
- payload: WorkflowDefinitionPayload
95
- });
96
- /**
97
- * WorkflowPublishedEvent - A workflow definition has been published.
98
- */
99
- const WorkflowPublishedEvent = defineEvent({
100
- name: "workflow.definition.published",
101
- version: 1,
102
- description: "A workflow definition has been published and is now active.",
103
- payload: WorkflowDefinitionPayload
104
- });
105
- /**
106
- * StepAddedEvent - A step has been added to a workflow definition.
107
- */
108
- const StepAddedEvent = defineEvent({
109
- name: "workflow.step.added",
110
- version: 1,
111
- description: "A step has been added to a workflow definition.",
112
- payload: StepAddedPayload
113
- });
114
-
115
- //#endregion
116
- export { StepAddedEvent, WorkflowCreatedEvent, WorkflowPublishedEvent, WorkflowUpdatedEvent };
1
+ import{ScalarTypeEnum as e}from"@lssm/lib.schema";import{defineEvent as t,defineSchemaModel as n}from"@lssm/lib.contracts";const r=n({name:`WorkflowDefinitionEventPayload`,description:`Payload for workflow definition events`,fields:{workflowId:{type:e.String_unsecure(),isOptional:!1},key:{type:e.String_unsecure(),isOptional:!1},name:{type:e.String_unsecure(),isOptional:!1},version:{type:e.Int_unsecure(),isOptional:!1},organizationId:{type:e.String_unsecure(),isOptional:!1},createdBy:{type:e.String_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),i=n({name:`StepAddedEventPayload`,description:`Payload when a step is added`,fields:{stepId:{type:e.String_unsecure(),isOptional:!1},workflowId:{type:e.String_unsecure(),isOptional:!1},stepKey:{type:e.String_unsecure(),isOptional:!1},stepType:{type:e.String_unsecure(),isOptional:!1},position:{type:e.Int_unsecure(),isOptional:!1},timestamp:{type:e.DateTime(),isOptional:!1}}}),a=t({name:`workflow.definition.created`,version:1,description:`A new workflow definition has been created.`,payload:r}),o=t({name:`workflow.definition.updated`,version:1,description:`A workflow definition has been updated.`,payload:r}),s=t({name:`workflow.definition.published`,version:1,description:`A workflow definition has been published and is now active.`,payload:r}),c=t({name:`workflow.step.added`,version:1,description:`A step has been added to a workflow definition.`,payload:i});export{c as StepAddedEvent,a as WorkflowCreatedEvent,s as WorkflowPublishedEvent,o as WorkflowUpdatedEvent};
@@ -1,65 +1 @@
1
- import { mockDataStore } from "../shared/mock-data.js";
2
-
3
- //#region src/workflow/workflow.handler.ts
4
- async function handleCreateWorkflow(input, context) {
5
- const id = `wf_${Date.now()}`;
6
- const now = /* @__PURE__ */ new Date();
7
- const workflow = {
8
- id,
9
- key: input.key,
10
- name: input.name,
11
- description: input.description,
12
- version: 1,
13
- status: "DRAFT",
14
- triggerType: input.triggerType ?? "MANUAL",
15
- featureFlagKey: input.featureFlagKey,
16
- organizationId: context.organizationId,
17
- createdBy: context.userId,
18
- createdAt: now,
19
- updatedAt: now
20
- };
21
- mockDataStore.workflows.set(id, workflow);
22
- return workflow;
23
- }
24
- async function handleAddStep(input, _context) {
25
- const id = `step_${Date.now()}`;
26
- const now = /* @__PURE__ */ new Date();
27
- const existingSteps = Array.from(mockDataStore.steps.values()).filter((s) => s.workflowDefinitionId === input.workflowId);
28
- const position = input.position ?? existingSteps.length;
29
- const step = {
30
- id,
31
- workflowDefinitionId: input.workflowId,
32
- key: input.key,
33
- name: input.name,
34
- description: input.description,
35
- type: input.type,
36
- position,
37
- transitions: input.transitions,
38
- approvalMode: input.approvalMode,
39
- approverRoles: input.approverRoles ?? [],
40
- timeoutSeconds: input.timeoutSeconds,
41
- createdAt: now,
42
- updatedAt: now
43
- };
44
- mockDataStore.steps.set(id, step);
45
- if (existingSteps.length === 0 || input.type === "START") {
46
- const workflow = mockDataStore.workflows.get(input.workflowId);
47
- if (workflow) {
48
- workflow.initialStepId = id;
49
- workflow.updatedAt = now;
50
- }
51
- }
52
- return step;
53
- }
54
- async function handlePublishWorkflow(input, _context) {
55
- const workflow = mockDataStore.workflows.get(input.workflowId);
56
- if (!workflow) throw new Error(`Workflow ${input.workflowId} not found`);
57
- const now = /* @__PURE__ */ new Date();
58
- workflow.status = "ACTIVE";
59
- workflow.publishedAt = now;
60
- workflow.updatedAt = now;
61
- return workflow;
62
- }
63
-
64
- //#endregion
65
- export { handleAddStep, handleCreateWorkflow, handlePublishWorkflow };
1
+ import{mockDataStore as e}from"../shared/mock-data.js";async function t(t,n){let r=`wf_${Date.now()}`,i=new Date,a={id:r,key:t.key,name:t.name,description:t.description,version:1,status:`DRAFT`,triggerType:t.triggerType??`MANUAL`,featureFlagKey:t.featureFlagKey,organizationId:n.organizationId,createdBy:n.userId,createdAt:i,updatedAt:i};return e.workflows.set(r,a),a}async function n(t,n){let r=`step_${Date.now()}`,i=new Date,a=Array.from(e.steps.values()).filter(e=>e.workflowDefinitionId===t.workflowId),o=t.position??a.length,s={id:r,workflowDefinitionId:t.workflowId,key:t.key,name:t.name,description:t.description,type:t.type,position:o,transitions:t.transitions,approvalMode:t.approvalMode,approverRoles:t.approverRoles??[],timeoutSeconds:t.timeoutSeconds,createdAt:i,updatedAt:i};if(e.steps.set(r,s),a.length===0||t.type===`START`){let n=e.workflows.get(t.workflowId);n&&(n.initialStepId=r,n.updatedAt=i)}return s}async function r(t,n){let r=e.workflows.get(t.workflowId);if(!r)throw Error(`Workflow ${t.workflowId} not found`);let i=new Date;return r.status=`ACTIVE`,r.publishedAt=i,r.updatedAt=i,r}export{n as handleAddStep,t as handleCreateWorkflow,r as handlePublishWorkflow};