@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.
Files changed (246) hide show
  1. package/LICENSE +21 -0
  2. package/dist/approval/approval.contracts.d.ts +136 -135
  3. package/dist/approval/approval.contracts.d.ts.map +1 -0
  4. package/dist/approval/approval.contracts.js +23 -24
  5. package/dist/approval/approval.contracts.js.map +1 -0
  6. package/dist/approval/approval.enum.d.ts +5 -4
  7. package/dist/approval/approval.enum.d.ts.map +1 -0
  8. package/dist/approval/approval.enum.js +5 -5
  9. package/dist/approval/approval.enum.js.map +1 -0
  10. package/dist/approval/approval.event.d.ts +34 -33
  11. package/dist/approval/approval.event.d.ts.map +1 -0
  12. package/dist/approval/approval.event.js +34 -34
  13. package/dist/approval/approval.event.js.map +1 -0
  14. package/dist/approval/approval.handler.d.ts +2 -1
  15. package/dist/approval/approval.handler.d.ts.map +1 -0
  16. package/dist/approval/approval.handler.js +2 -1
  17. package/dist/approval/approval.handler.js.map +1 -0
  18. package/dist/approval/approval.schema.d.ts +26 -25
  19. package/dist/approval/approval.schema.d.ts.map +1 -0
  20. package/dist/approval/approval.schema.js +24 -25
  21. package/dist/approval/approval.schema.js.map +1 -0
  22. package/dist/docs/workflow-system.docblock.js +2 -1
  23. package/dist/docs/workflow-system.docblock.js.map +1 -0
  24. package/dist/entities/approval.d.ts +38 -37
  25. package/dist/entities/approval.d.ts.map +1 -0
  26. package/dist/entities/approval.js +44 -44
  27. package/dist/entities/approval.js.map +1 -0
  28. package/dist/entities/index.d.ts +129 -128
  29. package/dist/entities/index.d.ts.map +1 -0
  30. package/dist/entities/index.js +2 -1
  31. package/dist/entities/index.js.map +1 -0
  32. package/dist/entities/instance.d.ts +49 -48
  33. package/dist/entities/instance.d.ts.map +1 -0
  34. package/dist/entities/instance.js +58 -58
  35. package/dist/entities/instance.js.map +1 -0
  36. package/dist/entities/step.d.ts +34 -33
  37. package/dist/entities/step.d.ts.map +1 -0
  38. package/dist/entities/step.js +37 -37
  39. package/dist/entities/step.js.map +1 -0
  40. package/dist/entities/workflow.d.ts +25 -24
  41. package/dist/entities/workflow.d.ts.map +1 -0
  42. package/dist/entities/workflow.js +28 -28
  43. package/dist/entities/workflow.js.map +1 -0
  44. package/dist/example.d.ts +2 -1
  45. package/dist/example.d.ts.map +1 -0
  46. package/dist/example.js +2 -1
  47. package/dist/example.js.map +1 -0
  48. package/dist/instance/instance.contracts.d.ts +258 -257
  49. package/dist/instance/instance.contracts.d.ts.map +1 -0
  50. package/dist/instance/instance.contracts.js +23 -24
  51. package/dist/instance/instance.contracts.js.map +1 -0
  52. package/dist/instance/instance.enum.d.ts +4 -3
  53. package/dist/instance/instance.enum.d.ts.map +1 -0
  54. package/dist/instance/instance.enum.js +4 -4
  55. package/dist/instance/instance.enum.js.map +1 -0
  56. package/dist/instance/instance.event.d.ts +89 -88
  57. package/dist/instance/instance.event.d.ts.map +1 -0
  58. package/dist/instance/instance.event.js +31 -31
  59. package/dist/instance/instance.event.js.map +1 -0
  60. package/dist/instance/instance.handler.d.ts +2 -1
  61. package/dist/instance/instance.handler.d.ts.map +1 -0
  62. package/dist/instance/instance.handler.js +2 -1
  63. package/dist/instance/instance.handler.js.map +1 -0
  64. package/dist/instance/instance.schema.d.ts +56 -55
  65. package/dist/instance/instance.schema.d.ts.map +1 -0
  66. package/dist/instance/instance.schema.js +37 -38
  67. package/dist/instance/instance.schema.js.map +1 -0
  68. package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
  69. package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
  70. package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
  71. package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
  72. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  73. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  74. package/dist/libs/contracts/dist/docs/index.js +2 -6
  75. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  76. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  77. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  78. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  79. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  80. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  81. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  82. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  83. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  84. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  85. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  86. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  87. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  88. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  89. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  90. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  91. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  92. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  93. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  94. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  95. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  96. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  97. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  98. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  99. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  100. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  101. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  102. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  103. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  104. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  105. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  106. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  107. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  108. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  109. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  110. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  111. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  112. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  113. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  114. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  115. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  116. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  117. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  118. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  119. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  120. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  121. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  122. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  123. package/dist/libs/contracts/dist/events.js +2 -1
  124. package/dist/libs/contracts/dist/events.js.map +1 -0
  125. package/dist/libs/contracts/dist/index.js +3 -2
  126. package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
  127. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
  128. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  129. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  130. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  131. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  132. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  133. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  134. package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
  135. package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
  136. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  137. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  138. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  139. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  140. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  141. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  142. package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
  143. package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
  144. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
  145. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  146. package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
  147. package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
  148. package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
  149. package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
  150. package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
  151. package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
  152. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
  153. package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  154. package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
  155. package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
  156. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  157. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  158. package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
  159. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
  160. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  161. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  162. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  163. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  164. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  165. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  166. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  167. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  168. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  169. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  170. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  171. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  172. package/dist/libs/contracts/dist/llm/exporters.js +2 -1
  173. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
  174. package/dist/libs/contracts/dist/onboarding-base.js +22 -23
  175. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
  176. package/dist/libs/contracts/dist/ownership.js +4 -2
  177. package/dist/libs/contracts/dist/ownership.js.map +1 -0
  178. package/dist/libs/contracts/dist/presentations.v2.js +2 -1
  179. package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
  180. package/dist/libs/contracts/dist/regenerator/service.js +2 -1
  181. package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
  182. package/dist/libs/contracts/dist/schema/dist/index.js +3874 -6
  183. package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
  184. package/dist/libs/contracts/dist/spec.js +2 -1
  185. package/dist/libs/contracts/dist/spec.js.map +1 -0
  186. package/dist/libs/schema/dist/index.js +4922 -6
  187. package/dist/libs/schema/dist/index.js.map +1 -0
  188. package/dist/presentations/index.d.ts +2 -1
  189. package/dist/presentations/index.d.ts.map +1 -0
  190. package/dist/presentations/index.js +2 -1
  191. package/dist/presentations/index.js.map +1 -0
  192. package/dist/shared/mock-data.d.ts +2 -1
  193. package/dist/shared/mock-data.d.ts.map +1 -0
  194. package/dist/shared/mock-data.js +2 -1
  195. package/dist/shared/mock-data.js.map +1 -0
  196. package/dist/shared/types.d.ts +2 -1
  197. package/dist/shared/types.d.ts.map +1 -0
  198. package/dist/state-machine/index.d.ts +2 -1
  199. package/dist/state-machine/index.d.ts.map +1 -0
  200. package/dist/state-machine/index.js +2 -1
  201. package/dist/state-machine/index.js.map +1 -0
  202. package/dist/workflow/workflow.contracts.d.ts +248 -247
  203. package/dist/workflow/workflow.contracts.d.ts.map +1 -0
  204. package/dist/workflow/workflow.contracts.js +13 -14
  205. package/dist/workflow/workflow.contracts.js.map +1 -0
  206. package/dist/workflow/workflow.enum.d.ts +7 -6
  207. package/dist/workflow/workflow.enum.d.ts.map +1 -0
  208. package/dist/workflow/workflow.enum.js +7 -7
  209. package/dist/workflow/workflow.enum.js.map +1 -0
  210. package/dist/workflow/workflow.event.d.ts +35 -34
  211. package/dist/workflow/workflow.event.d.ts.map +1 -0
  212. package/dist/workflow/workflow.event.js +19 -19
  213. package/dist/workflow/workflow.event.js.map +1 -0
  214. package/dist/workflow/workflow.handler.d.ts +2 -1
  215. package/dist/workflow/workflow.handler.d.ts.map +1 -0
  216. package/dist/workflow/workflow.handler.js +2 -1
  217. package/dist/workflow/workflow.handler.js.map +1 -0
  218. package/dist/workflow/workflow.schema.d.ts +2 -1
  219. package/dist/workflow/workflow.schema.d.ts.map +1 -0
  220. package/dist/workflow/workflow.schema.js +47 -48
  221. package/dist/workflow/workflow.schema.js.map +1 -0
  222. package/dist/workflow-system.feature.d.ts +2 -1
  223. package/dist/workflow-system.feature.d.ts.map +1 -0
  224. package/dist/workflow-system.feature.js +2 -1
  225. package/dist/workflow-system.feature.js.map +1 -0
  226. package/package.json +19 -12
  227. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  228. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  229. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  230. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  231. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  232. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  233. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  234. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  235. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  236. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -39
  237. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  238. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  239. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  240. package/dist/libs/schema/dist/EnumType.js +0 -56
  241. package/dist/libs/schema/dist/FieldType.js +0 -49
  242. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  243. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  244. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  245. package/dist/libs/schema/dist/entity/index.js +0 -2
  246. package/dist/libs/schema/dist/entity/types.js +0 -1
@@ -1,6 +1,4 @@
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";
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: defineSchemaModel({
27
+ input: K5({
30
28
  name: "ApproveRejectInput",
31
29
  fields: {
32
30
  requestId: {
33
- type: ScalarTypeEnum.String_unsecure(),
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: ScalarTypeEnum.String_unsecure(),
39
+ type: E5.String_unsecure(),
42
40
  isOptional: true
43
41
  },
44
42
  data: {
45
- type: ScalarTypeEnum.JSON(),
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: defineSchemaModel({
80
+ input: K5({
83
81
  name: "DelegateInput",
84
82
  fields: {
85
83
  requestId: {
86
- type: ScalarTypeEnum.String_unsecure(),
84
+ type: E5.String_unsecure(),
87
85
  isOptional: false
88
86
  },
89
87
  delegateTo: {
90
- type: ScalarTypeEnum.String_unsecure(),
88
+ type: E5.String_unsecure(),
91
89
  isOptional: false
92
90
  },
93
91
  reason: {
94
- type: ScalarTypeEnum.String_unsecure(),
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: defineSchemaModel({
129
+ input: K5({
132
130
  name: "AddCommentInput",
133
131
  fields: {
134
132
  requestId: {
135
- type: ScalarTypeEnum.String_unsecure(),
133
+ type: E5.String_unsecure(),
136
134
  isOptional: false
137
135
  },
138
136
  content: {
139
- type: ScalarTypeEnum.NonEmptyString(),
137
+ type: E5.NonEmptyString(),
140
138
  isOptional: false
141
139
  },
142
140
  isInternal: {
143
- type: ScalarTypeEnum.Boolean(),
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: defineSchemaModel({
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: ScalarTypeEnum.Int_unsecure(),
184
+ type: E5.Int_unsecure(),
187
185
  isOptional: true,
188
186
  defaultValue: 20
189
187
  },
190
188
  offset: {
191
- type: ScalarTypeEnum.Int_unsecure(),
189
+ type: E5.Int_unsecure(),
192
190
  isOptional: true,
193
191
  defaultValue: 0
194
192
  }
195
193
  }
196
194
  }),
197
- output: defineSchemaModel({
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: ScalarTypeEnum.Int_unsecure(),
204
+ type: E5.Int_unsecure(),
207
205
  isOptional: false
208
206
  },
209
207
  pendingCount: {
210
- type: ScalarTypeEnum.Int_unsecure(),
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: defineSchemaModel({
235
+ input: K5({
238
236
  name: "GetApprovalInput",
239
237
  fields: { requestId: {
240
- type: ScalarTypeEnum.String_unsecure(),
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 _lssm_lib_schema1040 from "@lssm/lib.schema";
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: _lssm_lib_schema1040.EnumType<[string, string, string, string, string, string, string]>;
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: _lssm_lib_schema1040.EnumType<[string, string, string, string, string]>;
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 { defineEnum } from "../libs/schema/dist/EnumType.js";
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 = defineEnum("ApprovalStatus", [
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 = defineEnum("ApprovalDecision", [
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 _lssm_lib_schema1127 from "@lssm/lib.schema";
2
- import * as _lssm_lib_contracts30 from "@lssm/lib.contracts";
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: _lssm_lib_contracts30.EventSpec<_lssm_lib_schema1127.SchemaModel<{
8
+ declare const ApprovalRequestedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
9
9
  requestId: {
10
- type: _lssm_lib_schema1127.FieldType<string, string>;
10
+ type: _lssm_lib_schema195.FieldType<string, string>;
11
11
  isOptional: false;
12
12
  };
13
13
  instanceId: {
14
- type: _lssm_lib_schema1127.FieldType<string, string>;
14
+ type: _lssm_lib_schema195.FieldType<string, string>;
15
15
  isOptional: false;
16
16
  };
17
17
  workflowKey: {
18
- type: _lssm_lib_schema1127.FieldType<string, string>;
18
+ type: _lssm_lib_schema195.FieldType<string, string>;
19
19
  isOptional: false;
20
20
  };
21
21
  approverId: {
22
- type: _lssm_lib_schema1127.FieldType<string, string>;
22
+ type: _lssm_lib_schema195.FieldType<string, string>;
23
23
  isOptional: false;
24
24
  };
25
25
  approverRole: {
26
- type: _lssm_lib_schema1127.FieldType<string, string>;
26
+ type: _lssm_lib_schema195.FieldType<string, string>;
27
27
  isOptional: true;
28
28
  };
29
29
  title: {
30
- type: _lssm_lib_schema1127.FieldType<string, string>;
30
+ type: _lssm_lib_schema195.FieldType<string, string>;
31
31
  isOptional: false;
32
32
  };
33
33
  dueAt: {
34
- type: _lssm_lib_schema1127.FieldType<Date, string>;
34
+ type: _lssm_lib_schema195.FieldType<Date, string>;
35
35
  isOptional: true;
36
36
  };
37
37
  timestamp: {
38
- type: _lssm_lib_schema1127.FieldType<Date, string>;
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: _lssm_lib_contracts30.EventSpec<_lssm_lib_schema1127.SchemaModel<{
45
+ declare const ApprovalDecidedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
46
46
  requestId: {
47
- type: _lssm_lib_schema1127.FieldType<string, string>;
47
+ type: _lssm_lib_schema195.FieldType<string, string>;
48
48
  isOptional: false;
49
49
  };
50
50
  instanceId: {
51
- type: _lssm_lib_schema1127.FieldType<string, string>;
51
+ type: _lssm_lib_schema195.FieldType<string, string>;
52
52
  isOptional: false;
53
53
  };
54
54
  decision: {
55
- type: _lssm_lib_schema1127.FieldType<string, string>;
55
+ type: _lssm_lib_schema195.FieldType<string, string>;
56
56
  isOptional: false;
57
57
  };
58
58
  decidedBy: {
59
- type: _lssm_lib_schema1127.FieldType<string, string>;
59
+ type: _lssm_lib_schema195.FieldType<string, string>;
60
60
  isOptional: false;
61
61
  };
62
62
  comment: {
63
- type: _lssm_lib_schema1127.FieldType<string, string>;
63
+ type: _lssm_lib_schema195.FieldType<string, string>;
64
64
  isOptional: true;
65
65
  };
66
66
  timestamp: {
67
- type: _lssm_lib_schema1127.FieldType<Date, string>;
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: _lssm_lib_contracts30.EventSpec<_lssm_lib_schema1127.SchemaModel<{
74
+ declare const ApprovalDelegatedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
75
75
  requestId: {
76
- type: _lssm_lib_schema1127.FieldType<string, string>;
76
+ type: _lssm_lib_schema195.FieldType<string, string>;
77
77
  isOptional: false;
78
78
  };
79
79
  instanceId: {
80
- type: _lssm_lib_schema1127.FieldType<string, string>;
80
+ type: _lssm_lib_schema195.FieldType<string, string>;
81
81
  isOptional: false;
82
82
  };
83
83
  fromUserId: {
84
- type: _lssm_lib_schema1127.FieldType<string, string>;
84
+ type: _lssm_lib_schema195.FieldType<string, string>;
85
85
  isOptional: false;
86
86
  };
87
87
  toUserId: {
88
- type: _lssm_lib_schema1127.FieldType<string, string>;
88
+ type: _lssm_lib_schema195.FieldType<string, string>;
89
89
  isOptional: false;
90
90
  };
91
91
  reason: {
92
- type: _lssm_lib_schema1127.FieldType<string, string>;
92
+ type: _lssm_lib_schema195.FieldType<string, string>;
93
93
  isOptional: true;
94
94
  };
95
95
  timestamp: {
96
- type: _lssm_lib_schema1127.FieldType<Date, string>;
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: _lssm_lib_contracts30.EventSpec<_lssm_lib_schema1127.SchemaModel<{
103
+ declare const ApprovalEscalatedEvent: _lssm_lib_contracts4.EventSpec<_lssm_lib_schema195.SchemaModel<{
104
104
  requestId: {
105
- type: _lssm_lib_schema1127.FieldType<string, string>;
105
+ type: _lssm_lib_schema195.FieldType<string, string>;
106
106
  isOptional: false;
107
107
  };
108
108
  instanceId: {
109
- type: _lssm_lib_schema1127.FieldType<string, string>;
109
+ type: _lssm_lib_schema195.FieldType<string, string>;
110
110
  isOptional: false;
111
111
  };
112
112
  escalationLevel: {
113
- type: _lssm_lib_schema1127.FieldType<number, number>;
113
+ type: _lssm_lib_schema195.FieldType<number, number>;
114
114
  isOptional: false;
115
115
  };
116
116
  escalatedTo: {
117
- type: _lssm_lib_schema1127.FieldType<string, string>;
117
+ type: _lssm_lib_schema195.FieldType<string, string>;
118
118
  isOptional: false;
119
119
  };
120
120
  reason: {
121
- type: _lssm_lib_schema1127.FieldType<string, string>;
121
+ type: _lssm_lib_schema195.FieldType<string, string>;
122
122
  isOptional: false;
123
123
  };
124
124
  timestamp: {
125
- type: _lssm_lib_schema1127.FieldType<Date, string>;
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 { 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";
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 = defineSchemaModel({
10
+ const ApprovalRequestedPayload = K5({
12
11
  name: "ApprovalRequestedEventPayload",
13
12
  description: "Payload when approval is requested",
14
13
  fields: {
15
14
  requestId: {
16
- type: ScalarTypeEnum.String_unsecure(),
15
+ type: E5.String_unsecure(),
17
16
  isOptional: false
18
17
  },
19
18
  instanceId: {
20
- type: ScalarTypeEnum.String_unsecure(),
19
+ type: E5.String_unsecure(),
21
20
  isOptional: false
22
21
  },
23
22
  workflowKey: {
24
- type: ScalarTypeEnum.String_unsecure(),
23
+ type: E5.String_unsecure(),
25
24
  isOptional: false
26
25
  },
27
26
  approverId: {
28
- type: ScalarTypeEnum.String_unsecure(),
27
+ type: E5.String_unsecure(),
29
28
  isOptional: false
30
29
  },
31
30
  approverRole: {
32
- type: ScalarTypeEnum.String_unsecure(),
31
+ type: E5.String_unsecure(),
33
32
  isOptional: true
34
33
  },
35
34
  title: {
36
- type: ScalarTypeEnum.String_unsecure(),
35
+ type: E5.String_unsecure(),
37
36
  isOptional: false
38
37
  },
39
38
  dueAt: {
40
- type: ScalarTypeEnum.DateTime(),
39
+ type: E5.DateTime(),
41
40
  isOptional: true
42
41
  },
43
42
  timestamp: {
44
- type: ScalarTypeEnum.DateTime(),
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 = defineSchemaModel({
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: ScalarTypeEnum.String_unsecure(),
56
+ type: E5.String_unsecure(),
58
57
  isOptional: false
59
58
  },
60
59
  instanceId: {
61
- type: ScalarTypeEnum.String_unsecure(),
60
+ type: E5.String_unsecure(),
62
61
  isOptional: false
63
62
  },
64
63
  decision: {
65
- type: ScalarTypeEnum.String_unsecure(),
64
+ type: E5.String_unsecure(),
66
65
  isOptional: false
67
66
  },
68
67
  decidedBy: {
69
- type: ScalarTypeEnum.String_unsecure(),
68
+ type: E5.String_unsecure(),
70
69
  isOptional: false
71
70
  },
72
71
  comment: {
73
- type: ScalarTypeEnum.String_unsecure(),
72
+ type: E5.String_unsecure(),
74
73
  isOptional: true
75
74
  },
76
75
  timestamp: {
77
- type: ScalarTypeEnum.DateTime(),
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 = defineSchemaModel({
84
+ const ApprovalDelegatedPayload = K5({
86
85
  name: "ApprovalDelegatedEventPayload",
87
86
  description: "Payload when approval is delegated",
88
87
  fields: {
89
88
  requestId: {
90
- type: ScalarTypeEnum.String_unsecure(),
89
+ type: E5.String_unsecure(),
91
90
  isOptional: false
92
91
  },
93
92
  instanceId: {
94
- type: ScalarTypeEnum.String_unsecure(),
93
+ type: E5.String_unsecure(),
95
94
  isOptional: false
96
95
  },
97
96
  fromUserId: {
98
- type: ScalarTypeEnum.String_unsecure(),
97
+ type: E5.String_unsecure(),
99
98
  isOptional: false
100
99
  },
101
100
  toUserId: {
102
- type: ScalarTypeEnum.String_unsecure(),
101
+ type: E5.String_unsecure(),
103
102
  isOptional: false
104
103
  },
105
104
  reason: {
106
- type: ScalarTypeEnum.String_unsecure(),
105
+ type: E5.String_unsecure(),
107
106
  isOptional: true
108
107
  },
109
108
  timestamp: {
110
- type: ScalarTypeEnum.DateTime(),
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 = defineSchemaModel({
117
+ const ApprovalEscalatedPayload = K5({
119
118
  name: "ApprovalEscalatedEventPayload",
120
119
  description: "Payload when approval is escalated",
121
120
  fields: {
122
121
  requestId: {
123
- type: ScalarTypeEnum.String_unsecure(),
122
+ type: E5.String_unsecure(),
124
123
  isOptional: false
125
124
  },
126
125
  instanceId: {
127
- type: ScalarTypeEnum.String_unsecure(),
126
+ type: E5.String_unsecure(),
128
127
  isOptional: false
129
128
  },
130
129
  escalationLevel: {
131
- type: ScalarTypeEnum.Int_unsecure(),
130
+ type: E5.Int_unsecure(),
132
131
  isOptional: false
133
132
  },
134
133
  escalatedTo: {
135
- type: ScalarTypeEnum.String_unsecure(),
134
+ type: E5.String_unsecure(),
136
135
  isOptional: false
137
136
  },
138
137
  reason: {
139
- type: ScalarTypeEnum.String_unsecure(),
138
+ type: E5.String_unsecure(),
140
139
  isOptional: false
141
140
  },
142
141
  timestamp: {
143
- type: ScalarTypeEnum.DateTime(),
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"}