@t4h.framework/dev 0.14.2 → 0.16.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 (199) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +112 -58
  3. package/dist/AppProcess.d.ts +36 -0
  4. package/dist/AppProcess.js +126 -0
  5. package/dist/AppProcess.js.map +1 -0
  6. package/dist/Server.d.ts +41 -0
  7. package/dist/Server.js +177 -0
  8. package/dist/Server.js.map +1 -0
  9. package/dist/constants/panel-config.d.ts +2 -0
  10. package/dist/constants/panel-config.js +34 -0
  11. package/dist/constants/panel-config.js.map +1 -0
  12. package/dist/constants/server.d.ts +9 -0
  13. package/dist/constants/server.js +10 -0
  14. package/dist/constants/server.js.map +1 -0
  15. package/dist/http/create-app.d.ts +16 -0
  16. package/dist/http/create-app.js +138 -0
  17. package/dist/http/create-app.js.map +1 -0
  18. package/dist/http/helpers/to-http-error.d.ts +8 -0
  19. package/dist/http/helpers/to-http-error.js +9 -0
  20. package/dist/http/helpers/to-http-error.js.map +1 -0
  21. package/dist/http/middlewares/error-handler.middleware.d.ts +2 -0
  22. package/dist/http/middlewares/error-handler.middleware.js +27 -0
  23. package/dist/http/middlewares/error-handler.middleware.js.map +1 -0
  24. package/dist/http/middlewares/project-manifest.middleware.d.ts +11 -0
  25. package/dist/http/middlewares/project-manifest.middleware.js +11 -0
  26. package/dist/http/middlewares/project-manifest.middleware.js.map +1 -0
  27. package/dist/http/middlewares/read-json-body.middleware.d.ts +6 -0
  28. package/dist/http/middlewares/read-json-body.middleware.js +22 -0
  29. package/dist/http/middlewares/read-json-body.middleware.js.map +1 -0
  30. package/dist/http/middlewares/workflow-authorization.middleware.d.ts +12 -0
  31. package/dist/http/middlewares/workflow-authorization.middleware.js +28 -0
  32. package/dist/http/middlewares/workflow-authorization.middleware.js.map +1 -0
  33. package/dist/index.d.ts +3 -15
  34. package/dist/index.js +2 -15
  35. package/dist/index.js.map +1 -1
  36. package/dist/models/JSONRPCClient.d.ts +2 -0
  37. package/dist/models/JSONRPCClient.js +21 -4
  38. package/dist/models/JSONRPCClient.js.map +1 -1
  39. package/dist/models/JSONRPCError.d.ts +13 -0
  40. package/dist/models/JSONRPCError.js +11 -0
  41. package/dist/models/JSONRPCError.js.map +1 -0
  42. package/dist/models/JSONRPCServer.d.ts +2 -0
  43. package/dist/models/JSONRPCServer.js +10 -2
  44. package/dist/models/JSONRPCServer.js.map +1 -1
  45. package/dist/models/WorkflowAuthorizationMissingError.d.ts +5 -0
  46. package/dist/models/WorkflowAuthorizationMissingError.js +9 -0
  47. package/dist/models/WorkflowAuthorizationMissingError.js.map +1 -0
  48. package/dist/models/WorkflowRun.d.ts +20 -15
  49. package/dist/models/WorkflowRun.js +14 -9
  50. package/dist/models/WorkflowRun.js.map +1 -1
  51. package/dist/models/WorkflowRunActivity.d.ts +40 -27
  52. package/dist/models/WorkflowRunActivity.js +46 -34
  53. package/dist/models/WorkflowRunActivity.js.map +1 -1
  54. package/dist/models/claims/DevHttpClientRequestClaim.js +4 -5
  55. package/dist/models/claims/DevHttpClientRequestClaim.js.map +1 -1
  56. package/dist/models/claims/DevORMClaim.d.ts +15 -4
  57. package/dist/models/claims/DevORMClaim.js +128 -29
  58. package/dist/models/claims/DevORMClaim.js.map +1 -1
  59. package/dist/models/claims/DevWorkflowBatchClaim.js +3 -6
  60. package/dist/models/claims/DevWorkflowBatchClaim.js.map +1 -1
  61. package/dist/models/claims/DevWorkflowClaim.d.ts +1 -1
  62. package/dist/models/claims/DevWorkflowClaim.js +6 -11
  63. package/dist/models/claims/DevWorkflowClaim.js.map +1 -1
  64. package/dist/repositories/WorkflowRun.repository.d.ts +44 -6
  65. package/dist/repositories/WorkflowRun.repository.js +196 -11
  66. package/dist/repositories/WorkflowRun.repository.js.map +1 -1
  67. package/dist/repositories/WorkflowRunActivity.repository.d.ts +19 -6
  68. package/dist/repositories/WorkflowRunActivity.repository.js +73 -23
  69. package/dist/repositories/WorkflowRunActivity.repository.js.map +1 -1
  70. package/dist/repositories/WorkflowRunAsyncActivityPending.repository.d.ts +39 -0
  71. package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js +160 -0
  72. package/dist/repositories/WorkflowRunAsyncActivityPending.repository.js.map +1 -0
  73. package/dist/services/ActivityRegistry.service.d.ts +7 -0
  74. package/dist/services/ActivityRegistry.service.js +32 -0
  75. package/dist/services/ActivityRegistry.service.js.map +1 -0
  76. package/dist/services/Database.service.d.ts +14 -0
  77. package/dist/services/Database.service.js +106 -0
  78. package/dist/services/Database.service.js.map +1 -0
  79. package/dist/services/TimeoutScheduler.service.js +9 -3
  80. package/dist/services/TimeoutScheduler.service.js.map +1 -1
  81. package/dist/services/WorkflowAuthorization.service.d.ts +19 -0
  82. package/dist/services/WorkflowAuthorization.service.js +75 -0
  83. package/dist/services/WorkflowAuthorization.service.js.map +1 -0
  84. package/dist/services/WorkflowRunAsyncActivityFacade.service.d.ts +8 -15
  85. package/dist/services/WorkflowRunAsyncActivityFacade.service.js +12 -26
  86. package/dist/services/WorkflowRunAsyncActivityFacade.service.js.map +1 -1
  87. package/dist/services/WorkflowRunEvents.service.d.ts +11 -0
  88. package/dist/services/WorkflowRunEvents.service.js +42 -0
  89. package/dist/services/WorkflowRunEvents.service.js.map +1 -0
  90. package/dist/services/WorkflowRunFacade.service.d.ts +106 -7
  91. package/dist/services/WorkflowRunFacade.service.js +65 -10
  92. package/dist/services/WorkflowRunFacade.service.js.map +1 -1
  93. package/dist/services/WorkflowRunLock.service.d.ts +6 -0
  94. package/dist/services/WorkflowRunLock.service.js +34 -0
  95. package/dist/services/WorkflowRunLock.service.js.map +1 -0
  96. package/dist/services/WorkflowRunSyncActivityFacade.service.d.ts +4 -4
  97. package/dist/services/WorkflowRunSyncActivityFacade.service.js +7 -7
  98. package/dist/services/WorkflowRunSyncActivityFacade.service.js.map +1 -1
  99. package/dist/tools/copy-additional-files.d.ts +0 -5
  100. package/dist/tools/copy-additional-files.js +0 -5
  101. package/dist/tools/copy-additional-files.js.map +1 -1
  102. package/dist/tools/find-free-port.d.ts +5 -0
  103. package/dist/tools/find-free-port.js +30 -0
  104. package/dist/tools/find-free-port.js.map +1 -0
  105. package/dist/tools/find-workflow-by-id.d.ts +2 -0
  106. package/dist/tools/find-workflow-by-id.js +9 -0
  107. package/dist/tools/find-workflow-by-id.js.map +1 -0
  108. package/dist/tools/format-routes.d.ts +10 -0
  109. package/dist/tools/format-routes.js +40 -0
  110. package/dist/tools/format-routes.js.map +1 -0
  111. package/dist/tools/replace.d.ts +1 -0
  112. package/dist/tools/replace.js +14 -0
  113. package/dist/tools/replace.js.map +1 -0
  114. package/dist/tools/to-rejected-reason.d.ts +5 -0
  115. package/dist/tools/to-rejected-reason.js +11 -0
  116. package/dist/tools/to-rejected-reason.js.map +1 -0
  117. package/dist/tools/to-workflow-run-activity-output.d.ts +24 -0
  118. package/dist/tools/to-workflow-run-activity-output.js +18 -0
  119. package/dist/tools/to-workflow-run-activity-output.js.map +1 -0
  120. package/dist/tools/to-workflow-run-output.d.ts +11 -0
  121. package/dist/tools/to-workflow-run-output.js +12 -0
  122. package/dist/tools/to-workflow-run-output.js.map +1 -0
  123. package/dist/transport/AppProcessJsonRpc.js +59 -0
  124. package/dist/transport/AppProcessJsonRpc.js.map +1 -0
  125. package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.d.ts +9 -0
  126. package/dist/use-cases/{WorkflowRunBuildHistory.usecase.js → BuildWorkflowRunActivityHistory.usecase.js} +18 -16
  127. package/dist/use-cases/BuildWorkflowRunActivityHistory.usecase.js.map +1 -0
  128. package/dist/use-cases/CreateWorkflowRun.usecase.d.ts +6 -6
  129. package/dist/use-cases/CreateWorkflowRun.usecase.js +20 -21
  130. package/dist/use-cases/CreateWorkflowRun.usecase.js.map +1 -1
  131. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.d.ts +9 -3
  132. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js +45 -39
  133. package/dist/use-cases/CreateWorkflowRunAsyncActivity.usecase.js.map +1 -1
  134. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.d.ts +9 -0
  135. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js +43 -0
  136. package/dist/use-cases/EnqueueWorkflowRunNextTick.usecase.js.map +1 -0
  137. package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.d.ts +9 -0
  138. package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js +47 -0
  139. package/dist/use-cases/ExecuteWorkflowRunActivity.usecase.js.map +1 -0
  140. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.d.ts +22 -0
  141. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js +117 -0
  142. package/dist/use-cases/ExecuteWorkflowRunAsyncActivity.usecase.js.map +1 -0
  143. package/dist/use-cases/NextTickWorkflowRun.usecase.d.ts +16 -7
  144. package/dist/use-cases/NextTickWorkflowRun.usecase.js +139 -130
  145. package/dist/use-cases/NextTickWorkflowRun.usecase.js.map +1 -1
  146. package/dist/use-cases/RunWorkflow.usecase.d.ts +10 -0
  147. package/dist/use-cases/RunWorkflow.usecase.js +46 -0
  148. package/dist/use-cases/RunWorkflow.usecase.js.map +1 -0
  149. package/dist/use-cases/WorkflowRunActivityFind.usecase.d.ts +34 -0
  150. package/dist/use-cases/WorkflowRunActivityFind.usecase.js +49 -0
  151. package/dist/use-cases/WorkflowRunActivityFind.usecase.js.map +1 -0
  152. package/dist/use-cases/WorkflowRunActivityFindById.usecase.d.ts +34 -0
  153. package/dist/use-cases/WorkflowRunActivityFindById.usecase.js +60 -0
  154. package/dist/use-cases/WorkflowRunActivityFindById.usecase.js.map +1 -0
  155. package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.d.ts +12 -4
  156. package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.js +41 -27
  157. package/dist/use-cases/WorkflowRunAsyncActivityAdvance.usecase.js.map +1 -1
  158. package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.d.ts +24 -0
  159. package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js +56 -0
  160. package/dist/use-cases/WorkflowRunAsyncActivityPendingFind.usecase.js.map +1 -0
  161. package/dist/use-cases/WorkflowRunFind.usecase.d.ts +17 -0
  162. package/dist/use-cases/WorkflowRunFind.usecase.js +28 -0
  163. package/dist/use-cases/WorkflowRunFind.usecase.js.map +1 -0
  164. package/dist/use-cases/WorkflowRunFindById.usecase.d.ts +19 -0
  165. package/dist/use-cases/WorkflowRunFindById.usecase.js +45 -0
  166. package/dist/use-cases/WorkflowRunFindById.usecase.js.map +1 -0
  167. package/dist/workers/app-process.js +10 -1
  168. package/dist/workers/app-process.js.map +1 -1
  169. package/package.json +15 -5
  170. package/.ai/skills/framework-dev/SKILL.md +0 -348
  171. package/dist/DevServer.d.ts +0 -24
  172. package/dist/DevServer.js +0 -87
  173. package/dist/DevServer.js.map +0 -1
  174. package/dist/models/InMemoryDatabase.d.ts +0 -20
  175. package/dist/models/InMemoryDatabase.js +0 -111
  176. package/dist/models/InMemoryDatabase.js.map +0 -1
  177. package/dist/services/BuildWorkflowRunResult.service.d.ts +0 -8
  178. package/dist/services/BuildWorkflowRunResult.service.js +0 -49
  179. package/dist/services/BuildWorkflowRunResult.service.js.map +0 -1
  180. package/dist/tools/is-workflow-waiting.d.ts +0 -4
  181. package/dist/tools/is-workflow-waiting.js +0 -12
  182. package/dist/tools/is-workflow-waiting.js.map +0 -1
  183. package/dist/transport/DevServerJsonRpc.js +0 -42
  184. package/dist/transport/DevServerJsonRpc.js.map +0 -1
  185. package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.d.ts +0 -14
  186. package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.js +0 -64
  187. package/dist/use-cases/CallbackWorkflowRunAsyncActivity.usecase.js.map +0 -1
  188. package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.d.ts +0 -8
  189. package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.js +0 -40
  190. package/dist/use-cases/TimeoutWorkflowRunAsyncActivity.usecase.js.map +0 -1
  191. package/dist/use-cases/WorkflowRunAsyncActivity.usecase.d.ts +0 -7
  192. package/dist/use-cases/WorkflowRunAsyncActivity.usecase.js +0 -46
  193. package/dist/use-cases/WorkflowRunAsyncActivity.usecase.js.map +0 -1
  194. package/dist/use-cases/WorkflowRunBuildHistory.usecase.d.ts +0 -8
  195. package/dist/use-cases/WorkflowRunBuildHistory.usecase.js.map +0 -1
  196. package/dist/use-cases/WorkflowRunSyncActivity.usecase.d.ts +0 -4
  197. package/dist/use-cases/WorkflowRunSyncActivity.usecase.js +0 -28
  198. package/dist/use-cases/WorkflowRunSyncActivity.usecase.js.map +0 -1
  199. /package/dist/transport/{DevServerJsonRpc.d.ts → AppProcessJsonRpc.d.ts} +0 -0
@@ -0,0 +1,40 @@
1
+ import { DEV_ROUTES_PREFIX, PROJECTS_ROUTES_PREFIX, } from '../constants/server.js';
2
+ export function formatRoutes({ baseUrl, manifest, routes, }) {
3
+ const unique = new Map();
4
+ for (const route of routes) {
5
+ if (route.method === 'ALL')
6
+ continue;
7
+ unique.set(`${route.method} ${route.path}`, route);
8
+ }
9
+ const projectRoutes = [];
10
+ const internalRoutes = [];
11
+ for (const { method, path } of unique.values()) {
12
+ const line = (path) => ` ${method.padEnd(6)} ${path}`;
13
+ if (path.startsWith(DEV_ROUTES_PREFIX)) {
14
+ internalRoutes.push(line(path));
15
+ continue;
16
+ }
17
+ if (!path.startsWith(PROJECTS_ROUTES_PREFIX))
18
+ continue;
19
+ const withProject = path.replace(':projectId', manifest.id);
20
+ if (!withProject.includes(':workflowId')) {
21
+ projectRoutes.push(line(withProject));
22
+ continue;
23
+ }
24
+ for (const workflow of manifest.workflows)
25
+ projectRoutes.push(line(withProject.replace(':workflowId', String(workflow.id))));
26
+ }
27
+ return [
28
+ `[server] app "${manifest.id}" ready (${manifest.workflows.length} workflows) — runs reset`,
29
+ '',
30
+ ` Base URL ${baseUrl}`,
31
+ ` Panel ${baseUrl}/`,
32
+ '',
33
+ ' Routes (authorization required)',
34
+ ...projectRoutes,
35
+ '',
36
+ ' Internal routes (no authorization)',
37
+ ...internalRoutes,
38
+ ].join('\n');
39
+ }
40
+ //# sourceMappingURL=format-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-routes.js","sourceRoot":"","sources":["../../src/tools/format-routes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAA;AAQ/B,MAAM,UAAU,YAAY,CAAC,EAC3B,OAAO,EACP,QAAQ,EACR,MAAM,GACc;IACpB,MAAM,MAAM,GAAG,IAAI,GAAG,EAA4C,CAAA;IAElE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK;YAAE,SAAQ;QAEpC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,cAAc,GAAa,EAAE,CAAA;IAEnC,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAA;QAEhE,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACvC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YAE/B,SAAQ;QACV,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAAE,SAAQ;QAEtD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;QAE3D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACzC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAA;YAErC,SAAQ;QACV,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS;YACvC,aAAa,CAAC,IAAI,CAChB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAC9D,CAAA;IACL,CAAC;IAED,OAAO;QACL,iBAAiB,QAAQ,CAAC,EAAE,YAAY,QAAQ,CAAC,SAAS,CAAC,MAAM,0BAA0B;QAC3F,EAAE;QACF,gBAAgB,OAAO,EAAE;QACzB,gBAAgB,OAAO,GAAG;QAC1B,EAAE;QACF,mCAAmC;QACnC,GAAG,aAAa;QAChB,EAAE;QACF,sCAAsC;QACtC,GAAG,cAAc;KAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const replace: (text: string, context: unknown) => string;
@@ -0,0 +1,14 @@
1
+ import DotObject from 'dot-object';
2
+ const rule = /<< ?([0-9a-z_.[\]-]+) ?>>/gi;
3
+ export const replace = (text, context) => {
4
+ return text.replace(rule, (_, pattern) => {
5
+ const dot = new DotObject('.', true, true, true);
6
+ const value = dot.pick(pattern, context);
7
+ if (value instanceof Date)
8
+ return value.toISOString();
9
+ if (typeof value === 'object' && value !== null)
10
+ return JSON.stringify(value);
11
+ return String(value);
12
+ });
13
+ };
14
+ //# sourceMappingURL=replace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace.js","sourceRoot":"","sources":["../../src/tools/replace.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAA;AAElC,MAAM,IAAI,GAAG,6BAA6B,CAAA;AAE1C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAU,EAAE;IAChE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAe,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAEhD,MAAM,KAAK,GAAY,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAEjD,IAAI,KAAK,YAAY,IAAI;YAAE,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;QAErD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAE9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ export interface RejectedReason {
2
+ message: string;
3
+ stack?: string;
4
+ }
5
+ export declare function toRejectedReason(error: unknown): RejectedReason;
@@ -0,0 +1,11 @@
1
+ export function toRejectedReason(error) {
2
+ if (!(error instanceof Error))
3
+ return { message: String(error) };
4
+ const stack = [];
5
+ for (let current = error; current instanceof Error; current = current.cause) {
6
+ const text = current.stack ?? `${current.name}: ${current.message}`;
7
+ stack.push(stack.length ? `caused by: ${text}` : text);
8
+ }
9
+ return { message: error.message, stack: stack.join('\n') };
10
+ }
11
+ //# sourceMappingURL=to-rejected-reason.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-rejected-reason.js","sourceRoot":"","sources":["../../src/tools/to-rejected-reason.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAEhE,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KACE,IAAI,OAAO,GAAY,KAAK,EAC5B,OAAO,YAAY,KAAK,EACxB,OAAO,GAAG,OAAO,CAAC,KAAK,EACvB,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAA;QAEnE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AAC5D,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { AsyncActivityPendingStatus, WorkflowRunActivity } from '../models/WorkflowRunActivity.js';
2
+ export interface WorkflowRunActivityOutputContext {
3
+ pendingStatuses: ReadonlyMap<string, AsyncActivityPendingStatus>;
4
+ startedRuns: ReadonlySet<string>;
5
+ }
6
+ export declare function toWorkflowRunActivityOutput(activity: WorkflowRunActivity, { pendingStatuses, startedRuns }: WorkflowRunActivityOutputContext): {
7
+ kind: "sync";
8
+ id: string;
9
+ type: string;
10
+ status: import("../models/WorkflowRunActivity.js").WorkflowRunActivityStatus;
11
+ settledAt: Date | null;
12
+ hasChildren: boolean;
13
+ createdAt: Date;
14
+ } | {
15
+ kind: "async";
16
+ pendingStatus: AsyncActivityPendingStatus | null;
17
+ id: string;
18
+ type: string;
19
+ status: import("../models/WorkflowRunActivity.js").WorkflowRunActivityStatus;
20
+ settledAt: Date | null;
21
+ hasChildren: boolean;
22
+ createdAt: Date;
23
+ };
24
+ export type WorkflowRunActivityOutput = ReturnType<typeof toWorkflowRunActivityOutput>;
@@ -0,0 +1,18 @@
1
+ export function toWorkflowRunActivityOutput(activity, { pendingStatuses, startedRuns }) {
2
+ const common = {
3
+ id: activity.id,
4
+ type: activity.type,
5
+ status: activity.status,
6
+ settledAt: activity.completedAt ?? null,
7
+ hasChildren: startedRuns.has(activity.id),
8
+ createdAt: activity.createdAt,
9
+ };
10
+ if (activity.kind === 'sync')
11
+ return { ...common, kind: 'sync' };
12
+ return {
13
+ ...common,
14
+ kind: 'async',
15
+ pendingStatus: pendingStatuses.get(activity.id) ?? null,
16
+ };
17
+ }
18
+ //# sourceMappingURL=to-workflow-run-activity-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-workflow-run-activity-output.js","sourceRoot":"","sources":["../../src/tools/to-workflow-run-activity-output.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,2BAA2B,CACzC,QAA6B,EAC7B,EAAE,eAAe,EAAE,WAAW,EAAoC;IAElE,MAAM,MAAM,GAAG;QACb,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,SAAS,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;QACvC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAA;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAe,EAAE,CAAA;IAEzE,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,OAAgB;QACtB,aAAa,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI;KACxD,CAAA;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { WorkflowRun } from '../models/WorkflowRun.js';
2
+ export declare function toWorkflowRunOutput(run: WorkflowRun): {
3
+ id: string;
4
+ workflow: string;
5
+ status: import("../models/WorkflowRun.js").WorkflowRunStatus;
6
+ parentWorkflowRun: string | null;
7
+ parentWorkflowRunActivity: string | null;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ };
11
+ export type WorkflowRunOutput = ReturnType<typeof toWorkflowRunOutput>;
@@ -0,0 +1,12 @@
1
+ export function toWorkflowRunOutput(run) {
2
+ return {
3
+ id: run.id,
4
+ workflow: run.workflow,
5
+ status: run.status,
6
+ parentWorkflowRun: run.parentWorkflowRunId ?? null,
7
+ parentWorkflowRunActivity: run.parentWorkflowRunActivityId ?? null,
8
+ createdAt: run.createdAt,
9
+ updatedAt: run.updatedAt,
10
+ };
11
+ }
12
+ //# sourceMappingURL=to-workflow-run-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-workflow-run-output.js","sourceRoot":"","sources":["../../src/tools/to-workflow-run-output.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,GAAgB;IAClD,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,IAAI,IAAI;QAClD,yBAAyB,EAAE,GAAG,CAAC,2BAA2B,IAAI,IAAI;QAClE,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAA;AACH,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { container } from 'pleroma';
2
+ import Type from 'typebox';
3
+ import { JSONRPCServerMethod } from '../models/JSONRPCServer.js';
4
+ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/WorkflowRunAsyncActivityPending.repository.js';
5
+ import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
6
+ import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
7
+ const WorkflowRunsFindQuery = Type.Object({
8
+ status: Type.Optional(Type.Union([
9
+ Type.Literal('running'),
10
+ Type.Literal('fulfilled'),
11
+ Type.Literal('rejected'),
12
+ ])),
13
+ workflow: Type.Optional(Type.String()),
14
+ id: Type.Optional(Type.String({ minLength: 1 })),
15
+ parentRun: Type.Optional(Type.String({ minLength: 1 })),
16
+ parentActivity: Type.Optional(Type.String({ minLength: 1 })),
17
+ rootOnly: Type.Optional(Type.Boolean()),
18
+ createdAfter: Type.Optional(Type.String({ minLength: 1 })),
19
+ createdBefore: Type.Optional(Type.String({ minLength: 1 })),
20
+ limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 100 })),
21
+ offset: Type.Optional(Type.Integer({ minimum: 0 })),
22
+ });
23
+ const PageQuery = Type.Object({
24
+ limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 100 })),
25
+ offset: Type.Optional(Type.Integer({ minimum: 0 })),
26
+ });
27
+ export const handlers = new Set();
28
+ handlers.add(() => {
29
+ return new JSONRPCServerMethod('workflow.run', { schema: [Type.String(), Type.Any()] }, (workflowId, input) => container.resolve(WorkflowRunFacade).run(workflowId, input));
30
+ });
31
+ handlers.add(() => {
32
+ return new JSONRPCServerMethod('workflow.runs.find', { schema: [WorkflowRunsFindQuery] }, query => container.resolve(WorkflowRunFacade).find(query));
33
+ });
34
+ handlers.add(() => {
35
+ return new JSONRPCServerMethod('workflow.runs.findById', { schema: [Type.String()] }, (id) => container.resolve(WorkflowRunFacade).findById(id));
36
+ });
37
+ handlers.add(() => {
38
+ return new JSONRPCServerMethod('workflow.runs.activities.find', { schema: [Type.String(), PageQuery] }, (runId, query) => container.resolve(WorkflowRunFacade).findActivities(runId, query));
39
+ });
40
+ handlers.add(() => {
41
+ return new JSONRPCServerMethod('workflow.runs.activities.pendings.find', { schema: [Type.String(), Type.String(), PageQuery] }, (runId, activityId, query) => container
42
+ .resolve(WorkflowRunFacade)
43
+ .findActivityPendings(runId, activityId, query));
44
+ });
45
+ handlers.add(() => {
46
+ return new JSONRPCServerMethod('workflow.runs.activities.findById', { schema: [Type.String(), Type.String()] }, (runId, activityId) => container.resolve(WorkflowRunFacade).findActivityById(runId, activityId));
47
+ });
48
+ handlers.add(() => {
49
+ return new JSONRPCServerMethod('workflow.runs.logs.find', { schema: [Type.String(), PageQuery] }, (runId, query) => container.resolve(WorkflowRunFacade).findLogs(runId, query));
50
+ });
51
+ handlers.add(() => {
52
+ return new JSONRPCServerMethod('workflow.async-activities.advance', { schema: [Type.String(), Type.Any()] }, (id, payload) => container.resolve(WorkflowRunAsyncActivityFacade).advance(id, payload));
53
+ });
54
+ handlers.add(() => {
55
+ return new JSONRPCServerMethod('workflow.async-activities.waiting.list', { schema: [PageQuery] }, query => container
56
+ .resolve(WorkflowRunAsyncActivityPendingRepository)
57
+ .findWaiting(query));
58
+ });
59
+ //# sourceMappingURL=AppProcessJsonRpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppProcessJsonRpc.js","sourceRoot":"","sources":["../../src/transport/AppProcessJsonRpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { HistoryItem } from '@t4h.framework/core';
2
+ import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
3
+ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/WorkflowRunAsyncActivityPending.repository.js';
4
+ export declare class BuildWorkflowRunActivityHistory {
5
+ private readonly workflowRunActivityRepository;
6
+ private readonly workflowRunAsyncActivityPendingRepository;
7
+ constructor(workflowRunActivityRepository: WorkflowRunActivityRepository, workflowRunAsyncActivityPendingRepository: WorkflowRunAsyncActivityPendingRepository);
8
+ build(runId: string): Promise<HistoryItem[]>;
9
+ }
@@ -8,21 +8,21 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
8
  return function (target, key) { decorator(target, key, paramIndex); }
9
9
  };
10
10
  import { Inject, Injectable } from 'pleroma';
11
- import { WorkflowRun } from '../models/WorkflowRun.js';
12
11
  import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
13
- let WorkflowRunBuildHistory = class WorkflowRunBuildHistory {
12
+ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/WorkflowRunAsyncActivityPending.repository.js';
13
+ let BuildWorkflowRunActivityHistory = class BuildWorkflowRunActivityHistory {
14
14
  workflowRunActivityRepository;
15
- constructor(workflowRunActivityRepository) {
15
+ workflowRunAsyncActivityPendingRepository;
16
+ constructor(workflowRunActivityRepository, workflowRunAsyncActivityPendingRepository) {
16
17
  this.workflowRunActivityRepository = workflowRunActivityRepository;
18
+ this.workflowRunAsyncActivityPendingRepository = workflowRunAsyncActivityPendingRepository;
17
19
  }
18
- build(run) {
19
- const activities = this.workflowRunActivityRepository.findByRunId(run.id);
20
- return activities.map(activity => {
21
- if (activity.type === 'sync')
20
+ async build(runId) {
21
+ const activities = await this.workflowRunActivityRepository.findByRunId(runId);
22
+ return Promise.all(activities.map(async (activity) => {
23
+ if (activity.kind === 'sync')
22
24
  return { id: activity.id, type: 'sync', output: activity.output };
23
- if (!activity.asyncActivity)
24
- throw new Error(`Async activity record not found: ${activity.id}`);
25
- const lastPending = activity.asyncActivity.lastPendingAsyncActivity;
25
+ const lastPending = await this.workflowRunAsyncActivityPendingRepository.findLastByActivityId(activity.id);
26
26
  if (!lastPending)
27
27
  throw new Error(`Last pending not found for async activity: ${activity.id}`);
28
28
  return {
@@ -30,13 +30,15 @@ let WorkflowRunBuildHistory = class WorkflowRunBuildHistory {
30
30
  type: 'async',
31
31
  status: lastPending.status,
32
32
  output: activity.output,
33
+ timeoutAt: lastPending.timeoutAt ?? null,
33
34
  };
34
- });
35
+ }));
35
36
  }
36
37
  };
37
- WorkflowRunBuildHistory = __decorate([
38
+ BuildWorkflowRunActivityHistory = __decorate([
38
39
  Injectable(),
39
- __param(0, Inject(() => WorkflowRunActivityRepository))
40
- ], WorkflowRunBuildHistory);
41
- export { WorkflowRunBuildHistory };
42
- //# sourceMappingURL=WorkflowRunBuildHistory.usecase.js.map
40
+ __param(0, Inject(() => WorkflowRunActivityRepository)),
41
+ __param(1, Inject(() => WorkflowRunAsyncActivityPendingRepository))
42
+ ], BuildWorkflowRunActivityHistory);
43
+ export { BuildWorkflowRunActivityHistory };
44
+ //# sourceMappingURL=BuildWorkflowRunActivityHistory.usecase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildWorkflowRunActivityHistory.usecase.js","sourceRoot":"","sources":["../../src/use-cases/BuildWorkflowRunActivityHistory.usecase.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACjG,OAAO,EAAE,yCAAyC,EAAE,MAAM,+DAA+D,CAAA;AAGlH,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IAGvB;IAGA;IALnB,YAEmB,6BAA4D,EAG5D,yCAAoF;QAHpF,kCAA6B,GAA7B,6BAA6B,CAA+B;QAG5D,8CAAyC,GAAzC,yCAAyC,CAA2C;IACpG,CAAC;IAEG,KAAK,CAAC,KAAK,CAAC,KAAa;QAC9B,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAE7D,OAAO,OAAO,CAAC,GAAG,CAChB,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAwB,EAAE;YACtD,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;gBAC1B,OAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;YAEnE,MAAM,WAAW,GACf,MAAM,IAAI,CAAC,yCAAyC,CAAC,oBAAoB,CACvE,QAAQ,CAAC,EAAE,CACZ,CAAA;YAEH,IAAI,CAAC,WAAW;gBACd,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,CAAC,EAAE,EAAE,CAC5D,CAAA;YAEH,OAAO;gBACL,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,WAAW,CAAC,SAAS,IAAI,IAAI;aACzC,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;CACF,CAAA;AAtCY,+BAA+B;IAD3C,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;IAG3C,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,yCAAyC,CAAC,CAAA;GAL/C,+BAA+B,CAsC3C"}
@@ -1,16 +1,16 @@
1
1
  import { WorkflowRun } from '../models/WorkflowRun.js';
2
2
  import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
3
- import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
3
+ import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
4
4
  export interface CreateWorkflowRunOptions {
5
5
  id?: string;
6
6
  parentWorkflowRunId?: string;
7
7
  parentWorkflowRunActivityId?: string;
8
- batchIndex?: number;
9
- batchSize?: number;
10
8
  }
9
+ export type CreateWorkflowRunManyOptions = Omit<CreateWorkflowRunOptions, 'id'>;
11
10
  export declare class CreateWorkflowRun {
12
11
  private readonly workflowRunRepository;
13
- private readonly workflowRunActivityRepository;
14
- constructor(workflowRunRepository: WorkflowRunRepository, workflowRunActivityRepository: WorkflowRunActivityRepository);
15
- create(workflowId: string, input: unknown, options?: CreateWorkflowRunOptions): WorkflowRun;
12
+ private readonly events;
13
+ constructor(workflowRunRepository: WorkflowRunRepository, events: WorkflowRunEventsService);
14
+ create(workflowId: string, input: unknown, options?: CreateWorkflowRunOptions): Promise<WorkflowRun>;
15
+ createMany(workflowId: string, inputs: readonly unknown[], options?: CreateWorkflowRunManyOptions): Promise<WorkflowRun[]>;
16
16
  }
@@ -10,37 +10,36 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
10
10
  import { Inject, Injectable } from 'pleroma';
11
11
  import { WorkflowRun } from '../models/WorkflowRun.js';
12
12
  import { WorkflowRunRepository } from '../repositories/WorkflowRun.repository.js';
13
- import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
13
+ import { WorkflowRunEventsService } from '../services/WorkflowRunEvents.service.js';
14
14
  let CreateWorkflowRun = class CreateWorkflowRun {
15
15
  workflowRunRepository;
16
- workflowRunActivityRepository;
17
- constructor(workflowRunRepository, workflowRunActivityRepository) {
16
+ events;
17
+ constructor(workflowRunRepository, events) {
18
18
  this.workflowRunRepository = workflowRunRepository;
19
- this.workflowRunActivityRepository = workflowRunActivityRepository;
19
+ this.events = events;
20
20
  }
21
- create(workflowId, input, options) {
22
- const run = new WorkflowRun(workflowId, input, options?.id);
23
- if (options?.parentWorkflowRunId) {
24
- const parentRun = this.workflowRunRepository.findById(options.parentWorkflowRunId);
25
- if (parentRun)
26
- run.parent = parentRun;
27
- }
28
- if (options?.parentWorkflowRunActivityId) {
29
- run.parentWorkflowRunActivityId = options.parentWorkflowRunActivityId;
30
- const parentActivity = this.workflowRunActivityRepository.findById(options.parentWorkflowRunActivityId);
31
- if (parentActivity)
32
- run.parentActivity = parentActivity;
33
- }
34
- run.batchIndex = options?.batchIndex;
35
- run.batchSize = options?.batchSize;
36
- this.workflowRunRepository.save(run);
21
+ async create(workflowId, input, options = {}) {
22
+ const run = new WorkflowRun(workflowId, input, options);
23
+ await this.workflowRunRepository.create(run);
24
+ this.events.runCreated(run);
37
25
  return run;
38
26
  }
27
+ async createMany(workflowId, inputs, options = {}) {
28
+ const runs = inputs.map((input, batchIndex) => new WorkflowRun(workflowId, input, {
29
+ ...options,
30
+ batchIndex,
31
+ batchSize: inputs.length,
32
+ }));
33
+ await this.workflowRunRepository.createMany(runs);
34
+ for (const run of runs)
35
+ this.events.runCreated(run);
36
+ return runs;
37
+ }
39
38
  };
40
39
  CreateWorkflowRun = __decorate([
41
40
  Injectable(),
42
41
  __param(0, Inject(() => WorkflowRunRepository)),
43
- __param(1, Inject(() => WorkflowRunActivityRepository))
42
+ __param(1, Inject(() => WorkflowRunEventsService))
44
43
  ], CreateWorkflowRun);
45
44
  export { CreateWorkflowRun };
46
45
  //# sourceMappingURL=CreateWorkflowRun.usecase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateWorkflowRun.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRun.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AAW1F,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAGT;IAGA;IALnB,YAEmB,qBAA4C,EAG5C,6BAA4D;QAH5D,0BAAqB,GAArB,qBAAqB,CAAuB;QAG5C,kCAA6B,GAA7B,6BAA6B,CAA+B;IAC5E,CAAC;IAEG,MAAM,CACX,UAAkB,EAClB,KAAc,EACd,OAAkC;QAElC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;QAE3D,IAAI,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CACnD,OAAO,CAAC,mBAAmB,CAC5B,CAAA;YAED,IAAI,SAAS;gBAAE,GAAG,CAAC,MAAM,GAAG,SAAS,CAAA;QACvC,CAAC;QAED,IAAI,OAAO,EAAE,2BAA2B,EAAE,CAAC;YACzC,GAAG,CAAC,2BAA2B,GAAG,OAAO,CAAC,2BAA2B,CAAA;YAErE,MAAM,cAAc,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAChE,OAAO,CAAC,2BAA2B,CACpC,CAAA;YAED,IAAI,cAAc;gBAAE,GAAG,CAAC,cAAc,GAAG,cAAc,CAAA;QACzD,CAAC;QAED,GAAG,CAAC,UAAU,GAAG,OAAO,EAAE,UAAU,CAAA;QACpC,GAAG,CAAC,SAAS,GAAG,OAAO,EAAE,SAAS,CAAA;QAElC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEpC,OAAO,GAAG,CAAA;IACZ,CAAC;CACF,CAAA;AAzCY,iBAAiB;IAD7B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAA;IAGnC,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;GALnC,iBAAiB,CAyC7B"}
1
+ {"version":3,"file":"CreateWorkflowRun.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRun.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAA;AACjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAA;AAW5E,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAGT;IAGA;IALnB,YAEmB,qBAA4C,EAG5C,MAAgC;QAHhC,0BAAqB,GAArB,qBAAqB,CAAuB;QAG5C,WAAM,GAAN,MAAM,CAA0B;IAChD,CAAC;IAEG,KAAK,CAAC,MAAM,CACjB,UAAkB,EAClB,KAAc,EACd,UAAoC,EAAE;QAEtC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAEvD,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE5C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAE3B,OAAO,GAAG,CAAA;IACZ,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,UAAkB,EAClB,MAA0B,EAC1B,UAAwC,EAAE;QAE1C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CACrB,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CACpB,IAAI,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE;YACjC,GAAG,OAAO;YACV,UAAU;YACV,SAAS,EAAE,MAAM,CAAC,MAAM;SACzB,CAAC,CACL,CAAA;QAED,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QAEjD,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AA3CY,iBAAiB;IAD7B,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,CAAA;IAGnC,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,CAAA;GAL9B,iBAAiB,CA2C7B"}
@@ -1,9 +1,15 @@
1
- import { WorkflowRunActivity } from '../models/WorkflowRunActivity.js';
1
+ import { WorkflowRunAsyncActivityPending, type WorkflowRunActivity } from '../models/WorkflowRunActivity.js';
2
+ import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
3
+ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/WorkflowRunAsyncActivityPending.repository.js';
4
+ import { ActivityRegistryService } from '../services/ActivityRegistry.service.js';
2
5
  import { TimeoutSchedulerService } from '../services/TimeoutScheduler.service.js';
3
6
  import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
4
7
  export declare class CreateWorkflowRunAsyncActivity {
8
+ private readonly workflowRunActivityRepository;
9
+ private readonly workflowRunAsyncActivityPendingRepository;
10
+ private readonly activityRegistry;
5
11
  private readonly timeoutScheduler;
6
12
  private readonly workflowRunAsyncActivity;
7
- constructor(timeoutScheduler: TimeoutSchedulerService, workflowRunAsyncActivity: WorkflowRunAsyncActivityFacade);
8
- create(activity: WorkflowRunActivity, input: unknown): Promise<unknown>;
13
+ constructor(workflowRunActivityRepository: WorkflowRunActivityRepository, workflowRunAsyncActivityPendingRepository: WorkflowRunAsyncActivityPendingRepository, activityRegistry: ActivityRegistryService, timeoutScheduler: TimeoutSchedulerService, workflowRunAsyncActivity: WorkflowRunAsyncActivityFacade);
14
+ create(activity: WorkflowRunActivity, input: unknown): Promise<WorkflowRunAsyncActivityPending>;
9
15
  }
@@ -10,61 +10,67 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
10
10
  import { AsyncActivity, AsyncActivityResultFulfilled, AsyncActivityResultPending, AsyncActivityResultRejected, Claim, Internals, } from '@t4h.framework/core';
11
11
  import { Inject, Injectable } from 'pleroma';
12
12
  import { claims } from '../claims.js';
13
- import { WorkflowRunActivity, WorkflowRunAsyncActivityPending, } from '../models/WorkflowRunActivity.js';
13
+ import { WorkflowRunAsyncActivityPending, } from '../models/WorkflowRunActivity.js';
14
+ import { WorkflowRunActivityRepository } from '../repositories/WorkflowRunActivity.repository.js';
15
+ import { WorkflowRunAsyncActivityPendingRepository } from '../repositories/WorkflowRunAsyncActivityPending.repository.js';
16
+ import { ActivityRegistryService } from '../services/ActivityRegistry.service.js';
14
17
  import { TimeoutSchedulerService } from '../services/TimeoutScheduler.service.js';
15
18
  import { WorkflowRunAsyncActivityFacade } from '../services/WorkflowRunAsyncActivityFacade.service.js';
16
19
  import { env } from '../workers/app-process.js';
17
20
  let CreateWorkflowRunAsyncActivity = class CreateWorkflowRunAsyncActivity {
21
+ workflowRunActivityRepository;
22
+ workflowRunAsyncActivityPendingRepository;
23
+ activityRegistry;
18
24
  timeoutScheduler;
19
25
  workflowRunAsyncActivity;
20
- constructor(timeoutScheduler, workflowRunAsyncActivity) {
26
+ constructor(workflowRunActivityRepository, workflowRunAsyncActivityPendingRepository, activityRegistry, timeoutScheduler, workflowRunAsyncActivity) {
27
+ this.workflowRunActivityRepository = workflowRunActivityRepository;
28
+ this.workflowRunAsyncActivityPendingRepository = workflowRunAsyncActivityPendingRepository;
29
+ this.activityRegistry = activityRegistry;
21
30
  this.timeoutScheduler = timeoutScheduler;
22
31
  this.workflowRunAsyncActivity = workflowRunAsyncActivity;
23
32
  }
24
33
  async create(activity, input) {
25
- return await Claim.run(claims, async () => {
26
- if (!activity.asyncActivity)
27
- throw new Error(`Activity is not an async activity: ${activity.id}`);
28
- const Activity = activity.constructable;
29
- const bootstrap = await Internals.runActivity(Activity, { claims, env, id: activity.id }, async (activity) => {
30
- if (!(activity instanceof AsyncActivity))
31
- throw new Error(`Activity is not an async activity: ${activity.constructor.name}`);
32
- return activity.bootstrap(input);
34
+ const Activity = this.activityRegistry.getActivityConstructor(activity.type);
35
+ const bootstrap = await Claim.run(claims, () => Internals.runActivity(Activity, { claims, env, id: activity.id }, async (instance) => {
36
+ if (!(instance instanceof AsyncActivity))
37
+ throw new Error(`Activity is not an async activity: ${instance.constructor.name}`);
38
+ return instance.bootstrap(input);
39
+ }));
40
+ if (bootstrap instanceof AsyncActivityResultPending) {
41
+ const pending = new WorkflowRunAsyncActivityPending(activity.id, 0, {
42
+ status: 'pending',
43
+ schema: bootstrap.schema,
44
+ timeoutAt: bootstrap.timeoutAt,
45
+ result: bootstrap.payload,
33
46
  });
34
- const asyncActivity = activity.asyncActivity;
35
- const pending = new WorkflowRunAsyncActivityPending(asyncActivity);
36
- if (bootstrap instanceof AsyncActivityResultPending) {
37
- Object.assign(pending, {
38
- status: 'pending',
39
- schema: bootstrap.schema,
40
- timeoutAt: bootstrap.timeoutAt,
41
- bootstrap,
42
- });
43
- asyncActivity.pendingAsyncActivities.push(pending);
44
- if (bootstrap.timeoutAt)
45
- this.timeoutScheduler.schedule(pending.id, bootstrap.timeoutAt, () => this.workflowRunAsyncActivity.timeout(asyncActivity, pending));
46
- return;
47
- }
48
- const isFulfilled = bootstrap instanceof AsyncActivityResultFulfilled;
49
- const isRejected = bootstrap instanceof AsyncActivityResultRejected;
50
- if (!isFulfilled && !isRejected)
51
- throw new Error('Unexpected bootstrap result', { cause: bootstrap });
52
- const status = isFulfilled ? 'fulfilled' : 'rejected';
53
- Object.assign(pending, {
54
- status,
55
- bootstrap: new AsyncActivityResultPending(),
56
- });
57
- asyncActivity.pendingAsyncActivities.push(pending);
58
- asyncActivity.status = status;
59
- activity.output = bootstrap.payload;
60
- return activity.output;
47
+ await this.workflowRunAsyncActivityPendingRepository.create(pending);
48
+ if (pending.timeoutAt)
49
+ this.timeoutScheduler.schedule(pending.id, pending.timeoutAt, () => this.workflowRunAsyncActivity.execute(pending.id));
50
+ return pending;
51
+ }
52
+ const isFulfilled = bootstrap instanceof AsyncActivityResultFulfilled;
53
+ const isRejected = bootstrap instanceof AsyncActivityResultRejected;
54
+ if (!isFulfilled && !isRejected)
55
+ throw new Error('Unexpected bootstrap result', { cause: bootstrap });
56
+ const pending = new WorkflowRunAsyncActivityPending(activity.id, 0, {
57
+ status: isFulfilled ? 'fulfilled' : 'rejected',
61
58
  });
59
+ await this.workflowRunAsyncActivityPendingRepository.create(pending);
60
+ if (isFulfilled)
61
+ await this.workflowRunActivityRepository.complete(activity.id, bootstrap.payload);
62
+ if (isRejected)
63
+ await this.workflowRunActivityRepository.fail(activity.id, bootstrap.payload);
64
+ return pending;
62
65
  }
63
66
  };
64
67
  CreateWorkflowRunAsyncActivity = __decorate([
65
68
  Injectable(),
66
- __param(0, Inject(() => TimeoutSchedulerService)),
67
- __param(1, Inject(() => WorkflowRunAsyncActivityFacade))
69
+ __param(0, Inject(() => WorkflowRunActivityRepository)),
70
+ __param(1, Inject(() => WorkflowRunAsyncActivityPendingRepository)),
71
+ __param(2, Inject(() => ActivityRegistryService)),
72
+ __param(3, Inject(() => TimeoutSchedulerService)),
73
+ __param(4, Inject(() => WorkflowRunAsyncActivityFacade))
68
74
  ], CreateWorkflowRunAsyncActivity);
69
75
  export { CreateWorkflowRunAsyncActivity };
70
76
  //# sourceMappingURL=CreateWorkflowRunAsyncActivity.usecase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CreateWorkflowRunAsyncActivity.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRunAsyncActivity.usecase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CreateWorkflowRunAsyncActivity.usecase.js","sourceRoot":"","sources":["../../src/use-cases/CreateWorkflowRunAsyncActivity.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,EACL,SAAS,GACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EACL,+BAA+B,GAEhC,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAA;AACjG,OAAO,EAAE,yCAAyC,EAAE,MAAM,+DAA+D,CAAA;AACzH,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uDAAuD,CAAA;AACtG,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAA;AAGxC,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;IAGtB;IAGA;IAGA;IAGA;IAGA;IAdnB,YAEmB,6BAA4D,EAG5D,yCAAoF,EAGpF,gBAAyC,EAGzC,gBAAyC,EAGzC,wBAAwD;QAZxD,kCAA6B,GAA7B,6BAA6B,CAA+B;QAG5D,8CAAyC,GAAzC,yCAAyC,CAA2C;QAGpF,qBAAgB,GAAhB,gBAAgB,CAAyB;QAGzC,qBAAgB,GAAhB,gBAAgB,CAAyB;QAGzC,6BAAwB,GAAxB,wBAAwB,CAAgC;IACxE,CAAC;IAEG,KAAK,CAAC,MAAM,CACjB,QAA6B,EAC7B,KAAc;QAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE5E,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAC7C,SAAS,CAAC,WAAW,CACnB,QAAQ,EACR,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAChC,KAAK,EAAC,QAAQ,EAAC,EAAE;YACf,IAAI,CAAC,CAAC,QAAQ,YAAY,aAAa,CAAC;gBACtC,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAClE,CAAA;YAEH,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAClC,CAAC,CACF,CACF,CAAA;QAED,IAAI,SAAS,YAAY,0BAA0B,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,IAAI,+BAA+B,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE;gBAClE,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,MAAM,EAAE,SAAS,CAAC,OAAO;aAC1B,CAAC,CAAA;YAEF,MAAM,IAAI,CAAC,yCAAyC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YAEpE,IAAI,OAAO,CAAC,SAAS;gBACnB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CACjE,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAClD,CAAA;YAEH,OAAO,OAAO,CAAA;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,SAAS,YAAY,4BAA4B,CAAA;QACrE,MAAM,UAAU,GAAG,SAAS,YAAY,2BAA2B,CAAA;QAEnE,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QAEtE,MAAM,OAAO,GAAG,IAAI,+BAA+B,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE;YAClE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU;SAC/C,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,yCAAyC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEpE,IAAI,WAAW;YACb,MAAM,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAC/C,QAAQ,CAAC,EAAE,EACX,SAAS,CAAC,OAAO,CAClB,CAAA;QAEH,IAAI,UAAU;YACZ,MAAM,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAC3C,QAAQ,CAAC,EAAE,EACX,SAAS,CAAC,OAAO,CAClB,CAAA;QAEH,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA;AAnFY,8BAA8B;IAD1C,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,6BAA6B,CAAC,CAAA;IAG3C,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,yCAAyC,CAAC,CAAA;IAGvD,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAA;IAGrC,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,uBAAuB,CAAC,CAAA;IAGrC,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,CAAA;GAdpC,8BAA8B,CAmF1C"}
@@ -0,0 +1,9 @@
1
+ import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
2
+ import { WorkflowRunLockService } from '../services/WorkflowRunLock.service.js';
3
+ export declare class EnqueueWorkflowRunNextTick {
4
+ private readonly workflowRun;
5
+ private readonly lock;
6
+ constructor(workflowRun: WorkflowRunFacade, lock: WorkflowRunLockService);
7
+ enqueue(runId: string): void;
8
+ enqueueMany(runIds: readonly string[]): void;
9
+ }
@@ -0,0 +1,43 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { styleText } from 'node:util';
11
+ import { Inject, Injectable } from 'pleroma';
12
+ import { WorkflowRunFacade } from '../services/WorkflowRunFacade.service.js';
13
+ import { WorkflowRunLockService } from '../services/WorkflowRunLock.service.js';
14
+ let EnqueueWorkflowRunNextTick = class EnqueueWorkflowRunNextTick {
15
+ workflowRun;
16
+ lock;
17
+ constructor(workflowRun, lock) {
18
+ this.workflowRun = workflowRun;
19
+ this.lock = lock;
20
+ }
21
+ enqueue(runId) {
22
+ setImmediate(() => {
23
+ this.lock
24
+ .detach(() => this.workflowRun.nextTick(runId))
25
+ .catch(error => {
26
+ console.error(styleText('red', `[Runtime] next tick failed for run ${runId}:`, {
27
+ stream: process.stderr,
28
+ }), error);
29
+ });
30
+ });
31
+ }
32
+ enqueueMany(runIds) {
33
+ for (const runId of runIds)
34
+ this.enqueue(runId);
35
+ }
36
+ };
37
+ EnqueueWorkflowRunNextTick = __decorate([
38
+ Injectable(),
39
+ __param(0, Inject(() => WorkflowRunFacade)),
40
+ __param(1, Inject(() => WorkflowRunLockService))
41
+ ], EnqueueWorkflowRunNextTick);
42
+ export { EnqueueWorkflowRunNextTick };
43
+ //# sourceMappingURL=EnqueueWorkflowRunNextTick.usecase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnqueueWorkflowRunNextTick.usecase.js","sourceRoot":"","sources":["../../src/use-cases/EnqueueWorkflowRunNextTick.usecase.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAA;AAGxE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAGlB;IAGA;IALnB,YAEmB,WAA8B,EAG9B,IAA4B;QAH5B,gBAAW,GAAX,WAAW,CAAmB;QAG9B,SAAI,GAAJ,IAAI,CAAwB;IAC5C,CAAC;IAEG,OAAO,CAAC,KAAa;QAC1B,YAAY,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,IAAI;iBACN,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC9C,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,OAAO,CAAC,KAAK,CACX,SAAS,CAAC,KAAK,EAAE,sCAAsC,KAAK,GAAG,EAAE;oBAC/D,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,EACF,KAAK,CACN,CAAA;YACH,CAAC,CAAC,CAAA;QACN,CAAC,CAAC,CAAA;IACJ,CAAC;IAEM,WAAW,CAAC,MAAyB;QAC1C,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;CACF,CAAA;AA3BY,0BAA0B;IADtC,UAAU,EAAE;IAGR,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;IAG/B,WAAA,MAAM,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,CAAA;GAL5B,0BAA0B,CA2BtC"}