@xyne/workflow-sdk 3.2.38 → 3.2.40

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 (212) hide show
  1. package/dist/builder/index.d.ts +3 -1
  2. package/dist/builder/index.d.ts.map +1 -1
  3. package/dist/builder/index.js +7 -1
  4. package/dist/builder/index.js.map +1 -1
  5. package/dist/client/types.d.ts +13 -0
  6. package/dist/client/types.d.ts.map +1 -1
  7. package/dist/client/workflow-client.d.ts.map +1 -1
  8. package/dist/client/workflow-client.js +8 -0
  9. package/dist/client/workflow-client.js.map +1 -1
  10. package/dist/common/citation-ref.d.ts +36 -36
  11. package/dist/connectors/builtin/builtin-connector.d.ts +1 -0
  12. package/dist/connectors/builtin/builtin-connector.d.ts.map +1 -1
  13. package/dist/connectors/builtin/builtin-connector.js +1 -0
  14. package/dist/connectors/builtin/builtin-connector.js.map +1 -1
  15. package/dist/connectors/builtin/steps/http-request.step.d.ts +2 -2
  16. package/dist/connectors/builtin/steps/switch.step.d.ts +12 -12
  17. package/dist/connectors/builtin/steps/wait.step.d.ts +90 -90
  18. package/dist/connectors/builtin/triggers/default-cron-trigger.d.ts +9 -1
  19. package/dist/connectors/builtin/triggers/default-cron-trigger.d.ts.map +1 -1
  20. package/dist/connectors/builtin/triggers/default-cron-trigger.js +3 -3
  21. package/dist/connectors/builtin/triggers/default-cron-trigger.js.map +1 -1
  22. package/dist/connectors/builtin/triggers/default-event-trigger.d.ts +12 -1
  23. package/dist/connectors/builtin/triggers/default-event-trigger.d.ts.map +1 -1
  24. package/dist/connectors/builtin/triggers/default-event-trigger.js +13 -1
  25. package/dist/connectors/builtin/triggers/default-event-trigger.js.map +1 -1
  26. package/dist/connectors/builtin/triggers/default-manual-trigger.d.ts +4 -1
  27. package/dist/connectors/builtin/triggers/default-manual-trigger.d.ts.map +1 -1
  28. package/dist/connectors/builtin/triggers/default-manual-trigger.js +3 -1
  29. package/dist/connectors/builtin/triggers/default-manual-trigger.js.map +1 -1
  30. package/dist/connectors/core/base-connector.d.ts +5 -0
  31. package/dist/connectors/core/base-connector.d.ts.map +1 -1
  32. package/dist/connectors/core/base-connector.js +5 -0
  33. package/dist/connectors/core/base-connector.js.map +1 -1
  34. package/dist/connectors/core/connector-registry.d.ts.map +1 -1
  35. package/dist/connectors/core/connector-registry.js +26 -12
  36. package/dist/connectors/core/connector-registry.js.map +1 -1
  37. package/dist/engine/condition-evaluator.d.ts.map +1 -1
  38. package/dist/engine/condition-evaluator.js +41 -5
  39. package/dist/engine/condition-evaluator.js.map +1 -1
  40. package/dist/engine/config-validator.d.ts +8 -0
  41. package/dist/engine/config-validator.d.ts.map +1 -1
  42. package/dist/engine/config-validator.js +61 -4
  43. package/dist/engine/config-validator.js.map +1 -1
  44. package/dist/engine/workflow-executor.d.ts.map +1 -1
  45. package/dist/engine/workflow-executor.js +5 -28
  46. package/dist/engine/workflow-executor.js.map +1 -1
  47. package/dist/index.d.ts +8 -4
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +3 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/ingest/start-policy.d.ts +202 -0
  52. package/dist/ingest/start-policy.d.ts.map +1 -0
  53. package/dist/ingest/start-policy.js +199 -0
  54. package/dist/ingest/start-policy.js.map +1 -0
  55. package/dist/ingest/types.d.ts +25 -6
  56. package/dist/ingest/types.d.ts.map +1 -1
  57. package/dist/persistence/in-memory-adapter.d.ts +4 -2
  58. package/dist/persistence/in-memory-adapter.d.ts.map +1 -1
  59. package/dist/persistence/in-memory-adapter.js +9 -1
  60. package/dist/persistence/in-memory-adapter.js.map +1 -1
  61. package/dist/persistence/types.d.ts +53 -1
  62. package/dist/persistence/types.d.ts.map +1 -1
  63. package/dist/router/types.d.ts +1 -0
  64. package/dist/router/types.d.ts.map +1 -1
  65. package/dist/router/workflow-router.d.ts.map +1 -1
  66. package/dist/router/workflow-router.js +57 -5
  67. package/dist/router/workflow-router.js.map +1 -1
  68. package/dist/runtime/types.d.ts +5 -0
  69. package/dist/runtime/types.d.ts.map +1 -1
  70. package/dist/runtime/workflow-runtime.d.ts +121 -7
  71. package/dist/runtime/workflow-runtime.d.ts.map +1 -1
  72. package/dist/runtime/workflow-runtime.js +430 -57
  73. package/dist/runtime/workflow-runtime.js.map +1 -1
  74. package/dist/schema/options.d.ts +101 -0
  75. package/dist/schema/options.d.ts.map +1 -0
  76. package/dist/schema/options.js +14 -0
  77. package/dist/schema/options.js.map +1 -0
  78. package/dist/steps/base-step.d.ts +12 -1
  79. package/dist/steps/base-step.d.ts.map +1 -1
  80. package/dist/steps/base-step.js +1 -0
  81. package/dist/steps/base-step.js.map +1 -1
  82. package/dist/steps/step-descriptor.d.ts +2 -0
  83. package/dist/steps/step-descriptor.d.ts.map +1 -1
  84. package/dist/steps/step-descriptor.js +1 -0
  85. package/dist/steps/step-descriptor.js.map +1 -1
  86. package/dist/triggers/api-trigger.d.ts +1 -1
  87. package/dist/triggers/api-trigger.d.ts.map +1 -1
  88. package/dist/triggers/api-trigger.js.map +1 -1
  89. package/dist/triggers/base-trigger.d.ts +67 -8
  90. package/dist/triggers/base-trigger.d.ts.map +1 -1
  91. package/dist/triggers/base-trigger.js +15 -3
  92. package/dist/triggers/base-trigger.js.map +1 -1
  93. package/dist/triggers/cron-trigger.d.ts +1 -1
  94. package/dist/triggers/cron-trigger.d.ts.map +1 -1
  95. package/dist/triggers/cron-trigger.js.map +1 -1
  96. package/dist/triggers/event-trigger.d.ts +3 -3
  97. package/dist/triggers/event-trigger.d.ts.map +1 -1
  98. package/dist/triggers/event-trigger.js +2 -2
  99. package/dist/triggers/event-trigger.js.map +1 -1
  100. package/dist/triggers/manual-trigger.d.ts +1 -1
  101. package/dist/triggers/manual-trigger.d.ts.map +1 -1
  102. package/dist/triggers/manual-trigger.js.map +1 -1
  103. package/dist/triggers/trigger-descriptor.d.ts +2 -0
  104. package/dist/triggers/trigger-descriptor.d.ts.map +1 -1
  105. package/dist/triggers/trigger-descriptor.js +1 -0
  106. package/dist/triggers/trigger-descriptor.js.map +1 -1
  107. package/dist/triggers/webhook-trigger.d.ts +25 -6
  108. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  109. package/dist/triggers/webhook-trigger.js +23 -2
  110. package/dist/triggers/webhook-trigger.js.map +1 -1
  111. package/dist/types/config-path.d.ts +24 -0
  112. package/dist/types/config-path.d.ts.map +1 -0
  113. package/dist/types/config-path.js +18 -0
  114. package/dist/types/config-path.js.map +1 -0
  115. package/dist/types/context.d.ts.map +1 -1
  116. package/dist/types/operators.d.ts +15 -1
  117. package/dist/types/operators.d.ts.map +1 -1
  118. package/dist/types/operators.js +21 -0
  119. package/dist/types/operators.js.map +1 -1
  120. package/dist/types/workflow-config.d.ts +13 -0
  121. package/dist/types/workflow-config.d.ts.map +1 -1
  122. package/dist/types/workflow-config.js +9 -7
  123. package/dist/types/workflow-config.js.map +1 -1
  124. package/dist/util/option-mark.d.ts +44 -0
  125. package/dist/util/option-mark.d.ts.map +1 -0
  126. package/dist/util/option-mark.js +132 -0
  127. package/dist/util/option-mark.js.map +1 -0
  128. package/dist/util/schema-convert.d.ts +5 -0
  129. package/dist/util/schema-convert.d.ts.map +1 -1
  130. package/dist/util/schema-convert.js +7 -1
  131. package/dist/util/schema-convert.js.map +1 -1
  132. package/dist/util/schema-marks.d.ts +58 -0
  133. package/dist/util/schema-marks.d.ts.map +1 -0
  134. package/dist/util/schema-marks.js +161 -0
  135. package/dist/util/schema-marks.js.map +1 -0
  136. package/dist/util/variable-ref.d.ts +0 -5
  137. package/dist/util/variable-ref.d.ts.map +1 -1
  138. package/dist/util/variable-ref.js +0 -5
  139. package/dist/util/variable-ref.js.map +1 -1
  140. package/package.json +1 -1
  141. package/dist/runtime/execution-event-bus.d.ts +0 -38
  142. package/dist/runtime/execution-event-bus.d.ts.map +0 -1
  143. package/dist/runtime/execution-event-bus.js +0 -87
  144. package/dist/runtime/execution-event-bus.js.map +0 -1
  145. package/dist/steps/builtin/code.step.d.ts +0 -99
  146. package/dist/steps/builtin/code.step.d.ts.map +0 -1
  147. package/dist/steps/builtin/code.step.js +0 -152
  148. package/dist/steps/builtin/code.step.js.map +0 -1
  149. package/dist/steps/builtin/conditional.step.d.ts +0 -182
  150. package/dist/steps/builtin/conditional.step.d.ts.map +0 -1
  151. package/dist/steps/builtin/conditional.step.js +0 -82
  152. package/dist/steps/builtin/conditional.step.js.map +0 -1
  153. package/dist/steps/builtin/dedup.step.d.ts +0 -65
  154. package/dist/steps/builtin/dedup.step.d.ts.map +0 -1
  155. package/dist/steps/builtin/dedup.step.js +0 -61
  156. package/dist/steps/builtin/dedup.step.js.map +0 -1
  157. package/dist/steps/builtin/http-request.step.d.ts +0 -1020
  158. package/dist/steps/builtin/http-request.step.d.ts.map +0 -1
  159. package/dist/steps/builtin/http-request.step.js +0 -491
  160. package/dist/steps/builtin/http-request.step.js.map +0 -1
  161. package/dist/steps/builtin/loop.step.d.ts +0 -100
  162. package/dist/steps/builtin/loop.step.d.ts.map +0 -1
  163. package/dist/steps/builtin/loop.step.js +0 -73
  164. package/dist/steps/builtin/loop.step.js.map +0 -1
  165. package/dist/steps/builtin/map.step.d.ts +0 -148
  166. package/dist/steps/builtin/map.step.d.ts.map +0 -1
  167. package/dist/steps/builtin/map.step.js +0 -111
  168. package/dist/steps/builtin/map.step.js.map +0 -1
  169. package/dist/steps/builtin/parallel.step.d.ts +0 -246
  170. package/dist/steps/builtin/parallel.step.d.ts.map +0 -1
  171. package/dist/steps/builtin/parallel.step.js +0 -175
  172. package/dist/steps/builtin/parallel.step.js.map +0 -1
  173. package/dist/steps/builtin/ssrf-guard.d.ts +0 -9
  174. package/dist/steps/builtin/ssrf-guard.d.ts.map +0 -1
  175. package/dist/steps/builtin/ssrf-guard.js +0 -115
  176. package/dist/steps/builtin/ssrf-guard.js.map +0 -1
  177. package/dist/steps/builtin/switch.step.d.ts +0 -235
  178. package/dist/steps/builtin/switch.step.d.ts.map +0 -1
  179. package/dist/steps/builtin/switch.step.js +0 -101
  180. package/dist/steps/builtin/switch.step.js.map +0 -1
  181. package/dist/steps/builtin/wait.step.d.ts +0 -1072
  182. package/dist/steps/builtin/wait.step.d.ts.map +0 -1
  183. package/dist/steps/builtin/wait.step.js +0 -254
  184. package/dist/steps/builtin/wait.step.js.map +0 -1
  185. package/dist/steps/step-registry.d.ts +0 -62
  186. package/dist/steps/step-registry.d.ts.map +0 -1
  187. package/dist/steps/step-registry.js +0 -103
  188. package/dist/steps/step-registry.js.map +0 -1
  189. package/dist/triggers/builtin/default-cron-trigger.d.ts +0 -44
  190. package/dist/triggers/builtin/default-cron-trigger.d.ts.map +0 -1
  191. package/dist/triggers/builtin/default-cron-trigger.js +0 -31
  192. package/dist/triggers/builtin/default-cron-trigger.js.map +0 -1
  193. package/dist/triggers/builtin/default-event-trigger.d.ts +0 -32
  194. package/dist/triggers/builtin/default-event-trigger.d.ts.map +0 -1
  195. package/dist/triggers/builtin/default-event-trigger.js +0 -21
  196. package/dist/triggers/builtin/default-event-trigger.js.map +0 -1
  197. package/dist/triggers/builtin/default-manual-trigger.d.ts +0 -45
  198. package/dist/triggers/builtin/default-manual-trigger.d.ts.map +0 -1
  199. package/dist/triggers/builtin/default-manual-trigger.js +0 -51
  200. package/dist/triggers/builtin/default-manual-trigger.js.map +0 -1
  201. package/dist/triggers/builtin/default-webhook-trigger.d.ts +0 -72
  202. package/dist/triggers/builtin/default-webhook-trigger.d.ts.map +0 -1
  203. package/dist/triggers/builtin/default-webhook-trigger.js +0 -91
  204. package/dist/triggers/builtin/default-webhook-trigger.js.map +0 -1
  205. package/dist/triggers/builtin/default-webhook-v2-trigger.d.ts +0 -29
  206. package/dist/triggers/builtin/default-webhook-v2-trigger.d.ts.map +0 -1
  207. package/dist/triggers/builtin/default-webhook-v2-trigger.js +0 -38
  208. package/dist/triggers/builtin/default-webhook-v2-trigger.js.map +0 -1
  209. package/dist/triggers/trigger-registry.d.ts +0 -48
  210. package/dist/triggers/trigger-registry.d.ts.map +0 -1
  211. package/dist/triggers/trigger-registry.js +0 -83
  212. package/dist/triggers/trigger-registry.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Marking a config field as one whose values the owning component can list.
3
+ *
4
+ * The mark rides on the Zod schema and is projected into the generated JSON
5
+ * Schema by `zod-to-json-schema`'s `postProcess` hook, which fires once per
6
+ * converted node. That is the entire mechanism. Because the converter already
7
+ * recurses, nesting, arrays, arrays-of-objects and union variants need no code
8
+ * here — and because nothing is addressed by name, there is no path to typo and
9
+ * no second traversal that could disagree with the first.
10
+ */
11
+ /**
12
+ * Anchored on `globalThis` rather than module scope.
13
+ *
14
+ * A config schema is DECLARED in a connector package and CONVERTED in this one.
15
+ * Were two copies of the SDK ever loaded, a module-local set would lose every
16
+ * mark and quietly render plain text boxes — the precise failure this feature
17
+ * exists to prevent.
18
+ */
19
+ const MARK_KEY = Symbol.for('@xyne/workflow-sdk:option-marks');
20
+ const marks = (() => {
21
+ const g = globalThis;
22
+ const existing = g[MARK_KEY];
23
+ if (existing instanceof WeakSet)
24
+ return existing;
25
+ const created = new WeakSet();
26
+ g[MARK_KEY] = created;
27
+ return created;
28
+ })();
29
+ /**
30
+ * Declare that this field's values are drawn from a set the component can
31
+ * enumerate — the difference between pasting a repository id and picking one.
32
+ *
33
+ * Wrap the innermost schema: `withOptions(z.string()).optional()`, not
34
+ * `withOptions(z.string().optional())`, so the mark lands on the node the
35
+ * converter actually emits for the field.
36
+ *
37
+ * A suggestion, not a constraint. Free text and `{{trigger.x}}` references stay
38
+ * legal, which is why this is not `z.enum` — it says where good values come
39
+ * from, not which values are allowed. The component answers with `getOptions`,
40
+ * and `ctx.field` tells it which field is asking.
41
+ */
42
+ export function withOptions(inner) {
43
+ // Cloned rather than marked in place: a schema held in a `const` and reused
44
+ // across several fields would otherwise light up every field it appears in.
45
+ const def = { ...inner._def };
46
+ const Ctor = inner.constructor;
47
+ const clone = new Ctor(def);
48
+ marks.add(def);
49
+ return clone;
50
+ }
51
+ /** Whether {@link withOptions} marked the schema this def belongs to. */
52
+ export function isOptionMarked(def) {
53
+ return marks.has(def);
54
+ }
55
+ /**
56
+ * Projects the mark onto the generated JSON Schema as `hasOptions: true`.
57
+ *
58
+ * Passed to every conversion in `zodToJsonSchemaRecord`, so a component never
59
+ * has to know the editor's vocabulary, and `decorateConfigSchema` is left alone.
60
+ */
61
+ export const markOptions = (jsonSchema, def) => {
62
+ if (jsonSchema === undefined)
63
+ return jsonSchema;
64
+ const node = jsonSchema;
65
+ const found = marks.has(def) || variantMarked(node) || innerMarked(def);
66
+ return found ? { ...jsonSchema, hasOptions: true } : jsonSchema;
67
+ };
68
+ /**
69
+ * Whether a union variant carries the mark.
70
+ *
71
+ * `.nullable()` and {@link variableRef} emit the field as an `anyOf`, which puts
72
+ * the marked node one level below the property the editor reads. The field is
73
+ * still a picker, so the mark is lifted to where it will be seen. Only a
74
+ * variant's OWN mark lifts — an object variant holding a marked property does
75
+ * not make the object itself a picker.
76
+ */
77
+ function variantMarked(node) {
78
+ for (const key of ['anyOf', 'oneOf']) {
79
+ const variants = node[key];
80
+ if (!Array.isArray(variants))
81
+ continue;
82
+ const any = variants.some((v) => typeof v === 'object' && v !== null && v['hasOptions'] === true);
83
+ if (any)
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ /**
89
+ * Whether a modifier is wrapping a marked schema.
90
+ *
91
+ * `.optional()`, `.nullable()` and `.default()` each decide for themselves which
92
+ * node reaches the output: optional emits the INNER type's node and records the
93
+ * name in `required`, while a nullable primitive collapses to
94
+ * `type: ['string','null']` emitted from the OUTER def. So neither "wrap
95
+ * innermost" nor "wrap outermost" is universally right, and an author should not
96
+ * have to know which is which — the mark is looked for in both directions
97
+ * instead.
98
+ *
99
+ * Bounded at three wrappers: `.optional().nullable().default(x)` is already more
100
+ * than a config field should need, and an unbounded walk over internals is a
101
+ * cost paid on every conversion.
102
+ */
103
+ function innerMarked(def) {
104
+ let current = def;
105
+ for (let depth = 0; depth < 3; depth += 1) {
106
+ const inner = current.innerType?._def;
107
+ if (typeof inner !== 'object' || inner === null)
108
+ return false;
109
+ if (marks.has(inner))
110
+ return true;
111
+ current = inner;
112
+ }
113
+ return false;
114
+ }
115
+ /**
116
+ * Whether any field in a converted schema offers choices.
117
+ *
118
+ * Asks the generated JSON Schema rather than the Zod tree, because that is what
119
+ * the editor reads: a mark that failed to survive conversion is not a picker,
120
+ * whatever the declaration said.
121
+ */
122
+ export function schemaOffersOptions(node) {
123
+ if (Array.isArray(node))
124
+ return node.some(schemaOffersOptions);
125
+ if (typeof node !== 'object' || node === null)
126
+ return false;
127
+ const record = node;
128
+ if (record['hasOptions'] === true)
129
+ return true;
130
+ return Object.values(record).some(schemaOffersOptions);
131
+ }
132
+ //# sourceMappingURL=option-mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"option-mark.js","sourceRoot":"","sources":["../../src/util/option-mark.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,11 @@ import type { z } from 'zod';
9
9
  *
10
10
  * Returns `Record<string, unknown>` so callers don't need to
11
11
  * depend on the `zod-to-json-schema` package directly.
12
+ *
13
+ * Every conversion carries {@link applyMarks}, so a field declared with
14
+ * `withOptions` or `variableRef` arrives marked wherever it sits — the
15
+ * converter's own recursion does the walking, and nothing here has to know the
16
+ * shape of the schema.
12
17
  */
13
18
  export declare function zodToJsonSchemaRecord(schema: z.ZodTypeAny): Record<string, unknown>;
14
19
  //# sourceMappingURL=schema-convert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-convert.d.ts","sourceRoot":"","sources":["../../src/util/schema-convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
1
+ {"version":3,"file":"schema-convert.d.ts","sourceRoot":"","sources":["../../src/util/schema-convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAG7B;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,CAAC,CAAC,UAAU,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzB"}
@@ -4,13 +4,19 @@
4
4
  * Centralised so the conversion options stay consistent across the SDK.
5
5
  */
6
6
  import { zodToJsonSchema } from 'zod-to-json-schema';
7
+ import { applyMarks } from './schema-marks.js';
7
8
  /**
8
9
  * Convert a Zod schema to a plain JSON Schema object.
9
10
  *
10
11
  * Returns `Record<string, unknown>` so callers don't need to
11
12
  * depend on the `zod-to-json-schema` package directly.
13
+ *
14
+ * Every conversion carries {@link applyMarks}, so a field declared with
15
+ * `withOptions` or `variableRef` arrives marked wherever it sits — the
16
+ * converter's own recursion does the walking, and nothing here has to know the
17
+ * shape of the schema.
12
18
  */
13
19
  export function zodToJsonSchemaRecord(schema) {
14
- return zodToJsonSchema(schema);
20
+ return zodToJsonSchema(schema, { postProcess: applyMarks });
15
21
  }
16
22
  //# sourceMappingURL=schema-convert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-convert.js","sourceRoot":"","sources":["../../src/util/schema-convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB;IAEpB,OAAO,eAAe,CAAC,MAAM,CAA4B,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"schema-convert.js","sourceRoot":"","sources":["../../src/util/schema-convert.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAoB;IAEpB,OAAO,eAAe,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAA4B,CAAC;AACzF,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Facts a config field carries from its Zod declaration into the JSON Schema the
3
+ * editor reads.
4
+ *
5
+ * Two of them cannot be said in JSON Schema's own vocabulary: that a field's
6
+ * values can be listed by the component that owns it, and that a field also
7
+ * accepts a `{{...}}` reference. Both are declared AT the field, in Zod, and
8
+ * projected onto the generated document by `zod-to-json-schema`'s `postProcess`
9
+ * hook, which fires once per converted node. The converter's own recursion does
10
+ * all the walking, so nesting, arrays, arrays-of-objects and union variants need
11
+ * no code here.
12
+ *
13
+ * They share one registry because `postProcess` takes exactly one callback. A
14
+ * mark's name is the JSON Schema key it becomes, so nothing translates between
15
+ * the two sides.
16
+ *
17
+ * This replaced a sentinel prefix stuffed into `description` — a field meant for
18
+ * the author's own words, which the marker overwrote and every reader then had
19
+ * to parse back out.
20
+ */
21
+ import type { z } from 'zod';
22
+ import type { PostProcessCallback } from 'zod-to-json-schema';
23
+ /** Each becomes a boolean of the same name on the generated schema. */
24
+ export type SchemaMark = 'hasOptions' | 'isVariableRef';
25
+ /**
26
+ * A copy of `inner` carrying `mark`.
27
+ *
28
+ * Copied rather than marked in place: a schema held in a `const` and reused
29
+ * across several fields would otherwise light up every field it appears in.
30
+ * Marks already on the original come along, so wrapping twice —
31
+ * `withOptions(variableRef(x))` — keeps both.
32
+ */
33
+ export declare function markSchema<T extends z.ZodTypeAny>(inner: T, mark: SchemaMark): T;
34
+ /** Whether this def's schema was marked. */
35
+ export declare function isMarked(def: object, mark: SchemaMark): boolean;
36
+ /**
37
+ * Declare that this field's values are drawn from a set the component can
38
+ * enumerate — the difference between pasting a repository id and picking one.
39
+ *
40
+ * A suggestion, not a constraint. Free text and `{{trigger.x}}` references stay
41
+ * legal, which is why this is not `z.enum` — it says where good values come
42
+ * from, not which values are allowed. The component answers with `getOptions`,
43
+ * and `ctx.field` tells it which field is asking.
44
+ */
45
+ export declare function withOptions<T extends z.ZodTypeAny>(inner: T): T;
46
+ /** Whether {@link withOptions} marked the schema this def belongs to. */
47
+ export declare function isOptionMarked(def: object): boolean;
48
+ /** Projects every mark a node carries onto the generated JSON Schema. */
49
+ export declare const applyMarks: PostProcessCallback;
50
+ /**
51
+ * Whether any field in a converted schema offers choices.
52
+ *
53
+ * Asks the generated JSON Schema rather than the Zod tree, because that is what
54
+ * the editor reads: a mark that failed to survive conversion is not a picker,
55
+ * whatever the declaration said.
56
+ */
57
+ export declare function schemaOffersOptions(node: unknown): boolean;
58
+ //# sourceMappingURL=schema-marks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-marks.d.ts","sourceRoot":"","sources":["../../src/util/schema-marks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;AAuBxD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,CAAC,CAShF;AAED,4CAA4C;AAC5C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAE/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAE/D;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,yEAAyE;AACzE,eAAO,MAAM,UAAU,EAAE,mBAaxB,CAAC;AAwDF;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAM1D"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Facts a config field carries from its Zod declaration into the JSON Schema the
3
+ * editor reads.
4
+ *
5
+ * Two of them cannot be said in JSON Schema's own vocabulary: that a field's
6
+ * values can be listed by the component that owns it, and that a field also
7
+ * accepts a `{{...}}` reference. Both are declared AT the field, in Zod, and
8
+ * projected onto the generated document by `zod-to-json-schema`'s `postProcess`
9
+ * hook, which fires once per converted node. The converter's own recursion does
10
+ * all the walking, so nesting, arrays, arrays-of-objects and union variants need
11
+ * no code here.
12
+ *
13
+ * They share one registry because `postProcess` takes exactly one callback. A
14
+ * mark's name is the JSON Schema key it becomes, so nothing translates between
15
+ * the two sides.
16
+ *
17
+ * This replaced a sentinel prefix stuffed into `description` — a field meant for
18
+ * the author's own words, which the marker overwrote and every reader then had
19
+ * to parse back out.
20
+ */
21
+ const ALL_MARKS = ['hasOptions', 'isVariableRef'];
22
+ /**
23
+ * Anchored on `globalThis` rather than module scope.
24
+ *
25
+ * A config schema is DECLARED in a connector package and CONVERTED in this one.
26
+ * Were two copies of the SDK ever loaded, a module-local registry would lose
27
+ * every mark and quietly render plain text boxes — the precise failure these
28
+ * marks exist to prevent.
29
+ */
30
+ const REGISTRY_KEY = Symbol.for('@xyne/workflow-sdk:schema-marks');
31
+ const registry = (() => {
32
+ const global = globalThis;
33
+ const existing = global[REGISTRY_KEY];
34
+ if (existing instanceof WeakMap)
35
+ return existing;
36
+ const created = new WeakMap();
37
+ global[REGISTRY_KEY] = created;
38
+ return created;
39
+ })();
40
+ /**
41
+ * A copy of `inner` carrying `mark`.
42
+ *
43
+ * Copied rather than marked in place: a schema held in a `const` and reused
44
+ * across several fields would otherwise light up every field it appears in.
45
+ * Marks already on the original come along, so wrapping twice —
46
+ * `withOptions(variableRef(x))` — keeps both.
47
+ */
48
+ export function markSchema(inner, mark) {
49
+ const def = { ...inner._def };
50
+ const Ctor = inner.constructor;
51
+ const clone = new Ctor(def);
52
+ const carried = new Set(registry.get(inner._def) ?? []);
53
+ carried.add(mark);
54
+ registry.set(def, carried);
55
+ return clone;
56
+ }
57
+ /** Whether this def's schema was marked. */
58
+ export function isMarked(def, mark) {
59
+ return registry.get(def)?.has(mark) === true;
60
+ }
61
+ /**
62
+ * Declare that this field's values are drawn from a set the component can
63
+ * enumerate — the difference between pasting a repository id and picking one.
64
+ *
65
+ * A suggestion, not a constraint. Free text and `{{trigger.x}}` references stay
66
+ * legal, which is why this is not `z.enum` — it says where good values come
67
+ * from, not which values are allowed. The component answers with `getOptions`,
68
+ * and `ctx.field` tells it which field is asking.
69
+ */
70
+ export function withOptions(inner) {
71
+ return markSchema(inner, 'hasOptions');
72
+ }
73
+ /** Whether {@link withOptions} marked the schema this def belongs to. */
74
+ export function isOptionMarked(def) {
75
+ return isMarked(def, 'hasOptions');
76
+ }
77
+ /** Projects every mark a node carries onto the generated JSON Schema. */
78
+ export const applyMarks = (jsonSchema, def) => {
79
+ if (jsonSchema === undefined)
80
+ return jsonSchema;
81
+ const node = jsonSchema;
82
+ let marked;
83
+ for (const mark of ALL_MARKS) {
84
+ if (node[mark] === true)
85
+ continue;
86
+ if (!carries(def, node, mark))
87
+ continue;
88
+ marked = { ...(marked ?? node), [mark]: true };
89
+ }
90
+ return (marked ?? jsonSchema);
91
+ };
92
+ function carries(def, node, mark) {
93
+ return isMarked(def, mark) || variantMarked(node, mark) || innerMarked(def, mark);
94
+ }
95
+ /**
96
+ * Whether a union variant carries the mark.
97
+ *
98
+ * `.nullable()` and `variableRef()` emit the field as an `anyOf`, which puts the
99
+ * marked node one level below the property the editor reads. The field is still
100
+ * the thing it was marked as, so the mark is lifted to where it will be seen.
101
+ * Only a variant's OWN mark lifts — an object variant holding a marked property
102
+ * does not make the object itself a picker.
103
+ */
104
+ function variantMarked(node, mark) {
105
+ for (const key of ['anyOf', 'oneOf']) {
106
+ const variants = node[key];
107
+ if (!Array.isArray(variants))
108
+ continue;
109
+ const any = variants.some((variant) => typeof variant === 'object' &&
110
+ variant !== null &&
111
+ variant[mark] === true);
112
+ if (any)
113
+ return true;
114
+ }
115
+ return false;
116
+ }
117
+ /**
118
+ * Whether a modifier is wrapping a marked schema.
119
+ *
120
+ * `.optional()`, `.nullable()` and `.default()` each decide for themselves which
121
+ * node reaches the output: optional emits the INNER type's node and records the
122
+ * name in `required`, while a nullable primitive collapses to
123
+ * `type: ['string','null']` emitted from the OUTER def. So neither "wrap
124
+ * innermost" nor "wrap outermost" is universally right, and an author should not
125
+ * have to know which is which — the mark is looked for in both directions
126
+ * instead.
127
+ *
128
+ * Bounded at three wrappers: `.optional().nullable().default(x)` is already more
129
+ * than a config field should need, and an unbounded walk over internals is a
130
+ * cost paid on every conversion.
131
+ */
132
+ function innerMarked(def, mark) {
133
+ let current = def;
134
+ for (let depth = 0; depth < 3; depth += 1) {
135
+ const inner = current.innerType?._def;
136
+ if (typeof inner !== 'object' || inner === null)
137
+ return false;
138
+ if (isMarked(inner, mark))
139
+ return true;
140
+ current = inner;
141
+ }
142
+ return false;
143
+ }
144
+ /**
145
+ * Whether any field in a converted schema offers choices.
146
+ *
147
+ * Asks the generated JSON Schema rather than the Zod tree, because that is what
148
+ * the editor reads: a mark that failed to survive conversion is not a picker,
149
+ * whatever the declaration said.
150
+ */
151
+ export function schemaOffersOptions(node) {
152
+ if (Array.isArray(node))
153
+ return node.some(schemaOffersOptions);
154
+ if (typeof node !== 'object' || node === null)
155
+ return false;
156
+ const record = node;
157
+ if (record['hasOptions'] === true)
158
+ return true;
159
+ return Object.values(record).some(schemaOffersOptions);
160
+ }
161
+ //# sourceMappingURL=schema-marks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-marks.js","sourceRoot":"","sources":["../../src/util/schema-marks.ts"],"names":[],"mappings":"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"}
@@ -11,11 +11,6 @@ import type { WorkflowConfig } from '../types/workflow-config.js';
11
11
  * The `context.` prefix is optional.
12
12
  */
13
13
  export declare const VARIABLE_REF_REGEX: RegExp;
14
- /**
15
- * Sentinel prefix for Zod `.describe()` — lets JSON Schema consumers detect
16
- * "this is a variableRef-wrapped field" without inspecting the Zod tree.
17
- */
18
- export declare const VARIABLE_REF_DESCRIPTION_PREFIX = "__variableRef__";
19
14
  export type VariableRefToken = {
20
15
  kind: 'literal';
21
16
  text: string;
@@ -1 +1 @@
1
- {"version":3,"file":"variable-ref.d.ts","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAkC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,+BAA+B,oBAAoB,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoB1D;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAItE;AA0BD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACjD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAoBnD;AAkED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF"}
1
+ {"version":3,"file":"variable-ref.d.ts","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,6BAA6B,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,QAAkC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAK/C;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAoB1D;AAED,0EAA0E;AAC1E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG3D;AAED,MAAM,WAAW,QAAQ;IACvB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,CAItE;AA0BD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACjD,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,0EAA0E;IAC1E,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAoBnD;AAkED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrF"}
@@ -10,11 +10,6 @@
10
10
  * The `context.` prefix is optional.
11
11
  */
12
12
  export const VARIABLE_REF_REGEX = /^\{\{(?:context\.)?[^}]+\}\}$/;
13
- /**
14
- * Sentinel prefix for Zod `.describe()` — lets JSON Schema consumers detect
15
- * "this is a variableRef-wrapped field" without inspecting the Zod tree.
16
- */
17
- export const VARIABLE_REF_DESCRIPTION_PREFIX = '__variableRef__';
18
13
  /** Global regex — captures the dotted path inside `{{...}}`. */
19
14
  const TOKEN_REGEX = /\{\{(?:context\.)?([^}]+)\}\}/g;
20
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"variable-ref.js","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variable-ref.js","sourceRoot":"","sources":["../../src/util/variable-ref.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyne/workflow-sdk",
3
- "version": "3.2.38",
3
+ "version": "3.2.40",
4
4
  "description": "Workflow engine SDK \u2014 steps, triggers, executor, agents, and a framework-agnostic HTTP router.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -1,38 +0,0 @@
1
- /**
2
- * ExecutionEventBus — in-memory pub/sub for execution stream events.
3
- *
4
- * The executor emits events at state transitions (step started/completed/failed,
5
- * execution paused/completed/failed). The SSE route subscribes per-executionId
6
- * and streams them to the client.
7
- */
8
- import type { ExecutionStreamEvent } from './types.js';
9
- type EventCallback = (event: ExecutionStreamEvent) => void;
10
- export declare class ExecutionEventBus {
11
- private readonly listeners;
12
- /**
13
- * Subscribe to events for a specific execution.
14
- * Returns an unsubscribe function.
15
- */
16
- subscribe(executionId: string, cb: EventCallback): () => void;
17
- /**
18
- * Emit an event to all listeners for the given execution.
19
- */
20
- emit(executionId: string, event: ExecutionStreamEvent): void;
21
- }
22
- /**
23
- * Bridges push-based event bus callbacks to an AsyncIterable.
24
- *
25
- * Usage:
26
- * const ch = createEventChannel<ExecutionStreamEvent>();
27
- * const unsub = eventBus.subscribe(execId, ch.push);
28
- * for await (const event of ch) { ... }
29
- * ch.end(); // terminates the iterator
30
- */
31
- export interface EventChannel<T> {
32
- push: (value: T) => void;
33
- end: () => void;
34
- [Symbol.asyncIterator](): AsyncIterator<T>;
35
- }
36
- export declare function createEventChannel<T>(): EventChannel<T>;
37
- export {};
38
- //# sourceMappingURL=execution-event-bus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution-event-bus.d.ts","sourceRoot":"","sources":["../../src/runtime/execution-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,KAAK,aAAa,GAAG,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;AAE3D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,aAAa,GAAG,MAAM,IAAI;IAgB7D;;OAEG;IACH,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI;CAW7D;AAID;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACzB,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,wBAAgB,kBAAkB,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,CA0CvD"}
@@ -1,87 +0,0 @@
1
- /**
2
- * ExecutionEventBus — in-memory pub/sub for execution stream events.
3
- *
4
- * The executor emits events at state transitions (step started/completed/failed,
5
- * execution paused/completed/failed). The SSE route subscribes per-executionId
6
- * and streams them to the client.
7
- */
8
- export class ExecutionEventBus {
9
- listeners = new Map();
10
- /**
11
- * Subscribe to events for a specific execution.
12
- * Returns an unsubscribe function.
13
- */
14
- subscribe(executionId, cb) {
15
- let set = this.listeners.get(executionId);
16
- if (!set) {
17
- set = new Set();
18
- this.listeners.set(executionId, set);
19
- }
20
- set.add(cb);
21
- return () => {
22
- set.delete(cb);
23
- if (set.size === 0) {
24
- this.listeners.delete(executionId);
25
- }
26
- };
27
- }
28
- /**
29
- * Emit an event to all listeners for the given execution.
30
- */
31
- emit(executionId, event) {
32
- const set = this.listeners.get(executionId);
33
- if (!set)
34
- return;
35
- for (const cb of set) {
36
- try {
37
- cb(event);
38
- }
39
- catch {
40
- // Never let a listener error break the executor
41
- }
42
- }
43
- }
44
- }
45
- export function createEventChannel() {
46
- const queue = [];
47
- let resolve = null;
48
- let done = false;
49
- return {
50
- push(value) {
51
- if (done)
52
- return;
53
- if (resolve) {
54
- const r = resolve;
55
- resolve = null;
56
- r({ value, done: false });
57
- }
58
- else {
59
- queue.push(value);
60
- }
61
- },
62
- end() {
63
- done = true;
64
- if (resolve) {
65
- const r = resolve;
66
- resolve = null;
67
- r({ value: undefined, done: true });
68
- }
69
- },
70
- [Symbol.asyncIterator]() {
71
- return {
72
- next() {
73
- if (queue.length > 0) {
74
- return Promise.resolve({ value: queue.shift(), done: false });
75
- }
76
- if (done) {
77
- return Promise.resolve({ value: undefined, done: true });
78
- }
79
- return new Promise((r) => {
80
- resolve = r;
81
- });
82
- },
83
- };
84
- },
85
- };
86
- }
87
- //# sourceMappingURL=execution-event-bus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execution-event-bus.js","sourceRoot":"","sources":["../../src/runtime/execution-event-bus.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,OAAO,iBAAiB;IACX,SAAS,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEnE;;;OAGG;IACH,SAAS,CAAC,WAAmB,EAAE,EAAiB;QAC9C,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,WAAmB,EAAE,KAA2B;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,EAAE,CAAC,KAAK,CAAC,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,gDAAgD;YAClD,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAmBD,MAAM,UAAU,kBAAkB;IAChC,MAAM,KAAK,GAAQ,EAAE,CAAC;IACtB,IAAI,OAAO,GAAiD,IAAI,CAAC;IACjE,IAAI,IAAI,GAAG,KAAK,CAAC;IAEjB,OAAO;QACL,IAAI,CAAC,KAAQ;YACX,IAAI,IAAI;gBAAE,OAAO;YACjB,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,GAAG;YACD,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,GAAG,OAAO,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,KAAK,EAAE,SAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,CAAC,MAAM,CAAC,aAAa,CAAC;YACpB,OAAO;gBACL,IAAI;oBACF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACrB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;oBACjE,CAAC;oBACD,IAAI,IAAI,EAAE,CAAC;wBACT,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,SAAc,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;oBAChE,CAAC;oBACD,OAAO,IAAI,OAAO,CAAoB,CAAC,CAAC,EAAE,EAAE;wBAC1C,OAAO,GAAG,CAAC,CAAC;oBACd,CAAC,CAAC,CAAC;gBACL,CAAC;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}